1
2
3
4 package de.powerstat.validation.values.test;
5
6
7 import static org.junit.jupiter.api.Assertions.assertAll;
8 import static org.junit.jupiter.api.Assertions.assertEquals;
9 import static org.junit.jupiter.api.Assertions.assertFalse;
10 import static org.junit.jupiter.api.Assertions.assertNotEquals;
11 import static org.junit.jupiter.api.Assertions.assertThrows;
12 import static org.junit.jupiter.api.Assertions.assertTrue;
13
14 import org.junit.jupiter.api.Test;
15
16 import de.powerstat.validation.values.DisplayAspectRatio;
17 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
18
19
20
21
22
23 @SuppressFBWarnings({"EC_NULL_ARG", "RV_NEGATING_RESULT_OF_COMPARETO", "RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT", "SPP_USE_ZERO_WITH_COMPARATOR", "PRMC_POSSIBLY_REDUNDANT_METHOD_CALLS"})
24 final class DisplayAspectRatioTests
25 {
26
27
28
29 private static final String TEST_ASPECT_RATIO = "testAspectRatio";
30
31
32
33
34 private static final String ONE_TO_ONE = "1:1";
35
36
37
38
39 private static final String ASPECT_RATIO_NOT_AS_EXPECTED = "aspect ratio not as expected";
40
41
42
43
44 private static final String INDEX_OUT_OF_BOUNDS_EXPECTED = "Index out of bounds exception expected";
45
46
47
48
49
50 DisplayAspectRatioTests()
51 {
52 super();
53 }
54
55
56
57
58
59 @Test
60 void testOf1()
61 {
62 final DisplayAspectRatio ratio = DisplayAspectRatio.of(ONE_TO_ONE);
63 assertAll(DisplayAspectRatioTests.TEST_ASPECT_RATIO,
64 () -> assertEquals(DisplayAspectRatioTests.ONE_TO_ONE, ratio.stringValue(), DisplayAspectRatioTests.ASPECT_RATIO_NOT_AS_EXPECTED)
65 );
66 }
67
68
69
70
71
72 @Test
73 void testOf2()
74 {
75 assertThrows(IllegalArgumentException.class, () ->
76 {
77 DisplayAspectRatio.of("11");
78 }, "Illegal argument excetion"
79 );
80 }
81
82
83
84
85
86 @Test
87 void testIsDisplayAspectRatio()
88 {
89 final DisplayAspectRatio ratio = DisplayAspectRatio.of(1, 1);
90 assertAll(DisplayAspectRatioTests.TEST_ASPECT_RATIO,
91 () -> assertEquals(1, ratio.getX(), "x ratio not as expected"),
92 () -> assertEquals(1, ratio.getY(), "y ratio not as expected"),
93 () -> assertEquals(DisplayAspectRatioTests.ONE_TO_ONE, ratio.stringValue(), DisplayAspectRatioTests.ASPECT_RATIO_NOT_AS_EXPECTED)
94 );
95 }
96
97
98
99
100
101 @Test
102 void testIsNotADisplayAspectRatio1()
103 {
104 assertThrows(IndexOutOfBoundsException.class, () ->
105 {
106 DisplayAspectRatio.of(0, 0);
107 }, DisplayAspectRatioTests.INDEX_OUT_OF_BOUNDS_EXPECTED
108 );
109 }
110
111
112
113
114
115 @Test
116 void testIsNotADisplayAspectRatio2()
117 {
118 assertThrows(IndexOutOfBoundsException.class, () ->
119 {
120 DisplayAspectRatio.of(73, 0);
121 }, DisplayAspectRatioTests.INDEX_OUT_OF_BOUNDS_EXPECTED
122 );
123 }
124
125
126
127
128
129 @Test
130 void testIsNotADisplayAspectRatio3()
131 {
132 assertThrows(IndexOutOfBoundsException.class, () ->
133 {
134 DisplayAspectRatio.of(1, 36);
135 }, DisplayAspectRatioTests.INDEX_OUT_OF_BOUNDS_EXPECTED
136 );
137 }
138
139
140
141
142
143 @Test
144 void testIsNotADisplayAspectRatio4()
145 {
146 assertThrows(IndexOutOfBoundsException.class, () ->
147 {
148 DisplayAspectRatio.of(1, 0);
149 }, DisplayAspectRatioTests.INDEX_OUT_OF_BOUNDS_EXPECTED
150 );
151 }
152
153
154
155
156
157 @Test
158 void testHashCode()
159 {
160 final DisplayAspectRatio ratio1 = DisplayAspectRatio.of(1, 1);
161 final DisplayAspectRatio ratio2 = DisplayAspectRatio.of(1, 1);
162 final DisplayAspectRatio ratio3 = DisplayAspectRatio.of(2, 2);
163 assertAll("testHashCode",
164 () -> assertEquals(ratio1.hashCode(), ratio2.hashCode(), "hashCodes are not equal"),
165 () -> assertNotEquals(ratio1.hashCode(), ratio3.hashCode(), "hashCodes are equal")
166 );
167 }
168
169
170
171
172
173 @Test
174 @SuppressWarnings("java:S5785")
175 void testEquals()
176 {
177 final DisplayAspectRatio ratio1 = DisplayAspectRatio.of(1, 1);
178 final DisplayAspectRatio ratio2 = DisplayAspectRatio.of(1, 1);
179 final DisplayAspectRatio ratio3 = DisplayAspectRatio.of(2, 2);
180 final DisplayAspectRatio ratio4 = DisplayAspectRatio.of(1, 1);
181 assertAll("testEquals",
182 () -> assertTrue(ratio1.equals(ratio1), "ratio11 is not equal"),
183 () -> assertTrue(ratio1.equals(ratio2), "ratio12 are not equal"),
184 () -> assertTrue(ratio2.equals(ratio1), "ratio21 are not equal"),
185 () -> assertTrue(ratio2.equals(ratio4), "ratio24 are not equal"),
186 () -> assertTrue(ratio1.equals(ratio4), "ratio14 are not equal"),
187 () -> assertFalse(ratio1.equals(ratio3), "ratio13 are equal"),
188 () -> assertFalse(ratio3.equals(ratio1), "ratio31 are equal"),
189 () -> assertFalse(ratio1.equals(null), "ratio10 is equal")
190 );
191 }
192
193
194
195
196
197 @Test
198 @SuppressWarnings("java:S5785")
199 void testNotEquals()
200 {
201 final DisplayAspectRatio ratio1 = DisplayAspectRatio.of(1, 1);
202 final DisplayAspectRatio ratio2 = DisplayAspectRatio.of(1, 2);
203 assertAll("testNotEquals",
204 () -> assertFalse(ratio1.equals(ratio2), "ratio12 is equal")
205 );
206 }
207
208
209
210
211
212 @Test
213 void testToString()
214 {
215 final DisplayAspectRatio ratio = DisplayAspectRatio.of(1, 1);
216 assertEquals("DisplayAspectRatio[x=1, y=1]", ratio.toString(), "toString not equal");
217 }
218
219
220
221
222
223 @Test
224 @SuppressWarnings("java:S5785")
225 void testCompareTo()
226 {
227 final DisplayAspectRatio ratio1 = DisplayAspectRatio.of(1, 1);
228 final DisplayAspectRatio ratio2 = DisplayAspectRatio.of(1, 1);
229 final DisplayAspectRatio ratio3 = DisplayAspectRatio.of(2, 2);
230 final DisplayAspectRatio ratio4 = DisplayAspectRatio.of(3, 2);
231 final DisplayAspectRatio ratio5 = DisplayAspectRatio.of(1, 1);
232 assertAll("testCompareTo",
233 () -> assertTrue(ratio1.compareTo(ratio2) == -ratio2.compareTo(ratio1), "reflexive1"),
234 () -> assertTrue(ratio1.compareTo(ratio3) == -ratio3.compareTo(ratio1), "reflexive2"),
235 () -> assertTrue((ratio4.compareTo(ratio3) > 0) && (ratio3.compareTo(ratio1) > 0) && (ratio4.compareTo(ratio1) > 0), "transitive1"),
236 () -> assertTrue((ratio1.compareTo(ratio2) == 0) && (Math.abs(ratio1.compareTo(ratio5)) == Math.abs(ratio2.compareTo(ratio5))), "sgn1"),
237 () -> assertTrue((ratio1.compareTo(ratio2) == 0) && ratio1.equals(ratio2), "equals")
238 );
239 }
240
241 }