/** * Copyright (C) 2015 Orange * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.francetelecom.clara.cloud.core.service; import com.francetelecom.clara.cloud.TestHelper; import com.francetelecom.clara.cloud.coremodel.*; import com.francetelecom.clara.cloud.environment.impl.EnvironmentMapper; import com.francetelecom.clara.cloud.model.DeploymentProfileEnum; import com.francetelecom.clara.cloud.model.TechnicalDeployment; import com.francetelecom.clara.cloud.model.TechnicalDeploymentInstance; import com.francetelecom.clara.cloud.model.TechnicalDeploymentTemplate; import com.francetelecom.clara.cloud.services.dto.EnvironmentDto; import com.francetelecom.clara.cloud.services.dto.EnvironmentDto.EnvironmentStatusEnum; import com.francetelecom.clara.cloud.services.dto.EnvironmentDto.EnvironmentTypeEnum; import org.fest.assertions.Assertions; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; import org.mockito.runners.MockitoJUnitRunner; import java.util.Arrays; import java.util.List; @RunWith(MockitoJUnitRunner.class) public class EnvironmentMapperTest { @Spy SecurityUtils securityUtils; @Spy SecurityContextUtilImpl securityContextUtil; @InjectMocks private EnvironmentMapper environmentMapper; @After public void tearwown() { TestHelper.logout(); } @Before public void setUp() throws Exception { environmentMapper = new EnvironmentMapper(); environmentMapper.setSecurityUtils(securityUtils); } @Test public void should_map_environment_to_environment_dto() throws Exception { //FIXME requires to be logged to perform test, find a better way to avoid logging to perform test TestHelper.loginAsAdmin(); // given environment env_elpaasso_1_0 for release 1.0 TechnicalDeployment td = new TechnicalDeployment("td"); TechnicalDeploymentTemplate tdt = new TechnicalDeploymentTemplate(td, DeploymentProfileEnum.DEVELOPMENT, "releaseId", MiddlewareProfile.DEFAULT_PROFILE); Application elpaaso = new Application("elpaaso", "elpaaso"); PaasUser owner = new PaasUser("joe", "dalton", new SSOId("jdalton"), "jdalton@orane.com"); ApplicationRelease elpaaso_1_0 = new ApplicationRelease(elpaaso, "1.0"); TechnicalDeploymentInstance tdi = new TechnicalDeploymentInstance(tdt, td); Environment environment = new Environment(DeploymentProfileEnum.DEVELOPMENT, "env_elpaasso_1_0", elpaaso_1_0, owner, tdi); EnvironmentDto dto = new EnvironmentDto(environment.getUID(), environment.getInternalName(), "env_elpaasso_1_0", elpaaso.getLabel(), elpaaso_1_0.getUID(), "1.0", "jdalton", "joe", environment.getCreationDate(), EnvironmentTypeEnum.DEVELOPMENT, EnvironmentStatusEnum.CREATING, null, -1, null, environment .getTechnicalDeploymentInstance().getTechnicalDeployment().getName()); Assertions.assertThat(environmentMapper.toEnvironmentDto(environment)).isEqualTo(dto); } @Test public void should_map_environment_to_editable_environment_dto() throws Exception { //FIXME requires to be logged to perform test, find a better way to avoid logging to perform test TestHelper.loginAsAdmin(); // given environment env_elpaasso_1_0 for release 1.0 TechnicalDeployment td = new TechnicalDeployment("td"); TechnicalDeploymentTemplate tdt = new TechnicalDeploymentTemplate(td, DeploymentProfileEnum.DEVELOPMENT, "releaseId", MiddlewareProfile.DEFAULT_PROFILE); Application elpaaso = new Application("elpaaso", "elpaaso"); PaasUser owner = new PaasUser("joe", "dalton", new SSOId("jdalton"), "jdalton@orane.com"); ApplicationRelease elpaaso_1_0 = new ApplicationRelease(elpaaso, "1.0"); TechnicalDeploymentInstance tdi = new TechnicalDeploymentInstance(tdt, td); Environment environment = new Environment(DeploymentProfileEnum.DEVELOPMENT, "env_elpaasso_1_0", elpaaso_1_0, owner, tdi); //dto should be editable Assertions.assertThat(environmentMapper.toEnvironmentDto(environment).isEditable()).isEqualTo(true); } @Test public void should_map_environment_to_non_editable_environment_dto() throws Exception { //FIXME requires to be logged to perform test, find a better way to avoid logging to perform test TestHelper.loginAsUser(); // given environment env_elpaasso_1_0 for release 1.0 TechnicalDeployment td = new TechnicalDeployment("td"); TechnicalDeploymentTemplate tdt = new TechnicalDeploymentTemplate(td, DeploymentProfileEnum.DEVELOPMENT, "releaseId", MiddlewareProfile.DEFAULT_PROFILE); Application elpaaso = new Application("elpaaso", "elpaaso"); PaasUser owner = new PaasUser("joe", "dalton", new SSOId("jdalton"), "jdalton@orane.com"); ApplicationRelease elpaaso_1_0 = new ApplicationRelease(elpaaso, "1.0"); TechnicalDeploymentInstance tdi = new TechnicalDeploymentInstance(tdt, td); Environment environment = new Environment(DeploymentProfileEnum.DEVELOPMENT, "env_elpaasso_1_0", elpaaso_1_0, owner, tdi); //dto should not be editable Assertions.assertThat(environmentMapper.toEnvironmentDto(environment).isEditable()).isEqualTo(false); } @Test public void should_map_environment_list_to_environment_dto_list() throws Exception { //FIXME requires to be logged to perform test, find a better way to avoid logging to perform test TestHelper.loginAsAdmin(); // given environment env_elpaasso_1_0 for release 1.0 TechnicalDeployment td = new TechnicalDeployment("td"); TechnicalDeploymentTemplate tdt = new TechnicalDeploymentTemplate(td, DeploymentProfileEnum.DEVELOPMENT, "releaseId", MiddlewareProfile.DEFAULT_PROFILE); Application elpaaso = new Application("elpaaso", "elpaaso"); PaasUser owner = new PaasUser("joe", "dalton", new SSOId("jdalton"), "jdalton@orane.com"); ApplicationRelease elpaaso_1_0 = new ApplicationRelease(elpaaso, "1.0"); TechnicalDeploymentInstance tdi = new TechnicalDeploymentInstance(tdt, td); Environment environment_1 = new Environment(DeploymentProfileEnum.DEVELOPMENT, "env_1_elpaasso_1_0", elpaaso_1_0, owner, tdi); Environment environment_2 = new Environment(DeploymentProfileEnum.DEVELOPMENT, "env_2_elpaasso_1_0", elpaaso_1_0, owner, tdi); Environment environment_3 = new Environment(DeploymentProfileEnum.DEVELOPMENT, "env_3_elpaasso_1_0", elpaaso_1_0, owner, tdi); List<Environment> environments = Arrays.asList(environment_1,environment_2,environment_3); EnvironmentDto dto_1 = new EnvironmentDto(environment_1.getUID(), environment_1.getInternalName(), "env_1_elpaasso_1_0", elpaaso.getLabel(), elpaaso_1_0.getUID(), "1.0", "jdalton", "joe", environment_1.getCreationDate(), EnvironmentTypeEnum.DEVELOPMENT, EnvironmentStatusEnum.CREATING, null, -1, null, environment_1 .getTechnicalDeploymentInstance().getTechnicalDeployment().getName()); EnvironmentDto dto_2 = new EnvironmentDto(environment_2.getUID(), environment_2.getInternalName(), "env_2_elpaasso_1_0", elpaaso.getLabel(), elpaaso_1_0.getUID(), "1.0", "jdalton", "joe", environment_2.getCreationDate(), EnvironmentTypeEnum.DEVELOPMENT, EnvironmentStatusEnum.CREATING, null, -1, null, environment_2 .getTechnicalDeploymentInstance().getTechnicalDeployment().getName()); EnvironmentDto dto_3 = new EnvironmentDto(environment_3.getUID(), environment_3.getInternalName(), "env_3_elpaasso_1_0", elpaaso.getLabel(), elpaaso_1_0.getUID(), "1.0", "jdalton", "joe", environment_3.getCreationDate(), EnvironmentTypeEnum.DEVELOPMENT, EnvironmentStatusEnum.CREATING, null, -1, null, environment_3 .getTechnicalDeploymentInstance().getTechnicalDeployment().getName()); Assertions.assertThat(environmentMapper.toEnvironmentDtoList(environments).size()).isEqualTo(3); Assertions.assertThat(environmentMapper.toEnvironmentDtoList(environments).contains(dto_1)).isTrue(); Assertions.assertThat(environmentMapper.toEnvironmentDtoList(environments).contains(dto_2)).isTrue(); Assertions.assertThat(environmentMapper.toEnvironmentDtoList(environments).contains(dto_3)).isTrue(); } @Test public void should_map_environment_list_to_editable_environment_dto_list() throws Exception { //FIXME requires to be logged to perform test, find a better way to avoid logging to perform test TestHelper.loginAsAdmin(); // given environment env_elpaasso_1_0 for release 1.0 TechnicalDeployment td = new TechnicalDeployment("td"); TechnicalDeploymentTemplate tdt = new TechnicalDeploymentTemplate(td, DeploymentProfileEnum.DEVELOPMENT, "releaseId", MiddlewareProfile.DEFAULT_PROFILE); Application elpaaso = new Application("elpaaso", "elpaaso"); PaasUser owner = new PaasUser("joe", "dalton", new SSOId("jdalton"), "jdalton@orane.com"); ApplicationRelease elpaaso_1_0 = new ApplicationRelease(elpaaso, "1.0"); TechnicalDeploymentInstance tdi = new TechnicalDeploymentInstance(tdt, td); Environment environment_1 = new Environment(DeploymentProfileEnum.DEVELOPMENT, "env_1_elpaasso_1_0", elpaaso_1_0, owner, tdi); Environment environment_2 = new Environment(DeploymentProfileEnum.DEVELOPMENT, "env_2_elpaasso_1_0", elpaaso_1_0, owner, tdi); Environment environment_3 = new Environment(DeploymentProfileEnum.DEVELOPMENT, "env_3_elpaasso_1_0", elpaaso_1_0, owner, tdi); List<Environment> environments = Arrays.asList(environment_1,environment_2,environment_3); Assertions.assertThat(environmentMapper.toEnvironmentDtoList(environments).size()).isEqualTo(3); Assertions.assertThat(environmentMapper.toEnvironmentDtoList(environments).get(0).isEditable()).isTrue(); Assertions.assertThat(environmentMapper.toEnvironmentDtoList(environments).get(1).isEditable()).isTrue(); Assertions.assertThat(environmentMapper.toEnvironmentDtoList(environments).get(2).isEditable()).isTrue(); } @Test public void should_map_environment_list_to_non_editable_environment_dto_list() throws Exception { //FIXME requires to be logged to perform test, find a better way to avoid logging to perform test TestHelper.loginAsUser(); // given environment env_elpaasso_1_0 for release 1.0 TechnicalDeployment td = new TechnicalDeployment("td"); TechnicalDeploymentTemplate tdt = new TechnicalDeploymentTemplate(td, DeploymentProfileEnum.DEVELOPMENT, "releaseId", MiddlewareProfile.DEFAULT_PROFILE); Application elpaaso = new Application("elpaaso", "elpaaso"); PaasUser owner = new PaasUser("joe", "dalton", new SSOId("jdalton"), "jdalton@orane.com"); ApplicationRelease elpaaso_1_0 = new ApplicationRelease(elpaaso, "1.0"); TechnicalDeploymentInstance tdi = new TechnicalDeploymentInstance(tdt, td); Environment environment_1 = new Environment(DeploymentProfileEnum.DEVELOPMENT, "env_1_elpaasso_1_0", elpaaso_1_0, owner, tdi); Environment environment_2 = new Environment(DeploymentProfileEnum.DEVELOPMENT, "env_2_elpaasso_1_0", elpaaso_1_0, owner, tdi); Environment environment_3 = new Environment(DeploymentProfileEnum.DEVELOPMENT, "env_3_elpaasso_1_0", elpaaso_1_0, owner, tdi); List<Environment> environments = Arrays.asList(environment_1,environment_2,environment_3); Assertions.assertThat(environmentMapper.toEnvironmentDtoList(environments).size()).isEqualTo(3); Assertions.assertThat(environmentMapper.toEnvironmentDtoList(environments).get(0).isEditable()).isFalse(); Assertions.assertThat(environmentMapper.toEnvironmentDtoList(environments).get(1).isEditable()).isFalse(); Assertions.assertThat(environmentMapper.toEnvironmentDtoList(environments).get(2).isEditable()).isFalse(); } @Test public void should_map_null_environment_list_to_environment_dto_list() throws Exception { Assertions.assertThat(environmentMapper.toEnvironmentDtoList(null)).isEmpty(); } @Test(expected=IllegalArgumentException.class) public void fail_to_map_null_environment_to_environment_dto() throws Exception { environmentMapper.toEnvironmentDto(null); } }