From 69b7e5e9e2caa29d40b62edf933a7299926f9eb4 Mon Sep 17 00:00:00 2001 From: Ilisha <40922963+Ilisha29@users.noreply.github.com> Date: Thu, 4 Apr 2019 05:12:53 +0900 Subject: [PATCH 1/8] racingGame Step2 --- src/main/java/racingGame/controller/Main.java | 1 + src/main/java/racingGame/model/Car.java | 15 ++++-- .../java/racingGame/model/RacingGame.java | 51 +++++++++++++++++-- src/main/java/racingGame/util/InputView.java | 6 +-- src/main/java/racingGame/util/ResultView.java | 19 +++++-- 5 files changed, 80 insertions(+), 12 deletions(-) diff --git a/src/main/java/racingGame/controller/Main.java b/src/main/java/racingGame/controller/Main.java index 9c6f958..0853d21 100644 --- a/src/main/java/racingGame/controller/Main.java +++ b/src/main/java/racingGame/controller/Main.java @@ -9,5 +9,6 @@ public static void main(String[] args) { RacingGame racingGame = new RacingGame(); racingGame.settingCar(InputView.inputCar()); ResultView.printResult(racingGame.tryAllCarGame(InputView.inputTry())); + ResultView.printWinner(racingGame.makeWinners()); } } \ No newline at end of file diff --git a/src/main/java/racingGame/model/Car.java b/src/main/java/racingGame/model/Car.java index dbc6a6a..29dde5f 100644 --- a/src/main/java/racingGame/model/Car.java +++ b/src/main/java/racingGame/model/Car.java @@ -2,13 +2,22 @@ public class Car { private int carPosition = 0; + private String playerName; public int getCarPosition() { return carPosition; } - public int carMove() { - carPosition++; - return carPosition; + public String getPlayerName() { + return playerName; + } + + public String inputPlayerName(String name) { + playerName = name; + return playerName; + } + + public int move() { + return carPosition++; } } \ No newline at end of file diff --git a/src/main/java/racingGame/model/RacingGame.java b/src/main/java/racingGame/model/RacingGame.java index 3b5b0a5..e9d7d75 100644 --- a/src/main/java/racingGame/model/RacingGame.java +++ b/src/main/java/racingGame/model/RacingGame.java @@ -7,16 +7,31 @@ public class RacingGame { private List cars; + private List winnerList; private static int MOVE_RESTRICTION = 4; + private static int winnerPosition; - public void settingCar(int numCar) { + + public void settingCar(String players) { cars = new ArrayList<>(); - for (int i = 0; i < numCar; i++) { + for (int i = 0; i < countPlayersName(players).length; i++) { Car car = new Car(); cars.add(car); + cars.get(i).inputPlayerName(splitPlayersName(players, i)); } } + private String[] countPlayersName(String players) { + String[] names = players.split(","); + return names; + } + + private String splitPlayersName(String players, int index) { + String[] names = players.split(","); + return names[index]; + } + + public List tryAllCarGame(int numberOfTry) { for (Car car : cars) { tryEachCarGame(car, numberOfTry); @@ -32,7 +47,7 @@ private void tryEachCarGame(Car car, int numberOfTry) { private void move(Car car) { if (isMove()) { - car.carMove(); + car.move(); } } @@ -42,4 +57,34 @@ private boolean isMove() { } return false; } + + public List makeWinners() { + calculateWinnerPosition(cars); + winnerList = new ArrayList<>(); + for (Car car : cars) { + checkWinnerName(car); + } + return winnerList; + } + + private void checkWinnerName(Car car) { + if (car.getCarPosition() == winnerPosition) { + winnerList.add(car); + } + } + + private void calculateWinnerPosition(List cars) { + int tempWinnerPosition = 0; + for (Car car : cars) { + tempWinnerPosition = checkWinnerPosition(tempWinnerPosition, car); + } + winnerPosition = tempWinnerPosition; + } + + private int checkWinnerPosition(int tempWinnerPosition, Car car) { + if (car.getCarPosition() > tempWinnerPosition) { + tempWinnerPosition = car.getCarPosition(); + } + return tempWinnerPosition; + } } \ No newline at end of file diff --git a/src/main/java/racingGame/util/InputView.java b/src/main/java/racingGame/util/InputView.java index 35cb1d4..545c56b 100644 --- a/src/main/java/racingGame/util/InputView.java +++ b/src/main/java/racingGame/util/InputView.java @@ -3,10 +3,10 @@ import java.util.Scanner; public class InputView { - public static int inputCar() { + public static String inputCar() { Scanner scanner = new Scanner(System.in); - System.out.println("자동차 대수는 몇 대 인가요?"); - return scanner.nextInt(); + System.out.println("경주할 자동차 이름을 입력하세요(이름은 쉼표(,)를 기준으로 구분)."); + return scanner.next(); } public static int inputTry() { diff --git a/src/main/java/racingGame/util/ResultView.java b/src/main/java/racingGame/util/ResultView.java index 42d5f50..cb2eb78 100644 --- a/src/main/java/racingGame/util/ResultView.java +++ b/src/main/java/racingGame/util/ResultView.java @@ -5,20 +5,33 @@ import java.util.List; public class ResultView { - private static final String RESULT_SIGN = "출력 결과"; + private static final String RESULT_SIGN = "실행 결과"; + private static final String WINNER_SIGN = "가 최종 우승했습니다. 축하합니다!!"; private static final char MOVED = '-'; public static void printResult(List cars) { System.out.println(RESULT_SIGN); for (Car car : cars) { - readCar(car.getCarPosition()); + readPlayerName(car.getPlayerName()); + readCarPosition(car.getCarPosition()); } } - public static void readCar(int carPosition) { + private static void readPlayerName(String playerName) { + System.out.print(playerName + " : "); + } + + private static void readCarPosition(int carPosition) { for (int i = 0; i < carPosition; i++) { System.out.print(MOVED); } System.out.println(); } + + public static void printWinner(List winnerList) { + for (int i = 0; i < winnerList.size(); i++) { + System.out.print(winnerList.get(i).getPlayerName() + " "); + } + System.out.println(WINNER_SIGN); + } } From e2140647afc63a7951bbda4cef087bcaab69544c Mon Sep 17 00:00:00 2001 From: Ilisha <40922963+Ilisha29@users.noreply.github.com> Date: Thu, 4 Apr 2019 23:38:57 +0900 Subject: [PATCH 2/8] reflect feedback --- src/main/java/racingGame/controller/Main.java | 11 +++- .../java/racingGame/model/RacingGame.java | 52 +++---------------- src/main/java/racingGame/model/Winner.java | 40 ++++++++++++++ src/main/java/racingGame/util/InputView.java | 6 ++- 4 files changed, 59 insertions(+), 50 deletions(-) create mode 100644 src/main/java/racingGame/model/Winner.java diff --git a/src/main/java/racingGame/controller/Main.java b/src/main/java/racingGame/controller/Main.java index 0853d21..b533a1a 100644 --- a/src/main/java/racingGame/controller/Main.java +++ b/src/main/java/racingGame/controller/Main.java @@ -1,14 +1,21 @@ package racingGame.controller; +import racingGame.model.Car; import racingGame.model.RacingGame; +import racingGame.model.Winner; import racingGame.util.InputView; import racingGame.util.ResultView; +import java.util.List; + public class Main { public static void main(String[] args) { RacingGame racingGame = new RacingGame(); + Winner winner = new Winner(); + racingGame.settingCar(InputView.inputCar()); - ResultView.printResult(racingGame.tryAllCarGame(InputView.inputTry())); - ResultView.printWinner(racingGame.makeWinners()); + List finishedCars = racingGame.tryAllCarGame(InputView.inputTry()); + ResultView.printResult(finishedCars); + ResultView.printWinner(winner.makeWinners(finishedCars)); } } \ No newline at end of file diff --git a/src/main/java/racingGame/model/RacingGame.java b/src/main/java/racingGame/model/RacingGame.java index e9d7d75..702e843 100644 --- a/src/main/java/racingGame/model/RacingGame.java +++ b/src/main/java/racingGame/model/RacingGame.java @@ -6,32 +6,18 @@ import java.util.List; public class RacingGame { - private List cars; - private List winnerList; + public List cars; private static int MOVE_RESTRICTION = 4; - private static int winnerPosition; - - public void settingCar(String players) { + public void settingCar(String[] names) { cars = new ArrayList<>(); - for (int i = 0; i < countPlayersName(players).length; i++) { + for (int i = 0; i < names.length; i++) { Car car = new Car(); cars.add(car); - cars.get(i).inputPlayerName(splitPlayersName(players, i)); + cars.get(i).inputPlayerName(names[i]); } } - private String[] countPlayersName(String players) { - String[] names = players.split(","); - return names; - } - - private String splitPlayersName(String players, int index) { - String[] names = players.split(","); - return names[index]; - } - - public List tryAllCarGame(int numberOfTry) { for (Car car : cars) { tryEachCarGame(car, numberOfTry); @@ -58,33 +44,7 @@ private boolean isMove() { return false; } - public List makeWinners() { - calculateWinnerPosition(cars); - winnerList = new ArrayList<>(); - for (Car car : cars) { - checkWinnerName(car); - } - return winnerList; - } - - private void checkWinnerName(Car car) { - if (car.getCarPosition() == winnerPosition) { - winnerList.add(car); - } - } - - private void calculateWinnerPosition(List cars) { - int tempWinnerPosition = 0; - for (Car car : cars) { - tempWinnerPosition = checkWinnerPosition(tempWinnerPosition, car); - } - winnerPosition = tempWinnerPosition; - } - - private int checkWinnerPosition(int tempWinnerPosition, Car car) { - if (car.getCarPosition() > tempWinnerPosition) { - tempWinnerPosition = car.getCarPosition(); - } - return tempWinnerPosition; + public List getCars() { + return cars; } } \ No newline at end of file diff --git a/src/main/java/racingGame/model/Winner.java b/src/main/java/racingGame/model/Winner.java new file mode 100644 index 0000000..d7ee268 --- /dev/null +++ b/src/main/java/racingGame/model/Winner.java @@ -0,0 +1,40 @@ +package racingGame.model; + +import java.util.ArrayList; +import java.util.List; + +public class Winner { + private List winnerList; + private static int winnerPosition; + + public List makeWinners(List cars) { + calculateWinnerPosition(cars); + winnerList = new ArrayList<>(); + for (Car car : cars) { + checkWinnerName(car); + } + return winnerList; + } + + private void checkWinnerName(Car car) { + if (car.getCarPosition() == winnerPosition) { + winnerList.add(car); + } + } + + private void calculateWinnerPosition(List cars) { + int tempWinnerPosition = 0; + for (Car car : cars) { + tempWinnerPosition = checkWinnerPosition(tempWinnerPosition, car); + } + winnerPosition = tempWinnerPosition; + } + + private int checkWinnerPosition(int tempWinnerPosition, Car car) { + if (car.getCarPosition() > tempWinnerPosition) { + tempWinnerPosition = car.getCarPosition(); + } + return tempWinnerPosition; + } + +} diff --git a/src/main/java/racingGame/util/InputView.java b/src/main/java/racingGame/util/InputView.java index 545c56b..899fab0 100644 --- a/src/main/java/racingGame/util/InputView.java +++ b/src/main/java/racingGame/util/InputView.java @@ -3,10 +3,12 @@ import java.util.Scanner; public class InputView { - public static String inputCar() { + public static String[] inputCar() { Scanner scanner = new Scanner(System.in); System.out.println("경주할 자동차 이름을 입력하세요(이름은 쉼표(,)를 기준으로 구분)."); - return scanner.next(); + String inputName = scanner.next(); + String[] names = inputName.split(","); + return names; } public static int inputTry() { From a835a662d588a16a7012b0fb84838fb1c85e6731 Mon Sep 17 00:00:00 2001 From: Ilisha <40922963+Ilisha29@users.noreply.github.com> Date: Thu, 4 Apr 2019 23:40:54 +0900 Subject: [PATCH 3/8] delete getter --- src/main/java/racingGame/model/RacingGame.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/main/java/racingGame/model/RacingGame.java b/src/main/java/racingGame/model/RacingGame.java index 702e843..1a53939 100644 --- a/src/main/java/racingGame/model/RacingGame.java +++ b/src/main/java/racingGame/model/RacingGame.java @@ -43,8 +43,4 @@ private boolean isMove() { } return false; } - - public List getCars() { - return cars; - } } \ No newline at end of file From 35b8f743a19615112c36c2df4c18a8ea15b5c10a Mon Sep 17 00:00:00 2001 From: Ilisha <40922963+Ilisha29@users.noreply.github.com> Date: Mon, 8 Apr 2019 23:45:22 +0900 Subject: [PATCH 4/8] reflect feedback --- src/main/java/racingGame/controller/Main.java | 6 +-- src/main/java/racingGame/model/Car.java | 24 ++++++++--- .../java/racingGame/model/RacingGame.java | 3 +- src/main/java/racingGame/model/Winner.java | 40 ------------------- .../racingGame/model/WinnerGenerator.java | 21 ++++++++++ 5 files changed, 44 insertions(+), 50 deletions(-) delete mode 100644 src/main/java/racingGame/model/Winner.java create mode 100644 src/main/java/racingGame/model/WinnerGenerator.java diff --git a/src/main/java/racingGame/controller/Main.java b/src/main/java/racingGame/controller/Main.java index b533a1a..f336568 100644 --- a/src/main/java/racingGame/controller/Main.java +++ b/src/main/java/racingGame/controller/Main.java @@ -2,7 +2,7 @@ import racingGame.model.Car; import racingGame.model.RacingGame; -import racingGame.model.Winner; +import racingGame.model.WinnerGenerator; import racingGame.util.InputView; import racingGame.util.ResultView; @@ -11,11 +11,11 @@ public class Main { public static void main(String[] args) { RacingGame racingGame = new RacingGame(); - Winner winner = new Winner(); + WinnerGenerator winnerGenerator = new WinnerGenerator(); racingGame.settingCar(InputView.inputCar()); List finishedCars = racingGame.tryAllCarGame(InputView.inputTry()); ResultView.printResult(finishedCars); - ResultView.printWinner(winner.makeWinners(finishedCars)); + ResultView.printWinner(winnerGenerator.makeWinners(finishedCars)); } } \ No newline at end of file diff --git a/src/main/java/racingGame/model/Car.java b/src/main/java/racingGame/model/Car.java index 29dde5f..f5f050d 100644 --- a/src/main/java/racingGame/model/Car.java +++ b/src/main/java/racingGame/model/Car.java @@ -3,8 +3,21 @@ public class Car { private int carPosition = 0; private String playerName; + private static int winnerPosition = 0; - public int getCarPosition() { + public void calculateWinnerPosition(){ + if(carPosition > winnerPosition){ + winnerPosition = carPosition; + } + } + public boolean settingWinner(){ + if(this.carPosition == winnerPosition){ + return true; + } + return false; + } + + public int getCarPosition() { return carPosition; } @@ -12,12 +25,11 @@ public String getPlayerName() { return playerName; } - public String inputPlayerName(String name) { - playerName = name; - return playerName; + public void setPlayerName(String[] names, int index) { + this.playerName = names[index]; } - public int move() { - return carPosition++; + public void move() { + carPosition++; } } \ No newline at end of file diff --git a/src/main/java/racingGame/model/RacingGame.java b/src/main/java/racingGame/model/RacingGame.java index 1a53939..e92fffb 100644 --- a/src/main/java/racingGame/model/RacingGame.java +++ b/src/main/java/racingGame/model/RacingGame.java @@ -14,13 +14,14 @@ public void settingCar(String[] names) { for (int i = 0; i < names.length; i++) { Car car = new Car(); cars.add(car); - cars.get(i).inputPlayerName(names[i]); + cars.get(i).setPlayerName(names,i); } } public List tryAllCarGame(int numberOfTry) { for (Car car : cars) { tryEachCarGame(car, numberOfTry); + car.calculateWinnerPosition(); } return cars; } diff --git a/src/main/java/racingGame/model/Winner.java b/src/main/java/racingGame/model/Winner.java deleted file mode 100644 index d7ee268..0000000 --- a/src/main/java/racingGame/model/Winner.java +++ /dev/null @@ -1,40 +0,0 @@ -package racingGame.model; - -import java.util.ArrayList; -import java.util.List; - -public class Winner { - private List winnerList; - private static int winnerPosition; - - public List makeWinners(List cars) { - calculateWinnerPosition(cars); - winnerList = new ArrayList<>(); - for (Car car : cars) { - checkWinnerName(car); - } - return winnerList; - } - - private void checkWinnerName(Car car) { - if (car.getCarPosition() == winnerPosition) { - winnerList.add(car); - } - } - - private void calculateWinnerPosition(List cars) { - int tempWinnerPosition = 0; - for (Car car : cars) { - tempWinnerPosition = checkWinnerPosition(tempWinnerPosition, car); - } - winnerPosition = tempWinnerPosition; - } - - private int checkWinnerPosition(int tempWinnerPosition, Car car) { - if (car.getCarPosition() > tempWinnerPosition) { - tempWinnerPosition = car.getCarPosition(); - } - return tempWinnerPosition; - } - -} diff --git a/src/main/java/racingGame/model/WinnerGenerator.java b/src/main/java/racingGame/model/WinnerGenerator.java new file mode 100644 index 0000000..d7a7357 --- /dev/null +++ b/src/main/java/racingGame/model/WinnerGenerator.java @@ -0,0 +1,21 @@ +package racingGame.model; + +import java.util.ArrayList; +import java.util.List; + +public class WinnerGenerator { + private List winnerList = new ArrayList<>(); + + public List makeWinners(List cars) { + for (Car car : cars) { + addWinnerName(car); + } + return winnerList; + } + + private void addWinnerName(Car car) { + if (car.settingWinner()) { + winnerList.add(car); + } + } +} From 721e1f906decdc8e9a7a7215841bf68c8726c4f4 Mon Sep 17 00:00:00 2001 From: Ilisha <40922963+Ilisha29@users.noreply.github.com> Date: Wed, 10 Apr 2019 00:17:19 +0900 Subject: [PATCH 5/8] feat : WinnerGeneratorTest, RadomGeneratorTest --- .../java/racingGame/model/RacingGame.java | 12 ++++--- src/test/java/CarTest.java | 22 ++++++++++++ src/test/java/RacingGameTest.java | 30 +++++++++------- src/test/java/RandomGeneratorTest.java | 26 ++++++++++++++ src/test/java/WinnerGeneratorTest.java | 36 +++++++++++++++++++ 5 files changed, 109 insertions(+), 17 deletions(-) create mode 100644 src/test/java/CarTest.java create mode 100644 src/test/java/RandomGeneratorTest.java create mode 100644 src/test/java/WinnerGeneratorTest.java diff --git a/src/main/java/racingGame/model/RacingGame.java b/src/main/java/racingGame/model/RacingGame.java index e92fffb..fd32253 100644 --- a/src/main/java/racingGame/model/RacingGame.java +++ b/src/main/java/racingGame/model/RacingGame.java @@ -14,7 +14,7 @@ public void settingCar(String[] names) { for (int i = 0; i < names.length; i++) { Car car = new Car(); cars.add(car); - cars.get(i).setPlayerName(names,i); + cars.get(i).setPlayerName(names, i); } } @@ -33,15 +33,19 @@ private void tryEachCarGame(Car car, int numberOfTry) { } private void move(Car car) { - if (isMove()) { + if (isMove(RandomGenerator.randomGenerator())) { car.move(); } } - private boolean isMove() { - if (RandomGenerator.randomGenerator() >= MOVE_RESTRICTION) { + private boolean isMove(int randNum) { + if (randNum >= MOVE_RESTRICTION) { return true; } return false; } + + public List getCars() { + return cars; + } } \ No newline at end of file diff --git a/src/test/java/CarTest.java b/src/test/java/CarTest.java new file mode 100644 index 0000000..6a6d729 --- /dev/null +++ b/src/test/java/CarTest.java @@ -0,0 +1,22 @@ +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import racingGame.model.Car; + +public class CarTest { + Car car; + @Before + public void setUp() { + car = new Car(); + } + + @Test + public void 움직임작동여부() { + + } + + @After + public void tearDown() { + car = null; + } +} diff --git a/src/test/java/RacingGameTest.java b/src/test/java/RacingGameTest.java index ec61a04..5b57981 100644 --- a/src/test/java/RacingGameTest.java +++ b/src/test/java/RacingGameTest.java @@ -1,29 +1,33 @@ -/* -import Car; -import racingGame.racingGame; -import RandomGenerator; import org.junit.After; import org.junit.Before; import org.junit.Test; +import racingGame.model.RacingGame; -import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertEquals; public class RacingGameTest { - racingGame racingGame; - Car car; - RandomGenerator utils; + RacingGame racingGame; + @Before public void setUp() { - utils = new RandomGenerator(); + racingGame = new RacingGame(); + String[] names = {"a","b","c"}; + racingGame.settingCar(names); } + @Test - public void 랜덤생성작동여부(){ - assertNotNull(utils.randomGenerator()); + public void 차량셋팅확인() { + assertEquals(3, racingGame.getCars().size()); + } + + @Test + public void 게임실행여부(){ + } @After - public void tearDown(){ + public void tearDown() { racingGame = null; } } -*/ + diff --git a/src/test/java/RandomGeneratorTest.java b/src/test/java/RandomGeneratorTest.java new file mode 100644 index 0000000..c4ce506 --- /dev/null +++ b/src/test/java/RandomGeneratorTest.java @@ -0,0 +1,26 @@ +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import racingGame.util.RandomGenerator; + +import static org.junit.Assert.assertNotNull; + +public class RandomGeneratorTest { + RandomGenerator randomGenerator; + + @Before + public void setUp() { + randomGenerator = new RandomGenerator(); + } + + @Test + public void 랜덤생성작동여부() { + assertNotNull(randomGenerator.randomGenerator()); + } + + + @After + public void tearDown() { + randomGenerator = null; + } +} diff --git a/src/test/java/WinnerGeneratorTest.java b/src/test/java/WinnerGeneratorTest.java new file mode 100644 index 0000000..e81910e --- /dev/null +++ b/src/test/java/WinnerGeneratorTest.java @@ -0,0 +1,36 @@ +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import racingGame.model.RacingGame; +import racingGame.model.WinnerGenerator; + +import static org.junit.Assert.assertTrue; + +public class WinnerGeneratorTest { + WinnerGenerator winnerGenerator; + RacingGame racingGame; + private final int WINNER_NOT_ZERO = 1; + + @Before + public void setUp() { + winnerGenerator = new WinnerGenerator(); + racingGame = new RacingGame(); + String[] names = {"a", "b", "c", "d", "e"}; + racingGame.settingCar(names); + } + + @Test + public void 우승자선발여부() { + boolean isWinnerNotZero = false; + if (winnerGenerator.makeWinners(racingGame.tryAllCarGame(5)).size() >= WINNER_NOT_ZERO) { + isWinnerNotZero = true; + } + assertTrue(isWinnerNotZero); + } + + @After + public void tearDown() { + winnerGenerator = null; + racingGame = null; + } +} From c8506d20aa31eb1f7e8263ecf48151b501ea8e90 Mon Sep 17 00:00:00 2001 From: Ilisha <40922963+Ilisha29@users.noreply.github.com> Date: Wed, 10 Apr 2019 00:34:03 +0900 Subject: [PATCH 6/8] feat : RacingGameTest --- src/main/java/racingGame/model/Car.java | 11 ++++++----- src/main/java/racingGame/model/WinnerGenerator.java | 2 +- src/test/java/CarTest.java | 1 + src/test/java/RacingGameTest.java | 9 +++------ 4 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/main/java/racingGame/model/Car.java b/src/main/java/racingGame/model/Car.java index f5f050d..1d692fd 100644 --- a/src/main/java/racingGame/model/Car.java +++ b/src/main/java/racingGame/model/Car.java @@ -5,19 +5,20 @@ public class Car { private String playerName; private static int winnerPosition = 0; - public void calculateWinnerPosition(){ - if(carPosition > winnerPosition){ + public void calculateWinnerPosition() { + if (carPosition > winnerPosition) { winnerPosition = carPosition; } } - public boolean settingWinner(){ - if(this.carPosition == winnerPosition){ + + public boolean settingWinner() { + if (this.carPosition == winnerPosition) { return true; } return false; } - public int getCarPosition() { + public int getCarPosition() { return carPosition; } diff --git a/src/main/java/racingGame/model/WinnerGenerator.java b/src/main/java/racingGame/model/WinnerGenerator.java index d7a7357..81cebd4 100644 --- a/src/main/java/racingGame/model/WinnerGenerator.java +++ b/src/main/java/racingGame/model/WinnerGenerator.java @@ -8,7 +8,7 @@ public class WinnerGenerator { public List makeWinners(List cars) { for (Car car : cars) { - addWinnerName(car); + addWinnerName(car); } return winnerList; } diff --git a/src/test/java/CarTest.java b/src/test/java/CarTest.java index 6a6d729..4c3dddc 100644 --- a/src/test/java/CarTest.java +++ b/src/test/java/CarTest.java @@ -5,6 +5,7 @@ public class CarTest { Car car; + @Before public void setUp() { car = new Car(); diff --git a/src/test/java/RacingGameTest.java b/src/test/java/RacingGameTest.java index 5b57981..a870808 100644 --- a/src/test/java/RacingGameTest.java +++ b/src/test/java/RacingGameTest.java @@ -7,11 +7,13 @@ public class RacingGameTest { RacingGame racingGame; + private final static int MIN_MOVED = 0; + private final static int SETTING_TRY_NUM = 5; @Before public void setUp() { racingGame = new RacingGame(); - String[] names = {"a","b","c"}; + String[] names = {"a", "b", "c"}; racingGame.settingCar(names); } @@ -20,11 +22,6 @@ public void setUp() { assertEquals(3, racingGame.getCars().size()); } - @Test - public void 게임실행여부(){ - - } - @After public void tearDown() { racingGame = null; From c268df134aac93bd25945eea03bc7a3123be4763 Mon Sep 17 00:00:00 2001 From: Ilisha <40922963+Ilisha29@users.noreply.github.com> Date: Wed, 10 Apr 2019 00:53:27 +0900 Subject: [PATCH 7/8] feat : CarTest --- src/main/java/racingGame/model/Car.java | 4 ++++ src/test/java/CarTest.java | 13 ++++++++++++- src/test/java/RacingGameTest.java | 2 -- src/test/java/WinnerGeneratorTest.java | 2 +- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/main/java/racingGame/model/Car.java b/src/main/java/racingGame/model/Car.java index 1d692fd..6ab49b1 100644 --- a/src/main/java/racingGame/model/Car.java +++ b/src/main/java/racingGame/model/Car.java @@ -26,6 +26,10 @@ public String getPlayerName() { return playerName; } + public static int getWinnerPosition() { + return winnerPosition; + } + public void setPlayerName(String[] names, int index) { this.playerName = names[index]; } diff --git a/src/test/java/CarTest.java b/src/test/java/CarTest.java index 4c3dddc..42b6577 100644 --- a/src/test/java/CarTest.java +++ b/src/test/java/CarTest.java @@ -3,6 +3,8 @@ import org.junit.Test; import racingGame.model.Car; +import static org.junit.Assert.assertEquals; + public class CarTest { Car car; @@ -12,8 +14,17 @@ public void setUp() { } @Test - public void 움직임작동여부() { + public void 플레이어이름설정() { + String[] names = {"a", "b", "c", "d"}; + car.setPlayerName(names, 1); + assertEquals("b", car.getPlayerName()); + } + @Test + public void 움직임여부() { + int beforeCarPosition = car.getCarPosition(); + car.move(); + assertEquals(beforeCarPosition + 1, car.getCarPosition()); } @After diff --git a/src/test/java/RacingGameTest.java b/src/test/java/RacingGameTest.java index a870808..b56e3f3 100644 --- a/src/test/java/RacingGameTest.java +++ b/src/test/java/RacingGameTest.java @@ -7,8 +7,6 @@ public class RacingGameTest { RacingGame racingGame; - private final static int MIN_MOVED = 0; - private final static int SETTING_TRY_NUM = 5; @Before public void setUp() { diff --git a/src/test/java/WinnerGeneratorTest.java b/src/test/java/WinnerGeneratorTest.java index e81910e..ae25d15 100644 --- a/src/test/java/WinnerGeneratorTest.java +++ b/src/test/java/WinnerGeneratorTest.java @@ -9,7 +9,7 @@ public class WinnerGeneratorTest { WinnerGenerator winnerGenerator; RacingGame racingGame; - private final int WINNER_NOT_ZERO = 1; + private static final int WINNER_NOT_ZERO = 1; @Before public void setUp() { From aea481e28b82e07fd96f8c6e2f50502eeae1d1e8 Mon Sep 17 00:00:00 2001 From: Ilisha <40922963+Ilisha29@users.noreply.github.com> Date: Thu, 2 May 2019 02:59:03 +0900 Subject: [PATCH 8/8] finish_racingGame_step2 --- src/main/java/racingGame/controller/Main.java | 21 ------- src/main/java/racinggame/controller/Main.java | 23 ++++++++ .../javajigi_racingGame/RacingMain.java | 18 ++++++ .../javajigi_racingGame/domain/Car.java | 59 +++++++++++++++++++ .../domain/RacingGame.java | 51 ++++++++++++++++ .../javajigi_racingGame/dto/CarDto.java | 58 ++++++++++++++++++ .../javajigi_racingGame/dto/RacingResult.java | 54 +++++++++++++++++ .../utils/RandomValueGenerator.java | 11 ++++ .../utils/StringUtils.java | 10 ++++ .../javajigi_racingGame/view/InputView.java | 17 ++++++ .../javajigi_racingGame/view/ResultView.java | 14 +++++ .../{racingGame => racinggame}/model/Car.java | 4 +- .../model/RacingGame.java | 4 +- .../model/WinnerGenerator.java | 2 +- .../util/InputView.java | 2 +- .../util/RandomGenerator.java | 2 +- .../util/ResultView.java | 6 +- src/test/java/CarTest.java | 2 +- src/test/java/RacingGameTest.java | 2 +- src/test/java/RandomGeneratorTest.java | 2 +- src/test/java/WinnerGeneratorTest.java | 4 +- src/test/java/javajigi_racinggame/Test.java | 4 ++ .../javajigi_racinggame/domain/CarTest.java | 30 ++++++++++ .../javajigi_racinggame/dto/CarDtoTest.java | 14 +++++ .../dto/RacingResultTest.java | 57 ++++++++++++++++++ 25 files changed, 435 insertions(+), 36 deletions(-) delete mode 100644 src/main/java/racingGame/controller/Main.java create mode 100644 src/main/java/racinggame/controller/Main.java create mode 100644 src/main/java/racinggame/javajigi_racingGame/RacingMain.java create mode 100644 src/main/java/racinggame/javajigi_racingGame/domain/Car.java create mode 100644 src/main/java/racinggame/javajigi_racingGame/domain/RacingGame.java create mode 100644 src/main/java/racinggame/javajigi_racingGame/dto/CarDto.java create mode 100644 src/main/java/racinggame/javajigi_racingGame/dto/RacingResult.java create mode 100644 src/main/java/racinggame/javajigi_racingGame/utils/RandomValueGenerator.java create mode 100644 src/main/java/racinggame/javajigi_racingGame/utils/StringUtils.java create mode 100644 src/main/java/racinggame/javajigi_racingGame/view/InputView.java create mode 100644 src/main/java/racinggame/javajigi_racingGame/view/ResultView.java rename src/main/java/{racingGame => racinggame}/model/Car.java (75%) rename src/main/java/{racingGame => racinggame}/model/RacingGame.java (94%) rename src/main/java/{racingGame => racinggame}/model/WinnerGenerator.java (94%) rename src/main/java/{racingGame => racinggame}/util/InputView.java (95%) rename src/main/java/{racingGame => racinggame}/util/RandomGenerator.java (90%) rename src/main/java/{racingGame => racinggame}/util/ResultView.java (84%) create mode 100644 src/test/java/javajigi_racinggame/Test.java create mode 100644 src/test/java/javajigi_racinggame/domain/CarTest.java create mode 100644 src/test/java/javajigi_racinggame/dto/CarDtoTest.java create mode 100644 src/test/java/javajigi_racinggame/dto/RacingResultTest.java diff --git a/src/main/java/racingGame/controller/Main.java b/src/main/java/racingGame/controller/Main.java deleted file mode 100644 index f336568..0000000 --- a/src/main/java/racingGame/controller/Main.java +++ /dev/null @@ -1,21 +0,0 @@ -package racingGame.controller; - -import racingGame.model.Car; -import racingGame.model.RacingGame; -import racingGame.model.WinnerGenerator; -import racingGame.util.InputView; -import racingGame.util.ResultView; - -import java.util.List; - -public class Main { - public static void main(String[] args) { - RacingGame racingGame = new RacingGame(); - WinnerGenerator winnerGenerator = new WinnerGenerator(); - - racingGame.settingCar(InputView.inputCar()); - List finishedCars = racingGame.tryAllCarGame(InputView.inputTry()); - ResultView.printResult(finishedCars); - ResultView.printWinner(winnerGenerator.makeWinners(finishedCars)); - } -} \ No newline at end of file diff --git a/src/main/java/racinggame/controller/Main.java b/src/main/java/racinggame/controller/Main.java new file mode 100644 index 0000000..08ff52a --- /dev/null +++ b/src/main/java/racinggame/controller/Main.java @@ -0,0 +1,23 @@ +package racinggame.controller; + +import racinggame.model.Car; +import racinggame.model.RacingGame; +import racinggame.model.WinnerGenerator; +import racinggame.util.InputView; +import racinggame.util.ResultView; + +import java.util.List; + +public class Main { + public static void main(String[] args) { + RacingGame racingGame = new RacingGame(); + WinnerGenerator winnerGenerator = new WinnerGenerator(); + + racingGame.settingCar(InputView.inputCar()); //main 에서도 변수를 활용하자 String carNames = InputView.getCarNames(); 처럼 + List finishedCars = racingGame.tryAllCarGame(InputView.inputTry()); // 여기서도 InputView.inputTry를 애당초 int tryNo = InputView.getTryNo(); 이런 식으로 활용 했었어야 했다. + ResultView.printResult(finishedCars); + ResultView.printWinner(winnerGenerator.makeWinners(finishedCars)); + + //느낀점 내가 짠 main은 작성한 메소드를 불러오기에만 급급했다. main 내에서도 변수에 할당 하면 좀더 편했을 것 같다. + } +} \ No newline at end of file diff --git a/src/main/java/racinggame/javajigi_racingGame/RacingMain.java b/src/main/java/racinggame/javajigi_racingGame/RacingMain.java new file mode 100644 index 0000000..4868df3 --- /dev/null +++ b/src/main/java/racinggame/javajigi_racingGame/RacingMain.java @@ -0,0 +1,18 @@ +package racinggame.javajigi_racingGame; + +import racinggame.javajigi_racingGame.domain.RacingGame; +import racinggame.javajigi_racingGame.dto.RacingResult; +import racinggame.javajigi_racingGame.view.InputView; +import racinggame.javajigi_racingGame.view.ResultView; + +public class RacingMain { + public static void main(String[] args) { + String carNames = InputView.getCarNames(); + int tryNo = InputView.getTryNo(); + + RacingGame racingGame = new RacingGame(carNames); + RacingResult result = racingGame.racing(tryNo); + + ResultView.printResult(result); + } +} \ No newline at end of file diff --git a/src/main/java/racinggame/javajigi_racingGame/domain/Car.java b/src/main/java/racinggame/javajigi_racingGame/domain/Car.java new file mode 100644 index 0000000..b9a462f --- /dev/null +++ b/src/main/java/racinggame/javajigi_racingGame/domain/Car.java @@ -0,0 +1,59 @@ +package racinggame.javajigi_racingGame.domain; + +import java.util.Objects; + +import racinggame.javajigi_racingGame.dto.CarDto; +import racinggame.javajigi_racingGame.utils.StringUtils; + +public class Car { + private static final int FORWARD_NUM = 4; + + private String name; + private int position = 0; + + public Car(String name) { + if (StringUtils.isBlank(name)) { + throw new IllegalArgumentException("자동차 이름은 값이 존재해야 합니다."); + } + this.name = name.trim(); + } + + public int getPosition() { + return position; + } + + public String getName() { + return name; + } + + public void move(int number) { + if (number >= FORWARD_NUM) { + position++; + } + } + public CarDto toCarDto() { + return new CarDto(name, position); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Car car = (Car) o; + return position == car.position && + Objects.equals(name, car.name); + } + + @Override + public int hashCode() { + return Objects.hash(name, position); + } + + @Override + public String toString() { + return "Car{" + + "name='" + name + '\'' + + ", position=" + position + + '}'; + } +} diff --git a/src/main/java/racinggame/javajigi_racingGame/domain/RacingGame.java b/src/main/java/racinggame/javajigi_racingGame/domain/RacingGame.java new file mode 100644 index 0000000..3387d60 --- /dev/null +++ b/src/main/java/racinggame/javajigi_racingGame/domain/RacingGame.java @@ -0,0 +1,51 @@ +package racinggame.javajigi_racingGame.domain; + +import java.util.ArrayList; +import java.util.List; + +import racinggame.javajigi_racingGame.dto.RacingResult; +import racinggame.javajigi_racingGame.utils.RandomValueGenerator; +import racinggame.javajigi_racingGame.utils.StringUtils; + +public class RacingGame { + private static final int MAX_BOUND = 10; + + private List cars = new ArrayList<>(); + + public RacingGame(String inputNames) { + if (StringUtils.isBlank(inputNames)) { + throw new IllegalArgumentException("사용자 이름은 빈 값이 될 수 없습니다."); + } + this.cars = createCars(inputNames); + } + + private static List createCars(String inputNames) { + List cars = new ArrayList<>(); + String[] names = inputNames.split(","); + for (String name : names) { + cars.add(new Car(name)); + } + return cars; + } + + public RacingResult racing(int tryNo) { + for (int i = 0; i < tryNo; i++) { + racingPerTry(); + } + return getResult(); + } + + private void racingPerTry() { + for (Car car: cars) { + car.move(RandomValueGenerator.nextInt(MAX_BOUND)); + } + } + + private RacingResult getResult() { + RacingResult result = new RacingResult(); + for (Car car : cars) { + result.add(car.toCarDto()); + } + return result; + } +} diff --git a/src/main/java/racinggame/javajigi_racingGame/dto/CarDto.java b/src/main/java/racinggame/javajigi_racingGame/dto/CarDto.java new file mode 100644 index 0000000..03eb5c7 --- /dev/null +++ b/src/main/java/racinggame/javajigi_racingGame/dto/CarDto.java @@ -0,0 +1,58 @@ +package racinggame.javajigi_racingGame.dto; + +import java.util.Objects; +import java.util.stream.IntStream; + +public class CarDto { + private static final String STATUS_BAR = "-"; + + private String name; + private int position; + + public CarDto(String name, int position) { + this.name = name; + this.position = position; + } + + public String getName() { + return name; + } + + public int getPosition() { + return position; + } + + public boolean isMaxPosition(int maxPosition) { + return maxPosition == this.position; + } + + public String createStatus() { + StringBuilder status = new StringBuilder(); + IntStream.range(0, position).forEach(i -> { + status.append(STATUS_BAR); + }); + return status.toString(); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CarDto carDto = (CarDto) o; + return position == carDto.position && + Objects.equals(name, carDto.name); + } + + @Override + public int hashCode() { + return Objects.hash(name, position); + } + + @Override + public String toString() { + return "CarDto{" + + "name='" + name + '\'' + + ", position=" + position + + '}'; + } +} diff --git a/src/main/java/racinggame/javajigi_racingGame/dto/RacingResult.java b/src/main/java/racinggame/javajigi_racingGame/dto/RacingResult.java new file mode 100644 index 0000000..f5d65b4 --- /dev/null +++ b/src/main/java/racinggame/javajigi_racingGame/dto/RacingResult.java @@ -0,0 +1,54 @@ +package racinggame.javajigi_racingGame.dto; + +import java.util.ArrayList; +import java.util.List; + +public class RacingResult { + private static final String COMMA_SEPARATOR = ","; + + private List cars = new ArrayList<>(); + + public void add(CarDto carDto) { + cars.add(carDto); + } + + public List getCars() { + return cars; + } + + public String createWinnerNames() { + return joinComma(getWinnerNames(getWinners(cars, maxPosition(cars)))); + } + + public static int maxPosition(List carDtos) { + int maxPosition = 0; + for (CarDto carDto: carDtos) { + if (maxPosition < carDto.getPosition()) { + maxPosition = carDto.getPosition(); + } + } + return maxPosition; + } + + public static List getWinners(List carDtos, int maxPosition) { + List winners = new ArrayList<>(); + for (CarDto carDto: carDtos) { + if (carDto.isMaxPosition(maxPosition)) { + winners.add(carDto); + } + } + return winners; + } + + public static List getWinnerNames(List winners) { + List winnerNames = new ArrayList<>(); + for (CarDto carDto: winners) { + winnerNames.add(carDto.getName()); + } + return winnerNames; + } + + public static String joinComma(List winnerNames) { + return String.join(COMMA_SEPARATOR, winnerNames); + } +} diff --git a/src/main/java/racinggame/javajigi_racingGame/utils/RandomValueGenerator.java b/src/main/java/racinggame/javajigi_racingGame/utils/RandomValueGenerator.java new file mode 100644 index 0000000..5c6191d --- /dev/null +++ b/src/main/java/racinggame/javajigi_racingGame/utils/RandomValueGenerator.java @@ -0,0 +1,11 @@ +package racinggame.javajigi_racingGame.utils; + +import java.util.Random; + +public class RandomValueGenerator { + private static final Random random = new Random(); + + public static int nextInt(int bound) { + return random.nextInt(bound); + } +} diff --git a/src/main/java/racinggame/javajigi_racingGame/utils/StringUtils.java b/src/main/java/racinggame/javajigi_racingGame/utils/StringUtils.java new file mode 100644 index 0000000..1bbfdd8 --- /dev/null +++ b/src/main/java/racinggame/javajigi_racingGame/utils/StringUtils.java @@ -0,0 +1,10 @@ +package racinggame.javajigi_racingGame.utils; + +public class StringUtils { + public static boolean isBlank(String value) { + if (value == null || value.isEmpty()) { + return true; + } + return value.trim().isEmpty(); + } +} \ No newline at end of file diff --git a/src/main/java/racinggame/javajigi_racingGame/view/InputView.java b/src/main/java/racinggame/javajigi_racingGame/view/InputView.java new file mode 100644 index 0000000..9c23bce --- /dev/null +++ b/src/main/java/racinggame/javajigi_racingGame/view/InputView.java @@ -0,0 +1,17 @@ +package racinggame.javajigi_racingGame.view; + +import java.util.Scanner; + +public class InputView { + private static Scanner scanner = new Scanner(System.in); + + public static String getCarNames() { + System.out.println("경주할 자동차 이름을 입력하세요(이름은 쉼표(,)를 기준으로 구분)."); + return scanner.nextLine(); + } + + public static int getTryNo() { + System.out.println("시도할 회수는 몇회 인가요?"); + return scanner.nextInt(); + } +} \ No newline at end of file diff --git a/src/main/java/racinggame/javajigi_racingGame/view/ResultView.java b/src/main/java/racinggame/javajigi_racingGame/view/ResultView.java new file mode 100644 index 0000000..5a197b0 --- /dev/null +++ b/src/main/java/racinggame/javajigi_racingGame/view/ResultView.java @@ -0,0 +1,14 @@ +package racinggame.javajigi_racingGame.view; + +import racinggame.javajigi_racingGame.dto.CarDto; +import racinggame.javajigi_racingGame.dto.RacingResult; + +public class ResultView { + public static void printResult(RacingResult result) { + System.out.println("실행 결과"); + for ( CarDto carDto: result.getCars() ) { + System.out.println(String.format("%s: %s", carDto.getName(), carDto.createStatus())); + } + System.out.println(String.format("%s가 최종 우승했습니다", result.createWinnerNames())); + } +} \ No newline at end of file diff --git a/src/main/java/racingGame/model/Car.java b/src/main/java/racinggame/model/Car.java similarity index 75% rename from src/main/java/racingGame/model/Car.java rename to src/main/java/racinggame/model/Car.java index 6ab49b1..150027c 100644 --- a/src/main/java/racingGame/model/Car.java +++ b/src/main/java/racinggame/model/Car.java @@ -1,6 +1,6 @@ -package racingGame.model; +package racinggame.model; -public class Car { +public class Car { //javajigi님의 코드를 보며 비교해 본 결과 내 Car클래스는 역할 분담이 부족한거 같다. 어디가 어떤 클래스의 역할인지 더 고민해보고 스크립트를 짜야 겠다. private int carPosition = 0; private String playerName; private static int winnerPosition = 0; diff --git a/src/main/java/racingGame/model/RacingGame.java b/src/main/java/racinggame/model/RacingGame.java similarity index 94% rename from src/main/java/racingGame/model/RacingGame.java rename to src/main/java/racinggame/model/RacingGame.java index fd32253..00e1a4e 100644 --- a/src/main/java/racingGame/model/RacingGame.java +++ b/src/main/java/racinggame/model/RacingGame.java @@ -1,6 +1,6 @@ -package racingGame.model; +package racinggame.model; -import racingGame.util.RandomGenerator; +import racinggame.util.RandomGenerator; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/racingGame/model/WinnerGenerator.java b/src/main/java/racinggame/model/WinnerGenerator.java similarity index 94% rename from src/main/java/racingGame/model/WinnerGenerator.java rename to src/main/java/racinggame/model/WinnerGenerator.java index 81cebd4..1ef8d86 100644 --- a/src/main/java/racingGame/model/WinnerGenerator.java +++ b/src/main/java/racinggame/model/WinnerGenerator.java @@ -1,4 +1,4 @@ -package racingGame.model; +package racinggame.model; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/racingGame/util/InputView.java b/src/main/java/racinggame/util/InputView.java similarity index 95% rename from src/main/java/racingGame/util/InputView.java rename to src/main/java/racinggame/util/InputView.java index 899fab0..153952e 100644 --- a/src/main/java/racingGame/util/InputView.java +++ b/src/main/java/racinggame/util/InputView.java @@ -1,4 +1,4 @@ -package racingGame.util; +package racinggame.util; import java.util.Scanner; diff --git a/src/main/java/racingGame/util/RandomGenerator.java b/src/main/java/racinggame/util/RandomGenerator.java similarity index 90% rename from src/main/java/racingGame/util/RandomGenerator.java rename to src/main/java/racinggame/util/RandomGenerator.java index b180b14..3a38942 100644 --- a/src/main/java/racingGame/util/RandomGenerator.java +++ b/src/main/java/racinggame/util/RandomGenerator.java @@ -1,4 +1,4 @@ -package racingGame.util; +package racinggame.util; import java.util.Random; diff --git a/src/main/java/racingGame/util/ResultView.java b/src/main/java/racinggame/util/ResultView.java similarity index 84% rename from src/main/java/racingGame/util/ResultView.java rename to src/main/java/racinggame/util/ResultView.java index cb2eb78..255697e 100644 --- a/src/main/java/racingGame/util/ResultView.java +++ b/src/main/java/racinggame/util/ResultView.java @@ -1,10 +1,10 @@ -package racingGame.util; +package racinggame.util; -import racingGame.model.Car; +import racinggame.model.Car; import java.util.List; -public class ResultView { +public class ResultView { //ResultView는 유틸이기 때문에 진짜 이미 계산된 우승자 및 출력결과만 출력해야한다. private static final String RESULT_SIGN = "실행 결과"; private static final String WINNER_SIGN = "가 최종 우승했습니다. 축하합니다!!"; private static final char MOVED = '-'; diff --git a/src/test/java/CarTest.java b/src/test/java/CarTest.java index 42b6577..0ae0b0a 100644 --- a/src/test/java/CarTest.java +++ b/src/test/java/CarTest.java @@ -1,7 +1,7 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; -import racingGame.model.Car; +import racinggame.model.Car; import static org.junit.Assert.assertEquals; diff --git a/src/test/java/RacingGameTest.java b/src/test/java/RacingGameTest.java index b56e3f3..141ba71 100644 --- a/src/test/java/RacingGameTest.java +++ b/src/test/java/RacingGameTest.java @@ -1,7 +1,7 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; -import racingGame.model.RacingGame; +import racinggame.model.RacingGame; import static org.junit.Assert.assertEquals; diff --git a/src/test/java/RandomGeneratorTest.java b/src/test/java/RandomGeneratorTest.java index c4ce506..c6241d7 100644 --- a/src/test/java/RandomGeneratorTest.java +++ b/src/test/java/RandomGeneratorTest.java @@ -1,7 +1,7 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; -import racingGame.util.RandomGenerator; +import racinggame.util.RandomGenerator; import static org.junit.Assert.assertNotNull; diff --git a/src/test/java/WinnerGeneratorTest.java b/src/test/java/WinnerGeneratorTest.java index ae25d15..c5c144e 100644 --- a/src/test/java/WinnerGeneratorTest.java +++ b/src/test/java/WinnerGeneratorTest.java @@ -1,8 +1,8 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; -import racingGame.model.RacingGame; -import racingGame.model.WinnerGenerator; +import racinggame.model.RacingGame; +import racinggame.model.WinnerGenerator; import static org.junit.Assert.assertTrue; diff --git a/src/test/java/javajigi_racinggame/Test.java b/src/test/java/javajigi_racinggame/Test.java new file mode 100644 index 0000000..5b752c0 --- /dev/null +++ b/src/test/java/javajigi_racinggame/Test.java @@ -0,0 +1,4 @@ +package javajigi_racinggame; + +public class Test { +} diff --git a/src/test/java/javajigi_racinggame/domain/CarTest.java b/src/test/java/javajigi_racinggame/domain/CarTest.java new file mode 100644 index 0000000..6181e12 --- /dev/null +++ b/src/test/java/javajigi_racinggame/domain/CarTest.java @@ -0,0 +1,30 @@ +package javajigi_racinggame.domain; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.Before; +import org.junit.Test; + +import racinggame.javajigi_racingGame.domain.Car; +import racinggame.javajigi_racingGame.dto.CarDto; + +public class CarTest { + private Car car; + + @Before + public void setUp() throws Exception { + car = new Car("javajigi"); + } + + @Test + public void move_stay() { + car.move(3); + assertThat(car.toCarDto()).isEqualTo(new CarDto("javajigi", 0)); + } + + @Test + public void move_forward() { + car.move(4); + assertThat(car.toCarDto()).isEqualTo(new CarDto("javajigi", 1)); + } +} \ No newline at end of file diff --git a/src/test/java/javajigi_racinggame/dto/CarDtoTest.java b/src/test/java/javajigi_racinggame/dto/CarDtoTest.java new file mode 100644 index 0000000..697c57a --- /dev/null +++ b/src/test/java/javajigi_racinggame/dto/CarDtoTest.java @@ -0,0 +1,14 @@ +package javajigi_racinggame.dto; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.Test; +import racinggame.javajigi_racingGame.dto.CarDto; + +public class CarDtoTest { + @Test + public void createStatus() { + CarDto car = new CarDto("pobi", 3); + assertThat(car.createStatus()).isEqualTo("---"); + } +} \ No newline at end of file diff --git a/src/test/java/javajigi_racinggame/dto/RacingResultTest.java b/src/test/java/javajigi_racinggame/dto/RacingResultTest.java new file mode 100644 index 0000000..8843966 --- /dev/null +++ b/src/test/java/javajigi_racinggame/dto/RacingResultTest.java @@ -0,0 +1,57 @@ +package javajigi_racinggame.dto; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.Arrays; +import java.util.List; + +import org.junit.Test; +import racinggame.javajigi_racingGame.dto.CarDto; +import racinggame.javajigi_racingGame.dto.RacingResult; + +public class RacingResultTest { + @Test + public void createWinnerNames() { + RacingResult result = new RacingResult(); + result.add(new CarDto("pobi", 8)); + result.add(new CarDto("honux", 7)); + result.add(new CarDto("crong", 8)); + assertThat(result.createWinnerNames()).isEqualTo("pobi,crong"); + } + + @Test + public void maxPosition() { + List cars = Arrays.asList( + new CarDto("pobi", 8), + new CarDto("honux", 7), + new CarDto("crong", 8) + ); + assertThat(RacingResult.maxPosition(cars)).isEqualTo(8); + } + + @Test + public void getWinners() { + List cars = Arrays.asList( + new CarDto("pobi", 8), + new CarDto("honux", 7), + new CarDto("crong", 8) + ); + List winners = RacingResult.getWinners(cars, 8); + assertThat(winners.size()).isEqualTo(2); + } + + @Test + public void getWinnerNames() { + List winners = Arrays.asList( + new CarDto("pobi", 8), + new CarDto("crong", 8) + ); + assertThat(RacingResult.getWinnerNames(winners)).contains("pobi", "crong"); + } + + @Test + public void joinComma() { + List winnerNames = Arrays.asList("pobi", "crong"); + assertThat(RacingResult.joinComma(winnerNames)).isEqualTo("pobi,crong"); + } +} \ No newline at end of file