/
ModifiablesTest.java
103 lines (77 loc) · 2.19 KB
/
ModifiablesTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
package org.immutables.fixture.modifiable;
import static org.hamcrest.core.IsEqual.equalTo;
import static org.immutables.check.Checkers.*;
import org.junit.Test;
public class ModifiablesTest {
@Test
public void isAttributesSet() {
ModifiableCompanion c1 = ModifiableCompanion.create();
check(!c1.isInitialized());
check(!c1.arrayIntsIsSet());
c1.setArrayInts(1);
check(c1.arrayIntsIsSet());
check(!c1.arrayStringsIsSet());
c1.setArrayStrings("a", "b", "c");
check(c1.arrayStringsIsSet());
check(!c1.integerIsSet());
c1.setInteger(1);
check(c1.integerIsSet());
check(!c1.stringIsSet());
c1.setString("_");
check(c1.stringIsSet());
check(c1.isInitialized());
}
@Test
public void clear() {
ModifiableCompanion c1 = ModifiableCompanion.create();
check(!c1.isInitialized());
c1.setArrayInts(1);
c1.setArrayStrings("a", "b", "c");
c1.setInteger(1);
c1.setString("_");
check(c1.stringIsSet());
check(c1.isInitialized());
c1.addOrds(1, 2, 3);
c1.clear();
check(!c1.isInitialized());
check(!c1.stringIsSet());
check(c1.ords()).isEmpty();
}
@Test
public void mutatingEquals() {
ModifiableExtra c1 = ModifiableExtra.create();
ModifiableExtra c2 = ModifiableExtra.create();
check(c1).is(c2);
c1.addBag("a");
c2.addBag("a");
check(c1).is(c2);
check(c1.hashCode()).is(c2.hashCode());
c1.putIndex(1, "a");
c2.putIndex(2, "b");
check(c1).not().is(c2);
check(c1.hashCode()).not().is(c2.hashCode());
}
@Test
public void uninitializedEquals() {
ModifiableCompanion c1 = ModifiableCompanion.create();
ModifiableCompanion c2 = ModifiableCompanion.create();
check(!c1.isInitialized());
check(!c2.isInitialized());
check(c1).is(c1);
check(c1).not().is(c2);
}
@Test
public void equalsWithDifferentObjectType() {
check(ModifiableCompanion.create()).not().is(equalTo(new Object()));
}
@Test
public void defaults() {
ModifiableStandalone m = ModifiableStandalone.create();
check(m.def()).is(1);
m.setDef(2);
check(m.def()).is(2);
check(m.defs()).is("");
m.setDefs("a");
check(m.defs()).is("a");
}
}