samples/aserverinfo/test/org/apidesign/aserverinfo/test/MagicalBagFactoryTest.java
Tests for magical bag - e.g. overuse of lookup
1 package org.apidesign.aserverinfo.test;
3 import java.net.MalformedURLException;
5 import org.apidesign.aserverinfo.magicalbagfactory.ServerConnector;
6 import org.apidesign.aserverinfo.spi.NameProvider;
7 import org.apidesign.aserverinfo.spi.ResetHandler;
8 import org.apidesign.aserverinfo.spi.URLProvider;
9 import org.junit.After;
10 import org.junit.Before;
11 import org.junit.Test;
12 import static org.junit.Assert.*;
13 import org.openide.util.Exceptions;
14 import org.openide.util.Lookup;
15 import org.openide.util.lookup.AbstractLookup;
16 import org.openide.util.lookup.InstanceContent;
18 public class MagicalBagFactoryTest {
20 public MagicalBagFactoryTest() {
28 public void tearDown() {
32 public void showUseOfMagicalBagFactory() throws Exception {
33 Prov provider = new Prov();
36 // BEGIN: ServerConnector.magicalbag.creation
37 InstanceContent magicalContent = new InstanceContent();
38 Lookup magicalBag = new AbstractLookup(magicalContent);
39 magicalContent.add(provider);
41 inf = ServerConnector.create(magicalBag);
42 // END: ServerConnector.magicalbag.creation
44 assertEquals("API Design Server", inf.getName());
45 assertEquals("http://www.apidesign.org", inf.getURL().toExternalForm());
47 assertEquals("Once reset", 1, provider.resets);
50 // BEGIN: ServerConnector.magicalbag.change
51 magicalContent.remove(provider);
53 assertEquals("No reset called now", 0, provider.resets);
54 // END: ServerConnector.magicalbag.change
57 private static class Prov implements NameProvider, URLProvider, ResetHandler {
60 public String getName() {
61 return "API Design Server";
66 return new URL("http://www.apidesign.org");
67 } catch (MalformedURLException ex) {
68 Exceptions.printStackTrace(ex);