INFRA-3970 | Dhruv | fixes tests for egress controller

This commit is contained in:
dhruvjoshi
2024-12-12 11:54:13 +05:30
parent 8565d7faab
commit 8d09ce0500
2 changed files with 67 additions and 27 deletions

View File

@@ -24,6 +24,7 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders;
@ExtendWith(MockitoExtension.class)
class EgressControllerTest {
private MockMvc mockMvc;
@Mock
@@ -38,32 +39,72 @@ class EgressControllerTest {
return egressDto;
}
private static EgressUpdateRequestData getEgressUpdateRequestData(String cluster,
List<EgressDto> egressData) {
private static EgressDto getEgressDto(
String host, String port, String team,
String vertical, String manifestEnvironment, String manifestName
) {
EgressDto egressDto = new EgressDto();
egressDto.setHost(host);
egressDto.setPort(port);
egressDto.setTeam(team);
egressDto.setVertical(vertical);
egressDto.setManifestEnvironment(manifestEnvironment);
egressDto.setManifestName(manifestName);
return egressDto;
}
private static EgressUpdateRequestData getEgressUpdateRequestData(
String cluster,
List<EgressDto> egressData
) {
EgressUpdateRequestData egressUpdateRequestData = new EgressUpdateRequestData();
egressUpdateRequestData.setCluster(cluster);
egressUpdateRequestData.setEgressData(egressData);
return egressUpdateRequestData;
}
private static List<EgressDto> getEgressDtoList() {
private static List<EgressDto> getRequestEgressDtoList() {
return List.of(getEgressDto("test1.com", "8080", "team1", "vertical1", "env1",
"manifest1"),
getEgressDto("test2.com", "8081", "team2", "vertical2", "evn2",
"manifest2"),
getEgressDto("test3.com", "8082", "team3", "vertical3", "env3",
"manifest3"));
}
private static List<EgressDto> getResponseEgressDtoList() {
return List.of(getEgressDto("test1.com", "8080"),
getEgressDto("test2.com", "8081"),
getEgressDto("test3.com", "8082"));
}
private static Egress getEgress(String host, String port, String cluster) {
private static Egress getEgress(
String host, String port, String cluster, String team,
String vertical, String manifestEnvironment, String manifestName
) {
Egress egress = new Egress();
egress.setHost(host);
egress.setPort(port);
egress.setCluster(cluster);
egress.setTeam(team);
egress.setVertical(vertical);
egress.setManifestEnvironment(manifestEnvironment);
egress.setManifestName(manifestName);
return egress;
}
private static List<Egress> getEgressList() {
return List.of(getEgress("test1.com", "8080", "spike.np.navi-tech.in"),
getEgress("test2.com", "8081", "spike.np.navi-tech.in"),
getEgress("test3.com", "8082", "spike.np.navi-tech.in"));
private static List<Egress> getEgressList() {
return List.of(
getEgress("test1.com", "8080", "spike.np.navi-tech.in",
"team1", "vertical1", "env1",
"manifest1"),
getEgress("test2.com", "8081", "prod.cmd.navi-tech.in",
"team2", "vertical2", "evn2",
"manifest2"),
getEgress("test3.com", "8082", "aps1.prod.navi-tech.in",
"team3", "vertical3", "env3",
"manifest3"));
}
@BeforeEach
@@ -78,10 +119,11 @@ class EgressControllerTest {
@Nested
@DisplayName("GET /api/egress")
class GetEgressTest {
@Test
@DisplayName("GET /api/egress - 200")
void shouldGetEgress() throws Exception {
List<EgressDto> egresses = getEgressDtoList();
List<EgressDto> egresses = getResponseEgressDtoList();
String expectedJson = objectMapper.writeValueAsString(egresses);
final String cluster = "test-cluster";
when(egressService.getEgresses("test-cluster")).thenReturn(egresses);
@@ -113,7 +155,7 @@ class EgressControllerTest {
@Test
@DisplayName("POST /api/egress - 200")
void shouldUpdateEgress() throws Exception {
List<EgressDto> egresses = getEgressDtoList();
List<EgressDto> egresses = getRequestEgressDtoList();
EgressUpdateRequest egressUpdateRequest = new EgressUpdateRequest();
List<EgressUpdateRequestData> egressUpdateRequestData =
List.of(getEgressUpdateRequestData("spike.np.navi-tech.in", egresses));
@@ -136,7 +178,7 @@ class EgressControllerTest {
@Test
@DisplayName("POST /api/egress - 400 Bad Request Reason: Invalid cluster name")
void shouldThrowBadRequestOnInvalidCluster() throws Exception {
List<EgressDto> egresses = getEgressDtoList();
List<EgressDto> egresses = getRequestEgressDtoList();
List<EgressUpdateRequestData> egressUpdateRequestData =
List.of(getEgressUpdateRequestData("spke.np.navi-tech.in", egresses));
EgressUpdateRequest egressUpdateRequest = new EgressUpdateRequest();
@@ -165,7 +207,7 @@ class EgressControllerTest {
@Test
@DisplayName("POST /api/egress - 500 Internal Server Error")
void shouldUpdateEgressInterServerError() throws Exception {
List<EgressDto> egresses = getEgressDtoList();
List<EgressDto> egresses = getRequestEgressDtoList();
List<EgressUpdateRequestData> egressUpdateRequestData =
List.of(getEgressUpdateRequestData("spike.np.navi-tech.in", egresses));
EgressUpdateRequest egressUpdateRequest = new EgressUpdateRequest();
@@ -173,8 +215,6 @@ class EgressControllerTest {
boolean dryRun = true;
when(egressService.updateEgresses(egressUpdateRequestData, dryRun))
.thenThrow(new RuntimeException());
String expectedJson = objectMapper.writeValueAsString(egressUpdateRequest);
mockMvc.perform(MockMvcRequestBuilders.post("/api/egress?dryRun=" + dryRun)
.contentType(MediaType.APPLICATION_JSON)
.content(objectMapper.writeValueAsString(egressUpdateRequest)))

View File

@@ -34,13 +34,7 @@ class EgressServiceImplTest {
private ObjectMapper objectMapper;
private EgressService egressService;
private static EgressDto getEgressDto(String host, String port) {
EgressDto egressDto = new EgressDto();
egressDto.setHost(host);
egressDto.setPort(port);
return egressDto;
}
private static EgressDto getEgressDto(
String host, String port, String team,
@@ -122,11 +116,14 @@ class EgressServiceImplTest {
void shouldAddEgresses() {
List<EgressUpdateRequestData> egressUpdateRequestData = new ArrayList<>();
egressUpdateRequestData.add(getEgressUpdateRequestData("spike.np.navi-tech.in",
List.of(getEgressDto("test1.com", "8080"))));
List.of(getEgressDto("test1.com", "8080", "team1", "vertical1", "env1",
"manifest1"))));
egressUpdateRequestData.add(getEgressUpdateRequestData("prod.cmd.navi-tech.in",
List.of(getEgressDto("test2.com", "8081"))));
List.of(getEgressDto("test2.com", "8081", "team2", "vertical2", "evn2",
"manifest2"))));
egressUpdateRequestData.add(getEgressUpdateRequestData("aps1.prod.navi-tech.in",
List.of(getEgressDto("test3.com", "8082"))));
List.of(getEgressDto("test3.com", "8082", "team3", "vertical3", "env3",
"manifest3"))));
List<Egress> egresses = getEgressList();
Set<Egress> newEgresses = new HashSet<>(egresses);
boolean dryRun = false;
@@ -145,11 +142,14 @@ class EgressServiceImplTest {
void shouldNotUpdateRepositoryWhenDryRunIsTrue() {
List<EgressUpdateRequestData> egressUpdateRequestData = new ArrayList<>();
egressUpdateRequestData.add(getEgressUpdateRequestData("spike.np.navi-tech.in",
List.of(getEgressDto("test1.com", "8080"))));
List.of(getEgressDto("test1.com", "8080", "team1", "vertical1", "env1",
"manifest1"))));
egressUpdateRequestData.add(getEgressUpdateRequestData("prod.cmd.navi-tech.in",
List.of(getEgressDto("test2.com", "8081"))));
List.of(getEgressDto("test2.com", "8081", "team2", "vertical2", "evn2",
"manifest2"))));
egressUpdateRequestData.add(getEgressUpdateRequestData("aps1.prod.navi-tech.in",
List.of(getEgressDto("test3.com", "8082"))));
List.of(getEgressDto("test3.com", "8082", "team3", "vertical3", "env3",
"manifest3"))));
List<Egress> egresses = getEgressList();
Set<Egress> newEgresses = new HashSet<>(egresses);
boolean dryRun = true;