samples/componentinjection/anagram-modular/src-test/org/apidesign/anagram/gui/AnagramsTestBase.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 10:08:25 +0200
changeset 248 b3aab65cde53
child 249 a3a5034a7b8f
permissions -rw-r--r--
Testing behaviour of lookup and service loader
     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     
    35     public static final class ReversingMockScrambler {
    36         
    37     }
    38     
    39     public static final class SingleMockLibrary {
    40         
    41     }
    42 }