jtulach@295: package org.apidesign.aserverinfo.test; jtulach@295: jtulach@295: import java.net.MalformedURLException; jtulach@295: import java.net.URL; jtulach@340: import java.util.logging.Level; jtulach@340: import java.util.logging.Logger; jtulach@295: import org.apidesign.aserverinfo.magicalbagfactory.ServerConnector; jtulach@295: import org.apidesign.aserverinfo.spi.NameProvider; jtulach@295: import org.apidesign.aserverinfo.spi.ResetHandler; jtulach@295: import org.apidesign.aserverinfo.spi.URLProvider; jtulach@295: import org.junit.After; jtulach@295: import org.junit.Before; jtulach@295: import org.junit.Test; jtulach@295: import static org.junit.Assert.*; jtulach@295: import org.openide.util.Lookup; jtulach@295: import org.openide.util.lookup.AbstractLookup; jtulach@295: import org.openide.util.lookup.InstanceContent; jtulach@295: jtulach@295: public class MagicalBagFactoryTest { jtulach@295: jtulach@295: public MagicalBagFactoryTest() { jtulach@295: } jtulach@295: jtulach@295: @Before jtulach@295: public void setUp() { jtulach@295: } jtulach@295: jtulach@295: @After jtulach@295: public void tearDown() { jtulach@295: } jtulach@295: jtulach@295: @Test jtulach@295: public void showUseOfMagicalBagFactory() throws Exception { jtulach@295: Prov provider = new Prov(); jtulach@295: ServerConnector inf; jtulach@295: jtulach@295: // BEGIN: ServerConnector.magicalbag.creation jtulach@295: InstanceContent magicalContent = new InstanceContent(); jtulach@295: Lookup magicalBag = new AbstractLookup(magicalContent); jtulach@295: magicalContent.add(provider); jtulach@295: jtulach@295: inf = ServerConnector.create(magicalBag); jtulach@295: // END: ServerConnector.magicalbag.creation jtulach@295: jtulach@295: assertEquals("API Design Server", inf.getName()); jtulach@295: assertEquals("http://www.apidesign.org", inf.getURL().toExternalForm()); jtulach@295: inf.reset(); jtulach@295: assertEquals("Once reset", 1, provider.resets); jtulach@295: jtulach@295: provider.resets = 0; jtulach@295: // BEGIN: ServerConnector.magicalbag.change jtulach@295: magicalContent.remove(provider); jtulach@295: inf.reset(); jtulach@295: assertEquals("No reset called now", 0, provider.resets); jtulach@295: // END: ServerConnector.magicalbag.change jtulach@295: } jtulach@295: jtulach@295: private static class Prov implements NameProvider, URLProvider, ResetHandler { jtulach@295: int resets; jtulach@295: jtulach@295: public String getName() { jtulach@295: return "API Design Server"; jtulach@295: } jtulach@295: jtulach@295: public URL getURL() { jtulach@295: try { jtulach@295: return new URL("http://www.apidesign.org"); jtulach@295: } catch (MalformedURLException ex) { jtulach@340: Logger.getLogger(MagicalBagFactoryTest.class.getName()).log(Level.SEVERE, null, ex); jtulach@295: return null; jtulach@295: } jtulach@295: } jtulach@295: jtulach@295: public void reset() { jtulach@295: resets++; jtulach@295: } jtulach@295: jtulach@295: } jtulach@295: jtulach@295: }