@@ -46,10 +46,85 @@ class TicTacToeGameTest {
4646 assertEquals(TicTacToeGame .GameState .X_TURN , game.gameState)
4747 game.pressButtonAt(- 1 , 0 )
4848 assertEquals(TicTacToeGame .GameState .X_TURN , game.gameState)
49-
5049 game.pressButtonAt(0 , - 1 )
5150 game.pressButtonAt(3 , 0 )
5251 game.pressButtonAt(0 , 3 )
5352 assertEquals(TicTacToeGame .GameState .X_TURN , game.gameState)
5453 }
54+
55+ @Test
56+ fun detectWinEasy () {
57+ val game = TicTacToeGame ()
58+ assertEquals(TicTacToeGame .GameState .X_TURN , game.gameState)
59+ game.pressButtonAt(0 ,0 )
60+ assertEquals(TicTacToeGame .GameState .O_TURN , game.gameState)
61+ game.pressButtonAt(2 ,0 )
62+ assertEquals(TicTacToeGame .GameState .X_TURN , game.gameState)
63+ game.pressButtonAt(0 ,1 )
64+ assertEquals(TicTacToeGame .GameState .O_TURN , game.gameState)
65+ game.pressButtonAt(2 ,2 )
66+ assertEquals(TicTacToeGame .GameState .X_TURN , game.gameState)
67+ game.pressButtonAt(0 ,2 )
68+ assertEquals(TicTacToeGame .GameState .X_WINS , game.gameState)
69+ }
70+
71+ @Test
72+ fun detectWinForce () {
73+ val game = TicTacToeGame ()
74+ assertEquals(TicTacToeGame .GameState .X_TURN , game.gameState)
75+ game.pressButtonAt(1 ,1 )
76+ assertEquals(TicTacToeGame .GameState .O_TURN , game.gameState)
77+ game.pressButtonAt(0 ,1 )
78+ assertEquals(TicTacToeGame .GameState .X_TURN , game.gameState)
79+ game.pressButtonAt(0 ,0 )
80+ assertEquals(TicTacToeGame .GameState .O_TURN , game.gameState)
81+ game.pressButtonAt(2 ,2 )
82+ assertEquals(TicTacToeGame .GameState .X_TURN , game.gameState)
83+ game.pressButtonAt(2 ,0 )
84+ assertEquals(TicTacToeGame .GameState .O_TURN , game.gameState)
85+ game.pressButtonAt(0 ,2 )
86+ assertEquals(TicTacToeGame .GameState .X_TURN , game.gameState)
87+ game.pressButtonAt(1 ,0 )
88+ assertEquals(TicTacToeGame .GameState .X_WINS , game.gameState)
89+ }
90+
91+ @Test
92+ fun detectTie () {
93+ val game = TicTacToeGame ()
94+ assertEquals(TicTacToeGame .GameState .X_TURN , game.gameState)
95+ game.pressButtonAt(1 ,1 )
96+ assertEquals(TicTacToeGame .GameState .O_TURN , game.gameState)
97+ game.pressButtonAt(0 ,1 )
98+ assertEquals(TicTacToeGame .GameState .X_TURN , game.gameState)
99+ game.pressButtonAt(0 ,0 )
100+ assertEquals(TicTacToeGame .GameState .O_TURN , game.gameState)
101+ game.pressButtonAt(2 ,2 )
102+ assertEquals(TicTacToeGame .GameState .X_TURN , game.gameState)
103+ game.pressButtonAt(2 ,0 )
104+ assertEquals(TicTacToeGame .GameState .O_TURN , game.gameState)
105+ game.pressButtonAt(0 ,2 )
106+ assertEquals(TicTacToeGame .GameState .X_TURN , game.gameState)
107+ game.pressButtonAt(1 ,2 )
108+ assertEquals(TicTacToeGame .GameState .O_TURN , game.gameState)
109+ game.pressButtonAt(1 ,0 )
110+ assertEquals(TicTacToeGame .GameState .X_TURN , game.gameState)
111+ game.pressButtonAt(2 ,1 )
112+ assertEquals(TicTacToeGame .GameState .TIE_GAME , game.gameState)
113+ }
114+
115+ @Test
116+ fun detectXWinsBottomLeftToUpperRightDiagonal () {
117+ val game = TicTacToeGame ()
118+ assertEquals(TicTacToeGame .GameState .X_TURN , game.gameState)
119+ game.pressButtonAt(0 ,2 )
120+ assertEquals(TicTacToeGame .GameState .O_TURN , game.gameState)
121+ game.pressButtonAt(0 ,1 )
122+ assertEquals(TicTacToeGame .GameState .X_TURN , game.gameState)
123+ game.pressButtonAt(1 ,1 )
124+ assertEquals(TicTacToeGame .GameState .O_TURN , game.gameState)
125+ game.pressButtonAt(2 ,2 )
126+ assertEquals(TicTacToeGame .GameState .X_TURN , game.gameState)
127+ game.pressButtonAt(2 ,0 )
128+ assertEquals(TicTacToeGame .GameState .X_WINS , game.gameState)
129+ }
55130}
0 commit comments