From 58f7647ce8c680d56e018223cc9ddac21d8a0f8e Mon Sep 17 00:00:00 2001 From: Malte Schellhardt Date: Wed, 9 Feb 2022 16:11:23 +0100 Subject: [PATCH] tictactoe: added test cases for fieldIsEmpty method and created constructor with gameboard as parameter --- src/main/java/de/tims/tictactoe/GameLogic.java | 14 ++++++++++++-- .../java/de/tims/tictactoe/GameLogicTest.java | 17 +++++++++++++---- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/main/java/de/tims/tictactoe/GameLogic.java b/src/main/java/de/tims/tictactoe/GameLogic.java index ffa8b21..8c40bdb 100644 --- a/src/main/java/de/tims/tictactoe/GameLogic.java +++ b/src/main/java/de/tims/tictactoe/GameLogic.java @@ -1,5 +1,7 @@ package de.tims.tictactoe; +import java.util.Arrays; + public class GameLogic { private char[][] board; @@ -18,6 +20,10 @@ public class GameLogic { } } + public GameLogic(char[][] board) { + this.board = board; + } + public char[][] getBoard() { return this.board; } @@ -31,8 +37,12 @@ public class GameLogic { } public boolean fieldIsEmpty(int column, int row) { - // TODO Auto-generated method stub - return true; + if (this.board[column][row] == emptyField) { + System.out.println(Arrays.toString(this.board)); + return true; + } else { + return false; + } } } diff --git a/src/test/java/de/tims/tictactoe/GameLogicTest.java b/src/test/java/de/tims/tictactoe/GameLogicTest.java index bd2593b..bc324bb 100644 --- a/src/test/java/de/tims/tictactoe/GameLogicTest.java +++ b/src/test/java/de/tims/tictactoe/GameLogicTest.java @@ -63,7 +63,8 @@ class GameLogicTest { @ParameterizedTest(name = "[{index}] {0}") @MethodSource("testCasesForCheckEmptyField") void fieldIsEmptyTest(String testName, int columnToCheck, int rowToCheck, boolean expectedResult, char[][] board) { - boolean realResult = this.game.fieldIsEmpty(columnToCheck, rowToCheck); + GameLogic game = new GameLogic(board); + boolean realResult = game.fieldIsEmpty(columnToCheck, rowToCheck); assertEquals(expectedResult, realResult); } @@ -94,9 +95,17 @@ class GameLogicTest { private static Stream testCasesForCheckEmptyField() { return Stream.of( Arguments.of("check an empty field", 0, 0, true, new char[][] - {{'-', '-', '-'}, - {'-', '-', '-'}, - {'-', '-', '-'}}) + {{'-', '-', '-'}, + {'-', '-', '-'}, + {'-', '-', '-'}}), + Arguments.of("check a field set by player 1", 0, 0, false, new char[][] + {{'x', '-', '-'}, + {'-', '-', '-'}, + {'-', '-', '-'}}), + Arguments.of("check a field set by player 2", 0, 0, false, new char[][] + {{'o', '-', '-'}, + {'-', '-', '-'}, + {'-', '-', '-'}}) ); }