17
17
18
18
import org .fusesource .jansi .Ansi .Color ;
19
19
import org .junit .jupiter .api .Test ;
20
+ import org .junit .jupiter .params .ParameterizedTest ;
21
+ import org .junit .jupiter .params .provider .CsvSource ;
20
22
21
23
import static org .junit .jupiter .api .Assertions .assertEquals ;
22
24
@@ -52,4 +54,83 @@ public void testClone() throws CloneNotSupportedException {
52
54
53
55
assertEquals (ansi .a ("test" ).reset ().toString (), clone .a ("test" ).reset ().toString ());
54
56
}
57
+
58
+ @ ParameterizedTest
59
+ @ CsvSource ({
60
+ "-1,-1,ESC[-1;-1H" , "-1,0,ESC[-1;0H" , "-1,1,ESC[-1;1H" , "-1,2,ESC[-1;2H" ,
61
+ "0,-1,ESC[0;-1H" , "0,0,ESC[0;0H" , "0,1,ESC[0;1H" , "0,2,ESC[0;2H" ,
62
+ "1,-1,ESC[1;-1H" , "1,0,ESC[1;0H" , "1,1,ESC[1;1H" , "1,2,ESC[1;2H" ,
63
+ "2,-1,ESC[2;-1H" , "2,0,ESC[2;0H" , "2,1,ESC[2;1H" , "2,2,ESC[2;2H"
64
+ })
65
+ public void testCursor (int x , int y , String expected ) {
66
+ assertAnsi (expected , new Ansi ().cursor (x , y ));
67
+ }
68
+
69
+ @ ParameterizedTest
70
+ @ CsvSource ({"-2,''" , "-1,''" , "0,ESC[0G" , "1,ESC[1G" , "2,ESC[2G" })
71
+ public void testCursorToColumn (int x , String expected ) {
72
+ assertAnsi (expected , new Ansi ().cursorToColumn (x ));
73
+ }
74
+
75
+ @ ParameterizedTest
76
+ @ CsvSource ({"-2,ESC[2B" , "-1,ESC[1B" , "0,''" , "1,ESC[1A" , "2,ESC[2A" })
77
+ public void testCursorUp (int y , String expected ) {
78
+ assertAnsi (expected , new Ansi ().cursorUp (y ));
79
+ }
80
+
81
+ @ ParameterizedTest
82
+ @ CsvSource ({"-2,ESC[2A" , "-1,ESC[1A" , "0,''" , "1,ESC[1B" , "2,ESC[2B" })
83
+ public void testCursorDown (int y , String expected ) {
84
+ assertAnsi (expected , new Ansi ().cursorDown (y ));
85
+ }
86
+
87
+ @ ParameterizedTest
88
+ @ CsvSource ({"-2,ESC[2D" , "-1,ESC[1D" , "0,''" , "1,ESC[1C" , "2,ESC[2C" })
89
+ public void testCursorRight (int x , String expected ) {
90
+ assertAnsi (expected , new Ansi ().cursorRight (x ));
91
+ }
92
+
93
+ @ ParameterizedTest
94
+ @ CsvSource ({"-2,ESC[2C" , "-1,ESC[1C" , "0,''" , "1,ESC[1D" , "2,ESC[2D" })
95
+ public void testCursorLeft (int x , String expected ) {
96
+ assertAnsi (expected , new Ansi ().cursorLeft (x ));
97
+ }
98
+
99
+ @ ParameterizedTest
100
+ @ CsvSource ({
101
+ "-2,-2,ESC[2DESC[2A" , "-2,-1,ESC[2DESC[1A" , "-2,0,ESC[2D" , "-2,1,ESC[2DESC[1B" , "-2,2,ESC[2DESC[2B" ,
102
+ "-1,-2,ESC[1DESC[2A" , "-1,-1,ESC[1DESC[1A" , "-1,0,ESC[1D" , "-1,1,ESC[1DESC[1B" , "-1,2,ESC[1DESC[2B" ,
103
+ "0,-2,ESC[2A" , "0,-1,ESC[1A" , "0,0,''" , "0,1,ESC[1B" , "0,2,ESC[2B" ,
104
+ "1,-2,ESC[1CESC[2A" , "1,-1,ESC[1CESC[1A" , "1,0,ESC[1C" , "1,1,ESC[1CESC[1B" , "1,2,ESC[1CESC[2B" ,
105
+ "2,-2,ESC[2CESC[2A" , "2,-1,ESC[2CESC[1A" , "2,0,ESC[2C" , "2,1,ESC[2CESC[1B" , "2,2,ESC[2CESC[2B"
106
+ })
107
+ public void testCursorMove (int x , int y , String expected ) {
108
+ assertAnsi (expected , new Ansi ().cursorMove (x , y ));
109
+ }
110
+
111
+ @ Test
112
+ public void testCursorDownLine () {
113
+ assertAnsi ("ESC[E" , new Ansi ().cursorDownLine ());
114
+ }
115
+
116
+ @ ParameterizedTest
117
+ @ CsvSource ({"-2,ESC[2F" , "-1,ESC[1F" , "0,''" , "1,ESC[1E" , "2,ESC[2E" })
118
+ public void testCursorDownLine (int n , String expected ) {
119
+ assertAnsi (expected , new Ansi ().cursorDownLine (n ));
120
+ }
121
+
122
+ @ Test
123
+ public void testCursorUpLine () {
124
+ assertAnsi ("ESC[F" , new Ansi ().cursorUpLine ());
125
+ }
126
+
127
+ @ ParameterizedTest
128
+ @ CsvSource ({"-2,ESC[2E" , "-1,ESC[1E" , "0,''" , "1,ESC[1F" , "2,ESC[2F" })
129
+ public void testCursorUpLine (int n , String expected ) {
130
+ assertAnsi (expected , new Ansi ().cursorUpLine (n ));
131
+ }
132
+
133
+ private static void assertAnsi (String expected , Ansi actual ) {
134
+ assertEquals (expected .replace ("ESC" , "\033 " ), actual .toString ());
135
+ }
55
136
}
0 commit comments