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