samples/componentinjection/anagram-modular/src-test/org/apidesign/anagram/gui/AnagramsTestBase.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 10:08:31 +0200
changeset 250 c6f1ccdd37f3
parent 249 a3a5034a7b8f
child 254 0f62dc2ca327
permissions -rw-r--r--
Example how lookup can listen to and react to changes
     1 package org.apidesign.anagram.gui;
     2 
     3 import org.apidesign.anagram.api.Scrambler;
     4 import org.apidesign.anagram.api.WordLibrary;
     5 import org.junit.Before;
     6 import static org.junit.Assert.*;
     7 import org.junit.Test;
     8 import org.netbeans.junit.MockServices;
     9 
    10 public abstract class AnagramsTestBase {
    11 
    12     protected abstract Anagrams create();
    13     
    14     @Before
    15     public void cleanUpServices() {
    16         MockServices.setServices();
    17     }
    18     
    19     @Test public void testInjectionOfServices() throws Exception {
    20         Anagrams ui = create();
    21         
    22         assertNull("No scrambler injected yet", ui.getScrambler());
    23         assertNull("No scrambler injected yet", ui.getWordLibrary());
    24         
    25         MockServices.setServices(
    26             ReversingMockScrambler.class, SingleMockLibrary.class
    27         );
    28         
    29         Scrambler s = ui.getScrambler();
    30         assertNotNull("Now we have scrambler", s);
    31         assertEquals(
    32             "It is the mock one", ReversingMockScrambler.class, s.getClass()
    33         );
    34         WordLibrary l = ui.getWordLibrary();
    35         assertNotNull("Now we have library", l);
    36         assertEquals(
    37             "It is the mock one", SingleMockLibrary.class, l.getClass()
    38         );
    39         
    40         ui.display();
    41         
    42         assertEquals(
    43             "The word from SingleMockLibrary is taken",
    44             "Hello World!", ui.getOriginalWord()
    45         );
    46         assertEquals(
    47             "The word is rotated using ReversingMockScrambler",
    48             "!dlroW olleH", ui.getScrambledWord()
    49         );
    50     }
    51     
    52     public static final class ReversingMockScrambler implements Scrambler {
    53         public String scramble(String word) {
    54             return new StringBuilder(word).reverse().toString();
    55         }
    56     }
    57     
    58     public static final class SingleMockLibrary implements WordLibrary {
    59         public String[] getWords() {
    60             return new String[] { "Hello World!" };
    61         }
    62         
    63     }
    64 }