|
1 | 1 | package com.decathlon.vitamin.compose.ratings
|
2 | 2 |
|
3 |
| -import org.junit.Assert.* |
| 3 | +import org.junit.Assert.assertEquals |
4 | 4 | import org.junit.Test
|
5 | 5 |
|
6 | 6 | class IconTest {
|
7 | 7 | @Test
|
8 | 8 | fun integer() {
|
9 |
| - val number = 3.0f |
10 |
| - |
11 |
| - assertEquals(Icon.Fill, Icon.get(0, number)) |
12 |
| - assertEquals(Icon.Fill, Icon.get(1, number)) |
13 |
| - assertEquals(Icon.Fill, Icon.get(2, number)) |
14 |
| - assertEquals(Icon.Empty, Icon.get(3, number)) |
15 |
| - assertEquals(Icon.Empty, Icon.get(4, number)) |
| 9 | + assertStars(number = 3.0f, Icon.Fill, Icon.Fill, Icon.Fill, Icon.Empty, Icon.Empty) |
16 | 10 | }
|
17 | 11 |
|
18 | 12 | @Test
|
19 | 13 | fun close_above_int() {
|
20 |
| - val number = 3.2f |
| 14 | + assertStars(number = 3.2f, Icon.Fill, Icon.Fill, Icon.Fill, Icon.Empty, Icon.Empty) |
| 15 | + } |
21 | 16 |
|
22 |
| - assertEquals(Icon.Fill, Icon.get(0, number)) |
23 |
| - assertEquals(Icon.Fill, Icon.get(1, number)) |
24 |
| - assertEquals(Icon.Fill, Icon.get(2, number)) |
25 |
| - assertEquals(Icon.Empty, Icon.get(3, number)) |
26 |
| - assertEquals(Icon.Empty, Icon.get(4, number)) |
| 17 | + @Test |
| 18 | + fun lower_limit_of_half() { |
| 19 | + assertStars(number = 3.25f, Icon.Fill, Icon.Fill, Icon.Fill, Icon.Half, Icon.Empty) |
27 | 20 | }
|
28 | 21 |
|
29 | 22 | @Test
|
30 | 23 | fun close_below_half() {
|
31 |
| - val number = 3.4f |
32 |
| - |
33 |
| - assertEquals(Icon.Fill, Icon.get(0, number)) |
34 |
| - assertEquals(Icon.Fill, Icon.get(1, number)) |
35 |
| - assertEquals(Icon.Fill, Icon.get(2, number)) |
36 |
| - assertEquals(Icon.Half, Icon.get(3, number)) |
37 |
| - assertEquals(Icon.Empty, Icon.get(4, number)) |
| 24 | + assertStars(number = 3.4f, Icon.Fill, Icon.Fill, Icon.Fill, Icon.Half, Icon.Empty) |
38 | 25 | }
|
39 | 26 |
|
40 | 27 | @Test
|
41 | 28 | fun strictly_half() {
|
42 |
| - val number = 3.5f |
43 |
| - |
44 |
| - assertEquals(Icon.Fill, Icon.get(0, number)) |
45 |
| - assertEquals(Icon.Fill, Icon.get(1, number)) |
46 |
| - assertEquals(Icon.Fill, Icon.get(2, number)) |
47 |
| - assertEquals(Icon.Half, Icon.get(3, number)) |
48 |
| - assertEquals(Icon.Empty, Icon.get(4, number)) |
| 29 | + assertStars(number = 3.5f, Icon.Fill, Icon.Fill, Icon.Fill, Icon.Half, Icon.Empty) |
49 | 30 | }
|
50 | 31 |
|
51 | 32 | @Test
|
52 | 33 | fun close_above_half() {
|
53 |
| - val number = 3.6f |
| 34 | + assertStars(number = 3.6f, Icon.Fill, Icon.Fill, Icon.Fill, Icon.Half, Icon.Empty) |
| 35 | + } |
54 | 36 |
|
55 |
| - assertEquals(Icon.Fill, Icon.get(0, number)) |
56 |
| - assertEquals(Icon.Fill, Icon.get(1, number)) |
57 |
| - assertEquals(Icon.Fill, Icon.get(2, number)) |
58 |
| - assertEquals(Icon.Half, Icon.get(3, number)) |
59 |
| - assertEquals(Icon.Empty, Icon.get(4, number)) |
| 37 | + @Test |
| 38 | + fun high_limit_of_half() { |
| 39 | + assertStars(number = 3.75f, Icon.Fill, Icon.Fill, Icon.Fill, Icon.Half, Icon.Empty) |
60 | 40 | }
|
61 | 41 |
|
62 | 42 | @Test
|
63 | 43 | fun close_below_int() {
|
64 |
| - val number = 3.8f |
| 44 | + assertStars(number = 3.8f, Icon.Fill, Icon.Fill, Icon.Fill, Icon.Fill, Icon.Empty) |
| 45 | + } |
| 46 | + |
| 47 | + @Test |
| 48 | + fun close_edge_case_below_int() { |
| 49 | + assertStars(number = 3.751f, Icon.Fill, Icon.Fill, Icon.Fill, Icon.Fill, Icon.Empty) |
| 50 | + } |
65 | 51 |
|
66 |
| - assertEquals(Icon.Fill, Icon.get(0, number)) |
67 |
| - assertEquals(Icon.Fill, Icon.get(1, number)) |
68 |
| - assertEquals(Icon.Fill, Icon.get(2, number)) |
69 |
| - assertEquals(Icon.Fill, Icon.get(3, number)) |
70 |
| - assertEquals(Icon.Empty, Icon.get(4, number)) |
| 52 | + /** |
| 53 | + * Asserts that a given [number] produces an expected list of icons. |
| 54 | + */ |
| 55 | + @Suppress("LongParameterList") |
| 56 | + private fun assertStars( |
| 57 | + number: Float, |
| 58 | + icon1: Icon, |
| 59 | + icon2: Icon, |
| 60 | + icon3: Icon, |
| 61 | + icon4: Icon, |
| 62 | + icon5: Icon, |
| 63 | + ) { |
| 64 | + assertEquals("1st star of $number should be ${icon1::class.simpleName}", icon1, Icon.get(0, number)) |
| 65 | + assertEquals("2nd star of $number should be ${icon2::class.simpleName}", icon2, Icon.get(1, number)) |
| 66 | + assertEquals("3rd star of $number should be ${icon3::class.simpleName}", icon3, Icon.get(2, number)) |
| 67 | + assertEquals("4th star of $number should be ${icon4::class.simpleName}", icon4, Icon.get(3, number)) |
| 68 | + assertEquals("5th star of $number should be ${icon5::class.simpleName}", icon5, Icon.get(4, number)) |
71 | 69 | }
|
72 | 70 | }
|
0 commit comments