From b60c54f59fd0711cb3fd86daf64147d99c246bba Mon Sep 17 00:00:00 2001 From: raphael Date: Thu, 22 Oct 2026 12:04:06 +0200 Subject: [PATCH] =?UTF-8?q?J'ai=20enlev=C3=A9=20les=20tests=20pour=20des?= =?UTF-8?q?=20soucis=20de=20temps=20et=20d'efforts=20que=20je=20n'ai=20pas?= =?UTF-8?q?=20envie=20de=20mettre=20dans=20ce=20projet.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ModulithStructureTests.java | 13 ---- .../play/FakeCpuConfiguration.java | 30 -------- .../play/PlayControllerTest.java | 71 ------------------- .../RockPaperScissorsPlayApplicationTest.java | 63 ---------------- .../play/domain/MoveTest.java | 42 ----------- .../domain/RockPaperScissorsPlayTest.java | 42 ----------- .../play/spi/FakeCpuPicker.java | 19 ----- .../play/spi/RandomCpuPickerTest.java | 28 -------- .../stat/StatApplicationTest.java | 35 --------- .../stat/StatBoardGetterTest.java | 30 -------- .../stat/StatControllerTest.java | 50 ------------- .../stat/StatSaverTest.java | 25 ------- 12 files changed, 448 deletions(-) delete mode 100644 src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/ModulithStructureTests.java delete mode 100644 src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/FakeCpuConfiguration.java delete mode 100644 src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/PlayControllerTest.java delete mode 100644 src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/RockPaperScissorsPlayApplicationTest.java delete mode 100644 src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/domain/MoveTest.java delete mode 100644 src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/domain/RockPaperScissorsPlayTest.java delete mode 100644 src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/spi/FakeCpuPicker.java delete mode 100644 src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/spi/RandomCpuPickerTest.java delete mode 100644 src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/stat/StatApplicationTest.java delete mode 100644 src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/stat/StatBoardGetterTest.java delete mode 100644 src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/stat/StatControllerTest.java delete mode 100644 src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/stat/StatSaverTest.java diff --git a/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/ModulithStructureTests.java b/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/ModulithStructureTests.java deleted file mode 100644 index 3976e01..0000000 --- a/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/ModulithStructureTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package fr.iut_fbleau.info.but3.automation.rock_paper_scissors; - -import org.junit.jupiter.api.Test; -import org.springframework.modulith.core.ApplicationModules; - -class ModulithStructureTests { - - @Test - void verifyModularStructure() { - ApplicationModules modules = ApplicationModules.of("fr.iut_fbleau.info.but3.automation.rock_paper_scissors"); - modules.verify(); - } -} diff --git a/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/FakeCpuConfiguration.java b/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/FakeCpuConfiguration.java deleted file mode 100644 index 601982c..0000000 --- a/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/FakeCpuConfiguration.java +++ /dev/null @@ -1,30 +0,0 @@ -package fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play; - -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.ddd.DomainService; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.ddd.Stub; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play.domain.RockPaperScissorsPlayer; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play.spi.CpuPick; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play.spi.FakeCpuPicker; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play.spi.RandomCpuPicker; -import org.springframework.boot.test.context.TestConfiguration; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.FilterType; -import org.springframework.context.annotation.Primary; - -@TestConfiguration -@ComponentScan( - basePackageClasses = {CpuPick.class, RockPaperScissorsPlayer.class}, - includeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION, classes = {DomainService.class, Stub.class})}, - excludeFilters = {@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {RandomCpuPicker.class})} -) -public class FakeCpuConfiguration { - - public static final FakeCpuPicker cpuPick = new FakeCpuPicker(); - @Bean - @Primary // Forces Spring to use this one if the real one was also loaded - public CpuPick fixedCpuPicker() { - // Return a deterministic stub/fake implementation - return cpuPick; - } -} diff --git a/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/PlayControllerTest.java b/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/PlayControllerTest.java deleted file mode 100644 index 1e0cd10..0000000 --- a/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/PlayControllerTest.java +++ /dev/null @@ -1,71 +0,0 @@ -package fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play; - -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.ddd.DomainService; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.ddd.Stub; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play.configuration.PlayConfiguration; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play.domain.Move; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play.domain.RockPaperScissorsPlayer; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play.spi.CpuPick; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play.spi.FakeCpuPicker; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play.spi.RandomCpuPicker; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play.web.PlayController; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.stat.StatSave; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.Arguments; -import org.junit.jupiter.params.provider.MethodSource; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.TestConfiguration; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.FilterType; -import org.springframework.test.context.bean.override.mockito.MockitoBean; -import org.springframework.context.annotation.Import; -import org.springframework.http.MediaType; -import org.springframework.test.web.servlet.MockMvc; - -import java.util.stream.Stream; - -import static fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play.domain.RockPaperScissorsPlayer.LOOSE; -import static fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play.domain.RockPaperScissorsPlayer.WIN; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; - -import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; - -@WebMvcTest(PlayController.class) -@Import(FakeCpuConfiguration.class) -public class PlayControllerTest { - private static final String PLAY_ENDPOINT = "/play"; - - @Autowired - MockMvc mockMvc; - - @MockitoBean - StatSave statSave; - - public static Stream scenario() { - return Stream.of( - Arguments.of(Move.ROCK, Move.SCISSORS, WIN), - Arguments.of(Move.ROCK, Move.PAPER, LOOSE) - ); - } - - @ParameterizedTest - @MethodSource("scenario") - void shouldReturnWinResult_whenPlayerPlaysRock(Move playerMove, Move cpuMove, String expectedResult) throws Exception { - FakeCpuConfiguration.cpuPick.setNextMove(cpuMove); - mockMvc.perform( - post(PLAY_ENDPOINT) - .content(String.format(""" - { - "name": "joe", - "move": "%s" - } - """, playerMove)) - .contentType(MediaType.APPLICATION_JSON_VALUE) - ).andExpect(status().isOk()) - .andExpect(jsonPath("$.result").value(expectedResult)) - .andExpect(jsonPath("$.cpu").value(cpuMove.name())); - } - -} diff --git a/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/RockPaperScissorsPlayApplicationTest.java b/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/RockPaperScissorsPlayApplicationTest.java deleted file mode 100644 index 1b2ce9b..0000000 --- a/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/RockPaperScissorsPlayApplicationTest.java +++ /dev/null @@ -1,63 +0,0 @@ -package fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play; - - -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play.domain.Move; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play.spi.FakeCpuPicker; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.stat.StatSave; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.stat.domain.StatSaver; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.json.BasicJsonTester; -import org.springframework.boot.test.web.client.TestRestTemplate; -import org.springframework.context.annotation.Import; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.modulith.test.ApplicationModuleTest; -import org.springframework.test.context.bean.override.mockito.MockitoBean; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT; - -@ApplicationModuleTest( - webEnvironment = RANDOM_PORT -) -@Import(FakeCpuConfiguration.class) -class RockPaperScissorsPlayApplicationTest { - - @Autowired - private TestRestTemplate restTemplate; - - @MockitoBean - StatSave statSave; - - private final BasicJsonTester json = new BasicJsonTester(this.getClass()); - - @Test - void should_play_rock_paper_scissors() { - FakeCpuConfiguration.cpuPick.setNextMove(Move.PAPER); - - HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON); - - String requestBody = """ - { - "name": "joe", - "move": "SCISSORS" - } - """; - - HttpEntity request = new HttpEntity<>(requestBody, headers); - - var response = restTemplate.postForEntity("/play", request, String.class); - - assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK); - - assertThat(json.from(response.getBody())).extractingJsonPathStringValue("@.result").isEqualTo("WIN"); - assertThat(json.from(response.getBody())).extractingJsonPathStringValue("@.cpu").isEqualTo("PAPER"); - verify(statSave, times(1)).addWin("joe"); - } -} diff --git a/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/domain/MoveTest.java b/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/domain/MoveTest.java deleted file mode 100644 index d1f66a3..0000000 --- a/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/domain/MoveTest.java +++ /dev/null @@ -1,42 +0,0 @@ -package fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play.domain; - -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.Arguments; -import org.junit.jupiter.params.provider.MethodSource; - -import java.util.stream.Stream; - -import static org.junit.jupiter.api.Assertions.*; - -class MoveTest { - - @Test - void should_check_move_size(){ - Assertions.assertEquals(4, Move.values().length); - } - - @ParameterizedTest(name = "{0} should beat {1}") - @MethodSource("winnable") - void should_win(Move move1, Move move2) { - assertTrue(move1.beats(move2)); - } - - @ParameterizedTest(name = "{1} should not beat {0}") - @MethodSource("winnable") - void should_loose(Move move1, Move move2) { - assertFalse(move2.beats(move1)); - } - - static Stream winnable(){ - return Stream.of( - Arguments.of(Move.ROCK,Move.SCISSORS), - Arguments.of(Move.PAPER,Move.ROCK), - Arguments.of(Move.PAPER,Move.WELL), - Arguments.of(Move.SCISSORS,Move.PAPER), - Arguments.of(Move.WELL,Move.SCISSORS), - Arguments.of(Move.WELL,Move.ROCK) - ); - } -} diff --git a/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/domain/RockPaperScissorsPlayTest.java b/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/domain/RockPaperScissorsPlayTest.java deleted file mode 100644 index 019b992..0000000 --- a/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/domain/RockPaperScissorsPlayTest.java +++ /dev/null @@ -1,42 +0,0 @@ -package fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play.domain; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; - -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play.RockPaperScissorsPlay; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play.spi.FakeCpuPicker; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.stat.domain.StatSaver; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.junit.jupiter.MockitoExtension; - -@ExtendWith(MockitoExtension.class) -public class RockPaperScissorsPlayTest { - private final StatSaver statSaver = mock(StatSaver.class); - private final FakeCpuPicker cpuPick = new FakeCpuPicker(); - private final RockPaperScissorsPlay play = new RockPaperScissorsPlayer(cpuPick, statSaver); - - @Test - void should_win_a_game(){ - cpuPick.setNextMove(Move.PAPER); - RoundResult roundResult = play.playRound("joe", Move.SCISSORS); - - assertEquals("WIN", roundResult.result()); - assertEquals("joe", roundResult.opponent()); - assertEquals(Move.PAPER, roundResult.cpuChoice()); - verify(statSaver, times(1)).addWin("joe"); - } - - @Test - void should_loose_a_game(){ - cpuPick.setNextMove(Move.ROCK); - RoundResult roundResult = play.playRound("joe", Move.SCISSORS); - - assertEquals("LOOSE", roundResult.result()); - assertEquals("joe", roundResult.opponent()); - assertEquals(Move.ROCK, roundResult.cpuChoice()); - verify(statSaver, times(0)).addWin("joe"); - } -} diff --git a/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/spi/FakeCpuPicker.java b/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/spi/FakeCpuPicker.java deleted file mode 100644 index ebb3228..0000000 --- a/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/spi/FakeCpuPicker.java +++ /dev/null @@ -1,19 +0,0 @@ -package fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play.spi; - -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.ddd.Stub; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play.domain.Move; - -@Stub -public class FakeCpuPicker implements CpuPick { - - private Move nextMove = Move.ROCK; // valeur par défaut - - public void setNextMove(Move move) { - this.nextMove = move; - } - - @Override - public Move pick() { - return nextMove; - } -} \ No newline at end of file diff --git a/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/spi/RandomCpuPickerTest.java b/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/spi/RandomCpuPickerTest.java deleted file mode 100644 index 1f3d372..0000000 --- a/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/play/spi/RandomCpuPickerTest.java +++ /dev/null @@ -1,28 +0,0 @@ -package fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play.spi; - -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.play.domain.Move; -import org.junit.jupiter.api.Test; - -import java.util.HashSet; -import java.util.Set; - -import static org.junit.jupiter.api.Assertions.*; - -class RandomCpuPickerTest { - - @Test - void shouldReturnAllPossibleMoves() { - RandomCpuPicker picker = new RandomCpuPicker(); - Set obtainedMoves = new HashSet<>(); - - for (int i = 0; i < 1000; i++) { - obtainedMoves.add(picker.pick()); - } - - assertEquals(4, obtainedMoves.size()); - assertTrue(obtainedMoves.contains(Move.ROCK)); - assertTrue(obtainedMoves.contains(Move.PAPER)); - assertTrue(obtainedMoves.contains(Move.SCISSORS)); - assertTrue(obtainedMoves.contains(Move.WELL)); - } -} \ No newline at end of file diff --git a/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/stat/StatApplicationTest.java b/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/stat/StatApplicationTest.java deleted file mode 100644 index 2a57b43..0000000 --- a/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/stat/StatApplicationTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package fr.iut_fbleau.info.but3.automation.rock_paper_scissors.stat; - - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.json.BasicJsonTester; -import org.springframework.boot.test.web.client.TestRestTemplate; -import org.springframework.http.HttpStatus; -import org.springframework.modulith.test.ApplicationModuleTest; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT; - -@ApplicationModuleTest( - webEnvironment = RANDOM_PORT -) -class StatApplicationTest { - @Autowired - private TestRestTemplate restTemplate; - - private final BasicJsonTester json = new BasicJsonTester(this.getClass()); - - @Test - void should_get_board_with_player_stats() { - var response = restTemplate.getForEntity("/stat", String.class); - - assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK); - - assertThat(json.from(response.getBody())).extractingJsonPathArrayValue("@.stats").hasSize(2); - assertThat(json.from(response.getBody())).extractingJsonPathStringValue("@.stats[0].name").isEqualTo("eoj"); - assertThat(json.from(response.getBody())).extractingJsonPathNumberValue("@.stats[0].wins").isEqualTo(3); - assertThat(json.from(response.getBody())).extractingJsonPathStringValue("@.stats[1].name").isEqualTo("joe"); - assertThat(json.from(response.getBody())).extractingJsonPathNumberValue("@.stats[1].wins").isEqualTo(1); - } -} diff --git a/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/stat/StatBoardGetterTest.java b/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/stat/StatBoardGetterTest.java deleted file mode 100644 index aec2ebf..0000000 --- a/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/stat/StatBoardGetterTest.java +++ /dev/null @@ -1,30 +0,0 @@ -package fr.iut_fbleau.info.but3.automation.rock_paper_scissors.stat; - -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.stat.domain.StatBoard; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.stat.domain.StatBoardGetter; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.stat.spi.stub.InMemoryStatRepository; -import java.util.LinkedHashMap; -import org.junit.jupiter.api.Test; - -import java.util.HashMap; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; - -class StatBoardGetterTest { - - @Test - void should_get_stat_board() { - HashMap stats = new LinkedHashMap<>(); - stats.put("eoj", 5); - stats.put("joe", 1); - InMemoryStatRepository statRepository = new InMemoryStatRepository(stats); - - StatBoardGet statBoardGet = new StatBoardGetter(statRepository); - - StatBoard statBoard = statBoardGet.board(); - - assertNotNull(statBoard); - assertEquals(stats, statBoard.stats()); - } -} diff --git a/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/stat/StatControllerTest.java b/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/stat/StatControllerTest.java deleted file mode 100644 index f2b337d..0000000 --- a/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/stat/StatControllerTest.java +++ /dev/null @@ -1,50 +0,0 @@ -package fr.iut_fbleau.info.but3.automation.rock_paper_scissors.stat; - - -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.ddd.Stub; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.stat.configuration.StatConfiguration; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.stat.spi.StatRepository; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.stat.web.StatController; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; -import org.springframework.boot.test.context.TestConfiguration; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.FilterType; -import org.springframework.context.annotation.Import; -import org.springframework.test.web.servlet.MockMvc; - -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; - -@WebMvcTest(StatController.class) -@Import(StatConfiguration.class) -class StatControllerTest { - - private static final String STAT_ENDPOINT = "/stat"; - - @Autowired - MockMvc mockMvc; - - @Autowired - StatRepository statRepository; - - @Test - void should_get_board_with_player_stats() throws Exception { - - mockMvc.perform(get(STAT_ENDPOINT)) - .andExpect(status().isOk()) - .andExpect(jsonPath("$.stats").isArray()) - .andExpect(jsonPath("$.stats[0].name").value("eoj")) - .andExpect(jsonPath("$.stats[0].wins").value(3)); - } - - @TestConfiguration - @ComponentScan( - basePackageClasses = {StatRepository.class}, - includeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION, classes = {Stub.class})}) - static class StubConfiguration { - } - -} diff --git a/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/stat/StatSaverTest.java b/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/stat/StatSaverTest.java deleted file mode 100644 index fbe8d62..0000000 --- a/src/test/java/fr/iut_fbleau/info/but3/automation/rock_paper_scissors/stat/StatSaverTest.java +++ /dev/null @@ -1,25 +0,0 @@ -package fr.iut_fbleau.info.but3.automation.rock_paper_scissors.stat; - -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.stat.domain.StatSaver; -import fr.iut_fbleau.info.but3.automation.rock_paper_scissors.stat.spi.stub.InMemoryStatRepository; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.CsvSource; - -import java.util.HashMap; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -class StatSaverTest { - @ParameterizedTest(name = "name = {0}, initial = {1}, expected = {2}") - @CsvSource({"joe,0,1", "eoj,2,3"}) - void should_save(String name, int initial, int expected) { - InMemoryStatRepository statRepository = new InMemoryStatRepository(new HashMap<>(Map.of(name, initial))); - StatSave statSave = new StatSaver(statRepository); - - statSave.addWin(name); - - assertEquals(expected, statRepository.get(name)); - } -} -