jtulach@294: package org.apidesign.aserverinfo.test; jtulach@294: jtulach@294: import java.net.MalformedURLException; jtulach@294: import java.net.URL; 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: import org.openide.util.Exceptions; 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@294: ServerConnector inf; jtulach@294: jtulach@296: // BEGIN: ServerConnector.builder.creation jtulach@294: inf = ServerInfo.empty() jtulach@294: .nameProvider(np).urlProvider(up).reset(res).connect(); jtulach@296: // END: ServerConnector.builder.creation jtulach@294: jtulach@294: assertEquals("API Design Server", inf.getName()); jtulach@294: assertEquals("http://www.apidesign.org", inf.getURL().toExternalForm()); jtulach@294: inf.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@294: ServerConnector info; 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@294: info = all.connect(); jtulach@294: // END: ServerConnector.builder.creation.verbose jtulach@294: jtulach@294: assertEquals("API Design Server", info.getName()); jtulach@294: assertEquals("http://www.apidesign.org", info.getURL().toExternalForm()); jtulach@294: info.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@294: Exceptions.printStackTrace(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: }