Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • xgulcik/pa165-formula-one-team
1 result
Show changes
package cz.muni.pa165.race.rest;
import cz.muni.pa165.common_library.dtos.CarResponseDto;
import cz.muni.pa165.common_library.dtos.DriverDto;
import cz.muni.pa165.common_library.dtos.Location;
import cz.muni.pa165.common_library.dtos.RaceDto;
import cz.muni.pa165.race.data.model.Race;
/**
* @author Oto Stanko
* Util functions for race tests.
*/
public class RaceTestUtil {
/**
* Returns a created race.
*
* @return a race.
*/
public static Race getDaoRace() {
return Race.builder()
.id(1L)
......@@ -31,4 +37,11 @@ public class RaceTestUtil {
.build();
}
public static CarResponseDto getCarDao() {
return new CarResponseDto(1L, null, null, 1L);
}
public static DriverDto getDriverDao() {
return new DriverDto(1L, "Name", "Surname");
}
}
package cz.muni.pa165.race.rest;
import cz.muni.pa165.race.data.model.Season;
import cz.muni.pa165.race.data.repository.SeasonRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import java.util.List;
import java.util.Optional;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.BDDMockito.given;
......@@ -25,6 +11,24 @@ import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import cz.muni.pa165.race.data.model.Race;
import cz.muni.pa165.race.data.model.Season;
import cz.muni.pa165.race.data.repository.RaceRepository;
import cz.muni.pa165.race.data.repository.SeasonRepository;
import java.util.List;
import java.util.Optional;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
/**
* Tests for season controller.
*/
@SpringBootTest
@AutoConfigureMockMvc
public class SeasonControllerTest {
......@@ -36,7 +40,11 @@ public class SeasonControllerTest {
}
""";
private String expectedMessagePost = "{\"id\":1,\"year\":2023,\"races\":[]}";
private String expectedMessageDelete = "Season with id: 1was succesfully deleted";
private String expectedMessageGet = "{\"id\":1,\"year\":2023,\"races\":[]}";
private String expectedMessageGetAll = "[{\"id\":1,\"year\":2023,\"races\":[]}]";
private String expectedMessageAddRace = "{\"id\":1,\"year\":2023,\"races\":[{\""
+ "id\":1,\"name\":\"Monaco Grand Prix 2023\"}]}";
@Autowired
private MockMvc mockMvc;
......@@ -44,14 +52,20 @@ public class SeasonControllerTest {
@MockBean
private SeasonRepository seasonRepository;
@MockBean
private RaceRepository raceRepository;
@BeforeEach
void setup() {
Season seasonDao = SeasonTestUtil.getDaoSeason();
Race raceDao = RaceTestUtil.getDaoRace();
given(seasonRepository.save(any(Season.class))).willReturn(
seasonDao);
given(seasonRepository.findById(anyLong())).willReturn(
Optional.of(seasonDao));
given(seasonRepository.findAll()).willReturn(List.of(seasonDao));
given(raceRepository.findById(anyLong())).willReturn(
Optional.of(raceDao));
}
......@@ -60,7 +74,6 @@ public class SeasonControllerTest {
var request = post("/season/")
.content(bodyContent)
.contentType(MediaType.APPLICATION_JSON_VALUE);
this.mockMvc.perform(request)
.andDo(print())
.andExpect(status().isOk())
......@@ -69,39 +82,33 @@ public class SeasonControllerTest {
@Test
void deleteRace() throws Exception {
String expectedMessage = "Season with id: 1was succesfully deleted";
var requestDelete = delete("/season/")
.param("seasonId", "1")
.contentType(MediaType.APPLICATION_JSON_VALUE);
this.mockMvc.perform(requestDelete)
.andDo(print())
.andExpect(status().isOk())
.andExpect(content().string(expectedMessage));
.andExpect(content().string(expectedMessageDelete));
}
@Test
void getExistingRace() throws Exception {
String expectedMessage = "{\"id\":1,\"year\":2023,\"races\":[]}";
var requestGet = get("/season/id")
.param("seasonId", "1")
.contentType(MediaType.APPLICATION_JSON_VALUE);
this.mockMvc.perform(requestGet)
.andDo(print())
.andExpect(status().isOk())
.andExpect(content().string(expectedMessage));
.andExpect(content().string(expectedMessageGet));
}
@Test
void getAllRaces() throws Exception {
var requestGet = get("/season/");
String expectedMessage = "[{\"id\":1,\"year\":2023,\"races\":[]}]";
this.mockMvc.perform(requestGet)
.andDo(print())
.andExpect(status().isOk())
.andExpect(content().string(expectedMessage));
.andExpect(content().string(expectedMessageGetAll));
}
@Test
......@@ -109,11 +116,9 @@ public class SeasonControllerTest {
var requestPatch = patch("/season/addRace")
.param("seasonId", "1")
.param("raceId", "1");
String expectedMessage = "[{\"id\":1,\"year\":2023,\"races\":[]}]";
this.mockMvc.perform(requestPatch)
.andDo(print())
.andExpect(status().isOk())
.andExpect(content().string(expectedMessage));
.andExpect(content().string(expectedMessageAddRace));
}
}
......@@ -4,9 +4,14 @@ import cz.muni.pa165.race.data.model.Season;
import java.util.ArrayList;
/**
* @author Oto Stanko
* Utils for season tests.
*/
public class SeasonTestUtil {
/**
* Returns a created Season.
*
* @return a season.
*/
public static Season getDaoSeason() {
return Season.builder()
.id(1L)
......