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 SizeDecorTest {
49
50 @ParameterizedTest
51 @MethodSource("params")
52 void testPrintsRight(final long size, 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 SizeDecor(size), flags, width, precision),
57 Matchers.hasToString(text)
58 );
59 }
60
61 @ParameterizedTest
62 @MethodSource("params")
63 void testLogsRight(final long size, 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 SizeDecor(size), flags, width, precision),
68 Matchers.hasToString(text)
69 );
70 }
71
72 @Test
73 void testPrintsNullRight() {
74 MatcherAssert.assertThat(
75 new Logged(new SizeDecor(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 {1L, "1b", 0, 0, 0},
90 {123L, " 123b", 0, 6, 0},
91 {1024L, "1.000Kb", 0, 0, 3},
92 {5120L, "5Kb", 0, 0, 0},
93 {12_345L, "12.056Kb", 0, 0, 3},
94 {12_345L, "12.1Kb ", FormattableFlags.LEFT_JUSTIFY, 8, 1},
95 {98_765_432L, "94.190MB", FormattableFlags.UPPERCASE, 0, 3},
96 {98_765_432L, "94.190Mb", 0, 0, 3},
97 {90L * 1024L * 1024L * 1024L, "90Gb", 0, 0, 0},
98 {13L * 1024L * 1024L * 1024L * 1024L, "13Tb", 0, 0, 0},
99 {33L * 1024L * 1024L * 1024L * 1024L * 1024L, "33Pb", 0, 0, 0},
100 {3L * 1024L * 1024L * 1024L * 1024L * 1024L * 1024L, "3Eb", 0, 0, 0},
101 }
102 );
103 }
104
105 }