8
8
9
9
import java .util .*;
10
10
import java .util .stream .Stream ;
11
+
11
12
import org .junit .rules .ExpectedException ;
12
13
13
- import static org .junit .Assert .assertEquals ;
14
- import static org .junit .Assert .assertNotNull ;
14
+ import static org .assertj .core .api .Assertions .assertThat ;
15
15
import static org .assertj .core .api .Assertions .assertThatThrownBy ;
16
16
17
17
public class HangmanTest {
@@ -32,13 +32,14 @@ public void initialization() {
32
32
Observable .fromArray ("secret" ),
33
33
Observable .fromArray ());
34
34
Output init = result .blockingFirst ();
35
- assertNotNull (init );
36
- assertEquals ("secret" , init .secret );
37
- assertEquals ("______" , init .discovered );
38
- assertEquals (Collections .emptySet (), init .guess );
39
- assertEquals (Collections .emptySet (), init .misses );
40
- assertEquals (Collections .emptyList (), init .parts );
41
- assertEquals (Status .PLAYING , init .status );
35
+
36
+ assertThat (init ).isNotNull ();
37
+ assertThat (init .secret ).isEqualTo ("secret" );
38
+ assertThat (init .discovered ).isEqualTo ("______" );
39
+ assertThat (init .guess ).isEmpty ();
40
+ assertThat (init .misses ).isEmpty ();
41
+ assertThat (init .parts ).isEmpty ();
42
+ assertThat (init .status ).isEqualTo (Status .PLAYING );
42
43
}
43
44
44
45
@ Ignore ("Remove to run test" )
@@ -47,12 +48,13 @@ public void firstGuess() {
47
48
Observable <Output > result = hangman .play (
48
49
Observable .fromArray ("secret" ),
49
50
Observable .fromArray ("e" ));
51
+
50
52
Output last = result .blockingLast ();
51
- assertEquals ( "_e__e_" , last .discovered );
52
- assertEquals ( Collections . singleton ("e" ), last . guess );
53
- assertEquals ( Collections . emptySet (), last .misses );
54
- assertEquals ( Collections . emptyList (), last .parts );
55
- assertEquals ( Status . PLAYING , last .status );
53
+ assertThat ( last .discovered ). isEqualTo ( "_e__e_" );
54
+ assertThat ( last . guess ). containsExactly ("e" );
55
+ assertThat ( last .misses ). isEmpty ( );
56
+ assertThat ( last .parts ). isEmpty ( );
57
+ assertThat ( last .status ). isEqualTo ( Status . PLAYING );
56
58
}
57
59
58
60
@ Ignore ("Remove to run test" )
@@ -62,11 +64,12 @@ public void firstMiss() {
62
64
Observable .fromArray ("secret" ),
63
65
Observable .fromArray ("a" ));
64
66
Output last = result .blockingLast ();
65
- assertEquals ("______" , last .discovered );
66
- assertEquals (Collections .emptySet (), last .guess );
67
- assertEquals (Collections .singleton ("a" ), last .misses );
68
- assertEquals (Collections .singletonList (Part .HEAD ), last .parts );
69
- assertEquals (Status .PLAYING , last .status );
67
+
68
+ assertThat (last .discovered ).isEqualTo ("______" );
69
+ assertThat (last .guess ).isEmpty ();
70
+ assertThat (last .misses ).containsExactly ("a" );
71
+ assertThat (last .parts ).containsExactly (Part .HEAD );
72
+ assertThat (last .status ).isEqualTo (Status .PLAYING );
70
73
}
71
74
72
75
@ Ignore ("Remove to run test" )
@@ -76,15 +79,12 @@ public void gameInProgress() {
76
79
Observable .fromArray ("secret" ),
77
80
Observable .fromArray ("a" , "e" , "o" , "s" ));
78
81
Output last = result .blockingLast ();
79
- assertEquals ("se__e_" , last .discovered );
80
- assertEquals (Set .of ("e" , "s" ), last .guess );
81
- assertEquals (Set .of ("a" , "o" ), last .misses );
82
- assertEquals (
83
- Arrays .asList (
84
- Part .HEAD ,
85
- Part .BODY ),
86
- last .parts );
87
- assertEquals (Status .PLAYING , last .status );
82
+
83
+ assertThat (last .discovered ).isEqualTo ("se__e_" );
84
+ assertThat (last .guess ).containsExactlyInAnyOrder ("e" , "s" );
85
+ assertThat (last .misses ).containsExactlyInAnyOrder ("a" , "o" );
86
+ assertThat (last .parts ).containsExactlyInAnyOrder (Part .HEAD , Part .BODY );
87
+ assertThat (last .status ).isEqualTo (Status .PLAYING );
88
88
}
89
89
90
90
@ Ignore ("Remove to run test" )
@@ -94,9 +94,10 @@ public void wonGame() {
94
94
Observable .fromArray ("secret" ),
95
95
Observable .fromArray ("a" , "e" , "o" , "s" , "c" , "r" , "g" , "t" ));
96
96
Output last = result .blockingLast ();
97
- assertEquals ("secret" , last .discovered );
98
- assertEquals (Set .of ("c" , "e" , "r" , "s" , "t" ), last .guess );
99
- assertEquals (Status .WIN , last .status );
97
+
98
+ assertThat (last .discovered ).isEqualTo ("secret" );
99
+ assertThat (last .guess ).containsExactlyInAnyOrder ("c" , "e" , "r" , "s" , "t" );
100
+ assertThat (last .status ).isEqualTo (Status .WIN );
100
101
}
101
102
102
103
@ Ignore ("Remove to run test" )
@@ -106,18 +107,18 @@ public void lostGame() {
106
107
Observable .fromArray ("secret" ),
107
108
Observable .fromArray ("a" , "b" , "c" , "d" , "e" , "f" , "g" , "h" ));
108
109
Output last = result .blockingLast ();
109
- assertEquals ( "_ec_e_" , last . discovered );
110
- assertEquals ( Set . of ( "a" , "b" , "d" , "f" , "g" , "h" ), last . misses );
111
- assertEquals ( Status . LOSS , last . status );
112
- assertEquals (
113
- Arrays . asList (
110
+
111
+ assertThat ( last . discovered ). isEqualTo ( "_ec_e_" );
112
+ assertThat ( last . misses ). containsExactlyInAnyOrder ( "a" , "b" , "d" , "f" , "g" , "h" );
113
+ assertThat ( last . status ). isEqualTo ( Status . LOSS );
114
+ assertThat ( last . parts ). containsExactlyInAnyOrder (
114
115
Part .HEAD ,
115
116
Part .BODY ,
116
117
Part .LEFT_ARM ,
117
118
Part .RIGHT_ARM ,
118
119
Part .LEFT_LEG ,
119
- Part .RIGHT_LEG ),
120
- last . parts );
120
+ Part .RIGHT_LEG
121
+ );
121
122
}
122
123
123
124
@ Ignore ("Remove to run test" )
@@ -149,19 +150,19 @@ public void consecutiveGames() {
149
150
Disposable subscription = outputs .filter (output -> output .status != Status .PLAYING )
150
151
.subscribe (results ::add );
151
152
try {
152
- assertEquals ( 2 , results .size ());
153
+ assertThat ( results .size ()). isEqualTo ( 2 );
153
154
154
155
Output first = results .get (0 );
155
- assertEquals ( "secret" , first .discovered );
156
- assertEquals ( Set . of ("s" , "e" , "c" , "r" , "t" ), first . guess );
157
- assertEquals ( Set . of ("a" , "o" , "g" ), first . misses );
158
- assertEquals ( Status . WIN , first .status );
156
+ assertThat ( first .discovered ). isEqualTo ( "secret" );
157
+ assertThat ( first . guess ). containsExactlyInAnyOrder ("s" , "e" , "c" , "r" , "t" );
158
+ assertThat ( first . misses ). containsExactlyInAnyOrder ("a" , "o" , "g" );
159
+ assertThat ( first .status ). isEqualTo ( Status . WIN );
159
160
160
161
Output second = results .get (1 );
161
- assertEquals ( "abba" , second .discovered );
162
- assertEquals ( Set . of ("a" , "b" ), second . guess );
163
- assertEquals ( Set . of ("e" , "s" ), second . misses );
164
- assertEquals ( Status . WIN , first .status );
162
+ assertThat ( second .discovered ). isEqualTo ( "abba" );
163
+ assertThat ( second . guess ). containsExactlyInAnyOrder ("a" , "b" );
164
+ assertThat ( second . misses ). containsExactlyInAnyOrder ("e" , "s" );
165
+ assertThat ( first .status ). isEqualTo ( Status . WIN );
165
166
} finally {
166
167
subscription .dispose ();
167
168
}
0 commit comments