Skip to content

Commit

Permalink
feat(server, engine): fix PR, split method with different arguments
Browse files Browse the repository at this point in the history
  • Loading branch information
BIDOU95 committed Aug 1, 2024
1 parent badc6a4 commit ee44784
Show file tree
Hide file tree
Showing 6 changed files with 65 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,9 @@ public List<CampaignExecutionReportDto> executeCampaignByName(@PathVariable("cam
List<CampaignExecution> reports;
String userId = userService.currentUser().getId();
if (environment.isPresent()) {
reports = campaignExecutionEngine.executeByName(campaignName, environment.get(), null, userId);
reports = campaignExecutionEngine.executeByNameWithEnv(campaignName, environment.get(), userId);
} else {
reports = campaignExecutionEngine.executeByName(campaignName, null, null, userId);
reports = campaignExecutionEngine.executeByName(campaignName, userId);
}
return reports.stream()
.map(CampaignExecutionReportMapper::toDto)
Expand All @@ -106,9 +106,9 @@ public byte[] executeCampaignsByPatternWithSurefireReport(HttpServletResponse re
response.addHeader("Content-Disposition", "attachment; filename=\"surefire-report.zip\"");
List<CampaignExecution> reports;
if (environment.isPresent()) {
reports = campaignExecutionEngine.executeByName(campaignPattern, environment.get(), null, userId);
reports = campaignExecutionEngine.executeByNameWithEnv(campaignPattern, environment.get(), userId);
} else {
reports = campaignExecutionEngine.executeByName(campaignPattern, null, null, userId);
reports = campaignExecutionEngine.executeByName(campaignPattern, userId);
}
return surefireCampaignExecutionReportBuilder.createReport(reports);
}
Expand All @@ -126,7 +126,7 @@ public void stopExecution(@PathVariable("executionId") Long executionId) {
public CampaignExecutionReportDto executeCampaignById(@PathVariable("campaignId") Long campaignId, @PathVariable("env") Optional<String> environment, @RequestParam("dataset") Optional<String> dataset) {
String userId = userService.currentUser().getId();
CampaignExecution report;
report = campaignExecutionEngine.executeById(campaignId, environment.orElse(null), dataset.orElse(null), userId);
report = campaignExecutionEngine.executeByIdWithEnvAndDataset(campaignId, environment.orElse(null), dataset.orElse(null), userId);
return toDto(report);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ public CampaignExecution getLastCampaignExecution(Long campaignId) {
return campaignExecutionRepository.getLastExecution(campaign.id);
}

public List<CampaignExecution> executeByName(String campaignName, String environment, String dataset, String userId) {
public List<CampaignExecution> executeByNameWithEnvAndDataset(String campaignName, String environment, String dataset, String userId) {
List<Campaign> campaigns = campaignRepository.findByName(campaignName);
return campaigns.stream()
.map(campaign -> selectExecutionEnvironment(campaign, environment))
Expand All @@ -116,14 +116,38 @@ public List<CampaignExecution> executeByName(String campaignName, String environ
.collect(Collectors.toList());
}

public CampaignExecution executeById(Long campaignId, String environment, String dataset, String userId) {
public List<CampaignExecution> executeByNameWithDataset(String campaignName, String dataset, String userId) {
return executeByNameWithEnvAndDataset(campaignName, null, dataset, userId);
}

public List<CampaignExecution> executeByNameWithEnv(String campaignName, String environment, String userId) {
return executeByNameWithEnvAndDataset(campaignName, environment, null, userId);
}

public List<CampaignExecution> executeByName(String campaignName, String userId) {
return executeByNameWithEnvAndDataset(campaignName, null, null, userId);
}

public CampaignExecution executeByIdWithEnvAndDataset(Long campaignId, String environment, String dataset, String userId) {
return ofNullable(campaignRepository.findById(campaignId))
.map(campaign -> selectExecutionEnvironment(campaign, environment))
.map(campaign -> selectExecutionDataset(campaign, dataset))
.map(campaign -> executeScenarioInCampaign(campaign, userId))
.orElseThrow(() -> new CampaignNotFoundException(campaignId));
}

public CampaignExecution executeByIdWithDataset(Long campaignId, String dataset, String userId) {
return executeByIdWithEnvAndDataset(campaignId, null, dataset, userId);
}

public CampaignExecution executeByIdWithEnv(Long campaignId, String environment, String userId) {
return executeByIdWithEnvAndDataset(campaignId, environment, null, userId);
}

public CampaignExecution executeById(Long campaignId, String userId) {
return executeByIdWithEnvAndDataset(campaignId, null, null, userId);
}

public Optional<CampaignExecution> currentExecution(Long campaignId, String environment) {
return campaignExecutionRepository.currentExecutions(campaignId)
.stream()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ private Callable<Void> executeScheduledCampaignById(List<Long> campaignsId) {
campaignsId.forEach(campaignId -> {
try {
LOGGER.info("Execute campaign with id [{}]", campaignId);
campaignExecutionEngine.executeById(campaignId, null, null, SCHEDULER_EXECUTE_USER);
campaignExecutionEngine.executeById(campaignId, SCHEDULER_EXECUTE_USER);
} catch (Exception e) {
LOGGER.error("Error during campaign [{}] execution", campaignId, e);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,7 @@ public void should_execute_scenario_in_parallel() {
@Test
public void should_throw_when_no_campaign_found_on_execute_by_id() {
when(campaignRepository.findById(anyLong())).thenReturn(null);
assertThatThrownBy(() -> sut.executeById(generateId(), null, null, ""))
assertThatThrownBy(() -> sut.executeById(generateId(), ""))
.isInstanceOf(CampaignNotFoundException.class);
}

Expand Down Expand Up @@ -328,8 +328,8 @@ public void should_generate_campaign_execution_id_when_executed() {
when(campaignRepository.findById(campaign.id)).thenReturn(campaign);

// When
sut.executeById(campaign.id, null, null, "");
sut.executeByName(campaign.title, null, null, "");
sut.executeById(campaign.id, "");
sut.executeByName(campaign.title, "");

// Then
verify(campaignRepository).findById(campaign.id);
Expand Down Expand Up @@ -386,7 +386,7 @@ public void should_execute_campaign_with_given_environment_when_executed_by_id()
// When
String executionEnv = "executionEnv";
String executionUser = "executionUser";
sut.executeById(campaign.id, executionEnv, null, executionUser);
sut.executeByIdWithEnv(campaign.id, executionEnv, executionUser);

// Then
verify(campaignRepository).findById(campaign.id);
Expand All @@ -402,7 +402,7 @@ public void should_execute_campaign_with_given_dataset_when_executed_by_id() {
// When
String executionDataset = "executionDataset";
String executionUser = "executionUser";
sut.executeById(campaign.id, null, executionDataset, executionUser);
sut.executeByIdWithDataset(campaign.id, executionDataset, executionUser);

// Then
verify(campaignRepository).findById(campaign.id);
Expand All @@ -418,7 +418,7 @@ public void should_execute_campaign_with_given_environment_when_executed_by_name
// When
String executionEnv = "executionEnv";
String executionUser = "executionUser";
sut.executeByName(campaign.title, executionEnv, null, executionUser);
sut.executeByNameWithEnv(campaign.title, executionEnv, executionUser);

// Then
verify(campaignRepository).findByName(campaign.title);
Expand All @@ -434,7 +434,7 @@ public void should_execute_campaign_with_given_dataset_when_executed_by_name() {
// When
String executionDataset = "executionDataset";
String executionUser = "executionUser";
sut.executeByName(campaign.title, null, executionDataset, executionUser);
sut.executeByNameWithDataset(campaign.title, executionDataset, executionUser);

// Then
verify(campaignRepository).findByName(campaign.title);
Expand Down Expand Up @@ -478,7 +478,7 @@ public void should_throw_when_stop_unknown_campaign_execution() {

@Test
public void should_throw_when_execute_unknown_campaign_execution() {
assertThatThrownBy(() -> sut.executeById(generateId(), null, null, ""))
assertThatThrownBy(() -> sut.executeById(generateId(), ""))
.isInstanceOf(CampaignNotFoundException.class);
}

Expand All @@ -504,7 +504,7 @@ public void should_use_campaign_default_dataset_before_execution_when_scenario_i
when(datasetRepository.findById(eq("campaignDataSet"))).thenReturn(DataSet.builder().withName("campaignDataSet").build());

// When
sut.executeById(campaign.id, null, null, "user");
sut.executeById(campaign.id, "user");

// Then
ArgumentCaptor<ExecutionRequest> argumentCaptor = ArgumentCaptor.forClass(ExecutionRequest.class);
Expand Down Expand Up @@ -538,7 +538,7 @@ public void should_use_scenario_dataset_over_campaign_default_dataset_before_exe
when(datasetRepository.findById(eq("scenarioInCampaignDataset"))).thenReturn(DataSet.builder().withName("scenarioInCampaignDataset").build());

// When
sut.executeById(campaign.id, null, null, "user");
sut.executeById(campaign.id, "user");

// Then
ArgumentCaptor<ExecutionRequest> argumentCaptor = ArgumentCaptor.forClass(ExecutionRequest.class);
Expand Down Expand Up @@ -570,7 +570,7 @@ public void should_not_use_scenario_default_dataset_when_campaign_nor_scenario_i
when(executionHistoryRepository.getExecution(any(), any())).thenReturn(executionWithId(gwtTestCase.id(), 42L));

// When
sut.executeById(campaign.id, null, null, "user");
sut.executeById(campaign.id, "user");

// Then
ArgumentCaptor<ExecutionRequest> argumentCaptor = ArgumentCaptor.forClass(ExecutionRequest.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ void should_execute_campaign_as_internal_user_named_auto_when_executing_periodic

sut.executeScheduledCampaigns();

verify(campaignExecutionEngine).executeById(periodicScheduledCampaign.get(0).campaignsId.get(0), null, null, "auto");
verify(campaignExecutionEngine).executeById(periodicScheduledCampaign.get(0).campaignsId.get(0), "auto");
}

@ParameterizedTest()
Expand Down Expand Up @@ -158,14 +158,14 @@ void should_not_explode_when_runtime_exceptions_occur_executing_campaigns() {
.thenReturn(
periodicScheduledCampaigns
);
when(campaignExecutionEngine.executeById(periodicScheduledCampaigns.get(0).campaignsId.get(0), null, null, SCHEDULER_EXECUTE_USER))
when(campaignExecutionEngine.executeById(periodicScheduledCampaigns.get(0).campaignsId.get(0), SCHEDULER_EXECUTE_USER))
.thenThrow(new RuntimeException("campaignExecutionEngine.executeById"));

Assertions.assertDoesNotThrow(
() -> sut.executeScheduledCampaigns()
);

verify(campaignExecutionEngine, times(periodicScheduledCampaigns.size())).executeById(any(), any(), any(), any());
verify(campaignExecutionEngine, times(periodicScheduledCampaigns.size())).executeById(any(), any());
}

@Test
Expand All @@ -181,9 +181,9 @@ void should_execute_sequentially_when_executing_periodic_scheduled_campaigns() {

sut.executeScheduledCampaigns();

inOrder.verify(campaignExecutionEngine).executeById(eq(periodicScheduledCampaign.get(0).campaignsId.get(0)), any(), any(), eq("auto"));
inOrder.verify(campaignExecutionEngine).executeById(eq(periodicScheduledCampaign.get(0).campaignsId.get(1)), any(), any(), eq("auto"));
verify(campaignExecutionEngine, times(2)).executeById(any(), any(), any(), any());
inOrder.verify(campaignExecutionEngine).executeById(eq(periodicScheduledCampaign.get(0).campaignsId.get(0)), eq("auto"));
inOrder.verify(campaignExecutionEngine).executeById(eq(periodicScheduledCampaign.get(0).campaignsId.get(1)), eq("auto"));
verify(campaignExecutionEngine, times(2)).executeById(any(), any());
}

private List<PeriodicScheduledCampaign> createPeriodicScheduledCampaigns(List<Frequency> frequencies) {
Expand Down
16 changes: 16 additions & 0 deletions chutney/ui/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit ee44784

Please sign in to comment.