11package pl .nogacz .chess .application ;
22
3+ import org .junit .Assert ;
34import org .junit .Test ;
5+ import org .junit .runner .RunWith ;
6+ import org .powermock .api .mockito .PowerMockito ;
7+ import org .powermock .core .classloader .annotations .PrepareForTest ;
8+ import org .powermock .modules .junit4 .PowerMockRunner ;
9+ import pl .nogacz .chess .board .Board ;
10+ import pl .nogacz .chess .board .Coordinates ;
11+ import pl .nogacz .chess .pawns .Pawn ;
12+ import pl .nogacz .chess .pawns .PawnClass ;
13+ import pl .nogacz .chess .pawns .PawnColor ;
414
5- import static org . junit . Assert .* ;
15+ import java . util . HashMap ;
616
717/**
818 * @author Dawid Nogacz on 05.05.2019
919 */
20+ @ RunWith (PowerMockRunner .class )
1021public class GameLogicTest {
11- //TODO
22+ @ PrepareForTest ({Board .class })
23+ @ Test
24+ public void isMovePossibleIfBoardIsEmpty () {
25+ //Given
26+ PowerMockito .mockStatic (Board .class );
27+ GameLogic gameLogic = new GameLogic ();
28+
29+ HashMap <Coordinates , PawnClass > board = new HashMap <>();
30+
31+ //When
32+ PowerMockito .when (Board .getBoard ()).thenReturn (board );
33+ gameLogic .prepareData ();
34+ boolean isMovePossible = gameLogic .isMovePossible ();
35+
36+ //Then
37+ Assert .assertEquals (false , isMovePossible );
38+ }
39+
40+ @ PrepareForTest ({Board .class })
41+ @ Test
42+ public void isMovePossibleIfBoardIsFull () {
43+ //Given
44+ PowerMockito .mockStatic (Board .class );
45+ GameLogic gameLogic = new GameLogic ();
46+
47+ PawnClass pawnWhite = new PawnClass (Pawn .PAWN , PawnColor .WHITE );
48+ PawnClass pawnBlack = new PawnClass (Pawn .PAWN , PawnColor .BLACK );
49+
50+ HashMap <Coordinates , PawnClass > board = new HashMap <>();
51+ board .put (new Coordinates (0 , 0 ), pawnBlack );
52+ board .put (new Coordinates (0 , 6 ), pawnWhite );
53+ board .put (new Coordinates (0 , 1 ), pawnBlack );
54+ board .put (new Coordinates (0 , 6 ), pawnWhite );
55+
56+ //When
57+ PowerMockito .when (Board .getBoard ()).thenReturn (board );
58+ PowerMockito .when (Board .getPawn (new Coordinates (0 ,0 ))).thenReturn (pawnBlack );
59+ PowerMockito .when (Board .getPawn (new Coordinates (0 ,6 ))).thenReturn (pawnWhite );
60+ PowerMockito .when (Board .getPawn (new Coordinates (0 ,1 ))).thenReturn (pawnBlack );
61+ PowerMockito .when (Board .getPawn (new Coordinates (0 ,6 ))).thenReturn (pawnWhite );
62+
63+ gameLogic .prepareData ();
64+ boolean isMovePossible = gameLogic .isMovePossible ();
65+
66+ //Then
67+ Assert .assertEquals (true , isMovePossible );
68+ }
69+
70+ @ PrepareForTest ({Board .class })
71+ @ Test
72+ public void isMovePossibleIfBoardIsOnlyKing () {
73+ //Given
74+ PowerMockito .mockStatic (Board .class );
75+ GameLogic gameLogic = new GameLogic ();
76+
77+ PawnClass pawnWhite = new PawnClass (Pawn .KING , PawnColor .WHITE );
78+ PawnClass pawnBlack = new PawnClass (Pawn .KING , PawnColor .BLACK );
79+
80+ HashMap <Coordinates , PawnClass > board = new HashMap <>();
81+ board .put (new Coordinates (0 , 0 ), pawnBlack );
82+ board .put (new Coordinates (0 , 6 ), pawnWhite );
83+
84+ //When
85+ PowerMockito .when (Board .getBoard ()).thenReturn (board );
86+ PowerMockito .when (Board .getPawn (new Coordinates (0 ,0 ))).thenReturn (pawnBlack );
87+ PowerMockito .when (Board .getPawn (new Coordinates (0 ,6 ))).thenReturn (pawnWhite );
88+
89+ gameLogic .prepareData ();
90+ boolean isMovePossible = gameLogic .isMovePossible ();
91+
92+ //Then
93+ Assert .assertEquals (false , isMovePossible );
94+ }
1295}
0 commit comments