create changelog entry
[debian/openrocket] / core / test / net / sf / openrocket / l10n / TestClassBasedTranslator.java
1 package net.sf.openrocket.l10n;
2
3 import static org.junit.Assert.*;
4
5 import java.util.MissingResourceException;
6
7 import org.jmock.Expectations;
8 import org.jmock.Mockery;
9 import org.jmock.auto.Mock;
10 import org.jmock.integration.junit4.JMock;
11 import org.jmock.integration.junit4.JUnit4Mockery;
12 import org.junit.Test;
13 import org.junit.runner.RunWith;
14
15
16 @RunWith(JMock.class)
17 public class TestClassBasedTranslator {
18         Mockery context = new JUnit4Mockery();
19         
20         @Mock
21         Translator translator;
22         
23         @Test
24         public void testClassName() {
25                 ClassBasedTranslator cbt = new ClassBasedTranslator(null, 0);
26                 assertEquals("TestClassBasedTranslator", cbt.getClassName());
27                 
28                 cbt = new ClassBasedTranslator(null, "foobar");
29                 assertEquals("foobar", cbt.getClassName());
30         }
31         
32         @Test
33         public void testGetWithClassName() {
34                 ClassBasedTranslator cbt = new ClassBasedTranslator(translator, 0);
35                 
36                 // @formatter:off
37                 context.checking(new Expectations() {{
38                                 oneOf(translator).get("TestClassBasedTranslator.fake.key1"); will(returnValue("foobar")); 
39                 }});
40                 // @formatter:on
41                 
42                 assertEquals("foobar", cbt.get("fake.key1"));
43         }
44         
45         
46         @Test
47         public void testGetWithoutClassName() {
48                 ClassBasedTranslator cbt = new ClassBasedTranslator(translator, 0);
49                 
50                 // @formatter:off
51                 context.checking(new Expectations() {{
52                         oneOf(translator).get("TestClassBasedTranslator.fake.key2"); will(throwException(new MissingResourceException("a", "b", "c"))); 
53                         oneOf(translator).get("fake.key2"); will(returnValue("barbaz")); 
54                 }});
55                 // @formatter:on
56                 
57                 assertEquals("barbaz", cbt.get("fake.key2"));
58         }
59         
60         
61         @Test
62         public void testMissing() {
63                 ClassBasedTranslator cbt = new ClassBasedTranslator(translator, 0);
64                 
65                 // @formatter:off
66                 context.checking(new Expectations() {{
67                         oneOf(translator).get("TestClassBasedTranslator.fake.key3"); will(throwException(new MissingResourceException("a", "b", "c"))); 
68                         oneOf(translator).get("fake.key3"); will(throwException(new MissingResourceException("a", "b", "c"))); 
69                 }});
70                 // @formatter:on
71                 
72                 try {
73                         fail("Returned: " + cbt.get("fake.key3"));
74                 } catch (MissingResourceException e) {
75                         assertEquals("Neither key 'TestClassBasedTranslator.fake.key3' nor 'fake.key3' could be found", e.getMessage());
76                 }
77                 
78         }
79 }