use of io.gravitee.rest.api.model.promotion.PromotionEntity in project gravitee-management-rest-api by gravitee-io.
the class PromotionTasksServiceImplTest method getAPromotionEntity.
private PromotionEntity getAPromotionEntity() {
final PromotionEntity promotion = new PromotionEntity();
promotion.setApiDefinition("{\"id\" : \"api#1\",\"name\" : \"API Name\",\"version\" : \"1\",\"proxy\" : { \"context_path\" : \"/product\", \"endpoint\" : \"http://toto.com\", \"endpoints\" : [ { \"target\" : \"http://toto.com\", \"weight\" : 1, \"name\" : \"endpointName\" } ], \"strip_context_path\" : false, \"http\" : { \"configuration\" : { \"connectTimeout\" : 5000, \"idleTimeout\" : 60000, \"keepAlive\" : true, \"dumpRequest\" : false } }},\"paths\" : { \"/\" : [ { \"methods\" : [ ], \"api-key\" : {} } ]},\"tags\" : [ ]\n}");
promotion.setTargetEnvCockpitId("env#1-cockpit-id");
promotion.setTargetEnvName("Target Env");
promotion.setSourceEnvCockpitId("env#2-cockpit-id");
promotion.setSourceEnvName("Source Env");
promotion.setApiId("api id");
promotion.setTargetApiId("target api id");
PromotionEntityAuthor author = new PromotionEntityAuthor();
author.setDisplayName("Author");
author.setEmail("author@gv.io");
author.setPicture("https://picture.png");
promotion.setAuthor(author);
return promotion;
}
use of io.gravitee.rest.api.model.promotion.PromotionEntity in project gravitee-management-rest-api by gravitee-io.
the class PromotionTasksServiceImplTest method shouldGetPromotionTasks_withApiCreation.
@Test
public void shouldGetPromotionTasks_withApiCreation() throws JsonProcessingException {
PromotionEntity aPromotionEntity = getAPromotionEntity();
when(promotionService.search(argThat(query -> query != null && query.getStatuses().get(0) == PromotionEntityStatus.TO_BE_VALIDATED), any(), any())).thenReturn(new Page<>(singletonList(aPromotionEntity), 0, 0, 0));
when(environmentService.findByOrganization(any())).thenReturn(singletonList(getAnEnvironmentEntity()));
when(promotionService.search(argThat(query -> query != null && query.getStatuses().get(0) == PromotionEntityStatus.ACCEPTED), any(), any())).thenReturn(new Page<>(emptyList(), 0, 0, 0));
when(permissionService.hasPermission(RolePermission.ENVIRONMENT_API, "env#1", CREATE)).thenReturn(true);
when(permissionService.hasPermission(RolePermission.ENVIRONMENT_API, "env#1", UPDATE)).thenReturn(false);
when(objectMapper.readValue(aPromotionEntity.getApiDefinition(), ApiEntity.class)).thenReturn(getAnApiEntity());
final List<TaskEntity> result = cut.getPromotionTasks("org#1");
assertThat(result).hasSize(1);
Map<String, Object> taskData = (Map<String, Object>) result.get(0).getData();
assertThat(taskData.get("apiName")).isEqualTo("API Name");
assertThat(taskData.get("sourceEnvironmentName")).isEqualTo("Source Env");
assertThat(taskData.get("targetEnvironmentName")).isEqualTo("Target Env");
assertThat(taskData.get("authorDisplayName")).isEqualTo("Author");
assertThat(taskData.get("authorEmail")).isEqualTo("author@gv.io");
assertThat(taskData.get("authorPicture")).isEqualTo("https://picture.png");
assertThat(taskData.get("apiId")).isEqualTo("api id");
assertThat(taskData.get("isApiUpdate")).isEqualTo(false);
assertThat(taskData.get("targetApiId")).isNull();
}
use of io.gravitee.rest.api.model.promotion.PromotionEntity in project gravitee-management-rest-api by gravitee-io.
the class PromotionTasksServiceImplTest method shouldGetPromotionTasks_withApiCreationBecauseItHasBeenDeleted.
@Test
public void shouldGetPromotionTasks_withApiCreationBecauseItHasBeenDeleted() throws JsonProcessingException {
PromotionEntity aPromotionEntity = getAPromotionEntity();
when(promotionService.search(argThat(query -> query != null && query.getStatuses().get(0) == PromotionEntityStatus.TO_BE_VALIDATED), any(), any())).thenReturn(new Page<>(singletonList(aPromotionEntity), 0, 0, 0));
when(environmentService.findByOrganization(any())).thenReturn(singletonList(getAnEnvironmentEntity()));
PromotionEntity previousPromotionEntity = getAPromotionEntity();
previousPromotionEntity.setTargetApiId("api#target");
when(promotionService.search(argThat(query -> query != null && query.getStatuses().get(0) == PromotionEntityStatus.ACCEPTED), any(), any())).thenReturn(new Page<>(singletonList(previousPromotionEntity), 0, 0, 0));
when(permissionService.hasPermission(RolePermission.ENVIRONMENT_API, "env#1", CREATE)).thenReturn(true);
when(permissionService.hasPermission(RolePermission.ENVIRONMENT_API, "env#1", UPDATE)).thenReturn(false);
when(objectMapper.readValue(aPromotionEntity.getApiDefinition(), ApiEntity.class)).thenReturn(getAnApiEntity());
when(apiService.exists("api#target")).thenReturn(false);
final List<TaskEntity> result = cut.getPromotionTasks("org#1");
assertThat(result).hasSize(1);
Map<String, Object> taskData = (Map<String, Object>) result.get(0).getData();
assertThat(taskData.get("apiName")).isEqualTo("API Name");
assertThat(taskData.get("sourceEnvironmentName")).isEqualTo("Source Env");
assertThat(taskData.get("targetEnvironmentName")).isEqualTo("Target Env");
assertThat(taskData.get("authorDisplayName")).isEqualTo("Author");
assertThat(taskData.get("authorEmail")).isEqualTo("author@gv.io");
assertThat(taskData.get("authorPicture")).isEqualTo("https://picture.png");
assertThat(taskData.get("apiId")).isEqualTo("api id");
assertThat(taskData.get("isApiUpdate")).isEqualTo(false);
}
Aggregations