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