source: domaineditor/src/test/java/geniusweb/model/NumberValueSetModelTest.java@ 52

Last change on this file since 52 was 52, checked in by ruud, 14 months ago

Fixed small issues in domaineditor.

File size: 4.1 KB
Line 
1package geniusweb.model;
2
3import static org.junit.Assert.assertEquals;
4import static org.mockito.ArgumentMatchers.any;
5import static org.mockito.Mockito.mock;
6import static org.mockito.Mockito.times;
7import static org.mockito.Mockito.verify;
8
9import java.math.BigDecimal;
10
11import org.junit.Test;
12
13import geniusweb.domaineditor.model.NumberValueSetModel;
14import geniusweb.issuevalue.NumberValueSet;
15import geniusweb.issuevalue.ValueSet;
16import tudelft.utilities.immutablelist.Range;
17import tudelft.utilities.logging.Reporter;
18import tudelft.utilities.mvc.model.NumberModel;
19
20public class NumberValueSetModelTest {
21 private final Reporter log = mock(Reporter.class);
22
23 @Test
24 public void smoke() {
25 new NumberValueSetModel(log);
26 }
27
28 @Test
29 public void testSomeGoodValues() {
30 NumberValueSetModel model = new NumberValueSetModel(log);
31 assertEquals(11, model.getList().getSize()); // default is 0...10
32 model.getLow().setValue(new BigDecimal("2"));
33 assertEquals(9, model.getList().getSize()); // 2..10
34 model.getHigh().setValue(new BigDecimal("3"));
35 assertEquals(2, model.getList().getSize()); // 2..3
36 model.getStep().setValue(new BigDecimal("0.1"));
37 assertEquals(11, model.getList().getSize()); // 2.0, 2.1, ...,3.0
38 }
39
40 @Test(expected = IllegalStateException.class)
41 public void testIllegal1() {
42 new NumberValueSetModel(new NumberModel(BigDecimal.TEN, log),
43 new NumberModel(BigDecimal.ONE, log),
44 new NumberModel(BigDecimal.ONE, log), log);
45 }
46
47 @Test
48 public void testIllegal12() {
49 NumberValueSetModel n = new NumberValueSetModel(log);
50 // change low above high must log problem
51 n.getLow().setValue(BigDecimal.valueOf(20));
52 verify(log, times(1)).log(any(), any());
53 }
54
55 @Test(expected = IllegalStateException.class)
56 public void testIllegal3() {
57 NumberValueSetModel model = new NumberValueSetModel(
58 new NumberModel(BigDecimal.TEN, log),
59 new NumberModel(BigDecimal.ONE, log),
60 new NumberModel(BigDecimal.ONE, log), log);
61 model.getLow().setValue(BigDecimal.valueOf(20));
62 }
63
64 @Test
65 public void testLowIncrease() {
66 NumberValueSetModel set = new NumberValueSetModel(
67 new NumberModel(BigDecimal.ZERO, log),
68 new NumberModel(BigDecimal.TEN, log),
69 new NumberModel(BigDecimal.ONE, log), log);
70 ValueSet v = new NumberValueSet(
71 new Range(BigDecimal.ONE, BigDecimal.TEN, BigDecimal.ONE));
72 set.setCurrentValue(v);
73
74 }
75
76 @Test
77 public void testHighDecrease() {
78 NumberValueSetModel set = new NumberValueSetModel(
79 new NumberModel(BigDecimal.ZERO, log),
80 new NumberModel(BigDecimal.TEN, log),
81 new NumberModel(BigDecimal.ONE, log), log);
82 ValueSet v = new NumberValueSet(
83 new Range(BigDecimal.ZERO, BigDecimal.ONE, BigDecimal.ONE));
84 set.setCurrentValue(v);
85
86 }
87
88 @Test
89 public void testIncreaseBoth() {
90 NumberValueSetModel set = new NumberValueSetModel(
91 new NumberModel(BigDecimal.ZERO, log),
92 new NumberModel(BigDecimal.ONE, log),
93 new NumberModel(BigDecimal.ONE, log), log);
94 ValueSet v = new NumberValueSet(
95 new Range(BigDecimal.ONE, BigDecimal.TEN, BigDecimal.ONE));
96 set.setCurrentValue(v);
97 }
98
99 @Test
100 public void testIncreaseBothMuch() {
101 NumberValueSetModel set = new NumberValueSetModel(
102 new NumberModel(BigDecimal.ZERO, log),
103 new NumberModel(BigDecimal.ONE, log),
104 new NumberModel(BigDecimal.ONE, log), log);
105 ValueSet v = new NumberValueSet(new Range(new BigDecimal("20"),
106 new BigDecimal("80"), BigDecimal.ONE));
107 set.setCurrentValue(v);
108 }
109
110 @Test
111 public void testDecreaseBoth() {
112 NumberValueSetModel set = new NumberValueSetModel(
113 new NumberModel(BigDecimal.ONE, log),
114 new NumberModel(BigDecimal.TEN, log),
115 new NumberModel(BigDecimal.ONE, log), log);
116 ValueSet v = new NumberValueSet(
117 new Range(BigDecimal.ZERO, BigDecimal.ONE, BigDecimal.ONE));
118 set.setCurrentValue(v);
119 }
120
121 @Test
122 public void testDecreaseBothMuch() {
123 NumberValueSetModel set = new NumberValueSetModel(
124 new NumberModel(new BigDecimal("20"), log),
125 new NumberModel(new BigDecimal("80"), log),
126 new NumberModel(BigDecimal.ONE, log), log);
127 ValueSet v = new NumberValueSet(
128 new Range(BigDecimal.ZERO, BigDecimal.ONE, BigDecimal.ONE));
129 set.setCurrentValue(v);
130 }
131
132}
Note: See TracBrowser for help on using the repository browser.