samples/instanceof/test/impl/InstanceProviderTest.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 09:53:33 +0200
changeset 74 84353f1cb4bc
child 263 7e8e995065c5
permissions -rw-r--r--
Moving InstanceProvider into external sample files
     1 package impl;
     2 
     3 import api.BetterInstanceProvider;
     4 import api.InstanceProvider;
     5 import org.junit.After;
     6 import org.junit.AfterClass;
     7 import org.junit.Before;
     8 import org.junit.BeforeClass;
     9 import org.junit.Test;
    10 import static org.junit.Assert.*;
    11 
    12 public class InstanceProviderTest {
    13 
    14     public InstanceProviderTest() {
    15     }
    16 
    17     @BeforeClass
    18     public static void setUpClass() throws Exception {
    19     }
    20 
    21     @AfterClass
    22     public static void tearDownClass() throws Exception {
    23     }
    24 
    25     @Before
    26     public void setUp() {
    27     }
    28 
    29     @After
    30     public void tearDown() {
    31     }
    32 
    33     @Test
    34     public void verifyBehaviourOnOldInterface() {
    35         class IP implements InstanceProvider {
    36             int instanceClass;
    37             int instanceCreate;
    38             
    39             public Class<?> instanceClass() {
    40                 instanceClass++;
    41                 return String.class;
    42             }
    43 
    44             public Object instanceCreate() {
    45                 instanceCreate++;
    46                 return "API Design!";
    47             }
    48         }
    49         IP instance = new IP();
    50         
    51         boolean isString = checkIsString(instance);
    52         assertTrue("Provides string", isString);
    53         assertEquals("Class was tested", 1, instance.instanceClass);
    54         assertEquals("No instance created", 0, instance.instanceCreate);
    55     }
    56     
    57     @Test
    58     public void verifyBehaviourOnNewInterface() {
    59         class IP implements BetterInstanceProvider {
    60             int isInstanceOf;
    61             int instanceClass;
    62             int instanceCreate;
    63             
    64             public Class<?> instanceClass() {
    65                 instanceClass++;
    66                 return String.class;
    67             }
    68 
    69             public Object instanceCreate() {
    70                 instanceCreate++;
    71                 return "API Design!";
    72             }
    73 
    74             public boolean isInstanceOf(Class<?> c) {
    75                 isInstanceOf++;
    76                 return c.isAssignableFrom(String.class);
    77             }
    78         }
    79         IP instance = new IP();
    80         
    81         boolean isString = checkIsString(instance);
    82         assertTrue("Provides string", isString);
    83         assertEquals("Class was not tested", 0, instance.instanceClass);
    84         assertEquals("No instance created", 0, instance.instanceCreate);
    85         assertEquals("isInstanceOf called", 1, instance.isInstanceOf);
    86     }
    87 
    88     private static boolean checkIsString(InstanceProvider instance) {
    89         // BEGIN: instanceof.Use
    90         if (instance instanceof BetterInstanceProvider) {
    91             BetterInstanceProvider bip = (BetterInstanceProvider)instance;
    92             return bip.isInstanceOf(String.class);
    93         } else {
    94             return String.class.isAssignableFrom(instance.instanceClass());
    95         }
    96         // END: instanceof.Use
    97     }
    98 
    99 }