jtulach@292: package org.apidesign.aserverinfo.test; jtulach@91: jtulach@340: import java.util.logging.Logger; jtulach@340: import java.util.logging.Level; jtulach@91: import java.net.MalformedURLException; jtulach@91: import java.net.URL; jtulach@292: import org.apidesign.aserverinfo.cummulativefactory.ServerConnector; jtulach@292: import org.apidesign.aserverinfo.spi.NameProvider; jtulach@292: import org.apidesign.aserverinfo.spi.ResetHandler; jtulach@292: import org.apidesign.aserverinfo.spi.URLProvider; jtulach@91: import org.junit.After; jtulach@91: import org.junit.Before; jtulach@91: import org.junit.Test; jtulach@91: import static org.junit.Assert.*; jtulach@91: jtulach@294: public class CummulativeFactoryTest { jtulach@91: jtulach@294: public CummulativeFactoryTest() { jtulach@91: } jtulach@91: jtulach@91: @Before jtulach@91: public void setUp() { jtulach@91: } jtulach@91: jtulach@91: @After jtulach@91: public void tearDown() { jtulach@91: } jtulach@91: jtulach@91: @Test jtulach@91: public void showUseOfCumulativeFactory() throws Exception { jtulach@154: Prov p = new Prov(); jtulach@292: NameProvider np = p; jtulach@292: URLProvider up = p; jtulach@292: ResetHandler res = p; jtulach@292: ServerConnector inf; jtulach@91: jtulach@292: // BEGIN: ServerConnector.cumulative.creation jtulach@292: inf = ServerConnector.empty().nameProvider(np).urlProvider(up).reset(res); jtulach@292: // END: ServerConnector.cumulative.creation jtulach@91: jtulach@154: assertEquals("API Design Server", inf.getName()); jtulach@154: assertEquals("http://www.apidesign.org", inf.getURL().toExternalForm()); jtulach@154: inf.reset(); jtulach@154: assertEquals("Once reset", 1, p.resets); jtulach@91: jtulach@91: } jtulach@114: jtulach@114: @Test jtulach@114: public void showVerboseUseOfCumulativeFactory() throws Exception { jtulach@114: Prov prov = new Prov(); jtulach@292: ServerConnector info; jtulach@114: jtulach@292: // BEGIN: ServerConnector.cumulative.creation.verbose jtulach@292: ServerConnector empty = ServerConnector.empty(); jtulach@292: ServerConnector name = empty.nameProvider(prov); jtulach@292: ServerConnector urlAndName = name.urlProvider(prov); jtulach@114: info = urlAndName.reset(prov); jtulach@292: // END: ServerConnector.cumulative.creation.verbose jtulach@114: jtulach@114: assertEquals("API Design Server", info.getName()); jtulach@114: assertEquals("http://www.apidesign.org", info.getURL().toExternalForm()); jtulach@114: info.reset(); jtulach@114: assertEquals("Once reset", 1, prov.resets); jtulach@114: jtulach@114: } jtulach@114: jtulach@114: jtulach@292: private static class Prov implements NameProvider, URLProvider, ResetHandler { jtulach@114: int resets; jtulach@114: jtulach@114: public String getName() { jtulach@114: return "API Design Server"; jtulach@114: } jtulach@114: jtulach@114: public URL getURL() { jtulach@114: try { jtulach@114: return new URL("http://www.apidesign.org"); jtulach@114: } catch (MalformedURLException ex) { jtulach@340: Logger.getLogger(CummulativeFactoryTest.class.getName()).log(Level.SEVERE, null, ex); jtulach@114: return null; jtulach@114: } jtulach@114: } jtulach@114: jtulach@114: public void reset() { jtulach@114: resets++; jtulach@114: } jtulach@114: jtulach@114: } jtulach@114: jtulach@91: }