#37 added input validation to the trigger rescheduling

This commit is contained in:
Fabio Formosa
2021-11-09 00:14:49 +01:00
parent 34f21a58c9
commit 3df1abd46e
2 changed files with 11 additions and 2 deletions

View File

@@ -44,7 +44,7 @@ public class TriggerController {
}
@PutMapping("/{name}")
public TriggerDTO rescheduleTrigger(@PathVariable String name, @RequestBody SchedulerConfigParam config) throws SchedulerException {
public TriggerDTO rescheduleTrigger(@PathVariable String name, @Valid @RequestBody SchedulerConfigParam config) throws SchedulerException {
log.info("TRIGGER - RESCHEDULING the trigger {} {}", name, config);
TriggerDTO triggerDTO = schedulerService.rescheduleTrigger(name, config);
log.info("TRIGGER - RESCHEDULED the trigger {}", triggerDTO);

View File

@@ -57,7 +57,7 @@ class TriggerControllerTest {
@ParameterizedTest
@ArgumentsSource(InvalidSchedulerConfigParamProvider.class)
void givenAnInvalidSchedulerConfigParam_whenPosted_thenAnErrorIsReturned(SchedulerConfigParam invalidSchedulerConfigParam) throws Exception {
void givenAnInvalidSchedulerConfigParam_whenRequestedANewTrigger_thenAnErrorIsReturned(SchedulerConfigParam invalidSchedulerConfigParam) throws Exception {
mockMvc.perform(post(TriggerController.TRIGGER_CONTROLLER_BASE_URL + "/mytrigger")
.contentType(MediaType.APPLICATION_JSON)
.content(TestUtils.toJson(invalidSchedulerConfigParam)))
@@ -87,6 +87,15 @@ class TriggerControllerTest {
.andExpect(MockMvcResultMatchers.content().json(TestUtils.toJson(expectedTriggerDTO)));
}
@ParameterizedTest
@ArgumentsSource(InvalidSchedulerConfigParamProvider.class)
void givenAnInvalidSchedulerConfigParam_whenATriggerIsRescheduled_thenAnErrorIsReturned(SchedulerConfigParam invalidSchedulerConfigParam) throws Exception {
mockMvc.perform(put(TriggerController.TRIGGER_CONTROLLER_BASE_URL + "/mytrigger")
.contentType(MediaType.APPLICATION_JSON)
.content(TestUtils.toJson(invalidSchedulerConfigParam)))
.andExpect(MockMvcResultMatchers.status().is4xxClientError());
}
private SchedulerConfigParam buildSimpleSchedulerConfigParam() {
return SchedulerConfigParam.builder().maxCount(20).triggerPerDay(20000L).build();
}