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