@Test public void should_open_action_plan() { when(actionPlanService.findByKey(eq("ABCD"), any(UserSession.class))) .thenReturn(DefaultActionPlan.create("Long term")); Result result = service.openActionPlan("ABCD"); verify(actionPlanService).setStatus(eq("ABCD"), eq("OPEN"), any(UserSession.class)); assertThat(result.ok()).isTrue(); }
@Test public void should_not_update_action_plan_when_action_plan_is_not_found() { when(actionPlanService.findByKey(eq("ABCD"), any(UserSession.class))).thenReturn(null); Result result = service.updateActionPlan("ABCD", null); assertThat(result.ok()).isFalse(); assertThat(result.errors()) .contains(Result.Message.ofL10n("action_plans.errors.action_plan_does_not_exist", "ABCD")); }
@Test public void should_get_error_on_action_plan_result_when_no_project() { Map<String, String> parameters = newHashMap(); parameters.put("name", "Long term"); parameters.put("description", "Long term issues"); Result result = service.createActionPlanResult(parameters); assertThat(result.ok()).isFalse(); assertThat(result.errors()).contains(Result.Message.ofL10n("errors.cant_be_empty", "project")); }
@Test public void should_get_error_on_action_plan_result_when_name_is_too_long() { Map<String, String> parameters = newHashMap(); parameters.put("name", createLongString(201)); parameters.put("description", "Long term issues"); parameters.put("project", "org.sonar.Sample"); Result result = service.createActionPlanResult(parameters); assertThat(result.ok()).isFalse(); assertThat(result.errors()).contains(Result.Message.ofL10n("errors.is_too_long", "name", 200)); }
@Test public void should_get_error_on_action_plan_result_when_dead_line_use_wrong_format() { Map<String, String> parameters = newHashMap(); parameters.put("name", "Long term"); parameters.put("description", "Long term issues"); parameters.put("project", "org.sonar.Sample"); parameters.put("deadLine", "18/05/2013"); Result result = service.createActionPlanResult(parameters); assertThat(result.ok()).isFalse(); assertThat(result.errors()).contains(Result.Message.ofL10n("errors.is_not_valid", "date")); }
@Test public void should_get_error_on_action_plan_result_when_dead_line_is_in_the_past() { Map<String, String> parameters = newHashMap(); parameters.put("name", "Long term"); parameters.put("description", "Long term issues"); parameters.put("project", "org.sonar.Sample"); parameters.put("deadLine", "2000-01-01"); Result result = service.createActionPlanResult(parameters); assertThat(result.ok()).isFalse(); assertThat(result.errors()) .contains(Result.Message.ofL10n("action_plans.date_cant_be_in_past")); }
@Test public void should_get_error_on_action_plan_result_when_name_is_already_used_for_project() { Map<String, String> parameters = newHashMap(); parameters.put("name", "Long term"); parameters.put("description", "Long term issues"); parameters.put("project", "org.sonar.Sample"); when(actionPlanService.isNameAlreadyUsedForProject(anyString(), anyString())).thenReturn(true); Result result = service.createActionPlanResult(parameters, DefaultActionPlan.create("Short term")); assertThat(result.ok()).isFalse(); assertThat(result.errors()) .contains(Result.Message.ofL10n("action_plans.same_name_in_same_project")); }
@Test public void should_get_error_on_action_plan_result_when_project_not_found() { Map<String, String> parameters = newHashMap(); parameters.put("name", "Long term"); parameters.put("description", "Long term issues"); parameters.put("project", "org.sonar.Sample"); when(resourceDao.getResource(any(ResourceQuery.class))).thenReturn(null); Result result = service.createActionPlanResult(parameters); assertThat(result.ok()).isFalse(); assertThat(result.errors()) .contains( Result.Message.ofL10n( "action_plans.errors.project_does_not_exist", "org.sonar.Sample")); }
@Test public void should_create_action_plan() { Map<String, String> parameters = newHashMap(); parameters.put("name", "Long term"); parameters.put("description", "Long term issues"); parameters.put("project", "org.sonar.Sample"); parameters.put("deadLine", "2113-05-13"); ArgumentCaptor<ActionPlan> actionPlanCaptor = ArgumentCaptor.forClass(ActionPlan.class); Result result = service.createActionPlan(parameters); assertThat(result.ok()).isTrue(); verify(actionPlanService).create(actionPlanCaptor.capture(), any(UserSession.class)); ActionPlan actionPlan = actionPlanCaptor.getValue(); assertThat(actionPlan).isNotNull(); assertThat(actionPlan.key()).isNotNull(); assertThat(actionPlan.name()).isEqualTo("Long term"); assertThat(actionPlan.description()).isEqualTo("Long term issues"); assertThat(actionPlan.deadLine()).isNotNull(); }
@Test public void should_update_action_plan_with_new_project() { when(actionPlanService.findByKey(eq("ABCD"), any(UserSession.class))) .thenReturn(DefaultActionPlan.create("Long term").setProjectKey("org.sonar.MultiSample")); Map<String, String> parameters = newHashMap(); parameters.put("name", "New Long term"); parameters.put("description", "New Long term issues"); parameters.put("deadLine", "2113-05-13"); ArgumentCaptor<ActionPlan> actionPlanCaptor = ArgumentCaptor.forClass(ActionPlan.class); Result result = service.updateActionPlan("ABCD", parameters); assertThat(result.ok()).isTrue(); verify(actionPlanService).update(actionPlanCaptor.capture(), any(UserSession.class)); ActionPlan actionPlan = actionPlanCaptor.getValue(); assertThat(actionPlan).isNotNull(); assertThat(actionPlan.key()).isNotNull(); assertThat(actionPlan.name()).isEqualTo("New Long term"); assertThat(actionPlan.description()).isEqualTo("New Long term issues"); assertThat(actionPlan.deadLine()).isNotNull(); assertThat(actionPlan.projectKey()).isEqualTo("org.sonar.MultiSample"); }