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