Skip to content

Commit 7170226

Browse files
committed
Added additional tests.
1 parent 0b1f1c3 commit 7170226

File tree

1 file changed

+137
-0
lines changed

1 file changed

+137
-0
lines changed
Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
package javax.money;
2+
3+
import org.junit.Test;
4+
5+
import java.util.ArrayList;
6+
import java.util.HashSet;
7+
import java.util.List;
8+
import java.util.Set;
9+
10+
import static org.junit.Assert.*;
11+
12+
/**
13+
* Created by Anatole on 05.03.14.
14+
*/
15+
public class AbstractContextTest{
16+
@Test
17+
public void testSet() {
18+
TestContext ctx = new TestContext.Builder().set("Test").create();
19+
assertNotNull(ctx.getAttribute(String.class));
20+
assertEquals(ctx.getAttribute(String.class), "Test");
21+
assertEquals(ctx.getNamedAttribute(String.class, String.class), "Test");
22+
assertEquals(ctx.getNamedAttribute(String.class, "String"), null);
23+
}
24+
25+
@Test
26+
public void testSetWithKey(){
27+
TestContext ctx = new TestContext.Builder().set("Test", "myKey").create();
28+
assertNull(ctx.getAttribute(String.class));
29+
assertEquals("Test", ctx.getNamedAttribute(String.class, "myKey"));
30+
assertEquals(ctx.getNamedAttribute(String.class, "myKey"), "Test");
31+
assertEquals(ctx.getNamedAttribute(String.class, String.class), null);
32+
}
33+
34+
@Test
35+
public void testSetAll(){
36+
TestContext ctx = new TestContext.Builder().set("Test", "myKey").create();
37+
TestContext ctx2 = new TestContext.Builder().setAll(ctx).create();
38+
assertEquals(ctx, ctx2);
39+
}
40+
41+
@Test
42+
public void testSetWithKeyAndType() {
43+
TestContext ctx = new TestContext.Builder().set(Integer.valueOf(2), "MyNum", Number.class).create();
44+
assertNull(ctx.getAttribute(String.class));
45+
assertEquals("myKey", ctx.getAttribute(String.class, "myKey"));
46+
assertEquals(ctx.getNamedAttribute(Number.class, "MyNum"), Integer.valueOf(2));
47+
assertEquals(ctx.getNamedAttribute(Integer.class, "MyNum"), null);
48+
}
49+
50+
@Test
51+
public void testGetAttribute() {
52+
TestContext ctx = new TestContext.Builder().set("Test").create();
53+
assertNotNull(ctx.getAttribute(String.class));
54+
assertEquals(ctx.getNamedAttribute(String.class, "Gugus", "defaultValue"), "defaultValue");
55+
assertEquals(ctx.getAttribute(Boolean.class, Boolean.TRUE), Boolean.TRUE);
56+
}
57+
58+
@Test
59+
public void testGetAttributeTypes(){
60+
TestContext ctx = new TestContext.Builder().set("Test").set(Integer.valueOf(2)).set(Long.valueOf(2)).create();
61+
Set<Class<?>> types = ctx.getAttributeTypes();
62+
assertNotNull(types);
63+
assertTrue(types.size()==3);
64+
assertTrue(types.contains(String.class));
65+
assertTrue(types.contains(Integer.class));
66+
assertTrue(types.contains(Long.class));
67+
}
68+
69+
@Test
70+
public void testHashCode() {
71+
List<TestContext> contexts = new ArrayList<>();
72+
contexts.add(new TestContext.Builder().set("Test").set(Integer.valueOf(1)).set(Long.valueOf(2)).create());
73+
contexts.add(new TestContext.Builder().set("Test").set(Integer.valueOf(2)).set(Long.valueOf(1)).create());
74+
contexts.add(new TestContext.Builder().set("Test").set(Integer.valueOf(2)).create());
75+
contexts.add(new TestContext.Builder().set("Test").set(Long.valueOf(2)).create());
76+
contexts.add(new TestContext.Builder().set("Test").set(Boolean.TRUE).set("Test").create());
77+
Set<Integer> hashCodes = new HashSet<>();
78+
for(TestContext ctx : contexts){
79+
hashCodes.add(ctx.hashCode());
80+
}
81+
// Check we have 5 distinct hash codes...
82+
assertTrue(hashCodes.size() > 2);
83+
}
84+
85+
@Test
86+
public void testEquals() {
87+
List<TestContext> contexts = new ArrayList<>();
88+
contexts.add(new TestContext.Builder().set("Test").set(Integer.valueOf(11)).set(Long.valueOf(2)).create());
89+
contexts.add(new TestContext.Builder().set("Test").set(Integer.valueOf(2)).set(Long.valueOf(11)).create());
90+
contexts.add(new TestContext.Builder().set("Test").set(Integer.valueOf(2)).create());
91+
contexts.add(new TestContext.Builder().set("Test").set(Long.valueOf(2)).create());
92+
contexts.add(new TestContext.Builder().set("Test").set(Boolean.TRUE).set("Test").create());
93+
Set<TestContext> checkContexts = new HashSet<>();
94+
for(TestContext ctx : contexts){
95+
checkContexts.add(ctx);
96+
checkContexts.add(ctx);
97+
}
98+
// Check we have 5 distinct hash codes...
99+
assertTrue(checkContexts.size() == 5);
100+
}
101+
102+
@Test
103+
public void testToString() {
104+
TestContext ctx = new TestContext.Builder().set("Test").set(Integer.valueOf(1)).set(Long.valueOf(2)).create();
105+
assertNotNull(ctx.toString());
106+
System.out.println(ctx.toString());
107+
assertTrue(ctx.toString().contains("1"));
108+
assertTrue(ctx.toString().contains("2"));
109+
assertTrue(ctx.toString().contains("Test"));
110+
assertTrue(ctx.toString().contains("String"));
111+
assertTrue(ctx.toString().contains("Integer"));
112+
assertTrue(ctx.toString().contains("Long"));
113+
assertTrue(ctx.toString().contains("TestContext"));
114+
}
115+
116+
private static class TestContext extends AbstractContext{
117+
118+
/**
119+
* Private constructor, used by {@link javax.money.AbstractContext.AbstractBuilder}.
120+
*
121+
* @param builder the Builder.
122+
*/
123+
protected TestContext(AbstractBuilder builder){
124+
super(builder);
125+
}
126+
127+
private static final class Builder extends AbstractContext.AbstractBuilder<Builder>{
128+
@Override
129+
public TestContext create(){
130+
return new TestContext(this);
131+
}
132+
}
133+
134+
}
135+
136+
137+
}

0 commit comments

Comments
 (0)