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 package com.jcabi.log;
31
32 import java.util.Arrays;
33 import java.util.Collection;
34 import java.util.FormattableFlags;
35 import java.util.Locale;
36 import org.hamcrest.MatcherAssert;
37 import org.hamcrest.Matchers;
38 import org.junit.jupiter.api.Test;
39 import org.junit.jupiter.params.ParameterizedTest;
40 import org.junit.jupiter.params.provider.MethodSource;
41
42
43
44
45
46
47
48 final class MsDecorTest {
49
50 @ParameterizedTest
51 @MethodSource("params")
52 void testPrintsRight(final long value, final String text,
53 final int flags, final int width, final int precision) {
54 Locale.setDefault(Locale.US);
55 MatcherAssert.assertThat(
56 new Printed(new MsDecor(value), flags, width, precision),
57 Matchers.hasToString(text)
58 );
59 }
60
61 @ParameterizedTest
62 @MethodSource("params")
63 void testLogsRight(final long value, final String text,
64 final int flags, final int width, final int precision) {
65 Locale.setDefault(Locale.US);
66 MatcherAssert.assertThat(
67 new Logged(new MsDecor(value), flags, width, precision),
68 Matchers.hasToString(text)
69 );
70 }
71
72 @Test
73 void testPrintsNullRight() {
74 MatcherAssert.assertThat(
75 new Logged(new MsDecor(null), 0, 0, 0),
76 Matchers.hasToString("NULL")
77 );
78 }
79
80
81
82
83
84 @SuppressWarnings("PMD.UnusedPrivateMethod")
85 private static Collection<Object[]> params() {
86 return Arrays.asList(
87 new Object[][] {
88
89
90 {13L, "13ms", 0, 0, -1},
91 {13L, "13.0ms", 0, 0, 1},
92 {1024L, "1s", 0, 0, 0},
93 {6001L, "6.0010s", 0, 0, 4},
94 {122_001L, " 2MIN", FormattableFlags.UPPERCASE, 6, 0},
95 {3_789_003L, "1hr", 0, 0, 0},
96 {86_400_000L, "1days", 0, 0, 0},
97 {864_000_000L, "10days", 0, 0, 0},
98 }
99 );
100 }
101 }