jtulach@297: package org.apidesign.aserverinfo.test; jtulach@297: jtulach@340: import java.util.logging.Logger; jtulach@340: import java.util.logging.Level; jtulach@297: import java.net.MalformedURLException; jtulach@297: import java.net.URL; jtulach@297: import org.apidesign.aserverinfo.factories.ServerConnector; jtulach@297: import org.apidesign.aserverinfo.spi.NameProvider; jtulach@297: import org.apidesign.aserverinfo.spi.ResetHandler; jtulach@297: import org.apidesign.aserverinfo.spi.ShutdownHandler; jtulach@297: import org.apidesign.aserverinfo.spi.URLProvider; jtulach@297: import org.junit.After; jtulach@297: import org.junit.Before; jtulach@297: import org.junit.Test; jtulach@297: import static org.junit.Assert.*; jtulach@297: jtulach@297: public class FactoriesTest { jtulach@297: jtulach@297: public FactoriesTest() { jtulach@297: } jtulach@297: jtulach@297: @Before jtulach@297: public void setUp() { jtulach@297: } jtulach@297: jtulach@297: @After jtulach@297: public void tearDown() { jtulach@297: } jtulach@297: jtulach@297: @Test jtulach@297: public void showUseOfFactoryVersion10() throws Exception { jtulach@297: Prov p = new Prov(); jtulach@297: NameProvider np = p; jtulach@297: URLProvider up = p; jtulach@297: ResetHandler res = p; jtulach@297: ServerConnector inf; jtulach@297: jtulach@297: // BEGIN: ServerConnector.factory.creation jtulach@297: inf = ServerConnector.create(np, up, res); jtulach@297: // END: ServerConnector.factory.creation jtulach@297: jtulach@297: assertEquals("API Design Server", inf.getName()); jtulach@297: assertEquals("http://www.apidesign.org", inf.getURL().toExternalForm()); jtulach@297: inf.reset(); jtulach@297: assertEquals("Once reset", 1, p.resets); jtulach@297: jtulach@297: } jtulach@297: @Test jtulach@297: public void showUseOfFactoryVersion20() throws Exception { jtulach@297: Prov p = new Prov(); jtulach@297: NameProvider np = p; jtulach@297: URLProvider up = p; jtulach@297: ResetHandler res = p; jtulach@297: ShutdownHandler shutdown = new ShutdownHandler() { jtulach@297: public void shutdown() { jtulach@297: // OK jtulach@297: } jtulach@297: }; jtulach@297: ServerConnector inf; jtulach@297: jtulach@298: // BEGIN: ServerConnector.factory.creation2 jtulach@297: inf = ServerConnector.create(np, up, res, shutdown); jtulach@298: // END: ServerConnector.factory.creation2 jtulach@297: jtulach@297: assertEquals("API Design Server", inf.getName()); jtulach@297: assertEquals("http://www.apidesign.org", inf.getURL().toExternalForm()); jtulach@297: inf.reset(); jtulach@297: assertEquals("Once reset", 1, p.resets); jtulach@297: jtulach@297: } jtulach@297: jtulach@297: private static class Prov implements NameProvider, URLProvider, ResetHandler { jtulach@297: int resets; jtulach@297: jtulach@297: public String getName() { jtulach@297: return "API Design Server"; jtulach@297: } jtulach@297: jtulach@297: public URL getURL() { jtulach@297: try { jtulach@297: return new URL("http://www.apidesign.org"); jtulach@297: } catch (MalformedURLException ex) { jtulach@340: Logger.getLogger(FactoriesTest.class.getName()).log(Level.SEVERE, null, ex); jtulach@297: return null; jtulach@297: } jtulach@297: } jtulach@297: jtulach@297: public void reset() { jtulach@297: resets++; jtulach@297: } jtulach@297: jtulach@297: } jtulach@297: jtulach@297: }