samples/componentinjection/anagram-modular/src-test/org/apidesign/anagram/gui/AnagramsTestBase.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 10:08:52 +0200
changeset 254 0f62dc2ca327
parent 250 c6f1ccdd37f3
permissions -rw-r--r--
unlink -> ulink
     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     // BEGIN: anagram.lookup.mockservices
    20     @Test public void testInjectionOfServices() throws Exception {
    21         Anagrams ui = create();
    22         
    23         assertNull("No scrambler injected yet", ui.getScrambler());
    24         assertNull("No scrambler injected yet", ui.getWordLibrary());
    25         
    26         MockServices.setServices(
    27             ReversingMockScrambler.class, SingleMockLibrary.class
    28         );
    29         
    30         Scrambler s = ui.getScrambler();
    31         assertNotNull("Now we have scrambler", s);
    32         assertEquals(
    33             "It is the mock one", ReversingMockScrambler.class, s.getClass()
    34         );
    35         WordLibrary l = ui.getWordLibrary();
    36         assertNotNull("Now we have library", l);
    37         assertEquals(
    38             "It is the mock one", SingleMockLibrary.class, l.getClass()
    39         );
    40         
    41         ui.display();
    42         
    43         assertEquals(
    44             "The word from SingleMockLibrary is taken",
    45             "Hello World!", ui.getOriginalWord()
    46         );
    47         assertEquals(
    48             "The word is rotated using ReversingMockScrambler",
    49             "!dlroW olleH", ui.getScrambledWord()
    50         );
    51     }
    52     
    53     public static final class ReversingMockScrambler implements Scrambler {
    54         public String scramble(String word) {
    55             return new StringBuilder(word).reverse().toString();
    56         }
    57     }
    58     
    59     public static final class SingleMockLibrary implements WordLibrary {
    60         public String[] getWords() {
    61             return new String[] { "Hello World!" };
    62         }
    63     }
    64     // END: anagram.lookup.mockservices
    65 }