Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions L18-testingOrigins/homework/src/main/java/ru/otus/HomeWork.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package ru.otus;


import ru.otus.game.DiceImplTest;
import ru.otus.game.GameTest;

public class HomeWork {

/*
Expand All @@ -14,7 +17,10 @@ public class HomeWork {
Информацию о пройденном тесте предлагается выводить в System.out, а об упавшем в System.err
*/
public static void main(String[] args) {

new DiceImplTest().testRoll();
new GameTest().testPlayGame_Player1Wins();
new GameTest().testPlayGame_Player2Wins();
new GameTest().testPlayGame_Draw();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package ru.otus.game;

public class DiceImplTest {
public void testRoll() {
Dice dice = new DiceImpl();
int result = dice.roll();
if (result >= 1 && result <= 6) {
System.out.println("Тест успешно пройден: результат броска кости корректен.");
} else {
System.err.println("Ошибка в тесте: результат броска кости должен быть от 1 до 6.");
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package ru.otus.game;

public class FakeGameWinnerPrinter implements GameWinnerPrinter {
private boolean printWinnerCalled = false;

@Override
public void printWinner(Player winner) {
printWinnerCalled = true;
}

public boolean isPrintWinnerCalled() {
return printWinnerCalled;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
package ru.otus.game;

public class GameTest {
public void testPlayGame_Player1Wins() {
// Создаем объекты и данные для теста
Dice dice = new DiceImpl();
GameWinnerPrinter winnerPrinter = new GameWinnerConsolePrinter();
Player player1 = new Player("Вася");
Player player2 = new Player("Игорь");

// Присваиваем значения
int player1Result = 5; // Результат броска кости для player1
int player2Result = 3; // Результат броска кости для player2

// Создаем объект Game и вызываем метод playGame
Game game = new Game(dice, winnerPrinter);
game.playGame(player1, player2);

// Проверяем, что правильный игрок 1 объявлен победителем
if (player1Result > player2Result) {
System.out.println("Тест успешно пройден: игрок Вася объявлен победителем, так как у него результат больше.");
} else {
System.err.println("Ошибка в тесте: игрок Вася должен быть объявлен победителем, так как у него результат больше.");
}
}

public void testPlayGame_Player2Wins() {
// Создаем объекты и данные для теста
Dice dice = new DiceImpl();
GameWinnerPrinter winnerPrinter = new GameWinnerConsolePrinter();
Player player1 = new Player("Вася");
Player player2 = new Player("Игорь");

// Устанавливаем ожидаемые значения
int player1Result = 1; // Результат броска кости для player1
int player2Result = 4; // Результат броска кости для player2

// Создаем объект Game и вызываем метод playGame
Game game = new Game(dice, winnerPrinter);
game.playGame(player1, player2);

// Проверяем, что правильный игрок объявлен победителем
if (player1Result < player2Result) {
System.out.println("Тест успешно пройден: игрок Игорь объявлен победителем, так как у него результат больше.");
} else {
System.err.println("Ошибка в тесте: игрок Игорь должен быть объявлен победителем, так как у него результат больше.");
}
}

public void testPlayGame_Draw() {
// Создаем объекты и данные для теста
Dice dice = new DiceImpl();
FakeGameWinnerPrinter winnerPrinterStub = new FakeGameWinnerPrinter();
Player player1 = new Player("Вася");
Player player2 = new Player("Игорь");

// Устанавливаем ожидаемые значения
int player1Result = 4; // Результат броска кости для player1
int player2Result = 4; // Результат броска кости для player2

// Создаем объект Game и вызываем метод playGame
Game game = new Game(dice, winnerPrinterStub);
game.playGame(player1, player2);

// Проверяем, что метод printWinner() не вызывается
if (winnerPrinterStub.isPrintWinnerCalled() == false) {
System.out.println("Тест успешно пройден: метод printWinner() не был вызван при ничьей.");
} else {
System.err.println("Ошибка в тесте при ничьей: метод printWinner() вызывается, хотя не должен этого делать.");
}
}

}