samples/aserverinfo/test/org/apidesign/aserverinfo/test/MagicalBagFactoryTest.java
author Jaroslav Tulach <jtulach@netbeans.org>
Mon, 21 Dec 2009 16:54:12 +0100
changeset 340 9c1a298e51a9
parent 295 d6fa728fb2ba
permissions -rw-r--r--
Fixing dependencies since the org.openide.util and org.openide.util.lookup are now separate
     1 package org.apidesign.aserverinfo.test;
     2 
     3 import java.net.MalformedURLException;
     4 import java.net.URL;
     5 import java.util.logging.Level;
     6 import java.util.logging.Logger;
     7 import org.apidesign.aserverinfo.magicalbagfactory.ServerConnector;
     8 import org.apidesign.aserverinfo.spi.NameProvider;
     9 import org.apidesign.aserverinfo.spi.ResetHandler;
    10 import org.apidesign.aserverinfo.spi.URLProvider;
    11 import org.junit.After;
    12 import org.junit.Before;
    13 import org.junit.Test;
    14 import static org.junit.Assert.*;
    15 import org.openide.util.Lookup;
    16 import org.openide.util.lookup.AbstractLookup;
    17 import org.openide.util.lookup.InstanceContent;
    18 
    19 public class MagicalBagFactoryTest {
    20 
    21     public MagicalBagFactoryTest() {
    22     }
    23 
    24     @Before
    25     public void setUp() {
    26     }
    27 
    28     @After
    29     public void tearDown() {
    30     }
    31 
    32     @Test
    33     public void showUseOfMagicalBagFactory() throws Exception {
    34         Prov provider = new Prov();
    35         ServerConnector inf;
    36 
    37         // BEGIN: ServerConnector.magicalbag.creation
    38         InstanceContent magicalContent = new InstanceContent();
    39         Lookup magicalBag = new AbstractLookup(magicalContent);
    40         magicalContent.add(provider);
    41         
    42         inf = ServerConnector.create(magicalBag);
    43         // END: ServerConnector.magicalbag.creation
    44         
    45         assertEquals("API Design Server", inf.getName());
    46         assertEquals("http://www.apidesign.org", inf.getURL().toExternalForm());
    47         inf.reset();
    48         assertEquals("Once reset", 1, provider.resets);
    49 
    50         provider.resets = 0;
    51         // BEGIN: ServerConnector.magicalbag.change
    52         magicalContent.remove(provider);
    53         inf.reset();
    54         assertEquals("No reset called now", 0, provider.resets);
    55         // END: ServerConnector.magicalbag.change
    56     }
    57     
    58     private static class Prov implements NameProvider, URLProvider, ResetHandler {
    59         int resets;
    60 
    61         public String getName() {
    62             return "API Design Server";
    63         }
    64 
    65         public URL getURL() {
    66             try {
    67                 return new URL("http://www.apidesign.org");
    68             } catch (MalformedURLException ex) {
    69                 Logger.getLogger(MagicalBagFactoryTest.class.getName()).log(Level.SEVERE, null, ex);
    70                 return null;
    71             }
    72         }
    73 
    74         public void reset() {
    75             resets++;
    76         }
    77 
    78     }
    79         
    80 }