samples/componentinjection/anagram-modular/src-test/org/apidesign/anagram/gui/AnagramsTestBase.java
1 package org.apidesign.anagram.gui;
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.*;
8 import org.netbeans.junit.MockServices;
10 public abstract class AnagramsTestBase {
12 protected abstract Anagrams create();
15 public void cleanUpServices() {
16 MockServices.setServices();
19 @Test public void testInjectionOfServices() throws Exception {
20 Anagrams ui = create();
22 assertNull("No scrambler injected yet", ui.getScrambler());
23 assertNull("No scrambler injected yet", ui.getWordLibrary());
25 MockServices.setServices(
26 ReversingMockScrambler.class, SingleMockLibrary.class
29 Scrambler s = ui.getScrambler();
30 assertNotNull("Now we have scrambler", s);
32 "It is the mock one", ReversingMockScrambler.class, s.getClass()
34 WordLibrary l = ui.getWordLibrary();
35 assertNotNull("Now we have library", l);
37 "It is the mock one", SingleMockLibrary.class, l.getClass()
43 "The word from SingleMockLibrary is taken",
44 "Hello World!", ui.getOriginalWord()
47 "The word is rotated using ReversingMockScrambler",
48 "!dlroW olleH", ui.getScrambledWord()
52 public static final class ReversingMockScrambler implements Scrambler {
53 public String scramble(String word) {
54 return new StringBuilder(word).reverse().toString();
58 public static final class SingleMockLibrary implements WordLibrary {
59 public String[] getWords() {
60 return new String[] { "Hello World!" };