use of com.endava.cats.model.FuzzingData in project cats by Endava.
the class NonRestHttpMethodsFuzzerTest method shouldCallServiceAndReportWarnWhenServiceRespondsWith400.
@Test
void shouldCallServiceAndReportWarnWhenServiceRespondsWith400() {
FuzzingData data = FuzzingData.builder().pathItem(new PathItem()).reqSchema(new StringSchema()).build();
CatsResponse catsResponse = CatsResponse.builder().body("{}").responseCode(400).httpMethod("POST").build();
Mockito.when(serviceCaller.call(Mockito.any())).thenReturn(catsResponse);
nonRestHttpMethodsFuzzer.fuzz(data);
Mockito.verify(testCaseListener, Mockito.times(17)).reportWarn(Mockito.any(), Mockito.anyString(), AdditionalMatchers.aryEq(new Object[] { "POST", 405, 400 }));
}
use of com.endava.cats.model.FuzzingData in project cats by Endava.
the class NonRestHttpMethodsFuzzerTest method shouldCallServiceAndReportInfoWhenServiceRespondsWith405.
@Test
void shouldCallServiceAndReportInfoWhenServiceRespondsWith405() {
FuzzingData data = FuzzingData.builder().pathItem(new PathItem()).reqSchema(new StringSchema()).build();
CatsResponse catsResponse = CatsResponse.builder().body("{}").responseCode(405).httpMethod("POST").build();
Mockito.when(serviceCaller.call(Mockito.any())).thenReturn(catsResponse);
nonRestHttpMethodsFuzzer.fuzz(data);
Mockito.verify(testCaseListener, Mockito.times(17)).reportInfo(Mockito.any(), Mockito.anyString(), AdditionalMatchers.aryEq(new Object[] { "POST", 405 }));
}
use of com.endava.cats.model.FuzzingData in project cats by Endava.
the class NonRestHttpMethodsFuzzerTest method shouldCallServiceAndReportErrorWhenServiceRespondsWith200.
@Test
void shouldCallServiceAndReportErrorWhenServiceRespondsWith200() {
FuzzingData data = FuzzingData.builder().pathItem(new PathItem()).reqSchema(new StringSchema()).build();
CatsResponse catsResponse = CatsResponse.builder().body("{}").responseCode(200).httpMethod("POST").build();
Mockito.when(serviceCaller.call(Mockito.any())).thenReturn(catsResponse);
nonRestHttpMethodsFuzzer.fuzz(data);
Mockito.verify(testCaseListener, Mockito.times(17)).reportError(Mockito.any(), Mockito.anyString(), AdditionalMatchers.aryEq(new Object[] { "POST", 405, 200 }));
}
use of com.endava.cats.model.FuzzingData in project cats by Endava.
the class TestCaseListenerTest method shouldCallInfoInsteadOfWarnWhenIgnoreCodeSupplied.
@ParameterizedTest
@CsvSource({ "true,false,false", "false,true,false", "true,true,true" })
void shouldCallInfoInsteadOfWarnWhenIgnoreCodeSupplied(boolean ignoreResponseCodes, boolean ignoreUndocumentedRespCode, boolean ignoreResponseBodyCheck) {
Mockito.when(ignoreArguments.isIgnoredResponseCode(Mockito.anyString())).thenReturn(ignoreResponseCodes);
Mockito.when(ignoreArguments.isIgnoreResponseCodeUndocumentedCheck()).thenReturn(ignoreUndocumentedRespCode);
Mockito.when(ignoreArguments.isIgnoreResponseBodyCheck()).thenReturn(ignoreResponseBodyCheck);
CatsResponse response = CatsResponse.builder().body("{}").responseCode(200).build();
FuzzingData data = Mockito.mock(FuzzingData.class);
Mockito.when(data.getResponseCodes()).thenReturn(Set.of("300", "400"));
Mockito.when(data.getResponses()).thenReturn(Map.of("300", Collections.emptyList()));
prepareTestCaseListenerSimpleSetup(response);
testCaseListener.reportResult(logger, data, response, ResponseCodeFamily.TWOXX);
Mockito.verify(executionStatisticsListener, Mockito.never()).increaseWarns();
Mockito.verify(executionStatisticsListener, Mockito.never()).increaseErrors();
Mockito.verify(executionStatisticsListener, Mockito.never()).increaseSkipped();
Mockito.verify(executionStatisticsListener, Mockito.times(1)).increaseSuccess();
MDC.remove(TestCaseListener.ID);
}
use of com.endava.cats.model.FuzzingData in project cats by Endava.
the class TestCaseListenerTest method givenADocumentedResponseThatIsNotExpected_whenReportingTheResult_thenTheResultIsCorrectlyReported.
@Test
void givenADocumentedResponseThatIsNotExpected_whenReportingTheResult_thenTheResultIsCorrectlyReported() {
FuzzingData data = Mockito.mock(FuzzingData.class);
CatsResponse response = Mockito.mock(CatsResponse.class);
Mockito.when(response.getBody()).thenReturn("{'test':1}");
Mockito.when(data.getResponseCodes()).thenReturn(Collections.singleton("400"));
Mockito.when(data.getResponses()).thenReturn(Collections.singletonMap("200", Collections.singletonList("test")));
Mockito.when(response.responseCodeAsString()).thenReturn("400");
testCaseListener.createAndExecuteTest(logger, fuzzer, () -> testCaseListener.reportResult(logger, data, response, ResponseCodeFamily.TWOXX));
Mockito.verify(executionStatisticsListener, Mockito.times(1)).increaseErrors();
Mockito.verify(executionStatisticsListener, Mockito.never()).increaseSuccess();
}
Aggregations