samples/aserverinfo/test/org/apidesign/aserverinfo/test/MagicalBagFactoryTest.java
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/samples/aserverinfo/test/org/apidesign/aserverinfo/test/MagicalBagFactoryTest.java Sat Nov 15 08:25:52 2008 +0100
1.3 @@ -0,0 +1,79 @@
1.4 +package org.apidesign.aserverinfo.test;
1.5 +
1.6 +import java.net.MalformedURLException;
1.7 +import java.net.URL;
1.8 +import org.apidesign.aserverinfo.magicalbagfactory.ServerConnector;
1.9 +import org.apidesign.aserverinfo.spi.NameProvider;
1.10 +import org.apidesign.aserverinfo.spi.ResetHandler;
1.11 +import org.apidesign.aserverinfo.spi.URLProvider;
1.12 +import org.junit.After;
1.13 +import org.junit.Before;
1.14 +import org.junit.Test;
1.15 +import static org.junit.Assert.*;
1.16 +import org.openide.util.Exceptions;
1.17 +import org.openide.util.Lookup;
1.18 +import org.openide.util.lookup.AbstractLookup;
1.19 +import org.openide.util.lookup.InstanceContent;
1.20 +
1.21 +public class MagicalBagFactoryTest {
1.22 +
1.23 + public MagicalBagFactoryTest() {
1.24 + }
1.25 +
1.26 + @Before
1.27 + public void setUp() {
1.28 + }
1.29 +
1.30 + @After
1.31 + public void tearDown() {
1.32 + }
1.33 +
1.34 + @Test
1.35 + public void showUseOfMagicalBagFactory() throws Exception {
1.36 + Prov provider = new Prov();
1.37 + ServerConnector inf;
1.38 +
1.39 + // BEGIN: ServerConnector.magicalbag.creation
1.40 + InstanceContent magicalContent = new InstanceContent();
1.41 + Lookup magicalBag = new AbstractLookup(magicalContent);
1.42 + magicalContent.add(provider);
1.43 +
1.44 + inf = ServerConnector.create(magicalBag);
1.45 + // END: ServerConnector.magicalbag.creation
1.46 +
1.47 + assertEquals("API Design Server", inf.getName());
1.48 + assertEquals("http://www.apidesign.org", inf.getURL().toExternalForm());
1.49 + inf.reset();
1.50 + assertEquals("Once reset", 1, provider.resets);
1.51 +
1.52 + provider.resets = 0;
1.53 + // BEGIN: ServerConnector.magicalbag.change
1.54 + magicalContent.remove(provider);
1.55 + inf.reset();
1.56 + assertEquals("No reset called now", 0, provider.resets);
1.57 + // END: ServerConnector.magicalbag.change
1.58 + }
1.59 +
1.60 + private static class Prov implements NameProvider, URLProvider, ResetHandler {
1.61 + int resets;
1.62 +
1.63 + public String getName() {
1.64 + return "API Design Server";
1.65 + }
1.66 +
1.67 + public URL getURL() {
1.68 + try {
1.69 + return new URL("http://www.apidesign.org");
1.70 + } catch (MalformedURLException ex) {
1.71 + Exceptions.printStackTrace(ex);
1.72 + return null;
1.73 + }
1.74 + }
1.75 +
1.76 + public void reset() {
1.77 + resets++;
1.78 + }
1.79 +
1.80 + }
1.81 +
1.82 +}
1.83 \ No newline at end of file