diff options
Diffstat (limited to 'src/test/java')
55 files changed, 0 insertions, 7123 deletions
diff --git a/src/test/java/org/onap/policy/clamp/clds/client/CdsServicesTest.java b/src/test/java/org/onap/policy/clamp/clds/client/CdsServicesTest.java deleted file mode 100644 index 6e5300e23..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/client/CdsServicesTest.java +++ /dev/null @@ -1,56 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - * ================================================================================ - * - */ - -package org.onap.policy.clamp.clds.client; - -import com.google.gson.JsonObject; -import java.io.IOException; -import org.junit.Test; -import org.onap.policy.clamp.clds.util.JsonUtils; -import org.onap.policy.clamp.clds.util.ResourceFileUtils; -import org.skyscreamer.jsonassert.JSONAssert; - -public class CdsServicesTest { - - @Test - public void testParseCdsListTypeProperties() throws IOException { - String cdsResponse = ResourceFileUtils - .getResourceAsString("example/cds-response/vFW-CDS-resource-assignment-workflow.json"); - CdsServices services = new CdsServices(); - JsonObject output = services.parseCdsResponse(cdsResponse); - JSONAssert.assertEquals(ResourceFileUtils - .getResourceAsString("example/cds-response/vFW-CDS-resource-assignment-wf-expected-result.json"), - JsonUtils.GSON.toJson(output), true); - } - - @Test - public void testParseCdsResponse() throws IOException { - String cdsResponse = ResourceFileUtils - .getResourceAsString("example/cds-response/vFW-CDS-modify-config-workflow.json"); - CdsServices services = new CdsServices(); - JsonObject output = services.parseCdsResponse(cdsResponse); - JSONAssert.assertEquals(ResourceFileUtils - .getResourceAsString("example/cds-response/vFW-CDS-modify-config-wf-expected-result.json"), - JsonUtils.GSON.toJson(output), true); - } - -}
\ No newline at end of file diff --git a/src/test/java/org/onap/policy/clamp/clds/config/CldsUserJsonDecoderTest.java b/src/test/java/org/onap/policy/clamp/clds/config/CldsUserJsonDecoderTest.java deleted file mode 100644 index 605ab99ae..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/config/CldsUserJsonDecoderTest.java +++ /dev/null @@ -1,99 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Modifications Copyright (c) 2019 Samsung - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * Modifications copyright (c) 2018 Nokia - * =================================================================== - * - */ - -package org.onap.policy.clamp.clds.config; - -import static org.assertj.core.api.Assertions.assertThat; - -import org.junit.Test; -import org.onap.policy.clamp.authorization.CldsUser; -import org.onap.policy.clamp.clds.exception.CldsUsersException; - -public class CldsUserJsonDecoderTest { - - private String user1 = "admin1"; - private String user2 = "admin2"; - private String password = "5f4dcc3b5aa765d61d8327deb882cf99"; - private String[] normalPermissionsArray = { "permission-type-cl|dev|read", "permission-type-cl|dev|update", - "permission-type-cl-manage|dev|*", "permission-type-filter-vf|dev|*", "permission-type-template|dev|read", - "permission-type-template|dev|update" }; - private String[] incompletePermissionsArray = { "permission-type-cl|dev|*", "permission-type-cl|dev|*", - "permission-type-cl-manage|dev|*", "permission-type-filter-vf|dev|*", "permission-type-template|dev|read", - "permission-type-template|dev|update" }; - - @Test - public void testDecodingDoubleUsers() { - - // when - CldsUser[] usersArray = CldsUserJsonDecoder - .decodeJson(CldsUserJsonDecoderTest.class.getResourceAsStream("/clds/clds-users-two-users.json")); - - // then - assertThat(usersArray).hasSize(2); - assertThat(usersArray[0]).extracting(CldsUser::getUser, CldsUser::getPassword, CldsUser::getPermissionsString) - .containsExactly(user1, password, normalPermissionsArray); - - assertThat(usersArray[1]).extracting(CldsUser::getUser, CldsUser::getPassword, CldsUser::getPermissionsString) - .containsExactly(user2, password, normalPermissionsArray); - - } - - @Test - public void testDecodingNoPermission() { - // when - CldsUser[] usersArray = CldsUserJsonDecoder - .decodeJson(this.getClass().getResourceAsStream("/clds/clds-users-no-permission.json")); - - // then - assertThat(usersArray).hasSize(1); - CldsUser user = usersArray[0]; - assertThat(user.getUser()).isEqualTo(user1); - assertThat(user.getPassword()).isEqualTo(null); - assertThat(user.getPermissionsString()).isEmpty(); - } - - @Test - public void testDecodingIncompletePermissions() { - - // when - CldsUser[] usersArray = CldsUserJsonDecoder - .decodeJson(this.getClass().getResourceAsStream("/clds/clds-users-incomplete-permissions.json")); - - // then - assertThat(usersArray).hasSize(1); - CldsUser user = usersArray[0]; - assertThat(user.getUser()).isEqualTo(user1); - assertThat(user.getPassword()).isEqualTo(password); - assertThat(user.getPermissionsString()).isEqualTo(incompletePermissionsArray); - } - - @Test(expected = CldsUsersException.class) - public void shouldThrowCldsUsersException() { - // when - CldsUserJsonDecoder.decodeJson(this.getClass().getResourceAsStream("/clds/clds-parse-exception.json")); - } - -} diff --git a/src/test/java/org/onap/policy/clamp/clds/config/sdc/SdcSingleControllerConfigurationTest.java b/src/test/java/org/onap/policy/clamp/clds/config/sdc/SdcSingleControllerConfigurationTest.java deleted file mode 100644 index 7390b65ba..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/config/sdc/SdcSingleControllerConfigurationTest.java +++ /dev/null @@ -1,108 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP POLICY-CLAMP - * ================================================================================ - * Copyright (C) 2017, 2021 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - * Modifications copyright (c) 2018 Nokia - * ================================================================================ - * - */ - -package org.onap.policy.clamp.clds.config.sdc; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - -import com.google.gson.JsonObject; -import java.io.IOException; -import java.io.InputStreamReader; -import java.nio.charset.StandardCharsets; -import org.junit.Test; -import org.onap.policy.clamp.clds.exception.sdc.controller.SdcParametersException; -import org.onap.policy.clamp.clds.util.JsonUtils; -import org.onap.policy.clamp.clds.util.ResourceFileUtils; - -/** - * This class tests the SDC Controller config. - */ -public class SdcSingleControllerConfigurationTest { - - /** - * This method loads the SDC controller configuration from a file located in the resource folder. - * - * @param fileName file for sdc controller configuration. - * @param sdcControllerName sdc controller name. - * @return instance of SdcSingleControllerConfiguration. - */ - public static SdcSingleControllerConfiguration loadControllerConfiguration(String fileName, - String sdcControllerName) { - - InputStreamReader streamReader = new InputStreamReader(ResourceFileUtils.getResourceAsStream(fileName), - StandardCharsets.UTF_8); - JsonObject jsonNode = JsonUtils.GSON.fromJson(streamReader, JsonObject.class); - - return new SdcSingleControllerConfiguration(jsonNode, sdcControllerName, - "classpath:clds/aaf/org.onap.clamp.keyfile"); - } - - @Test - public final void testTheInit() throws SdcParametersException, IOException { - SdcSingleControllerConfiguration sdcConfig = loadControllerConfiguration("clds/sdc-controller-config-TLS.json", - "sdc-controller1"); - assertEquals("User", sdcConfig.getUser()); - assertEquals("ThePassword", sdcConfig.getPassword()); - assertEquals("consumerGroup", sdcConfig.getConsumerGroup()); - assertEquals("consumerId", sdcConfig.getConsumerID()); - assertEquals("environmentName", sdcConfig.getEnvironmentName()); - assertEquals("hostname:8080", sdcConfig.getAsdcAddress()); - assertEquals(10, sdcConfig.getPollingInterval()); - assertEquals(30, sdcConfig.getPollingTimeout()); - - assertThat(SdcSingleControllerConfiguration.SUPPORTED_ARTIFACT_TYPES_LIST) - .hasSameSizeAs(sdcConfig.getRelevantArtifactTypes()); - assertEquals("ThePassword", sdcConfig.getKeyStorePassword()); - assertTrue(sdcConfig.activateServerTLSAuth()); - assertThat(sdcConfig.getMsgBusAddress()).contains("localhost"); - } - - @Test(expected = SdcParametersException.class) - public final void testAllRequiredParameters() throws IOException { - SdcSingleControllerConfiguration sdcConfig = loadControllerConfiguration("clds/sdc-controller-config-TLS.json", - "sdc-controller1"); - // No exception should be raised - sdcConfig.testAllRequiredParameters(); - sdcConfig = loadControllerConfiguration("clds/sdc-controller-config-bad.json", "sdc-controller1"); - fail("Should have raised an exception"); - } - - @Test - public final void testAllRequiredParametersEmptyEncrypted() throws IOException { - SdcSingleControllerConfiguration sdcConfig = loadControllerConfiguration( - "clds/sdc-controller-config-empty-encrypted.json", "sdc-controller1"); - sdcConfig.testAllRequiredParameters(); - assertNull(sdcConfig.getKeyStorePassword()); - } - - @Test - public final void testConsumerGroupWithNull() throws IOException { - SdcSingleControllerConfiguration sdcConfig = loadControllerConfiguration("clds/sdc-controller-config-NULL.json", - "sdc-controller1"); - assertTrue(sdcConfig.getConsumerGroup() == null); - } -} diff --git a/src/test/java/org/onap/policy/clamp/clds/it/AuthorizationControllerItCase.java b/src/test/java/org/onap/policy/clamp/clds/it/AuthorizationControllerItCase.java deleted file mode 100644 index 557a2e96c..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/it/AuthorizationControllerItCase.java +++ /dev/null @@ -1,137 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Modifications Copyright (c) 2019 Samsung - * Modifications Copyright (C) 2020 Nordix Foundation. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.clds.it; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import java.util.Arrays; -import java.util.Collection; -import org.apache.camel.Exchange; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mockito; -import org.onap.policy.clamp.authorization.AuthorizationController; -import org.onap.policy.clamp.authorization.SecureServicePermission; -import org.onap.policy.clamp.clds.exception.NotAuthorizedException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.context.SecurityContext; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.test.context.junit4.SpringRunner; - -/** - * Test CldsDAO calls through CldsModel and CldsEvent. This really test the DB - * and stored procedures. - */ -@RunWith(SpringRunner.class) -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) -public class AuthorizationControllerItCase { - - @Autowired - private AuthorizationController auth; - - private static SecurityContext sc = SecurityContextHolder.getContext(); - - /** - * Setup the variable before the tests execution. - */ - @BeforeClass - public static void setupBefore() { - - sc.setAuthentication(new Authentication() { - @Override - public Collection<? extends GrantedAuthority> getAuthorities() { - return Arrays.asList(new SimpleGrantedAuthority( - new SecureServicePermission("permission-type-cl", "dev", "read").getKey()), - new SimpleGrantedAuthority(new SecureServicePermission("permission-type-cl-manage", "dev", - "DEPLOY").getKey()), - new SimpleGrantedAuthority(new SecureServicePermission("permission-type-filter-vf", "dev", - "12345-55555-55555-5555").getKey())); - } - - @Override - public Object getCredentials() { - return null; - } - - @Override - public Object getDetails() { - return null; - } - - @Override - public Object getPrincipal() { - return "admin"; - } - - @Override - public boolean isAuthenticated() { - return true; - } - - @Override - public void setAuthenticated(boolean authenticatedFlag) throws IllegalArgumentException { - - } - - @Override - public String getName() { - return "admin"; - } - }); - - } - - @AfterClass - - public static void afterCleanup() { - sc.setAuthentication(null); - } - - @Test - public void testIsUserPermitted() { - assertEquals(AuthorizationController.getPrincipalName(sc), "admin"); - assertTrue(auth.isUserPermitted(new SecureServicePermission("permission-type-cl", "dev", "read"))); - assertTrue(auth.isUserPermitted(new SecureServicePermission("permission-type-cl-manage", "dev", "DEPLOY"))); - assertTrue(auth.isUserPermitted( - new SecureServicePermission("permission-type-filter-vf", "dev", "12345-55555-55555-5555"))); - assertFalse(auth.isUserPermitted(new SecureServicePermission("permission-type-cl", "test", "read"))); - } - - @Test(expected = NotAuthorizedException.class) - public void testIfAuthorizeThrowException() { - Exchange ex = Mockito.mock(Exchange.class); - auth.authorize(ex, "cl", "test", "read"); - } -} diff --git a/src/test/java/org/onap/policy/clamp/clds/it/CldsHealthcheckServiceItCase.java b/src/test/java/org/onap/policy/clamp/clds/it/CldsHealthcheckServiceItCase.java deleted file mode 100644 index 52da63952..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/it/CldsHealthcheckServiceItCase.java +++ /dev/null @@ -1,55 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - */ - -package org.onap.policy.clamp.clds.it; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.onap.policy.clamp.clds.model.CldsHealthCheck; -import org.onap.policy.clamp.clds.service.CldsHealthcheckService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - -/** - * Tests HealthCheck Service. - */ -@RunWith(SpringJUnit4ClassRunner.class) -@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) -public class CldsHealthcheckServiceItCase { - - @Autowired - private CldsHealthcheckService cldsHealthcheckService; - - @Test - public void testGetHealthCheck() { - CldsHealthCheck cldsHealthCheck = cldsHealthcheckService.gethealthcheck(); - assertNotNull(cldsHealthCheck); - assertEquals("UP", cldsHealthCheck.getHealthCheckStatus()); - assertEquals("CLDS-APP", cldsHealthCheck.getHealthCheckComponent()); - assertEquals("OK", cldsHealthCheck.getDescription()); - } -} diff --git a/src/test/java/org/onap/policy/clamp/clds/it/HttpsItCase.java b/src/test/java/org/onap/policy/clamp/clds/it/HttpsItCase.java deleted file mode 100644 index 1a4a2ec5f..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/it/HttpsItCase.java +++ /dev/null @@ -1,106 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2017-2018, 2021 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.clds.it; - -import static org.assertj.core.api.Assertions.assertThat; - -import java.io.File; -import java.nio.charset.Charset; -import java.security.KeyManagementException; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; -import java.security.cert.CertificateException; -import java.security.cert.X509Certificate; -import javax.net.ssl.SSLContext; -import org.apache.commons.io.FileUtils; -import org.apache.http.conn.ssl.NoopHostnameVerifier; -import org.apache.http.conn.ssl.SSLConnectionSocketFactory; -import org.apache.http.conn.ssl.TrustStrategy; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.web.client.RestTemplate; - -/** - * Test HTTP and HTTPS settings + redirection of HTTP to HTTPS. - */ -@RunWith(SpringRunner.class) -@SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT) -@TestPropertySource(locations = "classpath:https/https-test.properties") -@DirtiesContext -public class HttpsItCase { - - @Value("${server.port}") - private String httpsPort; - @Value("${server.http-to-https-redirection.port}") - private String httpPort; - - @Test - public void testDesignerIndex() throws Exception { - ResponseEntity<String> entity = - new RestTemplate().getForEntity("http://localhost:" + this.httpPort + "/swagger.html", - String.class); - assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.FOUND); - ResponseEntity<String> httpsEntity = getRestTemplate() - .getForEntity("https://localhost:" + this.httpsPort + "/swagger.html", String.class); - assertThat(httpsEntity.getStatusCode()).isEqualTo(HttpStatus.OK); - assertThat(httpsEntity.getBody()).contains("Clamp Rest API"); - } - - @Test - public void testSwaggerJson() throws Exception { - ResponseEntity<String> httpsEntity = getRestTemplate() - .getForEntity("https://localhost:" + this.httpsPort + "/restservices/clds/api-doc", String.class); - assertThat(httpsEntity.getStatusCode()).isEqualTo(HttpStatus.OK); - assertThat(httpsEntity.getBody()).contains("swagger"); - FileUtils.writeStringToFile(new File("docs/swagger/swagger.json"), httpsEntity.getBody(), - Charset.defaultCharset()); - } - - private RestTemplate getRestTemplate() throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException { - SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom() - .loadTrustMaterial(null, new TrustStrategy() { - @Override - public boolean isTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException { - return true; - } - }).build(); - SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext, new NoopHostnameVerifier()); - CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(csf).build(); - HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); - requestFactory.setHttpClient(httpClient); - RestTemplate restTemplate = new RestTemplate(requestFactory); - return restTemplate; - } -} diff --git a/src/test/java/org/onap/policy/clamp/clds/it/RobotItCase.java b/src/test/java/org/onap/policy/clamp/clds/it/RobotItCase.java deleted file mode 100644 index 017881ba7..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/it/RobotItCase.java +++ /dev/null @@ -1,131 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2020-2021 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.clds.it; - -import static org.apache.commons.io.FileUtils.copyInputStreamToFile; - -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; -import com.github.dockerjava.api.DockerClient; -import com.github.dockerjava.api.command.BuildImageResultCallback; -import com.github.dockerjava.api.command.CreateContainerResponse; -import com.github.dockerjava.api.command.InspectContainerResponse; -import com.github.dockerjava.api.command.LogContainerCmd; -import com.github.dockerjava.api.model.AccessMode; -import com.github.dockerjava.api.model.Bind; -import com.github.dockerjava.api.model.BuildResponseItem; -import com.github.dockerjava.api.model.Frame; -import com.github.dockerjava.api.model.Volume; -import com.github.dockerjava.core.DockerClientBuilder; -import com.github.dockerjava.core.command.LogContainerResultCallback; -import com.github.dockerjava.netty.NettyDockerCmdExecFactory; -import java.io.File; -import java.util.Objects; -import org.codehaus.plexus.util.FileUtils; -import org.junit.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT) -@TestPropertySource(locations = "classpath:robotframework/robotframework-test.properties") -@DirtiesContext -public class RobotItCase { - - @Value("${server.port}") - private String httpPort; - private static final int TIMEOUT_S = 150; - protected static final EELFLogger logger = EELFManager.getInstance().getLogger(RobotItCase.class); - - @Test - public void robotTests() throws Exception { - File robotFolder = new File(getClass().getClassLoader().getResource("robotframework").getFile()); - Volume testsVolume = new Volume("/opt/robotframework/tests"); - DockerClient client = DockerClientBuilder - .getInstance() - .withDockerCmdExecFactory(new NettyDockerCmdExecFactory()) - .build(); - - - BuildImageResultCallback callback = new BuildImageResultCallback() { - @Override - public void onNext(BuildResponseItem item) { - System.out.println("XXX ITEM " + item); - super.onNext(item); - } - }; - - String imageId = client.buildImageCmd(robotFolder).exec(callback).awaitImageId(); - CreateContainerResponse createContainerResponse = client.createContainerCmd(imageId) - .withVolumes(testsVolume) - .withBinds( - new Bind(robotFolder.getAbsolutePath() + "/tests/", testsVolume, AccessMode.rw)) - .withEnv("CLAMP_PORT=" + httpPort) - .withStopTimeout(TIMEOUT_S) - .withNetworkMode("host") - .exec(); - String id = createContainerResponse.getId(); - client.startContainerCmd(id).exec(); - InspectContainerResponse exec; - - int tries = 0; - do { - Thread.sleep(1000); - exec = client.inspectContainerCmd(id).exec(); - tries++; - } while (exec.getState().getRunning() && tries < TIMEOUT_S); - logger.info("RobotFramework result:" + exec.getState()); - - LogContainerCmd logContainerCmd = client.logContainerCmd(id); - logContainerCmd.withStdOut(true).withStdErr(true); - try { - logContainerCmd.exec(new LogContainerResultCallback() { - @Override - public void onNext(Frame item) { - logger.info(item.toString()); - } - }).awaitCompletion(); - } catch (InterruptedException e) { - throw new Exception("Failed to retrieve logs of container " + id, e); - } - - copyInputStreamToFile(client.copyArchiveFromContainerCmd(id, "/opt/robotframework/reports/output.xml").exec(), - new File("target/robotframework/output.xml")); - copyInputStreamToFile(client.copyArchiveFromContainerCmd(id, "/opt/robotframework/reports/log.html").exec(), - new File("target/robotframework/log.html")); - copyInputStreamToFile(client.copyArchiveFromContainerCmd(id, "/opt/robotframework/reports/report.html").exec(), - new File("target/robotframework/report.html")); - client.stopContainerCmd(id); - - logger.info("RobotFramework output.xml file: " + FileUtils.fileRead("target/robotframework/output.xml")); - - Assert.assertEquals(exec.getState().getError(), 0L, - Objects.requireNonNull(exec.getState().getExitCodeLong()).longValue()); - } -} diff --git a/src/test/java/org/onap/policy/clamp/clds/it/config/CldsReferencePropertiesItCase.java b/src/test/java/org/onap/policy/clamp/clds/it/config/CldsReferencePropertiesItCase.java deleted file mode 100644 index c8b9932cc..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/it/config/CldsReferencePropertiesItCase.java +++ /dev/null @@ -1,64 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.clds.it.config; - -import static org.junit.Assert.assertEquals; - -import java.io.IOException; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.onap.policy.clamp.clds.config.ClampProperties; -import org.onap.policy.clamp.clds.util.ResourceFileUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class CldsReferencePropertiesItCase { - - @Autowired - private ClampProperties refProp; - - /** - * Test getting a value the properties in string. - */ - @Test - public void testGetStringValue() { - assertEquals("healthcheck", refProp.getStringValue("policy.api.userName")); - } - - /** - * Test getting prop value as a JSON Node / template. - * - * @throws IOException when JSON parsing fails - */ - @Test - public void testGetFileContent() throws IOException { - String users = ResourceFileUtils.getResourceAsString("clds/clds-users.json"); - assertEquals(users, refProp.getFileContent("files.cldsUsers")); - // Test composite key - assertEquals(users, refProp.getFileContent("files", "cldsUsers")); - } -} diff --git a/src/test/java/org/onap/policy/clamp/clds/it/config/SdcControllersConfigurationItCase.java b/src/test/java/org/onap/policy/clamp/clds/it/config/SdcControllersConfigurationItCase.java deleted file mode 100644 index 70aeccf59..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/it/config/SdcControllersConfigurationItCase.java +++ /dev/null @@ -1,88 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP POLICY-CLAMP - * ================================================================================ - * Copyright (C) 2017, 2021 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.clamp.clds.it.config; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - -import com.google.gson.JsonSyntaxException; -import java.io.IOException; -import java.util.Map; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.onap.policy.clamp.clds.config.sdc.SdcControllersConfiguration; -import org.onap.policy.clamp.clds.config.sdc.SdcSingleControllerConfiguration; -import org.onap.policy.clamp.clds.exception.sdc.controller.SdcParametersException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.test.util.ReflectionTestUtils; - -/** - * This class tests the SDC Controller config. - */ -@RunWith(SpringRunner.class) -@SpringBootTest -@ActiveProfiles({"clamp-default", "clamp-default-user", "clamp-sdc-controller"}) -public class SdcControllersConfigurationItCase { - - @Autowired - private SdcControllersConfiguration sdcControllersConfiguration; - - public final void loadFile(String fileName) throws IOException { - ReflectionTestUtils.setField(sdcControllersConfiguration, "sdcControllerFile", fileName); - sdcControllersConfiguration.loadConfiguration(); - } - - @Test - public void testGetAllDefinedControllers() throws IOException { - loadFile("classpath:clds/sdc-controllers-config.json"); - Map<String, SdcSingleControllerConfiguration> mapResult = sdcControllersConfiguration - .getAllDefinedControllers(); - assertTrue(mapResult.size() == 2); - assertEquals("sdc-controller1", mapResult.get("sdc-controller1").getSdcControllerName()); - assertEquals("sdc-controller2", mapResult.get("sdc-controller2").getSdcControllerName()); - } - - @Test - public void testGetSdcSingleControllerConfiguration() throws IOException { - loadFile("classpath:clds/sdc-controllers-config.json"); - assertEquals("sdc-controller1", sdcControllersConfiguration - .getSdcSingleControllerConfiguration("sdc-controller1").getSdcControllerName()); - assertEquals("sdc-controller2", sdcControllersConfiguration - .getSdcSingleControllerConfiguration("sdc-controller2").getSdcControllerName()); - } - - @Test(expected = JsonSyntaxException.class) - public void testBadJsonLoading() throws IOException { - loadFile("classpath:clds/sdc-controllers-config-bad.json"); - fail("Should have raised an exception"); - } - - @Test(expected = SdcParametersException.class) - public void testMissingParamInJsonLoading() throws IOException { - loadFile("classpath:clds/sdc-controllers-config-missing-param.json"); - sdcControllersConfiguration.getAllDefinedControllers(); - fail("Should have raised an exception"); - } -} diff --git a/src/test/java/org/onap/policy/clamp/clds/it/sdc/controller/SdcSingleControllerItCase.java b/src/test/java/org/onap/policy/clamp/clds/it/sdc/controller/SdcSingleControllerItCase.java deleted file mode 100644 index 787118902..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/it/sdc/controller/SdcSingleControllerItCase.java +++ /dev/null @@ -1,152 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2018 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Modifications Copyright (c) 2019 Samsung - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.clds.it.sdc.controller; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.mock; - -import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.List; -import org.assertj.core.api.Assertions; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mockito; -import org.onap.policy.clamp.clds.config.ClampProperties; -import org.onap.policy.clamp.clds.config.sdc.SdcSingleControllerConfigurationTest; -import org.onap.policy.clamp.clds.exception.sdc.controller.SdcControllerException; -import org.onap.policy.clamp.clds.sdc.controller.SdcSingleController; -import org.onap.policy.clamp.clds.sdc.controller.SdcSingleControllerStatus; -import org.onap.policy.clamp.clds.sdc.controller.installer.CsarHandler; -import org.onap.policy.clamp.loop.CsarInstaller; -import org.onap.sdc.api.notification.IArtifactInfo; -import org.onap.sdc.api.notification.INotificationData; -import org.onap.sdc.api.notification.IResourceInstance; -import org.slf4j.MDC; -import org.slf4j.spi.MDCAdapter; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -@ActiveProfiles({"clamp-default", "clamp-default-user", "clamp-sdc-controller"}) -public class SdcSingleControllerItCase { - - private static final String CSAR_ARTIFACT_NAME = "testArtifact.csar"; - private static final String SERVICE_UUID = "serviceUUID"; - private static final String RESOURCE1_UUID = "resource1UUID"; - private static final String RESOURCE1_INSTANCE_NAME = "sim-1802 0"; - - @Autowired - private ClampProperties clampProp; - - private SdcSingleController sdcSingleController; - - private CsarInstaller csarInstaller = mock(CsarInstaller.class); - - private INotificationData buildFakeSdcNotification() { - // BUild what is needed for CSAR - IArtifactInfo serviceArtifact = mock(IArtifactInfo.class); - Mockito.when(serviceArtifact.getArtifactType()).thenReturn(CsarHandler.CSAR_TYPE); - Mockito.when(serviceArtifact.getArtifactName()).thenReturn(CSAR_ARTIFACT_NAME); - List<IArtifactInfo> servicesList = new ArrayList<>(); - servicesList.add(serviceArtifact); - INotificationData notifData = mock(INotificationData.class); - Mockito.when(notifData.getServiceArtifacts()).thenReturn(servicesList); - // Build what is needed for UUID - Mockito.when(notifData.getServiceInvariantUUID()).thenReturn(SERVICE_UUID); - // Build fake resource with one artifact BLUEPRINT - IResourceInstance resource1 = mock(IResourceInstance.class); - Mockito.when(resource1.getResourceType()).thenReturn("VF"); - Mockito.when(resource1.getResourceInvariantUUID()).thenReturn(RESOURCE1_UUID); - Mockito.when(resource1.getResourceInstanceName()).thenReturn(RESOURCE1_INSTANCE_NAME); - // Create a fake artifact for resource - IArtifactInfo blueprintArtifact = mock(IArtifactInfo.class); - Mockito.when(blueprintArtifact.getArtifactType()).thenReturn(CsarHandler.BLUEPRINT_TYPE); - List<IArtifactInfo> artifactsListForResource = new ArrayList<>(); - artifactsListForResource.add(blueprintArtifact); - Mockito.when(resource1.getArtifacts()).thenReturn(artifactsListForResource); - List<IResourceInstance> resourcesList = new ArrayList<>(); - resourcesList.add(resource1); - Mockito.when(notifData.getResources()).thenReturn(resourcesList); - return notifData; - } - - /** - * Initialization method. - */ - @Before - public void init() { - sdcSingleController = new SdcSingleController(clampProp, csarInstaller, SdcSingleControllerConfigurationTest - .loadControllerConfiguration("clds/sdc-controller-config-TLS.json", "sdc-controller1"), null) { - }; - } - - @Test - public void testTreatNotification() { - // when - sdcSingleController.treatNotification(buildFakeSdcNotification()); - // then - Assertions.assertThat(sdcSingleController.getNbOfNotificationsOngoing()).isEqualTo(0); - } - - @Test - public void testCloseSdc() throws SdcControllerException { - // when - sdcSingleController.closeSdc(); - // then - assertThat(sdcSingleController.getControllerStatus()).isEqualTo(SdcSingleControllerStatus.STOPPED); - } - - @Test - public void testActivateCallback() throws InvocationTargetException, IllegalAccessException, NoSuchMethodException, - InstantiationException, ClassNotFoundException { - // given - - Class<?> innerClass = Class - .forName("org.onap.policy.clamp.clds.sdc.controller.SdcSingleController$SdcNotificationCallBack"); - Constructor<?> constructor = innerClass.getDeclaredConstructor(SdcSingleController.class, - SdcSingleController.class); - constructor.setAccessible(true); - Object child = constructor.newInstance(sdcSingleController, sdcSingleController); - Method method = child.getClass().getDeclaredMethod("activateCallback", INotificationData.class); - method.setAccessible(true); - MDCAdapter mdcAdapter = MDC.getMDCAdapter(); - // when - method.invoke(child, buildFakeSdcNotification()); - // then - assertThat(mdcAdapter.get("ResponseCode")).isEqualTo("0"); - assertThat(mdcAdapter.get("StatusCode")).isEqualTo("COMPLETE"); - assertThat(mdcAdapter.get("ResponseDescription")) - .isEqualTo("SDC Notification received and processed successfully"); - assertThat(mdcAdapter.get("ClassName")).isEqualTo(child.getClass().getName()); - } -} diff --git a/src/test/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponseCacheTestItCase.java b/src/test/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponseCacheTestItCase.java deleted file mode 100644 index f406e5ed2..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponseCacheTestItCase.java +++ /dev/null @@ -1,127 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.clds.model.dcae; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.assertEquals; - -import java.util.HashSet; -import java.util.Set; -import org.apache.camel.CamelContext; -import org.apache.camel.Exchange; -import org.apache.camel.builder.ExchangeBuilder; -import org.junit.BeforeClass; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.onap.policy.clamp.clds.Application; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.http.HttpStatus; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest(classes = Application.class) -public class DcaeInventoryResponseCacheTestItCase { - - public static DcaeInventoryCache inventoryCache = new DcaeInventoryCache(); - - @Autowired - CamelContext camelContext; - - /** - * Initialize the responses. - */ - @BeforeClass - public static void createExample() { - DcaeInventoryResponse response1 = new DcaeInventoryResponse(); - response1.setAsdcServiceId("id1"); - response1.setAsdcResourceId("0"); - DcaeInventoryResponse response2 = new DcaeInventoryResponse(); - response2.setAsdcServiceId("id1"); - response2.setAsdcResourceId("1"); - DcaeInventoryResponse response3 = new DcaeInventoryResponse(); - response3.setAsdcServiceId("id1"); - response3.setAsdcResourceId("2"); - DcaeInventoryResponse response4 = new DcaeInventoryResponse(); - response4.setAsdcServiceId("id2"); - response4.setAsdcResourceId("0"); - DcaeInventoryResponse response5 = new DcaeInventoryResponse(); - response5.setAsdcServiceId("id2"); - response5.setAsdcResourceId("1"); - - inventoryCache.addDcaeInventoryResponse(response1); - inventoryCache.addDcaeInventoryResponse(response3); - inventoryCache.addDcaeInventoryResponse(response2); - inventoryCache.addDcaeInventoryResponse(response4); - inventoryCache.addDcaeInventoryResponse(response5); - } - - @Test - public void testGetAllLoopIds() { - assertThat(inventoryCache.getAllLoopIds().size()).isEqualTo(2); - } - - @Test - public void testGetAllBlueprintsPerLoopId() { - int value = 0; - for (DcaeInventoryResponse inventoryResponse : inventoryCache.getAllBlueprintsPerLoopId("id1")) { - assertThat(Integer.valueOf(inventoryResponse.getAsdcResourceId())).isEqualTo(value++); - } - - value = 0; - for (DcaeInventoryResponse inventoryResponse : inventoryCache.getAllBlueprintsPerLoopId("id2")) { - assertThat(Integer.valueOf(inventoryResponse.getAsdcResourceId())).isEqualTo(value++); - } - } - - @Test - public void testDcaeInventoryResponse() { - Exchange exchange = ExchangeBuilder.anExchange(camelContext).build(); - Exchange exchangeResponse = camelContext.createProducerTemplate() - .send("direct:get-all-dcae-blueprint-inventory", exchange); - assertThat(HttpStatus.valueOf((Integer) exchangeResponse.getIn().getHeader(Exchange.HTTP_RESPONSE_CODE)) - .is2xxSuccessful()).isTrue(); - Set<DcaeInventoryResponse> blueprint = inventoryCache.getAllBlueprintsPerLoopId("testAsdcServiceId"); - assertThat(blueprint.size()).isEqualTo(2); - - DcaeInventoryResponse response1 = new DcaeInventoryResponse(); - response1.setAsdcResourceId("0"); - response1.setTypeName("testTypeName"); - response1.setAsdcServiceId("testAsdcServiceId"); - response1.setBlueprintTemplate("testBlueprintTemplate"); - response1.setTypeId("testtypeId"); - DcaeInventoryResponse response2 = new DcaeInventoryResponse(); - response2.setAsdcResourceId("1"); - response2.setTypeName("testTypeName2"); - response2.setAsdcServiceId("testAsdcServiceId"); - response2.setBlueprintTemplate("testBlueprintTemplate2"); - response2.setTypeId("testtypeId2"); - - Set<DcaeInventoryResponse> expectedBlueprint = new HashSet<>(); - expectedBlueprint.add(response1); - expectedBlueprint.add(response2); - - assertEquals(blueprint, expectedBlueprint); - } -} diff --git a/src/test/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponseTest.java b/src/test/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponseTest.java deleted file mode 100644 index a246e0efa..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponseTest.java +++ /dev/null @@ -1,59 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.clds.model.dcae; - -import static org.assertj.core.api.Assertions.assertThat; - -import java.util.TreeSet; -import org.junit.Test; - -public class DcaeInventoryResponseTest { - - @Test - public void testComparator() { - DcaeInventoryResponse response1 = new DcaeInventoryResponse(); - response1.setAsdcServiceId("id1"); - response1.setAsdcResourceId("0"); - DcaeInventoryResponse response2 = new DcaeInventoryResponse(); - response2.setAsdcServiceId("id2"); - response2.setAsdcResourceId("1"); - DcaeInventoryResponse response3 = new DcaeInventoryResponse(); - response3.setAsdcServiceId("id3"); - response3.setAsdcResourceId("2"); - DcaeInventoryResponse response4 = new DcaeInventoryResponse(); - response4.setAsdcServiceId("id4"); - response4.setAsdcResourceId("3"); - - TreeSet<DcaeInventoryResponse> responseSet = new TreeSet<>(); - responseSet.add(response4); - responseSet.add(response3); - responseSet.add(response1); - responseSet.add(response2); - - int value = 0; - for (DcaeInventoryResponse inventoryResponse : responseSet) { - assertThat(Integer.valueOf(inventoryResponse.getAsdcResourceId()) == value++).isTrue(); - } - } -} diff --git a/src/test/java/org/onap/policy/clamp/clds/model/jsontype/JsonTypeDescriptorTest.java b/src/test/java/org/onap/policy/clamp/clds/model/jsontype/JsonTypeDescriptorTest.java deleted file mode 100644 index 7999709c2..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/model/jsontype/JsonTypeDescriptorTest.java +++ /dev/null @@ -1,95 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2019 Samsung. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.clds.model.jsontype; - -import static org.assertj.core.api.Assertions.assertThat; - -import com.google.gson.JsonObject; -import org.hibernate.HibernateException; -import org.junit.Test; -import org.onap.policy.clamp.dao.model.jsontype.JsonTypeDescriptor; - -public class JsonTypeDescriptorTest { - - private JsonTypeDescriptor descriptor = new JsonTypeDescriptor(); - - @Test - public void testFromString() { - JsonObject object = new JsonObject(); - object.addProperty("one", "oneValue"); - JsonObject child = new JsonObject(); - child.addProperty("two", "twoValue"); - object.add("child", child); - - JsonObject jsonResult = descriptor.fromString("{\"one\":\"oneValue\",\"child\":{\"two\":\"twoValue\"}}"); - - assertThat(jsonResult).isEqualTo(object); - } - - @Test - public void testUnwrap() { - JsonObject res1 = descriptor.unwrap(null, null, null); - assertThat(res1).isNull(); - - JsonObject object = new JsonObject(); - object.addProperty("one", "oneValue"); - JsonObject child = new JsonObject(); - child.addProperty("two", "twoValue"); - object.add("child", child); - String res2 = descriptor.unwrap(object, String.class, null); - assertThat(res2.replace("\n", "").replace(" ", "")) - .isEqualTo("{\"one\":\"oneValue\",\"child\":{\"two\":\"twoValue\"}}"); - - Object res3 = descriptor.unwrap(object, JsonObject.class, null); - String res3Str = ((String) res3).replace(" ", "").replace("\\n", "").replace("\\", "") - .replace("\"{", "{").replace("}\"", "}"); - assertThat(res3Str).isEqualTo("{\"one\":\"oneValue\",\"child\":{\"two\":\"twoValue\"}}"); - } - - @Test(expected = HibernateException.class) - public void testUnwrapExpectationThrown() { - JsonObject object = new JsonObject(); - object.addProperty("one", "oneValue"); - - descriptor.unwrap(object, Integer.class, null); - } - - @Test - public void testWrap() { - JsonObject res1 = descriptor.wrap(null, null); - assertThat(res1).isNull(); - - JsonObject object = new JsonObject(); - object.addProperty("one", "oneValue"); - JsonObject child = new JsonObject(); - child.addProperty("two", "twoValue"); - object.add("child", child); - JsonObject res2 = descriptor.wrap("{\"one\":\"oneValue\",\"child\":{\"two\":\"twoValue\"}}", null); - assertThat(res2).isEqualTo(object); - } - - @Test(expected = HibernateException.class) - public void testWrapExpectationThrown() { - descriptor.wrap(1, null); - } -}
\ No newline at end of file diff --git a/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintParserTest.java b/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintParserTest.java deleted file mode 100644 index 085b3d187..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintParserTest.java +++ /dev/null @@ -1,208 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2019 Nokia Intellectual Property. All rights - * reserved. - * ================================================================================ - * Modifications Copyright (c) 2019 Samsung - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.clds.sdc.controller.installer; - -import static org.assertj.core.api.Assertions.assertThat; - -import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import java.io.IOException; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; -import org.json.JSONObject; -import org.junit.Assert; -import org.junit.BeforeClass; -import org.junit.Test; -import org.onap.policy.clamp.clds.exception.sdc.controller.BlueprintParserException; -import org.onap.policy.clamp.clds.util.ResourceFileUtils; -import org.yaml.snakeyaml.Yaml; - -public class BlueprintParserTest { - private static final Gson GSON = new Gson(); - private static final String FIRST_APPP = "first_app"; - private static final String SECOND_APPP = "second_app"; - private static final String THIRD_APPP = "third_app"; - private static final String MODEL_TYPE1 = "type1"; - private static final String MODEL_TYPE_TCA = "onap.policies.monitoring.cdap.tca.hi.lo.app"; - private static final String VERSION = "1.0.0"; - - private static String microServiceTheWholeBlueprintValid; - private static String newMicroServiceBlueprint; - private static JsonObject jsonObjectBlueprintInvalid; - private static JsonObject jsonObjectBlueprintWithoutName; - private static JsonObject jsonObjectBlueprintWithoutProperties; - private static JsonObject jsonObjectBlueprintWithoutRelationships; - private static JsonObject jsonObjectBlueprintValidWithVersion; - - /** - * Method to load Blueprints before all test. - * - * @throws IOException In case of issues when opening the files - */ - @BeforeClass - public static void loadBlueprints() throws IOException { - microServiceTheWholeBlueprintValid = ResourceFileUtils - .getResourceAsString("clds/blueprint-with-microservice-chain.yaml"); - - newMicroServiceBlueprint = ResourceFileUtils.getResourceAsString("clds/new-microservice.yaml"); - - String microServiceBlueprintInvalid = ResourceFileUtils - .getResourceAsString("clds/single-microservice-fragment-invalid.yaml"); - jsonObjectBlueprintInvalid = yamlToJson(microServiceBlueprintInvalid); - String microServiceBlueprintWithoutName = ResourceFileUtils - .getResourceAsString("clds/single-microservice-fragment-without-name.yaml"); - jsonObjectBlueprintWithoutName = yamlToJson(microServiceBlueprintWithoutName); - String microServiceBlueprintWithoutProperties = ResourceFileUtils - .getResourceAsString("clds/single-microservice-fragment-without-properties.yaml"); - jsonObjectBlueprintWithoutProperties = yamlToJson(microServiceBlueprintWithoutProperties); - String microServiceBlueprintValidWithVersion = ResourceFileUtils - .getResourceAsString("clds/single-microservice-fragment-valid-with-version.yaml"); - jsonObjectBlueprintValidWithVersion = yamlToJson(microServiceBlueprintValidWithVersion); - - String microServiceBlueprintWithoutRelationships = ResourceFileUtils - .getResourceAsString("clds/single-microservice-fragment-without-relationships.yaml"); - jsonObjectBlueprintWithoutRelationships = yamlToJson(microServiceBlueprintWithoutRelationships); - - } - - @Test - public void getNameShouldReturnDefinedName() { - final JsonObject jsonObject = jsonObjectBlueprintInvalid; - String expectedName = jsonObject.get(jsonObject.keySet().iterator().next()).getAsJsonObject().get("properties") - .getAsJsonObject().get("name").getAsString(); - Entry<String, JsonElement> entry = jsonObject.entrySet().iterator().next(); - String actualName = BlueprintParser.getName(entry); - - Assert.assertEquals(expectedName, actualName); - } - - @Test - public void getNameShouldReturnServiceNameWhenNoNameDefined() { - final JsonObject jsonObject = jsonObjectBlueprintWithoutName; - - String expectedName = jsonObject.keySet().iterator().next(); - Entry<String, JsonElement> entry = jsonObject.entrySet().iterator().next(); - String actualName = BlueprintParser.getName(entry); - - Assert.assertEquals(expectedName, actualName); - } - - @Test - public void getNameShouldReturnServiceNameWhenNoPropertiesDefined() { - final JsonObject jsonObject = jsonObjectBlueprintWithoutProperties; - - String expectedName = jsonObject.keySet().iterator().next(); - Entry<String, JsonElement> entry = jsonObject.entrySet().iterator().next(); - String actualName = BlueprintParser.getName(entry); - - Assert.assertEquals(expectedName, actualName); - } - - @Test - public void getInputShouldReturnInputWhenPresent() { - final JsonObject jsonObject = jsonObjectBlueprintInvalid; - - String expected = FIRST_APPP; - Entry<String, JsonElement> entry = jsonObject.entrySet().iterator().next(); - String actual = BlueprintParser.getInput(entry); - - Assert.assertEquals(expected, actual); - } - - @Test - public void getInputShouldReturnEmptyStringWhenAbsent() { - final JsonObject jsonObject = jsonObjectBlueprintWithoutRelationships; - - String expected = ""; - Entry<String, JsonElement> entry = jsonObject.entrySet().iterator().next(); - String actual = BlueprintParser.getInput(entry); - - Assert.assertEquals(expected, actual); - } - - @Test(expected = BlueprintParserException.class) - public void getNodeRepresentationFromIncompleteYaml() throws BlueprintParserException { - BlueprintParser.getNodeRepresentation(jsonObjectBlueprintInvalid.entrySet().iterator().next(), - jsonObjectBlueprintInvalid, null); - } - - @Test - public void getNodeRepresentationFromCompleteYamlWithModelVersion() throws BlueprintParserException { - final JsonObject jsonObject = jsonObjectBlueprintValidWithVersion; - - BlueprintMicroService expected = new BlueprintMicroService(SECOND_APPP, MODEL_TYPE1, "", "10.0.0"); - Entry<String, JsonElement> entry = jsonObject.entrySet().iterator().next(); - BlueprintMicroService actual = BlueprintParser.getNodeRepresentation(entry, jsonObject, null); - - Assert.assertEquals(expected, actual); - } - - @Test - public void getMicroServicesFromBlueprintTest() throws BlueprintParserException { - BlueprintMicroService thirdApp = new BlueprintMicroService(THIRD_APPP, MODEL_TYPE_TCA, SECOND_APPP, VERSION); - BlueprintMicroService firstApp = new BlueprintMicroService(FIRST_APPP, MODEL_TYPE_TCA, "", VERSION); - BlueprintMicroService secondApp = new BlueprintMicroService(SECOND_APPP, MODEL_TYPE_TCA, FIRST_APPP, VERSION); - - Set<BlueprintMicroService> expected = new HashSet<>(Arrays.asList(firstApp, secondApp, thirdApp)); - Set<BlueprintMicroService> actual = BlueprintParser.getMicroServices(microServiceTheWholeBlueprintValid); - - Assert.assertEquals(expected, actual); - } - - @Test - public void fallBackToOneMicroServiceTcaTest() { - BlueprintMicroService tcaMs = new BlueprintMicroService(BlueprintParser.TCA, - "onap.policies.monitoring.cdap.tca.hi.lo.app", "", VERSION); - List<BlueprintMicroService> expected = Collections.singletonList(tcaMs); - List<BlueprintMicroService> actual = BlueprintParser.fallbackToOneMicroService(); - - Assert.assertEquals(expected, actual); - } - - @Test - public void newMicroServiceTest() throws BlueprintParserException { - List<BlueprintMicroService> microServicesChain = new ChainGenerator() - .getChainOfMicroServices(BlueprintParser.getMicroServices(newMicroServiceBlueprint)); - if (microServicesChain.isEmpty()) { - microServicesChain = BlueprintParser.fallbackToOneMicroService(); - } - assertThat(microServicesChain.size()).isEqualTo(1); - assertThat(microServicesChain.get(0).getName()).isEqualTo("pmsh"); - } - - private static JsonObject yamlToJson(String yamlString) { - Yaml yaml = new Yaml(); - Map<String, Object> map = yaml.load(yamlString); - JSONObject jsonObject = new JSONObject(map); - return GSON.fromJson(jsonObject.toString(), JsonObject.class); - } -} diff --git a/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/ChainGeneratorTest.java b/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/ChainGeneratorTest.java deleted file mode 100644 index d7a3b3823..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/ChainGeneratorTest.java +++ /dev/null @@ -1,77 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2019 Nokia Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.clds.sdc.controller.installer; - -import java.util.Arrays; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import org.junit.Assert; -import org.junit.Test; - -public class ChainGeneratorTest { - private static final String FIRST_APPP = "first_app"; - private static final String SECOND_APPP = "second_app"; - private static final String THIRD_APPP = "third_app"; - private static final String FOURTH_APPP = "fourth_app"; - private static final String DEFAULT_VERSION = "1.0.0"; - - @Test - public void getChainOfMicroServicesTest() { - BlueprintMicroService ms1 = new BlueprintMicroService(FIRST_APPP, "", "", DEFAULT_VERSION); - BlueprintMicroService ms2 = new BlueprintMicroService(SECOND_APPP, "", FIRST_APPP, DEFAULT_VERSION); - BlueprintMicroService ms3 = new BlueprintMicroService(THIRD_APPP, "", SECOND_APPP, DEFAULT_VERSION); - BlueprintMicroService ms4 = new BlueprintMicroService(FOURTH_APPP, "", THIRD_APPP, DEFAULT_VERSION); - - List<BlueprintMicroService> expectedList = Arrays.asList(ms1, ms2, ms3, ms4); - Set<BlueprintMicroService> inputSet = new HashSet<>(expectedList); - - List<BlueprintMicroService> actualList = new ChainGenerator().getChainOfMicroServices(inputSet); - Assert.assertEquals(expectedList, actualList); - } - - @Test - public void getChainOfMicroServicesTwiceNoInputTest() { - BlueprintMicroService ms1 = new BlueprintMicroService(FIRST_APPP, "", "", DEFAULT_VERSION); - BlueprintMicroService ms2 = new BlueprintMicroService(SECOND_APPP, "", "", DEFAULT_VERSION); - BlueprintMicroService ms3 = new BlueprintMicroService(THIRD_APPP, "", SECOND_APPP, DEFAULT_VERSION); - BlueprintMicroService ms4 = new BlueprintMicroService(FOURTH_APPP, "", FIRST_APPP, DEFAULT_VERSION); - - Set<BlueprintMicroService> inputSet = new HashSet<>(Arrays.asList(ms1, ms2, ms3, ms4)); - List<BlueprintMicroService> actualList = new ChainGenerator().getChainOfMicroServices(inputSet); - Assert.assertTrue(actualList.isEmpty()); - } - - @Test - public void getChainOfMicroServicesBranchingTest() { - BlueprintMicroService ms1 = new BlueprintMicroService(FIRST_APPP, "", "", DEFAULT_VERSION); - BlueprintMicroService ms2 = new BlueprintMicroService(SECOND_APPP, "", FIRST_APPP, DEFAULT_VERSION); - BlueprintMicroService ms3 = new BlueprintMicroService(THIRD_APPP, "", FIRST_APPP, DEFAULT_VERSION); - BlueprintMicroService ms4 = new BlueprintMicroService(FOURTH_APPP, "", FIRST_APPP, DEFAULT_VERSION); - - Set<BlueprintMicroService> inputSet = new HashSet<>(Arrays.asList(ms1, ms2, ms3, ms4)); - List<BlueprintMicroService> actualList = new ChainGenerator().getChainOfMicroServices(inputSet); - Assert.assertTrue(actualList.isEmpty()); - } -} diff --git a/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandlerTest.java b/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandlerTest.java deleted file mode 100644 index 08e425abf..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandlerTest.java +++ /dev/null @@ -1,199 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2018 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.clds.sdc.controller.installer; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.List; -import org.apache.commons.io.IOUtils; -import org.junit.Test; -import org.mockito.Mockito; -import org.onap.policy.clamp.clds.exception.sdc.controller.CsarHandlerException; -import org.onap.policy.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException; -import org.onap.policy.clamp.clds.util.ResourceFileUtils; -import org.onap.sdc.api.notification.IArtifactInfo; -import org.onap.sdc.api.notification.INotificationData; -import org.onap.sdc.api.notification.IResourceInstance; -import org.onap.sdc.api.results.IDistributionClientDownloadResult; -import org.onap.sdc.tosca.parser.exceptions.SdcToscaParserException; - -public class CsarHandlerTest { - - private static final String SDC_FOLDER = "/tmp/csar-handler-tests"; - private static final String CSAR_ARTIFACT_NAME = "testArtifact.csar"; - private static final String SERVICE_UUID = "serviceUUID"; - private static final String RESOURCE1_UUID = "resource1UUID"; - private static final String RESOURCE1_INSTANCE_NAME = "sim-1802 0"; - private static final String RESOURCE1_INSTANCE_NAME_IN_CSAR = "sim18020"; - private static final String BLUEPRINT1_NAME = "FOI.Simfoimap223S0112.event_proc_bp.yaml"; - private static final String BLUEPRINT2_NAME = "FOI.Simfoimap223S0112.event_proc_bp2.yaml"; - - @Test - public void testConstructor() throws CsarHandlerException { - IArtifactInfo serviceArtifact = Mockito.mock(IArtifactInfo.class); - Mockito.when(serviceArtifact.getArtifactType()).thenReturn(CsarHandler.CSAR_TYPE); - Mockito.when(serviceArtifact.getArtifactName()).thenReturn(CSAR_ARTIFACT_NAME); - List<IArtifactInfo> servicesList = new ArrayList<>(); - servicesList.add(serviceArtifact); - INotificationData notifData = Mockito.mock(INotificationData.class); - Mockito.when(notifData.getServiceArtifacts()).thenReturn(servicesList); - CsarHandler csar = new CsarHandler(notifData, "test-controller", SDC_FOLDER); - assertEquals(SDC_FOLDER + "/test-controller" + "/" + CSAR_ARTIFACT_NAME, csar.getFilePath()); - } - - @Test(expected = CsarHandlerException.class) - public void testFailingConstructor() throws CsarHandlerException { - INotificationData notifData = Mockito.mock(INotificationData.class); - Mockito.when(notifData.getServiceArtifacts()).thenReturn(new ArrayList<>()); - new CsarHandler(notifData, "test-controller", "/tmp/csar-handler-tests"); - fail("Exception should have been raised"); - } - - private INotificationData buildFakeSdcNotification() { - // BUild what is needed for CSAR - IArtifactInfo serviceArtifact = Mockito.mock(IArtifactInfo.class); - Mockito.when(serviceArtifact.getArtifactType()).thenReturn(CsarHandler.CSAR_TYPE); - Mockito.when(serviceArtifact.getArtifactName()).thenReturn(CSAR_ARTIFACT_NAME); - List<IArtifactInfo> servicesList = new ArrayList<>(); - servicesList.add(serviceArtifact); - INotificationData notifData = Mockito.mock(INotificationData.class); - Mockito.when(notifData.getServiceArtifacts()).thenReturn(servicesList); - // Build what is needed for UUID - Mockito.when(notifData.getServiceInvariantUUID()).thenReturn(SERVICE_UUID); - // Build fake resource with one artifact BLUEPRINT - IResourceInstance resource1 = Mockito.mock(IResourceInstance.class); - Mockito.when(resource1.getResourceType()).thenReturn("VF"); - Mockito.when(resource1.getResourceInvariantUUID()).thenReturn(RESOURCE1_UUID); - Mockito.when(resource1.getResourceInstanceName()).thenReturn(RESOURCE1_INSTANCE_NAME); - // Create a fake artifact for resource - IArtifactInfo blueprintArtifact = Mockito.mock(IArtifactInfo.class); - Mockito.when(blueprintArtifact.getArtifactType()).thenReturn(CsarHandler.BLUEPRINT_TYPE); - List<IArtifactInfo> artifactsListForResource = new ArrayList<>(); - artifactsListForResource.add(blueprintArtifact); - Mockito.when(resource1.getArtifacts()).thenReturn(artifactsListForResource); - List<IResourceInstance> resourcesList = new ArrayList<>(); - resourcesList.add(resource1); - Mockito.when(notifData.getResources()).thenReturn(resourcesList); - return notifData; - } - - private IDistributionClientDownloadResult buildFakeSdcResut() throws IOException { - IDistributionClientDownloadResult resultArtifact = Mockito.mock(IDistributionClientDownloadResult.class); - Mockito.when(resultArtifact.getArtifactPayload()).thenReturn( - IOUtils.toByteArray(ResourceFileUtils.getResourceAsStream("example/sdc/service-Simsfoimap0112.csar"))); - return resultArtifact; - } - - private IDistributionClientDownloadResult buildFakeSdcResultWithoutPolicyModel() throws IOException { - IDistributionClientDownloadResult resultArtifact = Mockito.mock(IDistributionClientDownloadResult.class); - Mockito.when(resultArtifact.getArtifactPayload()).thenReturn( - IOUtils.toByteArray(ResourceFileUtils.getResourceAsStream("example/sdc/service-without-policy.csar"))); - return resultArtifact; - } - - @Test - public void testSave() - throws SdcArtifactInstallerException, SdcToscaParserException, CsarHandlerException, IOException { - CsarHandler csar = new CsarHandler(buildFakeSdcNotification(), "test-controller", "/tmp/csar-handler-tests"); - // Test the save - csar.save(buildFakeSdcResut()); - assertTrue((new File(SDC_FOLDER + "/test-controller/" + CSAR_ARTIFACT_NAME)).exists()); - assertEquals(CSAR_ARTIFACT_NAME, csar.getArtifactElement().getArtifactName()); - assertNotNull(csar.getSdcCsarHelper()); - // Test dcaeBlueprint - String blueprint = csar.getMapOfBlueprints().get(BLUEPRINT1_NAME).getDcaeBlueprint(); - assertNotNull(blueprint); - assertTrue(!blueprint.isEmpty()); - assertTrue(blueprint.contains("DCAE-VES-PM-EVENT-v1")); - // Test additional properties from Sdc notif - assertEquals(BLUEPRINT1_NAME, csar.getMapOfBlueprints().get(BLUEPRINT1_NAME).getBlueprintArtifactName()); - assertEquals(RESOURCE1_UUID, - csar.getMapOfBlueprints().get(BLUEPRINT1_NAME).getResourceAttached().getResourceInvariantUUID()); - assertEquals(SERVICE_UUID, csar.getMapOfBlueprints().get(BLUEPRINT1_NAME).getBlueprintInvariantServiceUuid()); - - // Just check the second one is there as well - assertEquals(BLUEPRINT2_NAME, csar.getMapOfBlueprints().get(BLUEPRINT2_NAME).getBlueprintArtifactName()); - blueprint = csar.getMapOfBlueprints().get(BLUEPRINT2_NAME).getDcaeBlueprint(); - assertNotNull(blueprint); - assertTrue(!blueprint.isEmpty()); - assertTrue(blueprint.contains("DCAE-VES-PM-EVENT-v1")); - // Do some cleanup - Path path = Paths.get(SDC_FOLDER + "/test-controller/" + CSAR_ARTIFACT_NAME); - Files.deleteIfExists(path); - - } - - @Test - public void testLoadingOfPolicyModelFromCsar() - throws CsarHandlerException, IOException, SdcArtifactInstallerException, SdcToscaParserException { - CsarHandler csar = new CsarHandler(buildFakeSdcNotification(), "test-controller", "/tmp/csar-handler-tests"); - csar.save(buildFakeSdcResut()); - String policyModelYaml = csar.getPolicyModelYaml().get(); - assertTrue(policyModelYaml.contains("tosca_simple_yaml_1_0_0")); - } - - @Test - public void testLoadingOfNonexistentPolicyModelFromCsar() - throws CsarHandlerException, IOException, SdcArtifactInstallerException, SdcToscaParserException { - CsarHandler csar = new CsarHandler(buildFakeSdcNotification(), "test-controller", "/tmp/csar-handler-tests"); - csar.save(buildFakeSdcResultWithoutPolicyModel()); - assertFalse(csar.getPolicyModelYaml().isPresent()); - } - - @Test - public void testDoubleSave() - throws SdcArtifactInstallerException, SdcToscaParserException, CsarHandlerException, IOException { - CsarHandler csar = new CsarHandler(buildFakeSdcNotification(), "test-controller", "/tmp/csar-handler-tests"); - // Test the save - csar.save(buildFakeSdcResut()); - assertTrue((new File(SDC_FOLDER + "/test-controller/" + CSAR_ARTIFACT_NAME)).exists()); - assertEquals(CSAR_ARTIFACT_NAME, csar.getArtifactElement().getArtifactName()); - assertNotNull(csar.getSdcCsarHelper()); - // Test dcaeBlueprint - String blueprint = csar.getMapOfBlueprints().get(BLUEPRINT1_NAME).getDcaeBlueprint(); - assertNotNull(blueprint); - assertTrue(!blueprint.isEmpty()); - assertTrue(blueprint.contains("DCAE-VES-PM-EVENT-v1")); - // Test additional properties from Sdc notif - assertEquals(BLUEPRINT1_NAME, csar.getMapOfBlueprints().get(BLUEPRINT1_NAME).getBlueprintArtifactName()); - assertEquals(RESOURCE1_UUID, - csar.getMapOfBlueprints().get(BLUEPRINT1_NAME).getResourceAttached().getResourceInvariantUUID()); - assertEquals(SERVICE_UUID, csar.getMapOfBlueprints().get(BLUEPRINT1_NAME).getBlueprintInvariantServiceUuid()); - Path path = Paths.get(SDC_FOLDER + "/test-controller/" + CSAR_ARTIFACT_NAME); - // A double save should simply overwrite the existing - csar.save(buildFakeSdcResut()); - // Do some cleanup - Files.deleteIfExists(path); - } -} diff --git a/src/test/java/org/onap/policy/clamp/clds/tosca/DictionaryRepositoriesTestItCase.java b/src/test/java/org/onap/policy/clamp/clds/tosca/DictionaryRepositoriesTestItCase.java deleted file mode 100644 index f70e74cd6..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/tosca/DictionaryRepositoriesTestItCase.java +++ /dev/null @@ -1,88 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.clds.tosca; - -import static org.assertj.core.api.Assertions.assertThat; - -import java.util.List; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.onap.policy.clamp.clds.Application; -import org.onap.policy.clamp.tosca.Dictionary; -import org.onap.policy.clamp.tosca.DictionaryElement; -import org.onap.policy.clamp.tosca.DictionaryRepository; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import org.springframework.transaction.annotation.Transactional; - -@RunWith(SpringJUnit4ClassRunner.class) -@SpringBootTest(classes = Application.class) -public class DictionaryRepositoriesTestItCase { - @Autowired - private DictionaryRepository dictionaryRepository; - - @Test - @Transactional - public void crudTest() { - // Setup - Dictionary dictionaryTest1 = new Dictionary(); - dictionaryTest1.setName("testDictionary1"); - dictionaryTest1.setSecondLevelDictionary(1); - dictionaryTest1.setSubDictionaryType("testType"); - - DictionaryElement element1 = new DictionaryElement(); - element1.setName("element1"); - element1.setShortName("shortName1"); - element1.setType("type1"); - element1.setDescription("description1"); - - dictionaryTest1.addDictionaryElements(element1); - - Dictionary dictionaryTest2 = new Dictionary(); - dictionaryTest2.setName("testDictionary2"); - dictionaryTest2.setSecondLevelDictionary(1); - dictionaryTest2.setSubDictionaryType("testType"); - - DictionaryElement element2 = new DictionaryElement(); - element2.setName("element2"); - element2.setShortName("shortName2"); - element2.setSubDictionary("testDictionary1"); - element2.setType("type2"); - element2.setDescription("description2"); - - dictionaryTest2.addDictionaryElements(element2); - - dictionaryRepository.save(dictionaryTest1); - List<String> res1 = dictionaryRepository.getAllDictionaryNames(); - assertThat(res1.size()).isGreaterThanOrEqualTo(1); - assertThat(res1).contains("testDictionary1"); - - dictionaryRepository.save(dictionaryTest2); - List<String> res2 = dictionaryRepository.getAllDictionaryNames(); - assertThat(res2.size()).isGreaterThanOrEqualTo(2); - assertThat(res2).contains("testDictionary1"); - assertThat(res2).contains("testDictionary2"); - } -} diff --git a/src/test/java/org/onap/policy/clamp/clds/tosca/update/ArrayFieldTest.java b/src/test/java/org/onap/policy/clamp/clds/tosca/update/ArrayFieldTest.java deleted file mode 100644 index 6f6f5c104..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/tosca/update/ArrayFieldTest.java +++ /dev/null @@ -1,55 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.clds.tosca.update; - -import com.google.gson.JsonArray; -import java.io.IOException; -import java.util.ArrayList; -import junit.framework.TestCase; -import org.onap.policy.clamp.clds.tosca.update.elements.ArrayField; -import org.onap.policy.clamp.clds.tosca.update.elements.ToscaElement; -import org.onap.policy.clamp.clds.tosca.update.elements.ToscaElementProperty; -import org.onap.policy.clamp.clds.tosca.update.templates.JsonTemplateManager; -import org.onap.policy.clamp.clds.util.ResourceFileUtils; - -public class ArrayFieldTest extends TestCase { - - /** - * Test the deploy method. - * - * @throws IOException in case of failure - */ - public void testDeploy() throws IOException { - JsonTemplateManager jsonTemplateManager = new JsonTemplateManager(ResourceFileUtils.getResourceAsString( - "tosca/new-converter/sampleOperationalPoliciesEXTENTED.yaml"), ResourceFileUtils.getResourceAsString( - "clds/tosca-converter/default-tosca-types.yaml"), - ResourceFileUtils.getResourceAsString("clds/tosca-converter/templates.json")); - ToscaElement toscaElement = jsonTemplateManager.getToscaElements().get("onap.datatype.controlloop.Actor"); - ToscaElementProperty toscaElementProperty = toscaElement.getProperties().get("actor"); - ArrayField arrayParser = new ArrayField((ArrayList<Object>) toscaElementProperty.getItems().get("default")); - JsonArray toTest = arrayParser.deploy(); - String reference = "[1,\"String\",5.5,true]"; - assertEquals(reference, String.valueOf(toTest)); - } -}
\ No newline at end of file diff --git a/src/test/java/org/onap/policy/clamp/clds/tosca/update/ConstraintTest.java b/src/test/java/org/onap/policy/clamp/clds/tosca/update/ConstraintTest.java deleted file mode 100644 index 493ee992c..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/tosca/update/ConstraintTest.java +++ /dev/null @@ -1,106 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.clds.tosca.update; - -import com.google.gson.JsonObject; -import java.io.IOException; -import java.util.ArrayList; -import junit.framework.TestCase; -import org.onap.policy.clamp.clds.tosca.update.elements.ToscaElement; -import org.onap.policy.clamp.clds.tosca.update.elements.ToscaElementProperty; -import org.onap.policy.clamp.clds.tosca.update.templates.JsonTemplate; -import org.onap.policy.clamp.clds.tosca.update.templates.JsonTemplateManager; -import org.onap.policy.clamp.clds.util.ResourceFileUtils; - -public class ConstraintTest extends TestCase { - - JsonTemplateManager jsonTemplateManager = new JsonTemplateManager( - ResourceFileUtils.getResourceAsString("tosca/new-converter/constraints.yaml"), - ResourceFileUtils.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"), - ResourceFileUtils.getResourceAsString("clds/tosca-converter/templates.json")); - - ToscaElement toscaElement = jsonTemplateManager.getToscaElements().get("onap.datatype.controlloop.Operation"); - - public ConstraintTest() throws IOException { - } - - /** - * Test get value array. - */ - public void testGetValuesArray() { - ToscaElementProperty toscaElementProperty = toscaElement.getProperties().get("timeout"); - JsonTemplate jsonTemplate = jsonTemplateManager.getJsonSchemaTemplates().get("integer"); - JsonObject resultProcess = new JsonObject(); - toscaElementProperty.addConstraintsAsJson(resultProcess, - (ArrayList<Object>) toscaElementProperty.getItems().get("constraints"), - jsonTemplate); - String reference = "{\"enum\":[3,4,5.5,6,10]}"; - assertEquals(reference, String.valueOf(resultProcess)); - toscaElementProperty = toscaElement.getProperties().get("success"); - jsonTemplate = jsonTemplateManager.getJsonSchemaTemplates().get("string"); - resultProcess = new JsonObject(); - toscaElementProperty.addConstraintsAsJson(resultProcess, - (ArrayList<Object>) toscaElementProperty.getItems().get("constraints"), - jsonTemplate); - reference = "{\"enum\":[\"VALID\",\"TERMINATED\"]}"; - assertEquals(reference, String.valueOf(resultProcess)); - } - - /** - * Test get Specific length. - */ - public void testGetSpecificLength() { - //Test for string type, same process for array - ToscaElementProperty toscaElementProperty = toscaElement.getProperties().get("id"); - JsonTemplate jsonTemplate = jsonTemplateManager.getJsonSchemaTemplates().get("string"); - JsonObject resultProcess = new JsonObject(); - toscaElementProperty.addConstraintsAsJson(resultProcess, - (ArrayList<Object>) toscaElementProperty.getItems().get("constraints"), - jsonTemplate); - int specificLength = 8; - int toTest = resultProcess.get("minLength").getAsInt(); - assertEquals(specificLength, toTest); - toTest = resultProcess.get("maxLength").getAsInt(); - assertEquals(specificLength, toTest); - } - - /** - * Test get limit value. - */ - public void testGetLimitValue() { - //Test for array type, same process for string - ToscaElementProperty toscaElementProperty = toscaElement.getProperties().get("description"); - JsonTemplate jsonTemplate = jsonTemplateManager.getJsonSchemaTemplates().get("array"); - JsonObject resultProcess = new JsonObject(); - toscaElementProperty.addConstraintsAsJson(resultProcess, - (ArrayList<Object>) toscaElementProperty.getItems().get("constraints"), - jsonTemplate); - - int toTest = resultProcess.get("minItems").getAsInt(); - assertEquals(5, toTest); - toTest = resultProcess.get("maxItems").getAsInt(); - assertEquals(7, toTest); - } - -}
\ No newline at end of file diff --git a/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateFieldTest.java b/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateFieldTest.java deleted file mode 100644 index 3eaa0ce51..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateFieldTest.java +++ /dev/null @@ -1,69 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.clds.tosca.update; - -import junit.framework.TestCase; -import org.onap.policy.clamp.clds.tosca.update.templates.JsonTemplateField; - -public class JsonTemplateFieldTest extends TestCase { - - JsonTemplateField field1 = new JsonTemplateField("type", "testType", true, true); - JsonTemplateField field2 = new JsonTemplateField("type"); - JsonTemplateField field3 = new JsonTemplateField("type", "testType1", true, true); - JsonTemplateField field4 = new JsonTemplateField("type", "testType", false, true); - JsonTemplateField field5 = new JsonTemplateField("type", "testType", true, false); - JsonTemplateField field6 = new JsonTemplateField("type", "testType", true, true); - - /** - * Test fieldsEqual method. - */ - public void testFieldsEqualsMethod() { - assertFalse(JsonTemplateField.fieldsEquals(field1, field3)); - assertFalse(JsonTemplateField.fieldsEquals(field1, field4)); - assertFalse(JsonTemplateField.fieldsEquals(field1, field5)); - assertTrue(JsonTemplateField.fieldsEquals(field1, field6)); - } - - /** - * Test equals method. - */ - public void testEqualsMethod() { - assertTrue(field1.equals(field2)); - assertTrue(field1.equals(field3)); - assertTrue(field1.equals(field4)); - assertTrue(field1.equals(field5)); - assertTrue(field1.equals(field6)); - } - - /** - * Test compareWithField method. - */ - public void testCompareWithFieldMethod() { - assertFalse(field1.compareWithField(field2)); - assertFalse(field1.compareWithField(field3)); - assertFalse(field1.compareWithField(field4)); - assertFalse(field1.compareWithField(field5)); - assertTrue(field1.equals(field6)); - } -}
\ No newline at end of file diff --git a/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateManagerTest.java b/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateManagerTest.java deleted file mode 100644 index 2c8744f33..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateManagerTest.java +++ /dev/null @@ -1,203 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.clds.tosca.update; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import junit.framework.TestCase; -import org.onap.policy.clamp.clds.tosca.update.templates.JsonTemplate; -import org.onap.policy.clamp.clds.tosca.update.templates.JsonTemplateField; -import org.onap.policy.clamp.clds.tosca.update.templates.JsonTemplateManager; -import org.onap.policy.clamp.clds.util.ResourceFileUtils; - -public class JsonTemplateManagerTest extends TestCase { - - /** - * Test the launch translation wit operational policies. - * - * @throws IOException In case of failure - * @throws UnknownComponentException In case of failure - */ - public void testLaunchTranslationTca() throws IOException, UnknownComponentException { - JsonTemplateManager jsonTemplateManager = - new JsonTemplateManager( - ResourceFileUtils.getResourceAsString("http-cache/example/policy/api/v1/policytypes/onap" - + ".policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/.file"), - ResourceFileUtils.getResourceAsString( - "clds/tosca-converter/default-tosca-types.yaml"), - ResourceFileUtils.getResourceAsString("clds/tosca-converter/templates.json")); - String componentName = "onap.policies.monitoring.cdap.tca.hi.lo.app"; - jsonTemplateManager.getJsonSchemaForPolicyType(componentName, null, null); - } - - /** - * Test the launch translation wit operational policies. - * - * @throws IOException In case of failure - * @throws UnknownComponentException In case of failure - */ - public void testLaunchTranslationFrequencyLimiter() throws IOException, UnknownComponentException { - JsonTemplateManager jsonTemplateManager = - new JsonTemplateManager( - ResourceFileUtils.getResourceAsString("http-cache/example/policy/api/v1/policytypes/onap" - + ".policies.controlloop.guard.common.FrequencyLimiter/versions/1.0.0/.file"), - ResourceFileUtils.getResourceAsString( - "clds/tosca-converter/default-tosca-types.yaml"), - ResourceFileUtils.getResourceAsString("clds/tosca-converter/templates.json")); - String componentName = "onap.policies.controlloop.guard.common.FrequencyLimiter"; - jsonTemplateManager.getJsonSchemaForPolicyType(componentName, null, null); - } - - /** - * Test the launch translation wit operational policies. - * - * @throws IOException In case of failure - * @throws UnknownComponentException In case of failure - */ - public void testLaunchTranslationApex() throws IOException, UnknownComponentException { - JsonTemplateManager jsonTemplateManager = - new JsonTemplateManager( - ResourceFileUtils.getResourceAsString("http-cache/example/policy/api/v1/policytypes/onap" - + ".policies.controlloop.operational.common.Apex/versions/1.0.0/.file"), - ResourceFileUtils.getResourceAsString( - "clds/tosca-converter/default-tosca-types.yaml"), - ResourceFileUtils.getResourceAsString("clds/tosca-converter/templates.json")); - String componentName = "onap.policies.controlloop.operational.common.Apex"; - jsonTemplateManager.getJsonSchemaForPolicyType(componentName, null, null); - } - - /** - * Test the launch translation wit operational policies. - * - * @throws IOException In case of failure - * @throws UnknownComponentException In case of failure - */ - public void testLaunchTranslationDrools() throws IOException, UnknownComponentException { - JsonTemplateManager jsonTemplateManager = - new JsonTemplateManager( - ResourceFileUtils.getResourceAsString("http-cache/example/policy/api/v1/policytypes/onap" - + ".policies.controlloop.operational.common.Drools/versions/1.0.0/.file"), - ResourceFileUtils.getResourceAsString( - "clds/tosca-converter/default-tosca-types.yaml"), - ResourceFileUtils.getResourceAsString("clds/tosca-converter/templates.json")); - String componentName = "onap.policies.controlloop.operational.common.Drools"; - jsonTemplateManager.getJsonSchemaForPolicyType(componentName, null, null); - } - - - /** - * Test the launch translation. - * - * @throws IOException In case of failure - * @throws UnknownComponentException In case of failure - */ - public void testLaunchTranslation() throws IOException, UnknownComponentException { - JsonTemplateManager jsonTemplateManager = - new JsonTemplateManager( - ResourceFileUtils.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"), - ResourceFileUtils.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"), - ResourceFileUtils.getResourceAsString("clds/tosca-converter/templates.json")); - String componentName = "onap.policies.controlloop.operational.common.Drools"; - jsonTemplateManager.getJsonSchemaForPolicyType(componentName, null, null); - } - - /** - * Test addTemplate. - * - * @throws IOException In case of failure - */ - public void testAddTemplate() throws IOException { - JsonTemplateManager jsonTemplateManager = - new JsonTemplateManager( - ResourceFileUtils.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"), - ResourceFileUtils.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"), - ResourceFileUtils.getResourceAsString("clds/tosca-converter/templates.json")); - int count = jsonTemplateManager.getJsonSchemaTemplates().size(); - List<JsonTemplateField> - jsonTemplateFields = - new ArrayList<>(Arrays.asList(new JsonTemplateField("type"), new JsonTemplateField("description"), - new JsonTemplateField( - "required"), - new JsonTemplateField("metadata"), new JsonTemplateField("constraints"))); - jsonTemplateManager.addTemplate("test", jsonTemplateFields); - assertNotSame(count, jsonTemplateManager.getJsonSchemaTemplates().size()); - } - - /** - * test Remove template. - * - * @throws IOException In case of failure - */ - public void testRemoveTemplate() throws IOException { - JsonTemplateManager jsonTemplateManager = - new JsonTemplateManager( - ResourceFileUtils.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"), - ResourceFileUtils.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"), - ResourceFileUtils.getResourceAsString("clds/tosca-converter/templates.json")); - int count = jsonTemplateManager.getJsonSchemaTemplates().size(); - jsonTemplateManager.removeTemplate("string"); - assertNotSame(count, jsonTemplateManager.getJsonSchemaTemplates().size()); - } - - /** - * Test update template. - * - * @throws IOException In case of failure - */ - public void testUpdateTemplate() throws IOException { - JsonTemplateManager jsonTemplateManager = - new JsonTemplateManager( - ResourceFileUtils.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"), - ResourceFileUtils.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"), - ResourceFileUtils.getResourceAsString("clds/tosca-converter/templates.json")); - int count = jsonTemplateManager.getJsonSchemaTemplates().get("integer").getJsonTemplateFields().size(); - jsonTemplateManager.updateTemplate("integer", new JsonTemplateField("type"), false); - assertNotSame(count, - jsonTemplateManager.getJsonSchemaTemplates().get("integer").getJsonTemplateFields().size()); - } - - /** - * Test has template. - * - * @throws IOException In case of failure - */ - public void testHasTemplate() throws IOException { - JsonTemplateManager jsonTemplateManager = - new JsonTemplateManager( - ResourceFileUtils.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"), - ResourceFileUtils.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"), - ResourceFileUtils.getResourceAsString("clds/tosca-converter/templates.json")); - boolean has = true; - List<JsonTemplateField> jsonTemplateFieldsString = - new ArrayList<>(Arrays.asList(new JsonTemplateField("type"), new JsonTemplateField("description"), - new JsonTemplateField("required"), - new JsonTemplateField("metadata"), new JsonTemplateField("constraints"))); - JsonTemplate jsonTemplateTest = new JsonTemplate("String", jsonTemplateFieldsString); - has = jsonTemplateManager.hasTemplate(jsonTemplateTest); - assertEquals(false, has); - } - -} diff --git a/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateTest.java b/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateTest.java deleted file mode 100644 index dc27d8aaa..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateTest.java +++ /dev/null @@ -1,69 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.clds.tosca.update; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import junit.framework.TestCase; -import org.onap.policy.clamp.clds.tosca.update.templates.JsonTemplate; -import org.onap.policy.clamp.clds.tosca.update.templates.JsonTemplateField; - -public class JsonTemplateTest extends TestCase { - - JsonTemplate toTest = new JsonTemplate("toTest"); - List<JsonTemplateField> - jsonTemplateFields = new ArrayList<>( - Arrays.asList(new JsonTemplateField("type"), new JsonTemplateField("description"), - new JsonTemplateField( - "enum"))); - - /** - * Test check failed. - */ - public void testCheckFields() { - toTest.setJsonTemplateFields(jsonTemplateFields); - JsonTemplate reference = new JsonTemplate("toTest"); - reference.setJsonTemplateFields(jsonTemplateFields); - assertTrue(toTest.checkFields(reference)); - } - - /** - * Test other methods. - */ - public void testOtherFields() { - toTest.setJsonTemplateFields(jsonTemplateFields); - toTest.addField(new JsonTemplateField("moreField")); - toTest.setVisibility("moreField", true); - toTest.setStatic("moreField", true); - toTest.updateValueField("moreField", "testValue"); - - assertTrue(toTest.isVisible("moreField")); - assertTrue(toTest.getSpecificField("moreField").getValue().equals("testValue")); - assertTrue(toTest.fieldStaticStatus("moreField")); - assertTrue(toTest.toString() - .equals(" templateFields : [type null null null, description null null null, " - + "enum null null null, moreField testValue true true]")); - } -}
\ No newline at end of file diff --git a/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaConverterWithDictionarySupportItCase.java b/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaConverterWithDictionarySupportItCase.java deleted file mode 100644 index 658419d4c..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaConverterWithDictionarySupportItCase.java +++ /dev/null @@ -1,147 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.clds.tosca.update; - -import com.google.gson.JsonObject; -import java.io.IOException; -import javax.transaction.Transactional; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.onap.policy.clamp.clds.Application; -import org.onap.policy.clamp.clds.tosca.update.execution.ToscaMetadataExecutor; -import org.onap.policy.clamp.clds.tosca.update.parser.metadata.ToscaMetadataParserWithDictionarySupport; -import org.onap.policy.clamp.clds.tosca.update.templates.JsonTemplateManager; -import org.onap.policy.clamp.clds.util.JsonUtils; -import org.onap.policy.clamp.clds.util.ResourceFileUtils; -import org.onap.policy.clamp.loop.service.Service; -import org.onap.policy.clamp.tosca.Dictionary; -import org.onap.policy.clamp.tosca.DictionaryElement; -import org.onap.policy.clamp.tosca.DictionaryService; -import org.skyscreamer.jsonassert.JSONAssert; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - -@RunWith(SpringJUnit4ClassRunner.class) -@SpringBootTest(classes = Application.class) -@ActiveProfiles({"clamp-default", "clamp-default-user", "default-dictionary-elements"}) -public class ToscaConverterWithDictionarySupportItCase { - - @Autowired - private DictionaryService dictionaryService; - - @Autowired - private ToscaMetadataParserWithDictionarySupport toscaMetadataParserWithDictionarySupport; - - @Autowired - private ToscaMetadataExecutor toscaMetadataExecutor; - - /** - * This Test validates Tosca yaml with metadata tag that contains policy_model_type and acronym - * parameters which defines the Tosca Policy name and its short name. - * - * @throws IOException In case of issue when opening the tosca yaml file and - * converted json file - */ - @Test - @Transactional - public final void testMetadataClampPossibleValues() throws IOException, UnknownComponentException { - - // Set up dictionary elements - Dictionary dictionaryTest = new Dictionary(); - dictionaryTest.setName("Context"); - dictionaryTest.setSecondLevelDictionary(0); - - DictionaryElement element = new DictionaryElement(); - element.setName("PROD"); - element.setShortName("PROD"); - element.setType("string"); - element.setDescription("Production"); - dictionaryTest.addDictionaryElements(element); - - dictionaryService.saveOrUpdateDictionary(dictionaryTest); - - Dictionary dictionaryTest1 = new Dictionary(); - dictionaryTest1.setName("EventDictionary"); - dictionaryTest1.setSecondLevelDictionary(0); - - DictionaryElement element1 = new DictionaryElement(); - element1.setName("alarmCondition"); - element1.setShortName("alarmCondition"); - element1.setType("string"); - element1.setDescription("Alarm Condition"); - dictionaryTest1.addDictionaryElements(element1); - - dictionaryService.saveOrUpdateDictionary(dictionaryTest1); - - Dictionary dictionaryTest2 = new Dictionary(); - dictionaryTest2.setName("Operators"); - dictionaryTest2.setSecondLevelDictionary(0); - - DictionaryElement element2 = new DictionaryElement(); - element2.setName("equals"); - element2.setShortName("equals"); - element2.setType("string"); - element2.setDescription("equals"); - dictionaryTest2.addDictionaryElements(element2); - dictionaryService.saveOrUpdateDictionary(dictionaryTest2); - - JsonTemplateManager jsonTemplateManager = - new JsonTemplateManager( - ResourceFileUtils - .getResourceAsString("tosca/new-converter/tosca_metadata_clamp_possible_values.yaml"), - ResourceFileUtils.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"), - ResourceFileUtils.getResourceAsString("clds/tosca-converter/templates.json")); - - JsonObject jsonSchema = jsonTemplateManager.getJsonSchemaForPolicyType( - "onap.policies.monitoring.cdap.tca.hi.lo.app", toscaMetadataParserWithDictionarySupport, null); - - JSONAssert.assertEquals( - ResourceFileUtils - .getResourceAsString("tosca/new-converter/tca-with-metadata.json"), - JsonUtils.GSON.toJson(jsonSchema), true); - } - - @Test - @Transactional - public final void testMetadataClampPossibleValueWithExecutor() throws IOException, UnknownComponentException { - Service service = new Service(ResourceFileUtils.getResourceAsString("tosca/service-details.json"), - ResourceFileUtils.getResourceAsString("tosca/resource-details-cds.json")); - JsonTemplateManager jsonTemplateManager = - new JsonTemplateManager( - ResourceFileUtils.getResourceAsString("http-cache/example/policy/api/v1/policytypes/onap" - + ".policies.controlloop.operational.common.Apex/versions/1.0.0/.file"), - ResourceFileUtils.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"), - ResourceFileUtils.getResourceAsString("clds/tosca-converter/templates.json")); - - JsonObject jsonSchema = jsonTemplateManager.getJsonSchemaForPolicyType( - "onap.policies.controlloop.operational.common.Apex", toscaMetadataParserWithDictionarySupport, service); - - JSONAssert.assertEquals( - ResourceFileUtils - .getResourceAsString("tosca/new-converter/tosca_apex_with_metadata.json"), - JsonUtils.GSON.toJson(jsonSchema), true); - } -} diff --git a/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementPropertyTest.java b/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementPropertyTest.java deleted file mode 100644 index 5652fa9cd..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementPropertyTest.java +++ /dev/null @@ -1,79 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.clds.tosca.update; - -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; -import java.io.IOException; -import java.util.ArrayList; -import junit.framework.TestCase; -import org.onap.policy.clamp.clds.tosca.update.elements.ToscaElement; -import org.onap.policy.clamp.clds.tosca.update.elements.ToscaElementProperty; -import org.onap.policy.clamp.clds.tosca.update.templates.JsonTemplate; -import org.onap.policy.clamp.clds.tosca.update.templates.JsonTemplateManager; -import org.onap.policy.clamp.clds.util.ResourceFileUtils; - -public class ToscaElementPropertyTest extends TestCase { - public ToscaElementPropertyTest() throws IOException { - } - - /** - * Test Parse array. - * - * @throws IOException In case of failure - */ - public void testParseArray() throws IOException { - JsonTemplateManager jsonTemplateManager = new JsonTemplateManager( - ResourceFileUtils.getResourceAsString("tosca/new-converter/sampleOperationalPoliciesEXTENTED.yaml"), - ResourceFileUtils.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"), - ResourceFileUtils.getResourceAsString("clds/tosca-converter/templates.json")); - ToscaElement toscaElement = jsonTemplateManager.getToscaElements().get("onap.datatype.controlloop.Actor"); - ToscaElementProperty toscaElementProperty = toscaElement.getProperties().get("actor"); - JsonArray toTest = - toscaElementProperty.parseArray((ArrayList<Object>) toscaElementProperty.getItems().get("default")); - assertNotNull(toTest); - } - - /** - * Test add constraint as json. - * - * @throws IOException In case of failure - */ - public void testAddConstraintsAsJson() throws IOException { - JsonTemplateManager jsonTemplateManager = new JsonTemplateManager( - ResourceFileUtils.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"), - ResourceFileUtils.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"), - ResourceFileUtils.getResourceAsString("clds/tosca-converter/templates.json")); - ToscaElement toscaElement = - jsonTemplateManager.getToscaElements().get("onap.datatype.controlloop.operation.Failure"); - ToscaElementProperty toscaElementProperty = toscaElement.getProperties().get("category"); - JsonTemplate jsonTemplate = jsonTemplateManager.getJsonSchemaTemplates().get("string"); - JsonObject toTest = new JsonObject(); - toscaElementProperty - .addConstraintsAsJson(toTest, (ArrayList<Object>) toscaElementProperty.getItems().get("constraints"), - jsonTemplate); - String test = "{\"enum\":[\"error\",\"timeout\",\"retries\",\"guard\",\"exception\"]}"; - assertEquals(test, String.valueOf(toTest)); - } -}
\ No newline at end of file diff --git a/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementTest.java b/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementTest.java deleted file mode 100644 index 7b17adeec..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementTest.java +++ /dev/null @@ -1,52 +0,0 @@ -/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.clds.tosca.update;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import junit.framework.TestCase;
-import org.onap.policy.clamp.clds.tosca.update.elements.ToscaElement;
-import org.onap.policy.clamp.clds.tosca.update.templates.JsonTemplateManager;
-import org.onap.policy.clamp.clds.util.ResourceFileUtils;
-
-public class ToscaElementTest extends TestCase {
-
- /**
- * Test propertiesName.
- *
- * @throws IOException In case of failure
- */
- public void testPropertiesNames() throws IOException {
- ArrayList<String> reference = new ArrayList<>(Arrays.asList("actor", "operation", "target", "payload"));
- JsonTemplateManager jsonTemplateManager =
- new JsonTemplateManager(
- ResourceFileUtils.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"),
- ResourceFileUtils.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"),
- ResourceFileUtils.getResourceAsString("clds/tosca-converter/templates.json"));
- ToscaElement toscaElement = jsonTemplateManager.getToscaElements().get("onap.datatype.controlloop.Actor");
- assertEquals(reference, toscaElement.propertiesNames());
- }
-
-}
diff --git a/src/test/java/org/onap/policy/clamp/clds/util/JsonUtilsTest.java b/src/test/java/org/onap/policy/clamp/clds/util/JsonUtilsTest.java deleted file mode 100644 index b2c6d282a..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/util/JsonUtilsTest.java +++ /dev/null @@ -1,77 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2018 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Modifications Copyright (c) 2019 Samsung - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * Modifications copyright (c) 2019 Nokia - * =================================================================== - * - */ - -package org.onap.policy.clamp.clds.util; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; - -import java.io.IOException; -import org.junit.Test; - -public class JsonUtilsTest { - - public static class TestClass extends TestObject { - - String test2; - TestObject2 object2; - - TestClass(String value1, String value2) { - super(value1); - test2 = value2; - } - - void setObject2(TestObject2 object2) { - this.object2 = object2; - } - } - - @Test - public void testGetObjectMapperInstance() { - assertNotNull(JsonUtils.GSON); - } - - /** - * This method test that the security hole in GSON is not enabled in the default - * ObjectMapper. - */ - @Test - public void testCreateBeanDeserializer() { - TestClass test = new TestClass("value1", "value2"); - test.setObject2(new TestObject2("test3")); - Object testObject = JsonUtils.GSON.fromJson("[\"org.onap.policy.clamp.clds.util.JsonUtilsTest$TestClass\"" - + ",{\"test\":\"value1\",\"test2\":\"value2\"," - + "\"object2\":[\"org.onap.policy.clamp.clds.util.TestObject2\"," - + "{\"test3\":\"test3\"}]}]", Object.class); - assertNotNull(testObject); - assertFalse(testObject instanceof TestObject); - } - - @Test(expected = IllegalArgumentException.class) - public void shouldThrowExceptionFileNotExists() throws IOException { - ResourceFileUtils.getResourceAsString("example/notExist.json"); - } -} diff --git a/src/test/java/org/onap/policy/clamp/clds/util/LoggingUtilsTest.java b/src/test/java/org/onap/policy/clamp/clds/util/LoggingUtilsTest.java deleted file mode 100644 index ab6a41bca..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/util/LoggingUtilsTest.java +++ /dev/null @@ -1,138 +0,0 @@ -/*- -* ============LICENSE_START======================================================= -* ONAP CLAMP -* Copyright (C) 2019 Samsung. All rights reserved. -* ================================================================================ -* 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. -* ============LICENSE_END============================================ -* =================================================================== -* -*/ - -package org.onap.policy.clamp.clds.util; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; - -import java.time.ZoneOffset; -import java.time.ZonedDateTime; -import java.time.format.DateTimeFormatter; -import java.util.Arrays; -import java.util.Map; -import javax.net.ssl.HttpsURLConnection; -import javax.servlet.http.HttpServletRequest; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mockito; -import org.mockito.runners.MockitoJUnitRunner; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.slf4j.MDC; -import org.slf4j.event.Level; -import org.springframework.http.HttpStatus; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.context.SecurityContext; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; - -/** - * Test Logging Utils. - */ -@RunWith(MockitoJUnitRunner.class) -public class LoggingUtilsTest { - - protected static final Logger logger = LoggerFactory.getLogger(LoggingUtilsTest.class); - - private static final String SERVICE_NAME = "LogginUtilsTest: Test Entering method"; - - private LoggingUtils util; - - @Before - public void setup() { - this.util = new LoggingUtils(logger); - } - - @Test - public void testEnteringLoggingUtils() { - // given - final String userName = "test"; - - UserDetails userDetails = Mockito.mock(UserDetails.class); - Mockito.when(userDetails.getUsername()).thenReturn(userName); - - Authentication localAuth = Mockito.mock(Authentication.class); - Mockito.when(localAuth.getPrincipal()).thenReturn(userDetails); - - SecurityContext securityContext = Mockito.mock(SecurityContext.class); - Mockito.when(securityContext.getAuthentication()).thenReturn(localAuth); - SecurityContextHolder.setContext(securityContext); - - HttpServletRequest request = Mockito.mock(HttpServletRequest.class); - // when - util.entering(request, SERVICE_NAME); - - // then - String[] keys = {OnapLogConstants.Mdcs.PARTNER_NAME, OnapLogConstants.Mdcs.ENTRY_TIMESTAMP, - OnapLogConstants.Mdcs.REQUEST_ID, OnapLogConstants.Mdcs.INVOCATION_ID, - OnapLogConstants.Mdcs.CLIENT_IP_ADDRESS, OnapLogConstants.Mdcs.SERVER_FQDN, - OnapLogConstants.Mdcs.INSTANCE_UUID, OnapLogConstants.Mdcs.SERVICE_NAME}; - Map<String, String> mdc = MDC.getMDCAdapter().getCopyOfContextMap(); - - assertTrue(checkMapKeys(mdc, keys)); - assertEquals(userName, mdc.get(OnapLogConstants.Mdcs.PARTNER_NAME)); - } - - @Test - public void testExistingLoggingUtils() { - // given - MDC.put(OnapLogConstants.Mdcs.ENTRY_TIMESTAMP, - ZonedDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.ISO_INSTANT)); - - // when - util.exiting(HttpStatus.OK.value(), SERVICE_NAME, Level.INFO, - OnapLogConstants.ResponseStatus.COMPLETE); - - // then - Map<String, String> mdc = MDC.getMDCAdapter().getCopyOfContextMap(); - assertNull(mdc); - } - - @Test - public void testInvokeTestUtils() { - // given - final String targetEntity = "LoggingUtilsTest"; - final String targetServiceName = "testInvokeTestUtils"; - HttpsURLConnection secureConnection = Mockito.mock(HttpsURLConnection.class); - - // when - secureConnection = util.invokeHttps(secureConnection, targetEntity, targetServiceName); - - // then - assertNotNull(secureConnection); - String[] keys = - {OnapLogConstants.Mdcs.TARGET_ENTITY, OnapLogConstants.Mdcs.TARGET_SERVICE_NAME, - OnapLogConstants.Mdcs.INVOCATIONID_OUT, OnapLogConstants.Mdcs.INVOKE_TIMESTAMP}; - Map<String, String> mdc = MDC.getMDCAdapter().getCopyOfContextMap(); - - assertTrue(checkMapKeys(mdc, keys)); - assertEquals(targetEntity, mdc.get(OnapLogConstants.Mdcs.TARGET_ENTITY)); - assertEquals(targetServiceName, mdc.get(OnapLogConstants.Mdcs.TARGET_SERVICE_NAME)); - } - - private boolean checkMapKeys(Map map, String[] keys) { - return Arrays.stream(keys).allMatch(key -> map.get(key) != null); - } -} diff --git a/src/test/java/org/onap/policy/clamp/clds/util/TestObject.java b/src/test/java/org/onap/policy/clamp/clds/util/TestObject.java deleted file mode 100644 index 02cabd270..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/util/TestObject.java +++ /dev/null @@ -1,45 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2018 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.clds.util; - -public class TestObject { - - private String test; - - public String getTest() { - return test; - } - - public void setTest(String test) { - this.test = test; - } - - // @JsonProperty("test"), @JsonCreator - public TestObject(String theString) { - this.setTest(theString); - } - - public TestObject() { - } -} diff --git a/src/test/java/org/onap/policy/clamp/clds/util/TestObject2.java b/src/test/java/org/onap/policy/clamp/clds/util/TestObject2.java deleted file mode 100644 index d5abf41d0..000000000 --- a/src/test/java/org/onap/policy/clamp/clds/util/TestObject2.java +++ /dev/null @@ -1,44 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2018 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.clds.util; - -public class TestObject2 { - - private String test3; - - public String getTest3() { - return test3; - } - - public void setTest3(String test) { - this.test3 = test; - } - - public TestObject2(String theString) { - this.setTest3(theString); - } - - public TestObject2() { - } -} diff --git a/src/test/java/org/onap/policy/clamp/flow/FlowLogOperationTest.java b/src/test/java/org/onap/policy/clamp/flow/FlowLogOperationTest.java deleted file mode 100644 index 622fd5999..000000000 --- a/src/test/java/org/onap/policy/clamp/flow/FlowLogOperationTest.java +++ /dev/null @@ -1,102 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP POLICY-CLAMP - * ================================================================================ - * Copyright (C) 2019 Samsung. All rights reserved. - * ================================================================================ - * Modifications Copyright (c) 2021 AT&T - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.flow; - -import static junit.framework.Assert.assertEquals; -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.mock; - -import org.apache.camel.CamelContext; -import org.apache.camel.Exchange; -import org.apache.camel.support.DefaultExchange; -import org.junit.Test; -import org.mockito.Mockito; -import org.onap.policy.clamp.clds.util.LoggingUtils; -import org.onap.policy.clamp.clds.util.OnapLogConstants; -import org.onap.policy.clamp.flow.log.FlowLogOperation; -import org.slf4j.MDC; -import org.slf4j.spi.MDCAdapter; -import org.springframework.test.util.ReflectionTestUtils; - -public class FlowLogOperationTest { - - private FlowLogOperation flowLogOperation = new FlowLogOperation(); - - @Test - public void testStartLog() { - // given - LoggingUtils loggingUtils = mock(LoggingUtils.class); - ReflectionTestUtils.setField(flowLogOperation, "util", loggingUtils); - - // when - Mockito.when(loggingUtils.getProperties(OnapLogConstants.Mdcs.REQUEST_ID)).thenReturn("MockRequestId"); - Mockito.when(loggingUtils.getProperties(OnapLogConstants.Mdcs.INVOCATION_ID)).thenReturn("MockInvocationId"); - Mockito.when(loggingUtils.getProperties(OnapLogConstants.Mdcs.PARTNER_NAME)).thenReturn("MockPartnerName"); - Exchange exchange = new DefaultExchange(mock(CamelContext.class)); - flowLogOperation.startLog(exchange, "serviceName"); - - // then - assertThat(exchange.getProperty(OnapLogConstants.Headers.REQUEST_ID)).isEqualTo("MockRequestId"); - assertThat(exchange.getProperty(OnapLogConstants.Headers.INVOCATION_ID)).isEqualTo("MockInvocationId"); - assertThat(exchange.getProperty(OnapLogConstants.Headers.PARTNER_NAME)).isEqualTo("MockPartnerName"); - } - - @Test - public void testInvokeLog() { - // given - final String mockEntity = "mockEntity"; - final String mockServiceName = "mockServiceName"; - MDCAdapter mdcAdapter = MDC.getMDCAdapter(); - // when - flowLogOperation.invokeLog(mockEntity, mockServiceName); - // then - String entity = mdcAdapter.get(OnapLogConstants.Mdcs.TARGET_ENTITY); - String serviceName = mdcAdapter.get(OnapLogConstants.Mdcs.TARGET_SERVICE_NAME); - assertEquals(entity, mockEntity); - assertEquals(serviceName, mockServiceName); - } - - @Test - public void testEndLog() { - // given - MDC.put(OnapLogConstants.Mdcs.ENTRY_TIMESTAMP, "2019-05-19T00:00:00.007Z"); - MDCAdapter mdcAdapter = MDC.getMDCAdapter(); - /// when - flowLogOperation.endLog(); - // then - assertThat(mdcAdapter.get(OnapLogConstants.Mdcs.ENTRY_TIMESTAMP)).isNull(); - } - - @Test - public void testErrorLog() { - // given - MDC.put(OnapLogConstants.Mdcs.ENTRY_TIMESTAMP, "2019-05-19T00:00:00.007Z"); - MDCAdapter mdcAdapter = MDC.getMDCAdapter(); - // when - flowLogOperation.errorLog(); - // then - assertThat(mdcAdapter.get(OnapLogConstants.Mdcs.ENTRY_TIMESTAMP)).isNull(); - } -}
\ No newline at end of file diff --git a/src/test/java/org/onap/policy/clamp/loop/CsarInstallerItCase.java b/src/test/java/org/onap/policy/clamp/loop/CsarInstallerItCase.java deleted file mode 100644 index b0abf832b..000000000 --- a/src/test/java/org/onap/policy/clamp/loop/CsarInstallerItCase.java +++ /dev/null @@ -1,322 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP POLICY-CLAMP - * ================================================================================ - * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Modifications copyright (c) 2019 Nokia - * Modifications Copyright (c) 2019 Samsung - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.loop; - -import static org.assertj.core.api.Assertions.assertThat; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import javax.transaction.Transactional; -import org.apache.commons.lang3.RandomStringUtils; -import org.assertj.core.api.Assertions; -import org.json.JSONException; -import org.junit.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mockito; -import org.onap.policy.clamp.clds.Application; -import org.onap.policy.clamp.clds.exception.sdc.controller.BlueprintParserException; -import org.onap.policy.clamp.clds.exception.sdc.controller.CsarHandlerException; -import org.onap.policy.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException; -import org.onap.policy.clamp.clds.sdc.controller.installer.BlueprintArtifact; -import org.onap.policy.clamp.clds.sdc.controller.installer.CsarHandler; -import org.onap.policy.clamp.clds.util.JsonUtils; -import org.onap.policy.clamp.clds.util.ResourceFileUtils; -import org.onap.policy.clamp.loop.cds.CdsDataInstaller; -import org.onap.policy.clamp.loop.service.ServicesRepository; -import org.onap.policy.clamp.loop.template.LoopTemplate; -import org.onap.policy.clamp.loop.template.LoopTemplateLoopElementModel; -import org.onap.policy.clamp.loop.template.LoopTemplatesRepository; -import org.onap.policy.clamp.loop.template.PolicyModelId; -import org.onap.policy.clamp.loop.template.PolicyModelsRepository; -import org.onap.sdc.api.notification.IArtifactInfo; -import org.onap.sdc.api.notification.INotificationData; -import org.onap.sdc.api.notification.IResourceInstance; -import org.onap.sdc.tosca.parser.api.ISdcCsarHelper; -import org.onap.sdc.tosca.parser.exceptions.SdcToscaParserException; -import org.onap.sdc.tosca.parser.impl.SdcToscaParserFactory; -import org.onap.sdc.toscaparser.api.elements.Metadata; -import org.skyscreamer.jsonassert.JSONAssert; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.annotation.Commit; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest(classes = Application.class) -@ActiveProfiles({"clamp-default", "clamp-default-user", "clamp-sdc-controller"}) -public class CsarInstallerItCase { - - private static final String CSAR_ARTIFACT_NAME_CDS = "example/sdc/service_Vloadbalancerms_cds.csar"; - private static final String CSAR_ARTIFACT_NAME_NO_CDS = "example/sdc/service_Vloadbalancerms_no_cds.csar"; - private static final String INVARIANT_SERVICE_UUID = "4cc5b45a-1f63-4194-8100-cd8e14248c92"; - private static final String INVARIANT_RESOURCE1_UUID = "07e266fc-49ab-4cd7-8378-ca4676f1b9ec"; - private static final String INVARIANT_RESOURCE2_UUID = "023a3f0d-1161-45ff-b4cf-8918a8ccf3ad"; - private static final String RESOURCE_INSTANCE_NAME_RESOURCE1 = "ResourceInstanceName1"; - private static final String RESOURCE_INSTANCE_NAME_RESOURCE2 = "ResourceInstanceName2"; - - @Autowired - private LoopTemplatesRepository loopTemplatesRepo; - - @Autowired - ServicesRepository serviceRepository; - - @Autowired - PolicyModelsRepository policyModelsRepository; - - @Autowired - @Qualifier("csarInstaller") - private CsarInstaller csarInstaller; - - private BlueprintArtifact buildFakeBlueprintArtifact(String instanceName, String invariantResourceUuid, - String blueprintFilePath, String artifactName, - String invariantServiceUuid) throws IOException { - IResourceInstance resource = Mockito.mock(IResourceInstance.class); - Mockito.when(resource.getResourceInstanceName()).thenReturn(instanceName); - Mockito.when(resource.getResourceInvariantUUID()).thenReturn(invariantResourceUuid); - BlueprintArtifact blueprintArtifact = Mockito.mock(BlueprintArtifact.class); - Mockito.when(blueprintArtifact.getDcaeBlueprint()) - .thenReturn(ResourceFileUtils.getResourceAsString(blueprintFilePath)); - Mockito.when(blueprintArtifact.getBlueprintArtifactName()).thenReturn(artifactName); - Mockito.when(blueprintArtifact.getBlueprintInvariantServiceUuid()).thenReturn(invariantServiceUuid); - Mockito.when(blueprintArtifact.getResourceAttached()).thenReturn(resource); - return blueprintArtifact; - } - - private CsarHandler buildBadFakeCsarHandler(String generatedName, String csarFileName) throws IOException, - SdcToscaParserException { - - // Build a Bad csar because the blueprint contains a link to a microservice that does not exist in the emulator - // Create fake notification - INotificationData notificationData = Mockito.mock(INotificationData.class); - Mockito.when(notificationData.getServiceVersion()).thenReturn("1.0"); - // Create fake resource in notification - CsarHandler csarHandler = Mockito.mock(CsarHandler.class); - List<IResourceInstance> listResources = new ArrayList<>(); - Mockito.when(notificationData.getResources()).thenReturn(listResources); - Map<String, BlueprintArtifact> blueprintMap = new HashMap<>(); - Mockito.when(csarHandler.getMapOfBlueprints()).thenReturn(blueprintMap); - // Create fake blueprint artifact 1 on resource1 - BlueprintArtifact blueprintArtifact = buildFakeBlueprintArtifact(RESOURCE_INSTANCE_NAME_RESOURCE1, - INVARIANT_RESOURCE1_UUID, "example/sdc/blueprint-dcae/tca-bad-policy.yaml", "tca-bad-policy.yaml", - INVARIANT_SERVICE_UUID); - listResources.add(blueprintArtifact.getResourceAttached()); - blueprintMap.put(blueprintArtifact.getBlueprintArtifactName(), blueprintArtifact); - - // Build fake csarhandler - Mockito.when(csarHandler.getSdcNotification()).thenReturn(notificationData); - // Build fake csar Helper - ISdcCsarHelper csarHelper = Mockito.mock(ISdcCsarHelper.class); - Metadata data = Mockito.mock(Metadata.class); - Mockito.when(data.getValue("name")).thenReturn(generatedName); - Mockito.when(notificationData.getServiceName()).thenReturn(generatedName); - Mockito.when(csarHelper.getServiceMetadata()).thenReturn(data); - - // Create helper based on real csar to test policy yaml and global properties - // set - SdcToscaParserFactory factory = SdcToscaParserFactory.getInstance(); - String path = Thread.currentThread().getContextClassLoader().getResource(csarFileName).getFile(); - ISdcCsarHelper sdcHelper = factory.getSdcCsarHelper(path); - Mockito.when(csarHandler.getSdcCsarHelper()).thenReturn(sdcHelper); - - // Mockito.when(csarHandler.getSdcCsarHelper()).thenReturn(csarHelper); - Mockito.when(csarHandler.getPolicyModelYaml()) - .thenReturn(Optional.ofNullable(ResourceFileUtils.getResourceAsString("tosca/tosca_example.yaml"))); - return csarHandler; - } - - private CsarHandler buildFakeCsarHandler(String generatedName, String csarFileName) throws IOException, - SdcToscaParserException { - // Create fake notification - INotificationData notificationData = Mockito.mock(INotificationData.class); - Mockito.when(notificationData.getServiceVersion()).thenReturn("1.0"); - // Create fake resource in notification - CsarHandler csarHandler = Mockito.mock(CsarHandler.class); - List<IResourceInstance> listResources = new ArrayList<>(); - Mockito.when(notificationData.getResources()).thenReturn(listResources); - Map<String, BlueprintArtifact> blueprintMap = new HashMap<>(); - Mockito.when(csarHandler.getMapOfBlueprints()).thenReturn(blueprintMap); - // Create fake blueprint artifact 1 on resource1 - BlueprintArtifact blueprintArtifact = buildFakeBlueprintArtifact(RESOURCE_INSTANCE_NAME_RESOURCE1, - INVARIANT_RESOURCE1_UUID, "example/sdc/blueprint-dcae/tca.yaml", "tca.yaml", INVARIANT_SERVICE_UUID); - listResources.add(blueprintArtifact.getResourceAttached()); - blueprintMap.put(blueprintArtifact.getBlueprintArtifactName(), blueprintArtifact); - // Create fake blueprint artifact 2 on resource2 - blueprintArtifact = buildFakeBlueprintArtifact(RESOURCE_INSTANCE_NAME_RESOURCE2, INVARIANT_RESOURCE2_UUID, - "example/sdc/blueprint-dcae/tca_2.yaml", "tca_2.yaml", INVARIANT_SERVICE_UUID); - listResources.add(blueprintArtifact.getResourceAttached()); - blueprintMap.put(blueprintArtifact.getBlueprintArtifactName(), blueprintArtifact); - - // Create fake blueprint artifact 3 on resource 1 so that it's possible to - // test multiple CL deployment per Service/vnf - blueprintArtifact = buildFakeBlueprintArtifact(RESOURCE_INSTANCE_NAME_RESOURCE1, INVARIANT_RESOURCE1_UUID, - "example/sdc/blueprint-dcae/tca_3.yaml", "tca_3.yaml", INVARIANT_SERVICE_UUID); - blueprintMap.put(blueprintArtifact.getBlueprintArtifactName(), blueprintArtifact); - - // Create fake blueprint artifact 3 on resource 1 so that it's possible to - // test multiple CL deployment per Service/vnf - blueprintArtifact = buildFakeBlueprintArtifact(RESOURCE_INSTANCE_NAME_RESOURCE1, INVARIANT_RESOURCE1_UUID, - "example/sdc/blueprint-dcae/tca-guilin.yaml", "tca-guilin.yaml", INVARIANT_SERVICE_UUID); - blueprintMap.put(blueprintArtifact.getBlueprintArtifactName(), blueprintArtifact); - - - // Build fake csarhandler - Mockito.when(csarHandler.getSdcNotification()).thenReturn(notificationData); - // Build fake csar Helper - ISdcCsarHelper csarHelper = Mockito.mock(ISdcCsarHelper.class); - Metadata data = Mockito.mock(Metadata.class); - Mockito.when(data.getValue("name")).thenReturn(generatedName); - Mockito.when(notificationData.getServiceName()).thenReturn(generatedName); - Mockito.when(csarHelper.getServiceMetadata()).thenReturn(data); - - // Create helper based on real csar to test policy yaml and global properties - // set - SdcToscaParserFactory factory = SdcToscaParserFactory.getInstance(); - String path = Thread.currentThread().getContextClassLoader().getResource(csarFileName).getFile(); - ISdcCsarHelper sdcHelper = factory.getSdcCsarHelper(path); - Mockito.when(csarHandler.getSdcCsarHelper()).thenReturn(sdcHelper); - - // Mockito.when(csarHandler.getSdcCsarHelper()).thenReturn(csarHelper); - Mockito.when(csarHandler.getPolicyModelYaml()) - .thenReturn(Optional.ofNullable(ResourceFileUtils.getResourceAsString("tosca/tosca_example.yaml"))); - return csarHandler; - } - - @Test - @Transactional - public void testGetPolicyModelYaml() throws IOException, SdcToscaParserException, CsarHandlerException { - INotificationData notificationData = Mockito.mock(INotificationData.class); - IArtifactInfo serviceArtifacts = Mockito.mock(IArtifactInfo.class); - Mockito.when(serviceArtifacts.getArtifactType()).thenReturn("TOSCA_CSAR"); - List<IArtifactInfo> serviceArtifactsList = new ArrayList<>(); - serviceArtifactsList.add(serviceArtifacts); - Mockito.when(notificationData.getServiceArtifacts()).thenReturn(serviceArtifactsList); - - CsarHandler csarHandler = new CsarHandler(notificationData, "", ""); - csarHandler.setFilePath(Thread.currentThread().getContextClassLoader().getResource(CSAR_ARTIFACT_NAME_CDS) - .getFile()); - Assert.assertEquals(csarHandler.getPolicyModelYaml(), Optional - .ofNullable(ResourceFileUtils.getResourceAsString("example/sdc/expected-result/policy-data.yaml"))); - } - - @Test - @Transactional - public void testIsCsarAlreadyDeployedTca() throws SdcArtifactInstallerException, SdcToscaParserException, - CsarHandlerException, IOException, InterruptedException, BlueprintParserException { - String generatedName = RandomStringUtils.randomAlphanumeric(5); - CsarHandler csarHandler = buildFakeCsarHandler(generatedName, CSAR_ARTIFACT_NAME_CDS); - assertThat(csarInstaller.isCsarAlreadyDeployed(csarHandler)).isFalse(); - csarInstaller.installTheCsar(csarHandler); - assertThat(csarInstaller.isCsarAlreadyDeployed(csarHandler)).isTrue(); - } - - @Test - @Transactional - public void testWithoutCdsTca() throws SdcArtifactInstallerException, SdcToscaParserException, - CsarHandlerException, IOException, InterruptedException, BlueprintParserException { - String generatedName = RandomStringUtils.randomAlphanumeric(5); - CsarHandler csarHandler = buildFakeCsarHandler(generatedName, CSAR_ARTIFACT_NAME_NO_CDS); - - assertThat(csarInstaller.isCsarAlreadyDeployed(csarHandler)).isFalse(); - csarInstaller.installTheCsar(csarHandler); - assertThat(csarInstaller.isCsarAlreadyDeployed(csarHandler)).isTrue(); - } - - @Test(expected = SdcArtifactInstallerException.class) - @Transactional - public void testInstallTheBadCsarTca() - throws IOException, SdcToscaParserException, InterruptedException, BlueprintParserException, - SdcArtifactInstallerException { - // This test validates that the blueprint is well rejected because the blueprint contains a link - // to a policy that does not exist on the policy engine emulator. - String generatedName = RandomStringUtils.randomAlphanumeric(5); - csarInstaller.installTheCsar(buildBadFakeCsarHandler(generatedName, CSAR_ARTIFACT_NAME_NO_CDS)); - } - - @Test - @Transactional - @Commit - public void testInstallTheCsarTca() throws SdcArtifactInstallerException, SdcToscaParserException, - CsarHandlerException, IOException, JSONException, InterruptedException, BlueprintParserException { - String generatedName = RandomStringUtils.randomAlphanumeric(5); - csarInstaller.installTheCsar(buildFakeCsarHandler(generatedName, CSAR_ARTIFACT_NAME_CDS)); - - assertThat(serviceRepository.existsById("63cac700-ab9a-4115-a74f-7eac85e3fce0")).isTrue(); - // We should have CDS info - assertThat(serviceRepository.findById("63cac700-ab9a-4115-a74f-7eac85e3fce0").get().getResourceByType("VF") - .getAsJsonObject("vLoadBalancerMS 0").getAsJsonObject( - CdsDataInstaller.CONTROLLER_PROPERTIES)).isNotNull(); - assertThat(loopTemplatesRepo.existsById(LoopTemplate.generateLoopTemplateName(generatedName, "1.0", - RESOURCE_INSTANCE_NAME_RESOURCE1, "tca.yaml"))).isTrue(); - assertThat(loopTemplatesRepo.existsById(LoopTemplate.generateLoopTemplateName(generatedName, "1.0", - RESOURCE_INSTANCE_NAME_RESOURCE1, "tca_3.yaml"))).isTrue(); - assertThat(loopTemplatesRepo.existsById(LoopTemplate.generateLoopTemplateName(generatedName, "1.0", - RESOURCE_INSTANCE_NAME_RESOURCE2, "tca_2.yaml"))).isTrue(); - assertThat(loopTemplatesRepo.existsById(LoopTemplate.generateLoopTemplateName(generatedName, "1.0", - RESOURCE_INSTANCE_NAME_RESOURCE1, "tca-guilin.yaml"))).isTrue(); - // Verify now that policy and json representation, global properties are well - // set - LoopTemplate loopTemplate = loopTemplatesRepo.findById(LoopTemplate.generateLoopTemplateName(generatedName, - "1.0", RESOURCE_INSTANCE_NAME_RESOURCE1, "tca.yaml")).get(); - assertThat(loopTemplate.getLoopElementModelsUsed()).hasSize(1); - Assertions.assertThat(loopTemplate.getModelService().getServiceUuid()) - .isEqualTo("63cac700-ab9a-4115-a74f-7eac85e3fce0"); - JSONAssert.assertEquals(ResourceFileUtils.getResourceAsString("tosca/model-properties.json"), - JsonUtils.GSON_JPA_MODEL.toJson(loopTemplate.getModelService()), true); - JSONAssert.assertEquals(ResourceFileUtils.getResourceAsString("tosca/service-details.json"), - JsonUtils.GSON_JPA_MODEL.toJson(loopTemplate.getModelService().getServiceDetails()), true); - JSONAssert.assertEquals(ResourceFileUtils.getResourceAsString("tosca/resource-details.json"), - JsonUtils.GSON_JPA_MODEL.toJson(loopTemplate.getModelService().getResourceDetails()), true); - Assertions.assertThat(((LoopTemplateLoopElementModel) (loopTemplate.getLoopElementModelsUsed().toArray()[0])) - .getLoopElementModel().getName()).isNotEmpty(); - - loopTemplate = loopTemplatesRepo.findById(LoopTemplate.generateLoopTemplateName(generatedName, "1.0", - RESOURCE_INSTANCE_NAME_RESOURCE1, "tca_3.yaml")).get(); - assertThat(((LoopTemplateLoopElementModel) (loopTemplate.getLoopElementModelsUsed().toArray()[0])) - .getLoopElementModel().getName()).isNotEmpty(); - assertThat(((LoopTemplateLoopElementModel) (loopTemplate.getLoopElementModelsUsed().toArray()[0])) - .getLoopElementModel().getName()).isNotEmpty(); - assertThat(loopTemplate.getMaximumInstancesAllowed()).isEqualByComparingTo(Integer.valueOf(0)); - loopTemplate = loopTemplatesRepo.findById(LoopTemplate.generateLoopTemplateName(generatedName, "1.0", - RESOURCE_INSTANCE_NAME_RESOURCE2, "tca_2.yaml")).get(); - assertThat(((LoopTemplateLoopElementModel) (loopTemplate.getLoopElementModelsUsed().toArray()[0])) - .getLoopElementModel().getName()).isNotEmpty(); - - assertThat(policyModelsRepository.findAll().size()).isGreaterThanOrEqualTo(1); - assertThat(policyModelsRepository - .existsById(new PolicyModelId("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0"))).isTrue(); - assertThat(policyModelsRepository - .getOne((new PolicyModelId("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0"))) - .getPolicyModelTosca()).isNotBlank(); - } -} diff --git a/src/test/java/org/onap/policy/clamp/loop/DcaeComponentTest.java b/src/test/java/org/onap/policy/clamp/loop/DcaeComponentTest.java deleted file mode 100644 index c95725457..000000000 --- a/src/test/java/org/onap/policy/clamp/loop/DcaeComponentTest.java +++ /dev/null @@ -1,189 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP POLICY-CLAMP - * ================================================================================ - * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.loop; - -import static org.assertj.core.api.Assertions.assertThat; - -import com.google.gson.Gson; -import com.google.gson.JsonObject; -import java.io.IOException; -import java.util.List; -import org.apache.camel.Exchange; -import org.apache.camel.Message; -import org.json.simple.parser.ParseException; -import org.junit.Test; -import org.mockito.Mockito; -import org.onap.policy.clamp.clds.model.dcae.DcaeInventoryResponse; -import org.onap.policy.clamp.clds.model.dcae.DcaeOperationStatusResponse; -import org.onap.policy.clamp.clds.util.ResourceFileUtils; -import org.onap.policy.clamp.loop.components.external.DcaeComponent; -import org.onap.policy.clamp.loop.components.external.ExternalComponentState; -import org.onap.policy.clamp.loop.template.LoopTemplate; -import org.onap.policy.clamp.loop.template.PolicyModel; -import org.onap.policy.clamp.policy.microservice.MicroServicePolicy; - -public class DcaeComponentTest { - - private Loop createTestLoop() { - Loop loopTest = new Loop("ControlLoopTest"); - loopTest.setGlobalPropertiesJson( - new Gson().fromJson( - "{\"dcaeDeployParameters\":{\"uniqueBlueprintParameters\": {\"policy_id\": \"name\"}}}", - JsonObject.class)); - loopTest.setLastComputedState(LoopState.DESIGN); - loopTest.setDcaeDeploymentId("123456789"); - loopTest.setDcaeDeploymentStatusUrl("http://localhost:8085"); - - MicroServicePolicy microServicePolicy = new MicroServicePolicy("configPolicyTest", new PolicyModel("policy1", - "tosca_definitions_version: tosca_simple_yaml_1_0_0", "1.0.0"), true, - new Gson().fromJson("{\"configtype\":\"json\"}", JsonObject.class), null, null, null); - microServicePolicy.setConfigurationsJson(new Gson().fromJson("{\"param1\":\"value1\"}", JsonObject.class)); - - loopTest.addMicroServicePolicy(microServicePolicy); - LoopTemplate loopTemplate = new LoopTemplate("test", "yaml", 1, null); - loopTemplate.setDcaeBlueprintId("UUID-blueprint"); - loopTest.setLoopTemplate(loopTemplate); - - return loopTest; - } - - /** - * Test the DcaeReponse roughly. - * - * @throws IOException In case of issues - */ - @Test - public void convertDcaeResponseTest() throws IOException { - String dcaeFakeResponse = "{'requestId':'testId','operationType':'install','status':'state'," - + "'error':'errorMessage', 'links':{'self':'selfUrl','uninstall':'uninstallUrl'}}"; - DcaeOperationStatusResponse responseObject = DcaeComponent.convertDcaeResponse(dcaeFakeResponse); - assertThat(responseObject.getRequestId()).isEqualTo("testId"); - assertThat(responseObject.getOperationType()).isEqualTo("install"); - assertThat(responseObject.getStatus()).isEqualTo("state"); - assertThat(responseObject.getError()).isEqualTo("errorMessage"); - assertThat(responseObject.getLinks()).isNotNull(); - assertThat(responseObject.getLinks().getSelf()).isEqualTo("selfUrl"); - assertThat(responseObject.getLinks().getUninstall()).isEqualTo("uninstallUrl"); - - assertThat(responseObject.getLinks().getStatus()).isNull(); - } - - @Test - public void testGetDeployPayload() throws IOException { - Loop loop = this.createTestLoop(); - String deploymentPayload = DcaeComponent.getDeployPayload(loop); - String expectedPayload = "{\"serviceTypeId\":\"UUID-blueprint\",\"inputs\":{\"policy_id\":\"name\"}}"; - assertThat(deploymentPayload).isEqualTo(expectedPayload); - } - - @Test - public void testGetUndeployPayload() throws IOException { - Loop loop = this.createTestLoop(); - String unDeploymentPayload = DcaeComponent.getUndeployPayload(loop); - String expectedPayload = "{\"serviceTypeId\":\"UUID-blueprint\"}"; - assertThat(unDeploymentPayload).isEqualTo(expectedPayload); - } - - /** - * Test the computeState method of the DcaeComponent roughly. - * - * @throws IOException In case of issues - */ - @Test - public void computeStateTest() throws IOException { - Exchange exchange = Mockito.mock(Exchange.class); - Message message = Mockito.mock(Message.class); - Exchange exchange2 = Mockito.mock(Exchange.class); - Mockito.when(exchange.getIn()).thenReturn(message); - Mockito.when(message.getExchange()).thenReturn(exchange2); - Mockito.when(exchange2.getProperty("dcaeResponse")).thenReturn(null); - - DcaeComponent dcae = new DcaeComponent(); - - // initial state - ExternalComponentState state = dcae.computeState(exchange); - assertThat(state.getStateName()).isEqualTo("BLUEPRINT_DEPLOYED"); - - // OperationalType = install - DcaeOperationStatusResponse dcaeResponse = Mockito.mock(DcaeOperationStatusResponse.class); - Mockito.when(dcaeResponse.getOperationType()).thenReturn("install"); - - Mockito.when(dcaeResponse.getStatus()).thenReturn("succeeded"); - Mockito.when(exchange2.getProperty("dcaeResponse")).thenReturn(dcaeResponse); - ExternalComponentState state2 = dcae.computeState(exchange); - assertThat(state2.getStateName()).isEqualTo("MICROSERVICE_INSTALLED_SUCCESSFULLY"); - Mockito.when(dcaeResponse.getStatus()).thenReturn("processing"); - ExternalComponentState state3 = dcae.computeState(exchange); - assertThat(state3.getStateName()).isEqualTo("PROCESSING_MICROSERVICE_INSTALLATION"); - - Mockito.when(dcaeResponse.getStatus()).thenReturn("failed"); - ExternalComponentState state4 = dcae.computeState(exchange); - assertThat(state4.getStateName()).isEqualTo("MICROSERVICE_INSTALLATION_FAILED"); - - // OperationalType = uninstall - Mockito.when(dcaeResponse.getOperationType()).thenReturn("uninstall"); - - Mockito.when(dcaeResponse.getStatus()).thenReturn("succeeded"); - Mockito.when(exchange2.getProperty("dcaeResponse")).thenReturn(dcaeResponse); - ExternalComponentState state5 = dcae.computeState(exchange); - assertThat(state5.getStateName()).isEqualTo("MICROSERVICE_UNINSTALLED_SUCCESSFULLY"); - - Mockito.when(dcaeResponse.getStatus()).thenReturn("processing"); - ExternalComponentState state6 = dcae.computeState(exchange); - assertThat(state6.getStateName()).isEqualTo("PROCESSING_MICROSERVICE_UNINSTALLATION"); - - Mockito.when(dcaeResponse.getStatus()).thenReturn("failed"); - ExternalComponentState state7 = dcae.computeState(exchange); - assertThat(state7.getStateName()).isEqualTo("MICROSERVICE_UNINSTALLATION_FAILED"); - - // error cases - Mockito.when(dcaeResponse.getOperationType()).thenReturn("whatever"); - ExternalComponentState state8 = dcae.computeState(exchange); - assertThat(state8.getStateName()).isEqualTo("IN_ERROR"); - - Mockito.when(dcaeResponse.getOperationType()).thenReturn("install"); - Mockito.when(dcaeResponse.getStatus()).thenReturn("anythingelse"); - ExternalComponentState state9 = dcae.computeState(exchange); - assertThat(state9.getStateName()).isEqualTo("IN_ERROR"); - } - - /** - * Test the Converter to DcaeInventoryResponse method. - * - * @throws IOException In case of failure - * @throws ParseException In case of failure - */ - @Test - public void convertToDcaeInventoryResponseTest() throws IOException, ParseException { - - List<DcaeInventoryResponse> responseObject = DcaeComponent - .convertToDcaeInventoryResponse( - ResourceFileUtils.getResourceAsString("example/dcae/inventory-response.json")); - assertThat(responseObject.get(0).getAsdcResourceId()).isEqualTo("testAsdcResourceId"); - assertThat(responseObject.get(0).getAsdcServiceId()).isEqualTo("testAsdcServiceId"); - assertThat(responseObject.get(0).getTypeName()).isEqualTo("testTypeName"); - assertThat(responseObject.get(0).getTypeId()).isEqualTo("testTypeId"); - assertThat(responseObject.get(0).getBlueprintTemplate()).isEqualTo("testBlueprintTemplate"); - } -} diff --git a/src/test/java/org/onap/policy/clamp/loop/DeployFlowTestItCase.java b/src/test/java/org/onap/policy/clamp/loop/DeployFlowTestItCase.java deleted file mode 100644 index 4d02b10dc..000000000 --- a/src/test/java/org/onap/policy/clamp/loop/DeployFlowTestItCase.java +++ /dev/null @@ -1,321 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.loop; - -import static org.assertj.core.api.Assertions.assertThat; - -import com.google.gson.Gson; -import com.google.gson.JsonObject; -import com.google.gson.JsonSyntaxException; -import java.io.IOException; -import java.util.Set; -import javax.transaction.Transactional; -import org.apache.camel.CamelContext; -import org.apache.camel.Exchange; -import org.apache.camel.builder.ExchangeBuilder; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.onap.policy.clamp.clds.Application; -import org.onap.policy.clamp.loop.template.LoopTemplate; -import org.onap.policy.clamp.loop.template.PolicyModel; -import org.onap.policy.clamp.loop.template.PolicyModelsService; -import org.onap.policy.clamp.policy.microservice.MicroServicePolicy; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest(classes = Application.class) -public class DeployFlowTestItCase { - private Gson gson = new Gson(); - - @Autowired - CamelContext camelContext; - - @Autowired - PolicyModelsService policyModelsService; - - @Autowired - LoopService loopService; - - @Autowired - LoopsRepository loopsRepository; - - /** - * This method tests a deployment a single blueprint. - * - * @throws JsonSyntaxException In case of issues - * @throws IOException In case of issues - */ - @Test - @Transactional - public void deployWithSingleBlueprintTest() throws JsonSyntaxException, IOException { - Loop loopTest = createLoop("ControlLoopTest", "yamlcontent", - "{\"dcaeDeployParameters\":{\"uniqueBlueprintParameters\": {\"policy_id\": \"name\"}}}", - "UUID-blueprint"); - LoopTemplate template = new LoopTemplate(); - template.setName("templateName"); - template.setBlueprint("yamlcontent"); - loopTest.setLoopTemplate(template); - MicroServicePolicy microServicePolicy = getMicroServicePolicy("configPolicyTest", "", - "{\"configtype\":\"json\"}", "tosca_definitions_version: tosca_simple_yaml_1_0_0", - "{\"param1\":\"value1\"}", true); - loopTest.addMicroServicePolicy(microServicePolicy); - loopService.saveOrUpdateLoop(loopTest); - Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext).withProperty("loopObject", loopTest) - .build(); - - camelContext.createProducerTemplate().send("direct:deploy-loop", myCamelExchange); - - Loop loopAfterTest = loopService.getLoop("ControlLoopTest"); - assertThat(loopAfterTest.getDcaeDeploymentStatusUrl()).isNotNull(); - assertThat(loopAfterTest.getDcaeDeploymentId()).isNotNull(); - } - - /** - * This method tests the deployment of multiple separated blueprints. - * - * @throws JsonSyntaxException In case of issues - * @throws IOException In case of issues - */ - @Test - @Transactional - public void deployWithMultipleBlueprintTest() throws JsonSyntaxException, IOException { - Loop loopTest2 = createLoop("ControlLoopTest2", "yamlcontent", "{\"dcaeDeployParameters\": {" - + "\"microService1\": {\"location_id\": \"\", \"policy_id\": \"TCA_ResourceInstanceName1_tca\"}," - + "\"microService2\": {\"location_id\": \"\", \"policy_id\": \"TCA_ResourceInstanceName2_tca\"}" - + "}}", "UUID-blueprint"); - LoopTemplate template = new LoopTemplate(); - template.setName("templateName"); - loopTest2.setLoopTemplate(template); - MicroServicePolicy microServicePolicy1 = getMicroServicePolicy("microService1", "", "{\"configtype\":\"json\"}", - "tosca_definitions_version: tosca_simple_yaml_1_0_0", "{\"param1\":\"value1\"}", true); - MicroServicePolicy microServicePolicy2 = getMicroServicePolicy("microService2", "", "{\"configtype\":\"json\"}", - "tosca_definitions_version: tosca_simple_yaml_1_0_0", "{\"param1\":\"value1\"}", true); - loopTest2.addMicroServicePolicy(microServicePolicy1); - loopTest2.addMicroServicePolicy(microServicePolicy2); - loopsRepository.saveAndFlush(loopTest2); - Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext).withProperty("loopObject", loopTest2) - .build(); - - camelContext.createProducerTemplate().send("direct:deploy-loop", myCamelExchange); - - Loop loopAfterTest = loopService.getLoop("ControlLoopTest2"); - Set<MicroServicePolicy> policyList = loopAfterTest.getMicroServicePolicies(); - for (MicroServicePolicy policy : policyList) { - assertThat(policy.getDcaeDeploymentStatusUrl()).isNotNull(); - assertThat(policy.getDcaeDeploymentId()).isNotNull(); - } - assertThat(loopAfterTest.getDcaeDeploymentStatusUrl()).isNull(); - assertThat(loopAfterTest.getDcaeDeploymentId()).isNull(); - } - - /** - * This method tests the undeployment of a single blueprint. - * - * @throws JsonSyntaxException In case of issues - * @throws IOException In case of issues - */ - @Test - @Transactional - public void undeployWithSingleBlueprintTest() throws JsonSyntaxException, IOException { - Loop loopTest = createLoop("ControlLoopTest", "yamlcontent", "{\"testname\":\"testvalue\"}", - "UUID-blueprint"); - LoopTemplate template = new LoopTemplate(); - template.setName("templateName"); - template.setBlueprint("yamlcontent"); - loopTest.setLoopTemplate(template); - loopTest.setDcaeDeploymentId("testDeploymentId"); - loopTest.setDcaeDeploymentStatusUrl("testUrl"); - MicroServicePolicy microServicePolicy = getMicroServicePolicy("configPolicyTest", "", - "{\"configtype\":\"json\"}", "tosca_definitions_version: tosca_simple_yaml_1_0_0", - "{\"param1\":\"value1\"}", true); - loopTest.addMicroServicePolicy(microServicePolicy); - loopService.saveOrUpdateLoop(loopTest); - Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext).withProperty("loopObject", loopTest) - .build(); - - camelContext.createProducerTemplate().send("direct:undeploy-loop", myCamelExchange); - - Loop loopAfterTest = loopService.getLoop("ControlLoopTest"); - assertThat(loopAfterTest.getDcaeDeploymentStatusUrl().contains("/uninstall")).isTrue(); - assertThat(loopAfterTest.getDcaeDeploymentId()).isNull(); - } - - /** - * This method tests the undeployment of multiple separated blueprints. - * - * @throws JsonSyntaxException In case of issues - * @throws IOException In case of issues - */ - @Test - @Transactional - public void undeployWithMultipleBlueprintTest() throws JsonSyntaxException, IOException { - Loop loopTest2 = createLoop("ControlLoopTest2", "yamlcontent", "{\"dcaeDeployParameters\": {" - + "\"microService1\": {\"location_id\": \"\", \"policy_id\": \"TCA_ResourceInstanceName1_tca\"}," - + "\"microService2\": {\"location_id\": \"\", \"policy_id\": \"TCA_ResourceInstanceName2_tca\"}" - + "}}", "UUID-blueprint"); - LoopTemplate template = new LoopTemplate(); - template.setName("templateName"); - loopTest2.setLoopTemplate(template); - MicroServicePolicy microServicePolicy1 = getMicroServicePolicy("microService1", "", "{\"configtype\":\"json\"}", - "tosca_definitions_version: tosca_simple_yaml_1_0_0", "{\"param1\":\"value1\"}", true, - "testDeploymentId1", "testDeploymentStatusUrl1"); - MicroServicePolicy microServicePolicy2 = getMicroServicePolicy("microService2", "", "{\"configtype\":\"json\"}", - "tosca_definitions_version: tosca_simple_yaml_1_0_0", "{\"param1\":\"value1\"}", true, - "testDeploymentId2", "testDeploymentStatusUrl2"); - loopTest2.addMicroServicePolicy(microServicePolicy1); - loopTest2.addMicroServicePolicy(microServicePolicy2); - loopsRepository.saveAndFlush(loopTest2); - Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext).withProperty("loopObject", loopTest2) - .build(); - - camelContext.createProducerTemplate().send("direct:undeploy-loop", myCamelExchange); - - Loop loopAfterTest = loopService.getLoop("ControlLoopTest2"); - Set<MicroServicePolicy> policyList = loopAfterTest.getMicroServicePolicies(); - for (MicroServicePolicy policy : policyList) { - assertThat(policy.getDcaeDeploymentStatusUrl().contains("/uninstall")).isTrue(); - assertThat(policy.getDcaeDeploymentId()).isNull(); - - } - assertThat(loopAfterTest.getDcaeDeploymentStatusUrl()).isNull(); - assertThat(loopAfterTest.getDcaeDeploymentId()).isNull(); - } - - /** - * This method tests the DCAE get status for a single blueprint. - * - * @throws JsonSyntaxException In case of issues - * @throws IOException In case of issues - */ - @Test - @Transactional - public void getStatusWithSingleBlueprintTest() throws JsonSyntaxException, IOException { - Loop loopTest = createLoop("ControlLoopTest", "yamlcontent", "{\"testname\":\"testvalue\"}", - "UUID-blueprint"); - LoopTemplate template = new LoopTemplate(); - template.setName("templateName"); - template.setBlueprint("yamlcontent"); - loopTest.setLoopTemplate(template); - MicroServicePolicy microServicePolicy = getMicroServicePolicy("configPolicyTest", "", - "{\"configtype\":\"json\"}", "tosca_definitions_version: tosca_simple_yaml_1_0_0", - "{\"param1\":\"value1\"}", true); - loopTest.addMicroServicePolicy(microServicePolicy); - loopService.saveOrUpdateLoop(loopTest); - assertThat(loopTest.getComponents().size()).isEqualTo(2); - assertThat(loopTest.getComponent("DCAE")).isNotNull(); - assertThat(loopTest.getComponent("POLICY")).isNotNull(); - Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext).withProperty("loopObject", loopTest) - .build(); - - camelContext.createProducerTemplate().send("direct:update-dcae-status-for-loop", myCamelExchange); - - assertThat(loopTest.getComponent("DCAE").getState().getStateName()).isEqualTo("BLUEPRINT_DEPLOYED"); - - Loop loopAfterTest = loopService.getLoop("ControlLoopTest"); - assertThat(loopAfterTest.getComponents().size()).isEqualTo(2); - assertThat(loopAfterTest.getComponent("DCAE")).isNotNull(); - assertThat(loopAfterTest.getComponent("POLICY")).isNotNull(); - } - - /** - * This method tests the dcae get status for multiple blueprints. - * - * @throws JsonSyntaxException In case of issues - * @throws IOException In case of issues - */ - @Test - @Transactional - public void getStatusWithMultipleBlueprintTest() throws JsonSyntaxException, IOException { - Loop loopTest = createLoop("ControlLoopTest", "yamlcontent", "{\"testname\":\"testvalue\"}", - "UUID-blueprint"); - LoopTemplate template = new LoopTemplate(); - template.setName("templateName"); - loopTest.setLoopTemplate(template); - MicroServicePolicy microServicePolicy = getMicroServicePolicy("configPolicyTest", "", - "{\"configtype\":\"json\"}", "tosca_definitions_version: tosca_simple_yaml_1_0_0", - "{\"param1\":\"value1\"}", true); - MicroServicePolicy microServicePolicy2 = getMicroServicePolicy("configPolicyTest2", "", - "{\"configtype\":\"json\"}", "tosca_definitions_version: tosca_simple_yaml_1_0_0", - "{\"param1\":\"value1\"}", true); - loopTest.addMicroServicePolicy(microServicePolicy); - loopTest.addMicroServicePolicy(microServicePolicy2); - loopService.saveOrUpdateLoop(loopTest); - assertThat(loopTest.getComponents().size()).isEqualTo(3); - assertThat(loopTest.getComponent("DCAE")).isNull(); - assertThat(loopTest.getComponent("DCAE_configPolicyTest")).isNotNull(); - assertThat(loopTest.getComponent("DCAE_configPolicyTest2")).isNotNull(); - assertThat(loopTest.getComponent("POLICY")).isNotNull(); - Exchange myCamelExchange = ExchangeBuilder.anExchange(camelContext).withProperty("loopObject", loopTest) - .build(); - - camelContext.createProducerTemplate().send("direct:update-dcae-status-for-loop", myCamelExchange); - - assertThat(loopTest.getComponent("DCAE_configPolicyTest").getState().getStateName()) - .isEqualTo("BLUEPRINT_DEPLOYED"); - assertThat(loopTest.getComponent("DCAE_configPolicyTest2").getState().getStateName()) - .isEqualTo("BLUEPRINT_DEPLOYED"); - - Loop loopAfterTest = loopService.getLoop("ControlLoopTest"); - assertThat(loopAfterTest.getComponents().size()).isEqualTo(3); - assertThat(loopAfterTest.getComponent("DCAE")).isNull(); - assertThat(loopAfterTest.getComponent("POLICY")).isNotNull(); - assertThat(loopTest.getComponent("DCAE_configPolicyTest")).isNotNull(); - assertThat(loopTest.getComponent("DCAE_configPolicyTest2")).isNotNull(); - } - - private Loop createLoop(String name, String blueprint, String globalPropertiesJson, - String dcaeBlueprintId) throws JsonSyntaxException, IOException { - Loop loop = new Loop(name); - loop.setGlobalPropertiesJson(new Gson().fromJson(globalPropertiesJson, JsonObject.class)); - loop.setLastComputedState(LoopState.DESIGN); - return loop; - } - - private MicroServicePolicy getMicroServicePolicy(String name, String modelType, String jsonRepresentation, - String policyTosca, String jsonProperties, boolean shared) { - - PolicyModel policyModel = new PolicyModel(modelType, policyTosca, "1.0.0"); - policyModelsService.saveOrUpdatePolicyModel(policyModel); - MicroServicePolicy microService = new MicroServicePolicy(name, policyModel, - shared, - gson.fromJson(jsonRepresentation, JsonObject.class), null, null, null); - - microService.setConfigurationsJson(new Gson().fromJson(jsonProperties, JsonObject.class)); - return microService; - } - - private MicroServicePolicy getMicroServicePolicy(String name, String modelType, String jsonRepresentation, - String policyTosca, String jsonProperties, boolean shared, - String deploymengId, - String deploymentStatusUrl) { - MicroServicePolicy microService = getMicroServicePolicy(name, modelType, jsonRepresentation, policyTosca, - jsonProperties, shared); - - microService.setDcaeDeploymentId(deploymengId); - microService.setDcaeDeploymentStatusUrl(deploymentStatusUrl); - return microService; - } -} diff --git a/src/test/java/org/onap/policy/clamp/loop/ExternalComponentStateTest.java b/src/test/java/org/onap/policy/clamp/loop/ExternalComponentStateTest.java deleted file mode 100644 index a73b2784b..000000000 --- a/src/test/java/org/onap/policy/clamp/loop/ExternalComponentStateTest.java +++ /dev/null @@ -1,82 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.loop; - -import static org.assertj.core.api.Assertions.assertThat; - -import org.junit.Test; -import org.onap.policy.clamp.loop.components.external.ExternalComponentState; - -public class ExternalComponentStateTest { - private ExternalComponentState state = new ExternalComponentState("NOT_SENT", - "The policies defined have NOT yet been created on the policy engine", 90); - - @Test - public void generalTest() { - assertThat(state.toString()).isEqualTo("NOT_SENT"); - state.setLevel(70); - assertThat(state.getLevel()).isEqualTo(70); - } - - @Test - public void equalsTest() { - assertThat(state.equals(null)).isEqualTo(false); - - ExternalComponentState state2 = new ExternalComponentState("NOT_SENT", - "The policies defined have NOT yet been created on the policy engine", 90); - assertThat(state.equals(state2)).isEqualTo(true); - - assertThat(state.equals(12)).isEqualTo(false); - - state2.setLevel(70); - assertThat(state.equals(state2)).isEqualTo(true); - - ExternalComponentState state3 = new ExternalComponentState("SENT", - "The policies defined have NOT yet been created on the policy engine", 90); - assertThat(state.equals(state3)).isEqualTo(false); - - ExternalComponentState state4 = new ExternalComponentState(null, - "The policies defined have NOT yet been created on the policy engine", 90); - ExternalComponentState state5 = new ExternalComponentState(null, - "The policies defined have NOT yet been", 50); - assertThat(state4.equals(state3)).isEqualTo(false); - assertThat(state4.equals(state5)).isEqualTo(true); - } - - @Test - public void compareToTest() { - ExternalComponentState state2 = new ExternalComponentState("NOT_SENT", - "The policies defined have NOT yet been created on the policy engine", 90); - assertThat(state.compareTo(state2)).isEqualTo(0); - - ExternalComponentState state3 = new ExternalComponentState("SENT", - "The policies defined have NOT yet been created on the policy engine", 50); - assertThat(state.compareTo(state3)).isEqualTo(1); - - ExternalComponentState state4 = new ExternalComponentState(null, - "The policies defined have NOT yet been created on the policy engine", 100); - assertThat(state.compareTo(state4)).isEqualTo(-1); - - } -}
\ No newline at end of file diff --git a/src/test/java/org/onap/policy/clamp/loop/LoopControllerTestItCase.java b/src/test/java/org/onap/policy/clamp/loop/LoopControllerTestItCase.java deleted file mode 100644 index 6728d292c..000000000 --- a/src/test/java/org/onap/policy/clamp/loop/LoopControllerTestItCase.java +++ /dev/null @@ -1,175 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2019 Nokia Intellectual Property. All rights - * reserved. - * Modifications Copyright (C) 2019 Huawei Technologies Co., Ltd. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.loop; - -import static org.assertj.core.api.Assertions.assertThat; - -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -import java.io.IOException; -import java.util.Set; -import javax.transaction.Transactional; -import org.assertj.core.api.Assertions; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.onap.policy.clamp.clds.Application; -import org.onap.policy.clamp.clds.util.JsonUtils; -import org.onap.policy.clamp.loop.service.Service; -import org.onap.policy.clamp.loop.template.LoopTemplate; -import org.onap.policy.clamp.loop.template.PolicyModel; -import org.onap.policy.clamp.loop.template.PolicyModelsService; -import org.onap.policy.clamp.policy.microservice.MicroServicePolicy; -import org.onap.policy.clamp.policy.microservice.MicroServicePolicyService; -import org.onap.policy.clamp.policy.operational.OperationalPolicy; -import org.onap.policy.clamp.policy.operational.OperationalPolicyService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest(classes = Application.class) -public class LoopControllerTestItCase { - - private static final String EXAMPLE_LOOP_NAME = "ClosedLoopTest"; - private static final String EXAMPLE_JSON = "{\"testName\":\"testValue\"}"; - - @Autowired - LoopService loopService; - - @Autowired - LoopsRepository loopsRepository; - - @Autowired - MicroServicePolicyService microServicePolicyService; - - @Autowired - OperationalPolicyService operationalPolicyService; - - @Autowired - PolicyModelsService policyModelsService; - - @Autowired - LoopController loopController; - - private void saveTestLoopToDb() { - Loop testLoop = createTestLoop(EXAMPLE_LOOP_NAME, "blueprint", "representation"); - testLoop.setGlobalPropertiesJson(JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class)); - LoopTemplate template = new LoopTemplate(); - template.setName("testTemplate"); - testLoop.setLoopTemplate(template); - Service modelService = new Service("{\"name\":\"serviceName\",\"UUID\":\"uuid\"}", "{}"); - testLoop.setModelService(modelService); - loopService.saveOrUpdateLoop(testLoop); - } - - private Loop createTestLoop(String loopName, String loopBlueprint, String loopSvg) { - return new Loop(loopName); - } - - @Test - @Transactional - public void testUpdateOperationalPolicies() { - saveTestLoopToDb(); - String policy = "[{\"name\":\"OPERATIONAL_CLholmes31_v1_0_vFW_PG_T10_k8s-holmes-rules\"," - + "\"configurationsJson\":{" - + "\"operational_policy\":{\"controlLoop\":{\"trigger_policy\":\"unique-policy-id-1-modifyConfig\"," - + "\"timeout\":\"3600\",\"abatement\":\"false\"," - + "\"controlLoopName\":\"LOOP_CLholmes31_v1_0_vFW_PG_T10_k8s-holmes-rules\"}," - + "\"policies\":[{\"id\":\"unique-policy-id-1-modifyConfig\",\"recipe\":\"ModifyConfig\"," - + "\"retry\":\"2\",\"timeout\":\"1200\",\"actor\":\"APPC\",\"payload\":\"{\\\"active-streams\\\":5}\"," - + "\"success\":\"\",\"failure\":\"\",\"failure_timeout\":\"\",\"failure_retries\":\"\"," - + "\"failure_exception\":\"\",\"failure_guard\":\"\",\"target\":{\"type\":\"VNF\"," - + "\"resourceID\":\"vFW_PG_T1\"}}]}}}]"; - JsonParser parser = new JsonParser(); - JsonElement ele = parser.parse(policy); - JsonArray arr = ele.getAsJsonArray(); - Loop loop = loopController.updateOperationalPolicies(EXAMPLE_LOOP_NAME, arr); - assertThat(loop.getOperationalPolicies()).hasSize(1); - Set<OperationalPolicy> opSet = loop.getOperationalPolicies(); - OperationalPolicy op = opSet.iterator().next(); - assertThat(op.getName()).isEqualTo("OPERATIONAL_CLholmes31_v1_0_vFW_PG_T10_k8s-holmes-rules"); - } - - @Test - @Transactional - public void testUpdateGlobalProperties() { - saveTestLoopToDb(); - String policy = "{\"dcaeDeployParameters\":{\"aaiEnrichmentHost\":\"aai.onap.svc.cluster.local\"," - + "\"aaiEnrichmentPort\":\"8443\",\"enableAAIEnrichment\":\"false\",\"dmaap_host\":\"message-router" - + ".onap\",\"dmaap_port\":\"3904\",\"enableRedisCaching\":\"false\",\"redisHosts\":\"dcae-redis.onap" - + ".svc.cluster.local:6379\",\"tag_version\":\"nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments" - + ".tca-cdap-container:1.1.1\",\"consul_host\":\"consul-server.onap\",\"consul_port\":\"8500\"," - + "\"cbs_host\":\"config-binding-service\",\"cbs_port\":\"10000\",\"external_port\":\"32012\"," - + "\"policy_model_id\":\"onap.policies.monitoring.cdap.tca.hi.lo.app\"," - + "\"policy_id\":\"tca_k8s_CLTCA_v1_0_vFW_PG_T10_k8s-tca-clamp-policy-05162019\"}}"; - JsonParser parser = new JsonParser(); - JsonElement ele = parser.parse(policy); - JsonObject obj = ele.getAsJsonObject(); - loopController.updateGlobalPropertiesJson(EXAMPLE_LOOP_NAME, obj); - Loop loop = loopController.getLoop(EXAMPLE_LOOP_NAME); - JsonObject globalPropertiesJson = loop.getGlobalPropertiesJson(); - JsonObject prop = globalPropertiesJson.getAsJsonObject("dcaeDeployParameters"); - assertThat(prop.get("aaiEnrichmentHost").getAsString()).isEqualTo("aai.onap.svc.cluster.local"); - } - - @Test - @Transactional - public void testUpdateMicroservicePolicy() { - saveTestLoopToDb(); - PolicyModel policyModel = new PolicyModel("testPolicyModel", - "tosca_definitions_version: tosca_simple_yaml_1_0_0", "1.0.0"); - policyModelsService.saveOrUpdatePolicyModel(policyModel); - MicroServicePolicy policy = new MicroServicePolicy("policyName", policyModel, false, - JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null, null, null); - loopController.updateMicroservicePolicy(EXAMPLE_LOOP_NAME, policy); - assertThat(microServicePolicyService.isExisting("policyName")).isTrue(); - } - - @Test - @Transactional - public void testAddAndRemoveOperationalPolicies() throws IOException { - saveTestLoopToDb(); - PolicyModel policyModel = new PolicyModel("testPolicyModel", - null, "1.0.0"); - policyModelsService.saveOrUpdatePolicyModel(policyModel); - - loopController.addOperationalPolicy(EXAMPLE_LOOP_NAME, "testPolicyModel", "1.0.0"); - - Loop newLoop = loopController.getLoop(EXAMPLE_LOOP_NAME); - Set<OperationalPolicy> opPolicyList = newLoop.getOperationalPolicies(); - assertThat(opPolicyList.size()).isEqualTo(1); - for (OperationalPolicy policy : opPolicyList) { - assertThat(policy.getName().contains("OPERATIONAL_serviceName")).isTrue(); - Assertions.assertThat(policy.getPolicyModel().getPolicyModelType()).isEqualTo("testPolicyModel"); - Assertions.assertThat(policy.getPolicyModel().getVersion()).isEqualTo("1.0.0"); - } - - loopController.removeOperationalPolicy(EXAMPLE_LOOP_NAME, "testPolicyModel", "1.0.0"); - Loop newLoop2 = loopController.getLoop(EXAMPLE_LOOP_NAME); - assertThat(newLoop2.getOperationalPolicies().size()).isEqualTo(0); - } -}
\ No newline at end of file diff --git a/src/test/java/org/onap/policy/clamp/loop/LoopLogServiceTestItCase.java b/src/test/java/org/onap/policy/clamp/loop/LoopLogServiceTestItCase.java deleted file mode 100644 index 7b0ab8614..000000000 --- a/src/test/java/org/onap/policy/clamp/loop/LoopLogServiceTestItCase.java +++ /dev/null @@ -1,96 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2019 Huawei Technologies Co., Ltd. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.loop; - -import static org.assertj.core.api.Assertions.assertThat; - -import com.google.gson.JsonObject; -import java.util.Set; -import javax.transaction.Transactional; -import org.assertj.core.api.Assertions; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.onap.policy.clamp.clds.Application; -import org.onap.policy.clamp.clds.util.JsonUtils; -import org.onap.policy.clamp.loop.log.LogType; -import org.onap.policy.clamp.loop.log.LoopLog; -import org.onap.policy.clamp.loop.log.LoopLogService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest(classes = Application.class) -public class LoopLogServiceTestItCase { - - private static final String EXAMPLE_LOOP_NAME = "ClosedLoopTest"; - private static final String EXAMPLE_JSON = "{\"testName\":\"testValue\"}"; - private static final String CLAMP_COMPONENT = "CLAMP"; - private static final String SAMPLE_LOG_MESSAGE = "Sample log"; - private static final String BLUEPRINT = "blueprint"; - - @Autowired - LoopService loopService; - - @Autowired - LoopsRepository loopsRepository; - - @Autowired - LoopLogService loopLogService; - - private void saveTestLoopToDb() { - Loop testLoop = new Loop(EXAMPLE_LOOP_NAME); - testLoop.setGlobalPropertiesJson(JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class)); - loopService.saveOrUpdateLoop(testLoop); - } - - @Test - @Transactional - public void testAddLog() { - saveTestLoopToDb(); - Loop loop = loopService.getLoop(EXAMPLE_LOOP_NAME); - loopLogService.addLog(SAMPLE_LOG_MESSAGE, "INFO", loop); - Set<LoopLog> loopLogs = loop.getLoopLogs(); - assertThat(loopLogs).hasSize(1); - LoopLog loopLog = loopLogs.iterator().next(); - assertThat(loopLog.getMessage()).isEqualTo(SAMPLE_LOG_MESSAGE); - } - - @Test - @Transactional - public void testLoopLog() { - LoopLog log = new LoopLog(); - Long id = Long.valueOf(100); - log.setId(id); - log.setLogComponent(CLAMP_COMPONENT); - log.setLogType(LogType.INFO); - log.setMessage(SAMPLE_LOG_MESSAGE); - Loop testLoop = new Loop(EXAMPLE_LOOP_NAME); - log.setLoop(testLoop); - assertThat(log.getMessage()).isEqualTo(SAMPLE_LOG_MESSAGE); - assertThat(log.getLogType()).isEqualTo(LogType.INFO); - assertThat(log.getLogComponent()).isEqualTo(CLAMP_COMPONENT); - assertThat(log.getId()).isEqualTo(id); - Assertions.assertThat(log.getLoop()).isEqualTo(testLoop); - } -}
\ No newline at end of file diff --git a/src/test/java/org/onap/policy/clamp/loop/LoopRepositoriesItCase.java b/src/test/java/org/onap/policy/clamp/loop/LoopRepositoriesItCase.java deleted file mode 100644 index e18dd2475..000000000 --- a/src/test/java/org/onap/policy/clamp/loop/LoopRepositoriesItCase.java +++ /dev/null @@ -1,258 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Modifications Copyright (c) 2019 Samsung - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.loop; - -import static org.assertj.core.api.Assertions.assertThat; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonObject; -import java.time.Instant; -import org.assertj.core.api.Assertions; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.onap.policy.clamp.clds.Application; -import org.onap.policy.clamp.loop.log.LogType; -import org.onap.policy.clamp.loop.log.LoopLog; -import org.onap.policy.clamp.loop.log.LoopLogRepository; -import org.onap.policy.clamp.loop.service.Service; -import org.onap.policy.clamp.loop.service.ServicesRepository; -import org.onap.policy.clamp.loop.template.LoopElementModel; -import org.onap.policy.clamp.loop.template.LoopElementModelsRepository; -import org.onap.policy.clamp.loop.template.LoopTemplate; -import org.onap.policy.clamp.loop.template.LoopTemplatesRepository; -import org.onap.policy.clamp.loop.template.PolicyModel; -import org.onap.policy.clamp.loop.template.PolicyModelId; -import org.onap.policy.clamp.loop.template.PolicyModelsRepository; -import org.onap.policy.clamp.policy.microservice.MicroServicePolicy; -import org.onap.policy.clamp.policy.microservice.MicroServicePolicyService; -import org.onap.policy.clamp.policy.operational.OperationalPolicy; -import org.onap.policy.clamp.policy.operational.OperationalPolicyService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import org.springframework.transaction.annotation.Transactional; - -@RunWith(SpringJUnit4ClassRunner.class) -@SpringBootTest(classes = Application.class) -public class LoopRepositoriesItCase { - - private Gson gson = new GsonBuilder().setPrettyPrinting().excludeFieldsWithoutExposeAnnotation().create(); - - @Autowired - private LoopsRepository loopRepository; - - @Autowired - private MicroServicePolicyService microServicePolicyService; - - @Autowired - private OperationalPolicyService operationalPolicyService; - - @Autowired - private LoopLogRepository loopLogRepository; - - @Autowired - private LoopTemplatesRepository loopTemplateRepository; - - @Autowired - private LoopElementModelsRepository microServiceModelsRepository; - - @Autowired - private PolicyModelsRepository policyModelsRepository; - - @Autowired - private ServicesRepository servicesRepository; - - private Service getService(String serviceDetails, String resourceDetails) { - return new Service(serviceDetails, resourceDetails); - } - - private OperationalPolicy getOperationalPolicy(String configJson, String name, PolicyModel policyModel) { - return new OperationalPolicy(name, null, new Gson().fromJson(configJson, JsonObject.class), policyModel, - null, null, null); - } - - private LoopElementModel getLoopElementModel(String yaml, String name, String policyType, String createdBy, - PolicyModel policyModel) { - LoopElementModel model = new LoopElementModel(name, policyType, yaml); - model.addPolicyModel(policyModel); - return model; - } - - private PolicyModel getPolicyModel(String policyType, String policyModelTosca, String version, - String policyAcronym) { - return new PolicyModel(policyType, policyModelTosca, version, policyAcronym); - } - - private LoopTemplate getLoopTemplates(String name, String blueprint, String createdBy, - Integer maxInstancesAllowed) { - LoopTemplate template = new LoopTemplate(name, blueprint, maxInstancesAllowed, null); - template.addLoopElementModel(getLoopElementModel("yaml", "microService1", "org.onap.policy.drools", createdBy, - getPolicyModel("org.onap.policy.drools", "yaml", "1.0.0", "Drools"))); - template.addLoopElementModel(getLoopElementModel("yaml", "oppolicy1", "org.onap.policy.drools.legacy", - createdBy, getPolicyModel("org.onap.policy.drools.legacy", "yaml", "1.0.0", "DroolsLegacy"))); - loopTemplateRepository.save(template); - return template; - } - - private Loop getLoop(String name, String blueprint, String globalPropertiesJson, - String dcaeId, String dcaeUrl, String dcaeBlueprintId) { - Loop loop = new Loop(); - loop.setName(name); - loop.setGlobalPropertiesJson(new Gson().fromJson(globalPropertiesJson, JsonObject.class)); - loop.setLastComputedState(LoopState.DESIGN); - loop.setDcaeDeploymentId(dcaeId); - loop.setDcaeDeploymentStatusUrl(dcaeUrl); - loop.setLoopTemplate(getLoopTemplates("templateName", "yaml", "toto", 1)); - return loop; - } - - private MicroServicePolicy getMicroServicePolicy(String name, String jsonRepresentation, String jsonProperties, - boolean shared, PolicyModel policyModel) { - MicroServicePolicy microService = new MicroServicePolicy(name, policyModel, shared, - gson.fromJson(jsonRepresentation, JsonObject.class), null, null, null); - microService.setConfigurationsJson(new Gson().fromJson(jsonProperties, JsonObject.class)); - return microService; - } - - private LoopLog getLoopLog(LogType type, String message, Loop loop) { - return new LoopLog(message, type, "CLAMP", loop); - } - - /** - * This method does a crud test and save a loop template and a loop object in db. - */ - @Test - @Transactional - public void crudTest() { - // Setup - Loop loopTest = getLoop("ControlLoopTest", "yamlcontent", "{\"testname\":\"testvalue\"}", - "123456789", "https://dcaetest.org", "UUID-blueprint"); - OperationalPolicy opPolicy = this.getOperationalPolicy("{\"type\":\"GUARD\"}", "GuardOpPolicyTest", - getPolicyModel("org.onap.policy.drools.legacy", "yaml", "1.0.0", "DroolsLegacy")); - loopTest.addOperationalPolicy(opPolicy); - MicroServicePolicy microServicePolicy = getMicroServicePolicy("configPolicyTest", "{\"configtype\":\"json\"}", - "{\"param1\":\"value1\"}", true, getPolicyModel("org.onap.policy.drools", "yaml", "1.0.0", "Drools")); - loopTest.addMicroServicePolicy(microServicePolicy); - LoopLog loopLog = getLoopLog(LogType.INFO, "test message", loopTest); - loopTest.addLog(loopLog); - Service service = getService( - "{\"name\": \"vLoadBalancerMS\", \"UUID\": \"63cac700-ab9a-4115-a74f-7eac85e3fce0\"}", "{\"CP\": {}}"); - loopTest.setModelService(service); - - // Attempt to save into the database the entire loop - Loop loopInDb = loopRepository.save(loopTest); - assertThat(loopInDb).isNotNull(); - assertThat(loopRepository.findById(loopInDb.getName()).get()).isNotNull(); - assertThat(loopInDb.getCreatedDate()).isNotNull(); - assertThat(loopInDb.getUpdatedDate()).isNotNull(); - assertThat(loopInDb.getUpdatedDate()).isEqualTo(loopInDb.getCreatedDate()); - assertThat(loopInDb.getName()).isEqualTo("ControlLoopTest"); - // Autogen id so now set the ID in the previous model so that we can compare the - // objects - loopLog.setId(((LoopLog) loopInDb.getLoopLogs().toArray()[0]).getId()); - - assertThat(loopInDb).isEqualToIgnoringGivenFields(loopTest, "components", "createdDate", "updatedDate", - "createdBy", "updatedBy"); - assertThat(loopRepository.existsById(loopTest.getName())).isEqualTo(true); - assertThat(operationalPolicyService.isExisting(opPolicy.getName())).isEqualTo(true); - assertThat(microServicePolicyService.isExisting(microServicePolicy.getName())).isEqualTo(true); - assertThat(loopLogRepository.existsById(loopLog.getId())).isEqualTo(true); - assertThat(loopTemplateRepository.existsById(loopInDb.getLoopTemplate().getName())).isEqualTo(true); - assertThat(loopTemplateRepository.existsById(loopInDb.getLoopTemplate().getName())).isEqualTo(true); - assertThat(servicesRepository.existsById(loopInDb.getModelService().getServiceUuid())).isEqualTo(true); - assertThat(microServiceModelsRepository.existsById( - loopInDb.getLoopTemplate().getLoopElementModelsUsed().first().getLoopElementModel().getName())) - .isEqualTo(true); - assertThat(policyModelsRepository.existsById(new PolicyModelId( - loopInDb.getLoopTemplate().getLoopElementModelsUsed().first().getLoopElementModel().getPolicyModels() - .first().getPolicyModelType(), - loopInDb.getLoopTemplate().getLoopElementModelsUsed().first().getLoopElementModel().getPolicyModels() - .first().getVersion()))).isEqualTo(true); - - // Now attempt to read from database - Loop loopInDbRetrieved = loopRepository.findById(loopTest.getName()).get(); - assertThat(loopInDbRetrieved).isEqualToIgnoringGivenFields(loopTest, "components", "createdDate", "updatedDate", - "createdBy", "updatedBy"); - assertThat(loopInDbRetrieved).isEqualToComparingOnlyGivenFields(loopInDb, "createdDate", "updatedDate", - "createdBy", "updatedBy"); - assertThat((LoopLog) loopInDbRetrieved.getLoopLogs().toArray()[0]).isEqualToComparingFieldByField(loopLog); - assertThat((OperationalPolicy) loopInDbRetrieved.getOperationalPolicies().toArray()[0]) - .isEqualToIgnoringGivenFields(opPolicy, "createdDate", "updatedDate", "createdBy", "updatedBy"); - Assertions.assertThat( - ((OperationalPolicy) loopInDbRetrieved.getOperationalPolicies().toArray()[0]).getCreatedDate()) - .isNotNull(); - Assertions.assertThat( - ((OperationalPolicy) loopInDbRetrieved.getOperationalPolicies().toArray()[0]).getUpdatedDate()) - .isNotNull(); - Assertions.assertThat( - ((OperationalPolicy) loopInDbRetrieved.getOperationalPolicies().toArray()[0]).getCreatedBy()) - .isNotNull(); - Assertions.assertThat( - ((OperationalPolicy) loopInDbRetrieved.getOperationalPolicies().toArray()[0]).getUpdatedBy()) - .isNotNull(); - - assertThat((MicroServicePolicy) loopInDbRetrieved.getMicroServicePolicies().toArray()[0]) - .isEqualToIgnoringGivenFields(microServicePolicy, "createdDate", "updatedDate", "createdBy", - "updatedBy"); - - // Attempt an update - ((LoopLog) loopInDbRetrieved.getLoopLogs().toArray()[0]).setLogInstant(Instant.now()); - loopInDbRetrieved.setLastComputedState(LoopState.RUNNING); - Loop loopInDbRetrievedUpdated = loopRepository.saveAndFlush(loopInDbRetrieved); - // Loop loopInDbRetrievedUpdated = - // loopRepository.findById(loopTest.getName()).get(); - assertThat((LoopLog) loopInDbRetrievedUpdated.getLoopLogs().toArray()[0]) - .isEqualToComparingFieldByField(loopInDbRetrieved.getLoopLogs().toArray()[0]); - // UpdatedDate should have been changed - assertThat(loopInDbRetrievedUpdated.getUpdatedDate()).isNotEqualTo(loopInDbRetrievedUpdated.getCreatedDate()); - // createdDate should have NOT been changed - assertThat(loopInDbRetrievedUpdated.getCreatedDate()).isEqualTo(loopInDb.getCreatedDate()); - // other audit are the same - assertThat(loopInDbRetrievedUpdated.getCreatedBy()).isEqualTo("Not found"); - assertThat(loopInDbRetrievedUpdated.getUpdatedBy()).isEqualTo("Not found"); - - // Attempt to delete the object and check it has well been cascaded - - loopRepository.delete(loopInDbRetrieved); - assertThat(loopRepository.existsById(loopTest.getName())).isEqualTo(false); - assertThat(operationalPolicyService.isExisting(opPolicy.getName())).isEqualTo(false); - assertThat(microServicePolicyService.isExisting(microServicePolicy.getName())).isEqualTo(true); - assertThat(loopLogRepository.existsById(loopLog.getId())).isEqualTo(false); - assertThat(loopTemplateRepository.existsById(loopInDb.getLoopTemplate().getName())).isEqualTo(true); - assertThat(servicesRepository.existsById(loopInDb.getModelService().getServiceUuid())).isEqualTo(true); - assertThat(microServiceModelsRepository.existsById( - loopInDb.getLoopTemplate().getLoopElementModelsUsed().first().getLoopElementModel().getName())) - .isEqualTo(true); - - assertThat(policyModelsRepository.existsById(new PolicyModelId( - loopInDb.getLoopTemplate().getLoopElementModelsUsed().first().getLoopElementModel().getPolicyModels() - .first().getPolicyModelType(), - loopInDb.getLoopTemplate().getLoopElementModelsUsed().first().getLoopElementModel().getPolicyModels() - .first().getVersion()))).isEqualTo(true); - - } -} diff --git a/src/test/java/org/onap/policy/clamp/loop/LoopServiceTestItCase.java b/src/test/java/org/onap/policy/clamp/loop/LoopServiceTestItCase.java deleted file mode 100644 index 74092727c..000000000 --- a/src/test/java/org/onap/policy/clamp/loop/LoopServiceTestItCase.java +++ /dev/null @@ -1,381 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2019 Nokia Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.loop; - -import static org.assertj.core.api.Assertions.assertThat; - -import com.google.gson.JsonObject; -import java.util.Set; -import java.util.stream.Collectors; -import javax.transaction.Transactional; -import org.assertj.core.api.Assertions; -import org.assertj.core.util.Lists; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.onap.policy.clamp.clds.Application; -import org.onap.policy.clamp.clds.util.JsonUtils; -import org.onap.policy.clamp.loop.log.LogType; -import org.onap.policy.clamp.loop.log.LoopLog; -import org.onap.policy.clamp.loop.log.LoopLogService; -import org.onap.policy.clamp.loop.template.LoopTemplate; -import org.onap.policy.clamp.loop.template.PolicyModel; -import org.onap.policy.clamp.loop.template.PolicyModelsService; -import org.onap.policy.clamp.policy.microservice.MicroServicePolicy; -import org.onap.policy.clamp.policy.microservice.MicroServicePolicyService; -import org.onap.policy.clamp.policy.operational.OperationalPolicy; -import org.onap.policy.clamp.policy.operational.OperationalPolicyService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest(classes = Application.class) -public class LoopServiceTestItCase { - - private static final String EXAMPLE_LOOP_NAME = "ClosedLoopTest"; - private static final String EXAMPLE_JSON = "{\"testName\":\"testValue\"}"; - - @Autowired - LoopService loopService; - - @Autowired - LoopsRepository loopsRepository; - - @Autowired - MicroServicePolicyService microServicePolicyService; - - @Autowired - OperationalPolicyService operationalPolicyService; - - @Autowired - LoopLogService loopLogService; - - @Autowired - PolicyModelsService policyModelsService; - - @Test - @Transactional - public void shouldCreateEmptyLoop() { - // given - String loopBlueprint = "blueprint"; - Loop testLoop = createTestLoop(EXAMPLE_LOOP_NAME, loopBlueprint); - testLoop.setGlobalPropertiesJson(JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class)); - testLoop.setLastComputedState(LoopState.DESIGN); - - // when - Loop actualLoop = loopService.saveOrUpdateLoop(testLoop); - - // then - assertThat(actualLoop).isNotNull(); - assertThat(actualLoop).isEqualTo(loopsRepository.findById(actualLoop.getName()).get()); - assertThat(actualLoop.getName()).isEqualTo(EXAMPLE_LOOP_NAME); - assertThat(actualLoop.getGlobalPropertiesJson().getAsJsonPrimitive("testName").getAsString()) - .isEqualTo("testValue"); - } - - @Test - @Transactional - public void shouldAddOperationalPolicyToLoop() { - // given - saveTestLoopToDb(); - OperationalPolicy operationalPolicy = new OperationalPolicy("policyName", null, - JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null, null, null, null); - - // when - Loop actualLoop = loopService.updateAndSaveOperationalPolicies(EXAMPLE_LOOP_NAME, - Lists.newArrayList(operationalPolicy)); - - // then - assertThat(actualLoop).isNotNull(); - assertThat(actualLoop.getName()).isEqualTo(EXAMPLE_LOOP_NAME); - Set<OperationalPolicy> savedPolicies = actualLoop.getOperationalPolicies(); - assertThat(savedPolicies).hasSize(1); - assertThat(savedPolicies) - .usingElementComparatorIgnoringFields("loop", "createdBy", "createdDate", "updatedBy", "updatedDate") - .contains(operationalPolicy); - OperationalPolicy savedPolicy = savedPolicies.iterator().next(); - Assertions.assertThat(savedPolicy.getLoop().getName()).isEqualTo(EXAMPLE_LOOP_NAME); - - } - - @Test - @Transactional - public void shouldAddMicroservicePolicyToLoop() { - // given - saveTestLoopToDb(); - PolicyModel policyModel = new PolicyModel("org.policies.policyModel1", - "tosca_definitions_version: tosca_simple_yaml_1_0_0", "1.0.0", "policyModel1"); - policyModelsService.saveOrUpdatePolicyModel(policyModel); - MicroServicePolicy microServicePolicy = new MicroServicePolicy("policyName", policyModel, - false, JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null, null, null); - - // when - Loop actualLoop = loopService.updateAndSaveMicroservicePolicies(EXAMPLE_LOOP_NAME, - Lists.newArrayList(microServicePolicy)); - - // then - assertThat(actualLoop).isNotNull(); - assertThat(actualLoop.getName()).isEqualTo(EXAMPLE_LOOP_NAME); - Set<MicroServicePolicy> savedPolicies = actualLoop.getMicroServicePolicies(); - assertThat(savedPolicies).hasSize(1); - assertThat(savedPolicies).usingElementComparatorIgnoringFields("usedByLoops", "createdDate", "updatedDate", - "createdBy", "updatedBy").containsExactly(microServicePolicy); - assertThat(savedPolicies).extracting("usedByLoops").hasSize(1); - - } - - @Test - @Transactional - //@Commit - public void shouldCreateNewMicroservicePolicyAndUpdateJsonRepresentationOfOldOne() { - // given - saveTestLoopToDb(); - PolicyModel policyModel1 = new PolicyModel("org.policies.firstPolicyName", - "tosca_definitions_version: tosca_simple_yaml_1_0_0", "1.0.0", "firstPolicyName"); - policyModelsService.saveOrUpdatePolicyModel(policyModel1); - PolicyModel policyModel2 = new PolicyModel("org.policies.secondPolicyName", - "tosca_definitions_version: tosca_simple_yaml_1_0_0", "1.0.0", "secondPolicyName"); - policyModelsService.saveOrUpdatePolicyModel(policyModel2); - MicroServicePolicy firstMicroServicePolicy = new MicroServicePolicy("firstPolicyName", policyModel1, false, - JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null, null, null); - - loopService.updateAndSaveMicroservicePolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(firstMicroServicePolicy)); - MicroServicePolicy secondMicroServicePolicy = new MicroServicePolicy("secondPolicyName", policyModel2, false, - JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null, null, null); - - // when - firstMicroServicePolicy - .setConfigurationsJson(JsonUtils.GSON.fromJson("{\"name1\":\"value1\"}", JsonObject.class)); - Loop actualLoop = loopService.updateAndSaveMicroservicePolicies(EXAMPLE_LOOP_NAME, - Lists.newArrayList(firstMicroServicePolicy, secondMicroServicePolicy)); - - // then - assertThat(actualLoop).isNotNull(); - assertThat(actualLoop.getName()).isEqualTo(EXAMPLE_LOOP_NAME); - Set<MicroServicePolicy> savedPolicies = actualLoop.getMicroServicePolicies(); - assertThat(savedPolicies).hasSize(2); - assertThat(savedPolicies).contains(firstMicroServicePolicy); - assertThat(savedPolicies).contains(secondMicroServicePolicy); - assertThat(savedPolicies).usingElementComparatorIgnoringFields("usedByLoops", "createdDate", "updatedDate", - "createdBy", "updatedBy").containsExactlyInAnyOrder(firstMicroServicePolicy, secondMicroServicePolicy); - } - - private void saveTestLoopToDb() { - Loop testLoop = createTestLoop(EXAMPLE_LOOP_NAME, "blueprint"); - testLoop.setGlobalPropertiesJson(JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class)); - LoopTemplate template = new LoopTemplate(); - template.setName("testTemplate"); - testLoop.setLoopTemplate(template); - loopService.saveOrUpdateLoop(testLoop); - } - - @Test - @Transactional - public void shouldRemoveOldMicroservicePolicyIfNotInUpdatedList() { - // given - saveTestLoopToDb(); - PolicyModel policyModel1 = new PolicyModel("org.policies.firstPolicyName", - "tosca_definitions_version: tosca_simple_yaml_1_0_0", "1.0.0", "firstPolicyName"); - policyModelsService.saveOrUpdatePolicyModel(policyModel1); - PolicyModel policyModel2 = new PolicyModel("org.policies.secondPolicyName", - "tosca_definitions_version: tosca_simple_yaml_1_0_0", "1.0.0", "secondPolicyName"); - policyModelsService.saveOrUpdatePolicyModel(policyModel2); - MicroServicePolicy firstMicroServicePolicy = new MicroServicePolicy("firstPolicyName", policyModel1, - false, JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null, null, null); - loopService.updateAndSaveMicroservicePolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(firstMicroServicePolicy)); - - MicroServicePolicy secondMicroServicePolicy = new MicroServicePolicy("secondPolicyName", policyModel2, - false, JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null, null, null); - - // when - Loop actualLoop = loopService.updateAndSaveMicroservicePolicies(EXAMPLE_LOOP_NAME, - Lists.newArrayList(secondMicroServicePolicy)); - - // then - assertThat(actualLoop).isNotNull(); - assertThat(actualLoop.getName()).isEqualTo(EXAMPLE_LOOP_NAME); - Set<MicroServicePolicy> savedPolicies = actualLoop.getMicroServicePolicies(); - assertThat(savedPolicies).hasSize(1); - assertThat(savedPolicies).usingElementComparatorIgnoringFields("usedByLoops", "createdDate", "updatedDate", - "createdBy", "updatedBy").containsExactly(secondMicroServicePolicy); - - } - - @Test - @Transactional - public void shouldCreateNewOperationalPolicyAndUpdateJsonRepresentationOfOldOne() { - // given - saveTestLoopToDb(); - - JsonObject newJsonConfiguration = JsonUtils.GSON.fromJson("{}", JsonObject.class); - - OperationalPolicy firstOperationalPolicy = new OperationalPolicy("firstPolicyName", null, - JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null, null, null, null); - loopService.updateAndSaveOperationalPolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(firstOperationalPolicy)); - - OperationalPolicy secondOperationalPolicy = new OperationalPolicy("secondPolicyName", null, - newJsonConfiguration, null, null, null, null); - - // when - firstOperationalPolicy.setConfigurationsJson(newJsonConfiguration); - Loop actualLoop = loopService.updateAndSaveOperationalPolicies(EXAMPLE_LOOP_NAME, - Lists.newArrayList(firstOperationalPolicy, secondOperationalPolicy)); - - // then - assertThat(actualLoop).isNotNull(); - assertThat(actualLoop.getName()).isEqualTo(EXAMPLE_LOOP_NAME); - Set<OperationalPolicy> savedPolicies = actualLoop.getOperationalPolicies(); - assertThat(savedPolicies).hasSize(2); - assertThat(savedPolicies) - .usingElementComparatorIgnoringFields("loop", "createdDate", "updatedDate", "createdBy", "updatedBy") - .containsExactlyInAnyOrder(firstOperationalPolicy, secondOperationalPolicy); - Set<String> policiesLoops = Lists.newArrayList(savedPolicies).stream().map(OperationalPolicy::getLoop) - .map(Loop::getName).collect(Collectors.toSet()); - assertThat(policiesLoops).containsExactly(EXAMPLE_LOOP_NAME); - } - - @Test - @Transactional - public void shouldRemoveOldOperationalPolicyIfNotInUpdatedList() { - // given - saveTestLoopToDb(); - - OperationalPolicy firstOperationalPolicy = new OperationalPolicy("firstPolicyName", null, - JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null, null, null, null); - loopService.updateAndSaveOperationalPolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(firstOperationalPolicy)); - - OperationalPolicy secondOperationalPolicy = new OperationalPolicy("policyName", null, - JsonUtils.GSON.fromJson("{}", JsonObject.class), null, null, "pdpGroup1", "pdpSubgroup1"); - - // when - Loop actualLoop = loopService.updateAndSaveOperationalPolicies(EXAMPLE_LOOP_NAME, - Lists.newArrayList(secondOperationalPolicy)); - - // then - assertThat(actualLoop).isNotNull(); - assertThat(actualLoop.getName()).isEqualTo(EXAMPLE_LOOP_NAME); - Set<OperationalPolicy> savedPolicies = actualLoop.getOperationalPolicies(); - assertThat(savedPolicies).hasSize(1); - assertThat(savedPolicies) - .usingElementComparatorIgnoringFields("loop", "createdDate", "updatedDate", "createdBy", "updatedBy") - .containsExactly(secondOperationalPolicy); - OperationalPolicy savedPolicy = savedPolicies.iterator().next(); - Assertions.assertThat(savedPolicy.getLoop().getName()).isEqualTo(EXAMPLE_LOOP_NAME); - - } - - @Test - @Transactional - public void shouldCreateModelPropertiesAndUpdateJsonRepresentationOfOldOne() { - // given - saveTestLoopToDb(); - String expectedJson = "{\"test\":\"test\"}"; - JsonObject baseGlobalProperites = JsonUtils.GSON.fromJson("{}", JsonObject.class); - JsonObject updatedGlobalProperites = JsonUtils.GSON.fromJson(expectedJson, JsonObject.class); - loopService.updateAndSaveGlobalPropertiesJson(EXAMPLE_LOOP_NAME, baseGlobalProperites); - - // when - Loop actualLoop = loopService.updateAndSaveGlobalPropertiesJson(EXAMPLE_LOOP_NAME, updatedGlobalProperites); - - // then - assertThat(actualLoop).isNotNull(); - assertThat(actualLoop.getName()).isEqualTo(EXAMPLE_LOOP_NAME); - JsonObject returnedGlobalProperties = actualLoop.getGlobalPropertiesJson(); - assertThat(returnedGlobalProperties.getAsJsonObject()).isEqualTo(updatedGlobalProperites); - } - - @Test - @Transactional - public void deleteAttempt() { - saveTestLoopToDb(); - // Add log - Loop loop = loopsRepository.findById(EXAMPLE_LOOP_NAME).orElse(null); - loop.addLog(new LoopLog("test", LogType.INFO, "CLAMP", loop)); - LoopTemplate template = new LoopTemplate(); - template.setName("testTemplate"); - loop.setLoopTemplate(template); - loop = loopService.saveOrUpdateLoop(loop); - // Add op policy - OperationalPolicy operationalPolicy = new OperationalPolicy("opPolicy", null, - JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null, null, null, null); - loopService.updateAndSaveOperationalPolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(operationalPolicy)); - - PolicyModel policyModel = new PolicyModel("org.policies.microPolicy", - "tosca_definitions_version: tosca_simple_yaml_1_0_0", "1.0.0", "microPolicy"); - policyModelsService.saveOrUpdatePolicyModel(policyModel); - // Add Micro service policy - MicroServicePolicy microServicePolicy = new MicroServicePolicy("microPolicy", policyModel, - false, JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null, null, null); - loopService.updateAndSaveMicroservicePolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(microServicePolicy)); - - // Verify it's there - assertThat(loopsRepository.findById(EXAMPLE_LOOP_NAME).orElse(null)).isNotNull(); - loopService.deleteLoop(EXAMPLE_LOOP_NAME); - // Verify it's well deleted and has been cascaded, except for Microservice - assertThat(loopsRepository.findById(EXAMPLE_LOOP_NAME).orElse(null)).isNull(); - assertThat(microServicePolicyService.isExisting("microPolicy")).isTrue(); - assertThat(operationalPolicyService.isExisting("opPolicy")).isFalse(); - assertThat(loopLogService.isExisting(((LoopLog) loop.getLoopLogs().toArray()[0]).getId())).isFalse(); - } - - @Test - @Transactional - public void testUpdateLoopState() { - saveTestLoopToDb(); - Loop loop = loopService.getLoop(EXAMPLE_LOOP_NAME); - loopService.updateLoopState(loop, "SUBMITTED"); - Loop updatedLoop = loopService.getLoop(EXAMPLE_LOOP_NAME); - assertThat(updatedLoop.getLastComputedState()).isEqualTo(LoopState.SUBMITTED); - } - - @Test - @Transactional - public void testUpdateDcaeDeploymentFields() { - saveTestLoopToDb(); - Loop loop = loopService.getLoop(EXAMPLE_LOOP_NAME); - loopService.updateDcaeDeploymentFields(loop, "CLAMP_c5ce429a-f570-48c5-a7ea-53bed8f86f85", - "https://deployment-handler.onap:8443"); - loop = loopService.getLoop(EXAMPLE_LOOP_NAME); - assertThat(loop.getDcaeDeploymentId()).isEqualTo("CLAMP_c5ce429a-f570-48c5-a7ea-53bed8f86f85"); - assertThat(loop.getDcaeDeploymentStatusUrl()).isEqualTo("https://deployment-handler.onap:8443"); - } - - @Test - @Transactional - public void testUpdateMicroservicePolicy() { - saveTestLoopToDb(); - assertThat(microServicePolicyService.isExisting("policyName")).isFalse(); - PolicyModel policyModel = new PolicyModel("org.policies.policyName", - "tosca_definitions_version: tosca_simple_yaml_1_0_0", "1.0.0", "policyName"); - policyModelsService.saveOrUpdatePolicyModel(policyModel); - MicroServicePolicy microServicePolicy = new MicroServicePolicy("policyName", policyModel, - false, JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null, null, null); - loopService.updateMicroservicePolicy(EXAMPLE_LOOP_NAME, microServicePolicy); - assertThat(microServicePolicyService.isExisting("policyName")).isTrue(); - } - - private Loop createTestLoop(String loopName, String loopBlueprint) { - return new Loop(loopName); - } -}
\ No newline at end of file diff --git a/src/test/java/org/onap/policy/clamp/loop/LoopTemplateLoopElementModelTest.java b/src/test/java/org/onap/policy/clamp/loop/LoopTemplateLoopElementModelTest.java deleted file mode 100644 index 9dcd71ef1..000000000 --- a/src/test/java/org/onap/policy/clamp/loop/LoopTemplateLoopElementModelTest.java +++ /dev/null @@ -1,105 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Modifications Copyright (c) 2019 Samsung - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.loop; - -import static org.assertj.core.api.Assertions.assertThat; - -import org.junit.Test; -import org.onap.policy.clamp.loop.template.LoopElementModel; -import org.onap.policy.clamp.loop.template.LoopTemplate; -import org.onap.policy.clamp.loop.template.LoopTemplateLoopElementModel; -import org.onap.policy.clamp.loop.template.PolicyModel; - - -public class LoopTemplateLoopElementModelTest { - - private LoopElementModel loopElementModel = getLoopElementModel("yaml", "microService1", - getPolicyModel("org.onap.policy.drools", "yaml", "1.0.0", "Drools", "type1")); - private LoopTemplate loopTemplate = getLoopTemplate("templateName", "yaml", 1); - - private LoopElementModel getLoopElementModel(String yaml, String name, PolicyModel policyModel) { - LoopElementModel model = new LoopElementModel(); - model.setBlueprint(yaml); - model.setName(name); - model.addPolicyModel(policyModel); - model.setLoopElementType("OPERATIONAL_POLICY"); - return model; - } - - private PolicyModel getPolicyModel(String policyType, String policyModelTosca, String version, String policyAcronym, - String policyVariant) { - return new PolicyModel(policyType, policyModelTosca, version, policyAcronym); - } - - private LoopTemplate getLoopTemplate(String name, String blueprint, Integer maxInstancesAllowed) { - LoopTemplate template = new LoopTemplate(name, blueprint, maxInstancesAllowed, null); - template.addLoopElementModel(loopElementModel); - return template; - } - - /** - * This tests compareTo method. - */ - @Test - public void compareToTest() { - LoopTemplateLoopElementModel model1 = new LoopTemplateLoopElementModel(); - LoopTemplateLoopElementModel model2 = new LoopTemplateLoopElementModel(); - assertThat(model1.compareTo(model2)).isEqualTo(1); - - model1.setFlowOrder(2); - assertThat(model1.compareTo(model2)).isEqualTo(-1); - - model2.setFlowOrder(3); - assertThat(model1.compareTo(model2)).isEqualTo(1); - } - - /** - * This tests equals method. - */ - @Test - public void equalsTest() { - LoopTemplateLoopElementModel model1 = new LoopTemplateLoopElementModel(); - LoopTemplateLoopElementModel model2 = new LoopTemplateLoopElementModel(); - - assertThat(model1.equals(model2)).isTrue(); - - model1.setLoopTemplate(loopTemplate); - assertThat(model1.equals(model2)).isFalse(); - model2.setLoopTemplate(loopTemplate); - assertThat(model1.equals(model2)).isTrue(); - - model1.setLoopElementModel(loopElementModel); - assertThat(model1.equals(model2)).isFalse(); - model2.setLoopElementModel(loopElementModel); - assertThat(model1.equals(model2)).isTrue(); - - model1.setFlowOrder(1); - assertThat(model1.equals(model2)).isTrue(); - model2.setFlowOrder(2); - assertThat(model1.equals(model2)).isTrue(); - } - -} diff --git a/src/test/java/org/onap/policy/clamp/loop/LoopTemplatesServiceItCase.java b/src/test/java/org/onap/policy/clamp/loop/LoopTemplatesServiceItCase.java deleted file mode 100644 index d608075fc..000000000 --- a/src/test/java/org/onap/policy/clamp/loop/LoopTemplatesServiceItCase.java +++ /dev/null @@ -1,146 +0,0 @@ -/*-
- * ============LICENSE_START=======================================================
- * ONAP CLAMP
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights
- * reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END============================================
- * ===================================================================
- *
- */
-
-package org.onap.policy.clamp.loop;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import java.util.List;
-import java.util.SortedSet;
-import javax.transaction.Transactional;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.onap.policy.clamp.clds.Application;
-import org.onap.policy.clamp.loop.template.LoopElementModel;
-import org.onap.policy.clamp.loop.template.LoopTemplate;
-import org.onap.policy.clamp.loop.template.LoopTemplateLoopElementModel;
-import org.onap.policy.clamp.loop.template.LoopTemplatesService;
-import org.onap.policy.clamp.loop.template.LoopType;
-import org.onap.policy.clamp.loop.template.PolicyModel;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest(classes = Application.class)
-public class LoopTemplatesServiceItCase {
-
- @Autowired
- LoopTemplatesService loopTemplatesService;
-
- private static final String POLICY_MODEL_TYPE_1 = "org.onap.test";
- private static final String VERSION = "1.0.0";
-
- private LoopElementModel getLoopElementModel(String yaml, String name, String loopElementType,
- String createdBy, PolicyModel policyModel) {
- LoopElementModel model = new LoopElementModel(name, loopElementType, yaml);
- model.setBlueprint("");
- model.setDcaeBlueprintId("");
- model.addPolicyModel(policyModel);
- return model;
- }
-
- private PolicyModel getPolicyModel(String policyType, String policyModelTosca, String version,
- String policyAcronym, String createdBy) {
- return new PolicyModel(policyType, policyModelTosca, version, policyAcronym);
- }
-
- private LoopTemplate getLoopTemplate(String name, String blueprint, String createdBy, Integer maxInstancesAllowed) {
- LoopTemplate template =
- new LoopTemplate(name, blueprint, maxInstancesAllowed, null);
- template.addLoopElementModel(getLoopElementModel("yaml", "microService1", "MicroService",
- createdBy, getPolicyModel(POLICY_MODEL_TYPE_1, "yaml", VERSION, "MS1", createdBy)));
- template.setAllowedLoopType(LoopType.OPEN);
- return template;
- }
-
- @Test
- @Transactional
- public void shouldSaveOrUpdateLoopTemplate() {
- LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "xyz", -1);
- LoopTemplate actualLoopTemplate =
- loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);
-
- assertNotNull(actualLoopTemplate);
- assertThat(loopTemplate.getName()).isEqualTo("TemplateName");
- assertThat(loopTemplate.getAllowedLoopType()).isEqualTo(LoopType.OPEN);
- }
-
- @Test
- @Transactional
- public void shouldReturnAllLoopTemplates() {
- LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "xyz", -1);
- loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);
- List<LoopTemplate> loopTemplateList = loopTemplatesService.getAllLoopTemplates();
-
- assertNotNull(loopTemplateList);
- }
-
- @Test
- @Transactional
- public void shouldReturnLoopTemplateNames() {
- LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "xyz", -1);
- loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);
- List<String> loopTemplateNames = loopTemplatesService.getLoopTemplateNames();
-
- assertNotNull(loopTemplateNames);
- assertEquals("TemplateName", loopTemplateNames.get(0));
- }
-
- @Test
- @Transactional
- public void shouldReturnLoopTemplate() {
- LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "xyz", -1);
- loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);
- LoopTemplate actualLoopTemplate = loopTemplatesService.getLoopTemplate("TemplateName");
-
- assertNotNull(actualLoopTemplate);
- assertThat(loopTemplate).isEqualTo(actualLoopTemplate);
- assertThat(loopTemplate.getName()).isEqualTo(actualLoopTemplate.getName());
- assertThat(loopTemplate.getMaximumInstancesAllowed())
- .isEqualTo(actualLoopTemplate.getMaximumInstancesAllowed());
- SortedSet<LoopTemplateLoopElementModel> loopElementModelsUsed =
- loopTemplate.getLoopElementModelsUsed();
- LoopTemplateLoopElementModel loopTemplateLoopElementModel = loopElementModelsUsed.first();
- assertThat(loopTemplateLoopElementModel.getLoopElementModel().getName())
- .isEqualTo("microService1");
- assertThat(loopTemplateLoopElementModel.getLoopTemplate().getName())
- .isEqualTo("TemplateName");
- assertNull(actualLoopTemplate.getBlueprint());
- assertNull(actualLoopTemplate.getModelService());
- }
-
- @Test
- @Transactional
- public void shouldDeleteLoopTemplate() {
- LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "xyz", -1);
- loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);
- loopTemplatesService.deleteLoopTemplate("TemplateName");
- LoopTemplate actualLoopTemplate = loopTemplatesService.getLoopTemplate("TemplateName");
- assertNull(actualLoopTemplate);
- }
-
-}
diff --git a/src/test/java/org/onap/policy/clamp/loop/LoopToJsonTest.java b/src/test/java/org/onap/policy/clamp/loop/LoopToJsonTest.java deleted file mode 100644 index 0fc4b0b5c..000000000 --- a/src/test/java/org/onap/policy/clamp/loop/LoopToJsonTest.java +++ /dev/null @@ -1,173 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Modifications Copyright (c) 2019 Samsung - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.loop; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.assertNotNull; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonObject; -import com.google.gson.JsonSyntaxException; -import java.io.IOException; -import java.util.Random; -import org.junit.Test; -import org.onap.policy.clamp.clds.util.JsonUtils; -import org.onap.policy.clamp.clds.util.ResourceFileUtils; -import org.onap.policy.clamp.loop.log.LogType; -import org.onap.policy.clamp.loop.log.LoopLog; -import org.onap.policy.clamp.loop.service.Service; -import org.onap.policy.clamp.loop.template.LoopElementModel; -import org.onap.policy.clamp.loop.template.LoopTemplate; -import org.onap.policy.clamp.loop.template.PolicyModel; -import org.onap.policy.clamp.policy.microservice.MicroServicePolicy; -import org.onap.policy.clamp.policy.operational.OperationalPolicy; - -public class LoopToJsonTest { - - private Gson gson = new Gson(); - - private OperationalPolicy getOperationalPolicy(String configJson, String name) { - return new OperationalPolicy(name, null, gson.fromJson(configJson, JsonObject.class), - getPolicyModel("org.onap.policy.drools.legacy", "yaml", "1.0.0", "Drools", "type1"), null, null, null); - } - - private Loop getLoop(String name, String blueprint, String globalPropertiesJson, - String dcaeId, String dcaeUrl, String dcaeBlueprintId) - throws JsonSyntaxException, IOException { - Loop loop = new Loop(name); - loop.setGlobalPropertiesJson(new Gson().fromJson(globalPropertiesJson, JsonObject.class)); - loop.setLastComputedState(LoopState.DESIGN); - loop.setDcaeDeploymentId(dcaeId); - loop.setDcaeDeploymentStatusUrl(dcaeUrl); - return loop; - } - - private MicroServicePolicy getMicroServicePolicy(String name, String modelType, String jsonRepresentation, - String policyTosca, String jsonProperties, boolean shared) { - MicroServicePolicy microService = new MicroServicePolicy(name, new PolicyModel(modelType, policyTosca, "1.0.0"), - shared, - gson.fromJson(jsonRepresentation, JsonObject.class), null, null, null); - microService.setConfigurationsJson(new Gson().fromJson(jsonProperties, JsonObject.class)); - return microService; - } - - private LoopElementModel getLoopElementModel(String yaml, String name, PolicyModel policyModel) { - LoopElementModel model = new LoopElementModel(); - model.setBlueprint(yaml); - model.setName(name); - model.addPolicyModel(policyModel); - model.setLoopElementType("OPERATIONAL_POLICY"); - return model; - } - - private PolicyModel getPolicyModel(String policyType, String policyModelTosca, String version, String policyAcronym, - String policyVariant) { - return new PolicyModel(policyType, policyModelTosca, version, policyAcronym); - } - - private LoopTemplate getLoopTemplate(String name, String blueprint, Integer maxInstancesAllowed) { - LoopTemplate template = new LoopTemplate(name, blueprint, maxInstancesAllowed, null); - template.addLoopElementModel(getLoopElementModel("yaml", "microService1", - getPolicyModel("org.onap.policy.drools", "yaml", "1.0.0", "Drools", "type1"))); - return template; - } - - private LoopLog getLoopLog(LogType type, String message, Loop loop) { - LoopLog log = new LoopLog(message, type, "CLAMP", loop); - log.setId(Long.valueOf(new Random().nextInt())); - return log; - } - - /** - * This tests a GSON encode/decode. - * - * @throws IOException In case of failure - */ - @Test - public void loopGsonTest() throws IOException { - Loop loopTest = getLoop("ControlLoopTest", "yamlcontent", "{\"testname\":\"testvalue\"}", - "123456789", "https://dcaetest.org", "UUID-blueprint"); - OperationalPolicy opPolicy = this.getOperationalPolicy( - ResourceFileUtils.getResourceAsString("tosca/operational-policy-properties.json"), "GuardOpPolicyTest"); - loopTest.addOperationalPolicy(opPolicy); - MicroServicePolicy microServicePolicy = getMicroServicePolicy("configPolicyTest", "", - "{\"configtype\":\"json\"}", "tosca_definitions_version: tosca_simple_yaml_1_0_0", - "{\"param1\":\"value1\"}", true); - loopTest.addMicroServicePolicy(microServicePolicy); - LoopLog loopLog = getLoopLog(LogType.INFO, "test message", loopTest); - loopTest.addLog(loopLog); - LoopTemplate loopTemplate = getLoopTemplate("templateName", "yaml", 1); - loopTest.setLoopTemplate(loopTemplate); - - String jsonSerialized = JsonUtils.GSON_JPA_MODEL.toJson(loopTest); - assertThat(jsonSerialized).isNotNull().isNotEmpty(); - System.out.println(jsonSerialized); - Loop loopTestDeserialized = JsonUtils.GSON_JPA_MODEL.fromJson(jsonSerialized, Loop.class); - assertNotNull(loopTestDeserialized); - assertThat(loopTestDeserialized).isEqualToIgnoringGivenFields(loopTest, "svgRepresentation", "blueprint", - "components"); - assertThat(loopTestDeserialized.getComponent("DCAE").getState()) - .isEqualToComparingFieldByField(loopTest.getComponent("DCAE").getState()); - assertThat(loopTestDeserialized.getComponent("POLICY").getState()).isEqualToComparingOnlyGivenFields( - loopTest.getComponent("POLICY").getState(), "stateName", "description"); - // blueprint not exposed so wont be deserialized - - assertThat(loopTestDeserialized.getOperationalPolicies()).containsExactly(opPolicy); - assertThat(loopTestDeserialized.getMicroServicePolicies()).containsExactly(microServicePolicy); - assertThat(loopTestDeserialized.getLoopLogs()).containsExactly(loopLog); - assertThat((LoopLog) loopTestDeserialized.getLoopLogs().toArray()[0]).isEqualToIgnoringGivenFields(loopLog, - "loop"); - - // Verify the loop template - assertThat(loopTestDeserialized.getLoopTemplate()).isEqualTo(loopTemplate); - } - - /** - * This tests the service object GSON encode/decode. - * - * @throws IOException In case of issues - */ - @Test - public void loopServiceTest() throws IOException { - Loop loopTest2 = getLoop("ControlLoopTest", "yamlcontent", "{\"testname\":\"testvalue\"}", - "123456789", "https://dcaetest.org", "UUID-blueprint"); - - JsonObject jsonModel = new GsonBuilder().create() - .fromJson(ResourceFileUtils.getResourceAsString("tosca/model-properties.json"), JsonObject.class); - Service service = new Service(jsonModel.get("serviceDetails").getAsJsonObject(), - jsonModel.get("resourceDetails").getAsJsonObject(), "1.0"); - loopTest2.setModelService(service); - String jsonSerialized = JsonUtils.GSON_JPA_MODEL.toJson(loopTest2); - assertThat(jsonSerialized).isNotNull().isNotEmpty(); - System.out.println(jsonSerialized); - - Loop loopTestDeserialized = JsonUtils.GSON_JPA_MODEL.fromJson(jsonSerialized, Loop.class); - assertNotNull(loopTestDeserialized); - assertThat(loopTestDeserialized).isEqualToIgnoringGivenFields(loopTest2, "modelService", "svgRepresentation", - "blueprint", "components"); - } -} diff --git a/src/test/java/org/onap/policy/clamp/loop/PolicyComponentTest.java b/src/test/java/org/onap/policy/clamp/loop/PolicyComponentTest.java deleted file mode 100644 index 5b4e405bb..000000000 --- a/src/test/java/org/onap/policy/clamp/loop/PolicyComponentTest.java +++ /dev/null @@ -1,296 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP POLICY-CLAMP - * ================================================================================ - * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.loop; - -import static org.assertj.core.api.Assertions.assertThat; - -import com.google.gson.Gson; -import com.google.gson.JsonObject; -import java.io.IOException; -import org.apache.camel.Exchange; -import org.apache.camel.Message; -import org.junit.Test; -import org.mockito.Mockito; -import org.onap.policy.clamp.clds.util.ResourceFileUtils; -import org.onap.policy.clamp.loop.components.external.ExternalComponentState; -import org.onap.policy.clamp.loop.components.external.PolicyComponent; -import org.onap.policy.clamp.loop.template.LoopTemplate; -import org.onap.policy.clamp.loop.template.PolicyModel; -import org.onap.policy.clamp.policy.microservice.MicroServicePolicy; -import org.onap.policy.clamp.policy.operational.OperationalPolicy; -import org.skyscreamer.jsonassert.JSONAssert; - -public class PolicyComponentTest { - - /** - * Test the computeState method. - * oldState newState expectedFinalState - * NOT_SENT SENT_AND_DEPLOYED NOT_SENT - * NOT_SENT SENT NOT_SENT - * NOT_SENT NOT_SENT NOT_SENT - * NOT_SENT IN_ERROR IN_ERROR - */ - @Test - public void computeStateTestOriginalStateUnknown() { - Exchange exchange = Mockito.mock(Exchange.class); - Message message = Mockito.mock(Message.class); - Exchange exchange2 = Mockito.mock(Exchange.class); - Mockito.when(exchange.getIn()).thenReturn(message); - Mockito.when(message.getExchange()).thenReturn(exchange2); - // policy found + deployed - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); - PolicyComponent policy = new PolicyComponent(); - - ExternalComponentState state = policy.computeState(exchange); - assertThat(state.getStateName()).isEqualTo("SENT_AND_DEPLOYED"); - // policy found + not deployed - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); - ExternalComponentState state2 = policy.computeState(exchange); - assertThat(state2.getStateName()).isEqualTo("SENT"); - // policy not found + not deployed - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); - ExternalComponentState state4 = policy.computeState(exchange); - assertThat(state4.getStateName()).isEqualTo("NOT_SENT"); - // policy not found + deployed - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); - ExternalComponentState state3 = policy.computeState(exchange); - assertThat(state3.getStateName()).isEqualTo("IN_ERROR"); - } - - /** - * Test the computeState method. - * oldState newState expectedFinalState - * NOT_SENT SENT_AND_DEPLOYED NOT_SENT - * NOT_SENT SENT NOT_SENT - * NOT_SENT NOT_SENT NOT_SENT - * NOT_SENT IN_ERROR IN_ERROR - */ - @Test - public void computeStateTestOriginalStateNotSent() { - Exchange exchange = Mockito.mock(Exchange.class); - Message message = Mockito.mock(Message.class); - Exchange exchange2 = Mockito.mock(Exchange.class); - Mockito.when(exchange.getIn()).thenReturn(message); - Mockito.when(message.getExchange()).thenReturn(exchange2); - // policy found + deployed - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); - PolicyComponent policy = new PolicyComponent(); - ExternalComponentState notSent = new ExternalComponentState("NOT_SENT", - "The policies defined have NOT yet been created on the policy engine", 90); - policy.setState(notSent); - ExternalComponentState state = policy.computeState(exchange); - assertThat(state.getStateName()).isEqualTo("NOT_SENT"); - // policy found + not deployed - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); - ExternalComponentState state2 = policy.computeState(exchange); - assertThat(state2.getStateName()).isEqualTo("NOT_SENT"); - // policy not found + not deployed - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); - ExternalComponentState state4 = policy.computeState(exchange); - assertThat(state4.getStateName()).isEqualTo("NOT_SENT"); - // policy not found + deployed - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); - ExternalComponentState state3 = policy.computeState(exchange); - assertThat(state3.getStateName()).isEqualTo("IN_ERROR"); - } - - - /** - * Test the computeState method. - * oldState newState expectedFinalState - * SENT SENT SENT - * SENT SENT_AND_DEPLOYED SENT - * SENT IN_ERROR IN_ERROR - * SENT NOT_SENT NOT_SENT - */ - @Test - public void computeStateTestOriginalStateSent() throws IOException { - Exchange exchange = Mockito.mock(Exchange.class); - Message message = Mockito.mock(Message.class); - Exchange exchange2 = Mockito.mock(Exchange.class); - Mockito.when(exchange.getIn()).thenReturn(message); - Mockito.when(message.getExchange()).thenReturn(exchange2); - PolicyComponent policy = new PolicyComponent(); - ExternalComponentState sent = new ExternalComponentState("SENT", - "The policies defined have been created but NOT deployed on the policy engine", 50); - policy.setState(sent); - // new policy state SENT - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); - ExternalComponentState state = policy.computeState(exchange); - assertThat(state.getStateName()).isEqualTo("SENT"); - // new policy state SENT_AND_DEPLOYED - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); - ExternalComponentState state2 = policy.computeState(exchange); - assertThat(state2.getStateName()).isEqualTo("SENT"); - // new policy state IN_ERROR - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); - ExternalComponentState state3 = policy.computeState(exchange); - assertThat(state3.getStateName()).isEqualTo("IN_ERROR"); - // new policy state NOT_SENT - policy.setState(sent); - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); - ExternalComponentState state4 = policy.computeState(exchange); - assertThat(state4.getStateName()).isEqualTo("NOT_SENT"); - } - - /** - * Test the computeState method. - * oldState newState expectedFinalState - * SENT_AND_DEPLOYED SENT_AND_DEPLOYED SENT_AND_DEPLOYED - * SENT_AND_DEPLOYED SENT SENT - * SENT_AND_DEPLOYED IN_ERROR IN_ERROR - * SENT_AND_DEPLOYED NOT_SENT NOT_SENT - */ - @Test - public void computeStateTestOriginalStateSentAndDeployed() throws IOException { - Exchange exchange = Mockito.mock(Exchange.class); - Message message = Mockito.mock(Message.class); - Exchange exchange2 = Mockito.mock(Exchange.class); - Mockito.when(exchange.getIn()).thenReturn(message); - Mockito.when(message.getExchange()).thenReturn(exchange2); - PolicyComponent policy = new PolicyComponent(); - ExternalComponentState sendDeployed = new ExternalComponentState("SENT_AND_DEPLOYED", - "The policies defined have been created and deployed on the policy engine", 10); - policy.setState(sendDeployed); - // new policy state SENT_AND_DEPLOYED - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); - ExternalComponentState state = policy.computeState(exchange); - assertThat(state.getStateName()).isEqualTo("SENT_AND_DEPLOYED"); - // new policy state SENT - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); - ExternalComponentState state2 = policy.computeState(exchange); - assertThat(state2.getStateName()).isEqualTo("SENT"); - // new policy state IN_ERROR - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); - ExternalComponentState state3 = policy.computeState(exchange); - assertThat(state3.getStateName()).isEqualTo("IN_ERROR"); - // new policy state NOT_SENT - policy.setState(sendDeployed); - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); - ExternalComponentState state4 = policy.computeState(exchange); - assertThat(state4.getStateName()).isEqualTo("NOT_SENT"); - } - - - /** - * Test the computeState method. - * oldState newState expectedFinalState - * IN_ERROR SENT_AND_DEPLOYED IN_ERROR - * IN_ERROR SENT IN_ERROR - * IN_ERROR IN_ERROR IN_ERROR - * IN_ERROR NOT_SENT IN_ERROR - */ - @Test - public void computeStateTestOriginalStateInError() throws IOException { - Exchange exchange = Mockito.mock(Exchange.class); - Message message = Mockito.mock(Message.class); - Exchange exchange2 = Mockito.mock(Exchange.class); - Mockito.when(exchange.getIn()).thenReturn(message); - Mockito.when(message.getExchange()).thenReturn(exchange2); - PolicyComponent policy = new PolicyComponent(); - ExternalComponentState inError = new ExternalComponentState("IN_ERROR", - "There was an error during the sending to policy, the policy engine may be corrupted or inconsistent", - 100); - policy.setState(inError); - // new policy state SENT_AND_DEPLOYED - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); - ExternalComponentState state = policy.computeState(exchange); - assertThat(state.getStateName()).isEqualTo("IN_ERROR"); - // new policy state SENT - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); - ExternalComponentState state2 = policy.computeState(exchange); - assertThat(state2.getStateName()).isEqualTo("IN_ERROR"); - // new policy state IN_ERROR - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); - ExternalComponentState state3 = policy.computeState(exchange); - assertThat(state3.getStateName()).isEqualTo("IN_ERROR"); - // new policy state NOT_SENT - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); - ExternalComponentState state4 = policy.computeState(exchange); - - assertThat(state4.getStateName()).isEqualTo("IN_ERROR"); - } - - /** - * Test the create policies payload PdpGroup test. - */ - @Test - public void createPoliciesPayloadPdpGroupTest() throws IOException { - Loop loopTest = new Loop("ControlLoopTest"); - PolicyModel policyModel1 = new PolicyModel("onap.policies.monitoring.test", null, "1.0.0"); - - MicroServicePolicy microServicePolicy = new MicroServicePolicy("configPolicyTest", policyModel1, true, - new Gson().fromJson("{\"configtype\":\"json\"}", JsonObject.class), null, "pdpGroup1", "pdpSubgroup1"); - loopTest.addMicroServicePolicy(microServicePolicy); - - MicroServicePolicy microServicePolicy2 = new MicroServicePolicy("configPolicyTest2", policyModel1, true, - new Gson().fromJson("{\"configtype\":\"json\"}", JsonObject.class), null, "pdpGroup2", "pdpSubgroup1"); - loopTest.addMicroServicePolicy(microServicePolicy2); - - PolicyModel policyModel2 = new PolicyModel("onap.policies.monitoring.test2", null, - "1.0.0"); - OperationalPolicy opPolicy = - new OperationalPolicy("opPolicy", new Gson().fromJson("{\"configtype\":\"json\"}", JsonObject.class), - new Gson().fromJson("{\"jsonschema\":\"schema\"}", JsonObject.class), policyModel2, null, - "pdpGroup2", - "pdpSubgroup2"); - - loopTest.addOperationalPolicy(opPolicy); - OperationalPolicy opLegacyPolicy = - new OperationalPolicy("opLegacyPolicy", new Gson().fromJson( - "{\"guard_policies\":[{\"policy-id\":\"guard1\"}]}", JsonObject.class), - new Gson().fromJson("{\"jsonschema\":\"schema\"}", JsonObject.class), policyModel2, null, - "pdpGroup2", - "pdpSubgroup2"); - - loopTest.addOperationalPolicy(opLegacyPolicy); - - LoopTemplate loopTemplate = new LoopTemplate("test", "yaml", 1, null); - loopTemplate.setDcaeBlueprintId("UUID-blueprint"); - loopTest.setLoopTemplate(loopTemplate); - - JSONAssert.assertEquals(ResourceFileUtils.getResourceAsString("example/policy/pdp-group-policy-payload.json"), - PolicyComponent.createPoliciesPayloadPdpGroup(loopTest, "POST"), false); - } -} diff --git a/src/test/java/org/onap/policy/clamp/loop/PolicyModelServiceItCase.java b/src/test/java/org/onap/policy/clamp/loop/PolicyModelServiceItCase.java deleted file mode 100644 index a2563b8d3..000000000 --- a/src/test/java/org/onap/policy/clamp/loop/PolicyModelServiceItCase.java +++ /dev/null @@ -1,300 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.loop; - -import static org.assertj.core.api.Assertions.assertThat; - -import com.google.gson.JsonObject; -import java.io.IOException; -import java.util.LinkedList; -import java.util.List; -import java.util.SortedSet; -import java.util.TreeSet; -import java.util.stream.Collectors; -import javax.transaction.Transactional; -import org.assertj.core.api.Assertions; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.onap.policy.clamp.clds.Application; -import org.onap.policy.clamp.clds.util.JsonUtils; -import org.onap.policy.clamp.clds.util.ResourceFileUtils; -import org.onap.policy.clamp.loop.template.PolicyModel; -import org.onap.policy.clamp.loop.template.PolicyModelId; -import org.onap.policy.clamp.loop.template.PolicyModelsRepository; -import org.onap.policy.clamp.loop.template.PolicyModelsService; -import org.onap.policy.models.pdp.concepts.PdpGroup; -import org.onap.policy.models.pdp.concepts.PdpGroups; -import org.onap.policy.models.pdp.concepts.PdpSubGroup; -import org.onap.policy.models.pdp.enums.PdpState; -import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier; -import org.skyscreamer.jsonassert.JSONAssert; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest(classes = Application.class) -public class PolicyModelServiceItCase { - - @Autowired - PolicyModelsService policyModelsService; - - @Autowired - PolicyModelsRepository policyModelsRepository; - - private static final String POLICY_MODEL_TYPE_1 = "org.onap.testos"; - private static final String POLICY_MODEL_TYPE_1_VERSION_1 = "1.0.0"; - - private static final String POLICY_MODEL_TYPE_2 = "org.onap.testos2"; - private static final String POLICY_MODEL_TYPE_3 = "org.onap.testos3"; - private static final String POLICY_MODEL_TYPE_2_VERSION_1 = "1.0.0"; - private static final String POLICY_MODEL_TYPE_3_VERSION_1 = "1.0.0"; - private static final String POLICY_MODEL_TYPE_2_VERSION_2 = "2.0.0"; - - private PolicyModel getPolicyModel(String policyType, String policyModelTosca, String version, - String policyAcronym, String policyVariant, String createdBy) { - PolicyModel policyModel = new PolicyModel(); - policyModel.setCreatedBy(createdBy); - policyModel.setPolicyAcronym(policyAcronym); - policyModel.setPolicyModelTosca(policyModelTosca); - policyModel.setPolicyModelType(policyType); - policyModel.setUpdatedBy(createdBy); - policyModel.setVersion(version); - return policyModel; - } - - /** - * This test the create policy Model. - */ - @Test - @Transactional - public void shouldCreatePolicyModel() { - // given - PolicyModel policyModel = getPolicyModel(POLICY_MODEL_TYPE_1, "yaml", - POLICY_MODEL_TYPE_1_VERSION_1, "TEST", "VARIANT", "user"); - - // when - PolicyModel actualPolicyModel = policyModelsService.saveOrUpdatePolicyModel(policyModel); - - // then - assertThat(actualPolicyModel).isNotNull(); - assertThat(actualPolicyModel).isEqualTo(policyModelsRepository - .findById(new PolicyModelId(actualPolicyModel.getPolicyModelType(), - actualPolicyModel.getVersion())) - .get()); - assertThat(actualPolicyModel.getPolicyModelType()) - .isEqualTo(policyModel.getPolicyModelType()); - Assertions.assertThat(actualPolicyModel.getCreatedBy()).isEqualTo("Not found"); - Assertions.assertThat(actualPolicyModel.getCreatedDate()).isNotNull(); - assertThat(actualPolicyModel.getPolicyAcronym()).isEqualTo(policyModel.getPolicyAcronym()); - assertThat(actualPolicyModel.getPolicyModelTosca()) - .isEqualTo(policyModel.getPolicyModelTosca()); - Assertions.assertThat(actualPolicyModel.getUpdatedBy()).isEqualTo("Not found"); - Assertions.assertThat(actualPolicyModel.getUpdatedDate()).isNotNull(); - assertThat(actualPolicyModel.getVersion()).isEqualTo(policyModel.getVersion()); - - assertThat( - policyModelsService.getPolicyModel(POLICY_MODEL_TYPE_1, POLICY_MODEL_TYPE_1_VERSION_1)) - .isEqualToIgnoringGivenFields(policyModel, "createdDate", "updatedDate", - "createdBy", "updatedBy"); - } - - /** - * This tests the getPolicyModelJson. A json is expected. - * - * @throws IOException In case of failure - */ - @Test - @Transactional - public void shouldGetPolicyModelInJson() throws IOException { - PolicyModel policyModel = getPolicyModel("onap.policies.monitoring.cdap.tca.hi.lo.app", - ResourceFileUtils.getResourceAsString( - "http-cache/example/policy/api/v1/policytypes/" - + "onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/.file"), - "1.0.0", "TEST", "VARIANT", "user"); - policyModelsService.saveOrUpdatePolicyModel(policyModel); - - JsonObject policyTypeJson = - policyModelsService.getPolicyModelJson("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0"); - assertThat(policyTypeJson).isNotNull(); - JSONAssert.assertEquals(ResourceFileUtils.getResourceAsString("tosca/tca_hi_lo.json"), - policyTypeJson.toString(), - true); - } - - /** - * This tests a getAllPolicyModelTypes get. - */ - @Test - @Transactional - public void shouldReturnAllPolicyModelTypes() { - // given - PolicyModel policyModel1 = getPolicyModel(POLICY_MODEL_TYPE_2, "yaml", - POLICY_MODEL_TYPE_2_VERSION_1, "TEST", "VARIANT", "user"); - policyModelsService.saveOrUpdatePolicyModel(policyModel1); - PolicyModel policyModel2 = getPolicyModel(POLICY_MODEL_TYPE_2, "yaml", - POLICY_MODEL_TYPE_2_VERSION_2, "TEST", "VARIANT", "user"); - policyModelsService.saveOrUpdatePolicyModel(policyModel2); - List<String> policyModelTypesList = policyModelsService.getAllPolicyModelTypes(); - - assertThat(policyModelTypesList).contains(policyModel1.getPolicyModelType(), - policyModel2.getPolicyModelType()); - } - - /** - * This tests a getAllPolicyModels get. - */ - @Test - @Transactional - public void shouldReturnAllPolicyModels() { - PolicyModel policyModel1 = getPolicyModel(POLICY_MODEL_TYPE_2, "yaml", - POLICY_MODEL_TYPE_2_VERSION_1, "TEST", "VARIANT", "user"); - policyModelsService.saveOrUpdatePolicyModel(policyModel1); - PolicyModel policyModel2 = getPolicyModel(POLICY_MODEL_TYPE_2, "yaml", - POLICY_MODEL_TYPE_2_VERSION_2, "TEST", "VARIANT", "user"); - policyModelsService.saveOrUpdatePolicyModel(policyModel2); - - assertThat(policyModelsService.getAllPolicyModels()).contains(policyModel1, policyModel2); - } - - /** - * This tests a getAllPolicyModelsByType get. - */ - @Test - @Transactional - public void shouldReturnAllModelsByType() { - PolicyModel policyModel1 = getPolicyModel(POLICY_MODEL_TYPE_2, "yaml", - POLICY_MODEL_TYPE_2_VERSION_1, "TEST", "VARIANT", "user"); - policyModelsService.saveOrUpdatePolicyModel(policyModel1); - PolicyModel policyModel2 = getPolicyModel(POLICY_MODEL_TYPE_2, "yaml", - POLICY_MODEL_TYPE_2_VERSION_2, "TEST", "VARIANT", "user"); - policyModelsService.saveOrUpdatePolicyModel(policyModel2); - - assertThat(policyModelsService.getAllPolicyModelsByType(POLICY_MODEL_TYPE_2)) - .contains(policyModel1, policyModel2); - } - - /** - * This tests the sorting of policyModel. - */ - @Test - @Transactional - public void shouldReturnSortedSet() { - PolicyModel policyModel1 = getPolicyModel(POLICY_MODEL_TYPE_2, "yaml", - POLICY_MODEL_TYPE_2_VERSION_1, "TEST", "VARIANT", "user"); - policyModelsService.saveOrUpdatePolicyModel(policyModel1); - PolicyModel policyModel2 = getPolicyModel(POLICY_MODEL_TYPE_2, "yaml", - POLICY_MODEL_TYPE_2_VERSION_2, "TEST", "VARIANT", "user"); - policyModelsService.saveOrUpdatePolicyModel(policyModel2); - PolicyModel policyModel3 = getPolicyModel(POLICY_MODEL_TYPE_3, "yaml", - POLICY_MODEL_TYPE_3_VERSION_1, "TEST", "VARIANT", "user"); - policyModelsService.saveOrUpdatePolicyModel(policyModel3); - - SortedSet<PolicyModel> sortedSet = new TreeSet<>(); - policyModelsService.getAllPolicyModels().forEach(sortedSet::add); - List<PolicyModel> listToCheck = - sortedSet - .stream().filter(policy -> policy.equals(policyModel3) - || policy.equals(policyModel2) || policy.equals(policyModel1)) - .collect(Collectors.toList()); - assertThat(listToCheck.get(0)).isEqualByComparingTo(policyModel2); - assertThat(listToCheck.get(1)).isEqualByComparingTo(policyModel1); - assertThat(listToCheck.get(2)).isEqualByComparingTo(policyModel3); - } - - /** - * This tests the pdpgroup GSON encode/decode and saving. - */ - @Test - @Transactional - public void shouldAddPdpGroupInfo() { - policyModelsService.saveOrUpdatePolicyModel(getPolicyModel(POLICY_MODEL_TYPE_1, "yaml", - POLICY_MODEL_TYPE_1_VERSION_1, "TEST", "VARIANT", "user")); - policyModelsService.saveOrUpdatePolicyModel(getPolicyModel(POLICY_MODEL_TYPE_2, "yaml", - POLICY_MODEL_TYPE_2_VERSION_2, "TEST", "VARIANT", "user")); - policyModelsService.saveOrUpdatePolicyModel(getPolicyModel(POLICY_MODEL_TYPE_3, "yaml", - POLICY_MODEL_TYPE_3_VERSION_1, "TEST", "VARIANT", "user")); - - ToscaConceptIdentifier type1 = new ToscaConceptIdentifier("org.onap.testos", "1.0.0"); - ToscaConceptIdentifier type2 = new ToscaConceptIdentifier("org.onap.testos2", "2.0.0"); - - PdpSubGroup pdpSubgroup1 = new PdpSubGroup(); - pdpSubgroup1.setPdpType("subGroup1"); - List<ToscaConceptIdentifier> pdpTypeList = new LinkedList<>(); - pdpTypeList.add(type1); - pdpTypeList.add(type2); - pdpSubgroup1.setSupportedPolicyTypes(pdpTypeList); - - ToscaConceptIdentifier type3 = new ToscaConceptIdentifier("org.onap.testos3", "2.0.0"); - PdpSubGroup pdpSubgroup2 = new PdpSubGroup(); - pdpSubgroup2.setPdpType("subGroup2"); - List<ToscaConceptIdentifier> pdpTypeList2 = new LinkedList<>(); - pdpTypeList2.add(type2); - pdpTypeList2.add(type3); - pdpSubgroup2.setSupportedPolicyTypes(pdpTypeList2); - - List<PdpSubGroup> pdpSubgroupList = new LinkedList<>(); - pdpSubgroupList.add(pdpSubgroup1); - - PdpGroup pdpGroup1 = new PdpGroup(); - pdpGroup1.setName("pdpGroup1"); - pdpGroup1.setPdpGroupState(PdpState.ACTIVE); - pdpGroup1.setPdpSubgroups(pdpSubgroupList); - - List<PdpSubGroup> pdpSubgroupList2 = new LinkedList<>(); - pdpSubgroupList2.add(pdpSubgroup1); - pdpSubgroupList2.add(pdpSubgroup2); - PdpGroup pdpGroup2 = new PdpGroup(); - pdpGroup2.setName("pdpGroup2"); - pdpGroup2.setPdpGroupState(PdpState.ACTIVE); - pdpGroup2.setPdpSubgroups(pdpSubgroupList2); - - List<PdpGroup> pdpGroupsList = new LinkedList<>(); - pdpGroupsList.add(pdpGroup1); - pdpGroupsList.add(pdpGroup2); - - PdpGroups pdpGroups = new PdpGroups(); - pdpGroups.setGroups(pdpGroupsList); - policyModelsService.updatePdpGroupInfo(pdpGroups); - - JsonObject res1 = - policyModelsService.getPolicyModel("org.onap.testos", "1.0.0").getPolicyPdpGroup(); - String expectedRes1 = - "{\"supportedPdpGroups\":[{\"pdpGroup1\":[\"subGroup1\"]},{\"pdpGroup2\":[\"subGroup1\"]}]}"; - JsonObject expectedJson1 = JsonUtils.GSON.fromJson(expectedRes1, JsonObject.class); - assertThat(res1).isEqualTo(expectedJson1); - - JsonObject res2 = - policyModelsService.getPolicyModel("org.onap.testos2", "2.0.0").getPolicyPdpGroup(); - String expectedRes2 = - "{\"supportedPdpGroups\":[{\"pdpGroup1\":[\"subGroup1\"]}," - + "{\"pdpGroup2\":[\"subGroup1\",\"subGroup2\"]}]}"; - JsonObject expectedJson2 = JsonUtils.GSON.fromJson(expectedRes2, JsonObject.class); - assertThat(res2).isEqualTo(expectedJson2); - - JsonObject res3 = - policyModelsService.getPolicyModel("org.onap.testos3", "1.0.0").getPolicyPdpGroup(); - assertThat(res3).isNull(); - } -} diff --git a/src/test/java/org/onap/policy/clamp/loop/ServiceTest.java b/src/test/java/org/onap/policy/clamp/loop/ServiceTest.java deleted file mode 100644 index 8f28299fd..000000000 --- a/src/test/java/org/onap/policy/clamp/loop/ServiceTest.java +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.loop; - -import static org.assertj.core.api.Assertions.assertThat; - -import com.google.gson.JsonObject; -import org.junit.Test; -import org.onap.policy.clamp.clds.util.JsonUtils; -import org.onap.policy.clamp.loop.service.Service; - -public class ServiceTest { - - @Test - public void equalMethodTest() { - String serviceStr1 = "{\"name\": \"vLoadBalancerMS\", \"UUID\": \"63cac700-ab9a-4115-a74f-7eac85e3fce0\"}"; - String serviceStr2 = "{\"name\": \"vLoadBalancerMS2\", \"UUID\": \"63cac700-ab9a-4115-a74f-7eac85e3fce0\"}"; - String serviceStr3 = "{\"name\": \"vLoadBalancerMS\",\"UUID\": \"63cac700-ab9a-4115-a74f-7eac85e3fc11\"}"; - String resourceStr = "{\"CP\": {}}"; - - Service service1 = new Service(JsonUtils.GSON.fromJson(serviceStr1, JsonObject.class), - JsonUtils.GSON.fromJson(resourceStr, JsonObject.class), "1.0"); - - Service service2 = new Service(JsonUtils.GSON.fromJson(serviceStr2, JsonObject.class), null, "1.0"); - - Service service3 = new Service(JsonUtils.GSON.fromJson(serviceStr3, JsonObject.class), - JsonUtils.GSON.fromJson(resourceStr, JsonObject.class), "1.0"); - - assertThat(service1.equals(service2)).isEqualTo(true); - assertThat(service1.equals(service3)).isEqualTo(false); - } - -} diff --git a/src/test/java/org/onap/policy/clamp/loop/deploy/BlueprintInputParametersTest.java b/src/test/java/org/onap/policy/clamp/loop/deploy/BlueprintInputParametersTest.java deleted file mode 100644 index f7f6baa0c..000000000 --- a/src/test/java/org/onap/policy/clamp/loop/deploy/BlueprintInputParametersTest.java +++ /dev/null @@ -1,125 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * Modifications copyright (c) 2019 Nokia - * Modifications Copyright (c) 2019 Samsung - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.loop.deploy; - -import com.google.gson.JsonObject; -import java.io.IOException; -import java.util.LinkedHashSet; -import org.junit.Assert; -import org.junit.Test; -import org.mockito.Mockito; -import org.onap.policy.clamp.clds.util.JsonUtils; -import org.onap.policy.clamp.clds.util.ResourceFileUtils; -import org.onap.policy.clamp.loop.Loop; -import org.onap.policy.clamp.loop.template.LoopElementModel; -import org.onap.policy.clamp.loop.template.LoopTemplate; -import org.onap.policy.clamp.policy.microservice.MicroServicePolicy; -import org.onap.sdc.tosca.parser.exceptions.SdcToscaParserException; - -public class BlueprintInputParametersTest { - - /** - * getDeploymentParametersinJsonMultiBlueprintsTest. - * - * @throws IOException in case of failure - * @throws SdcToscaParserException in case of failure - */ - @Test - public void getDeploymentParametersinJsonMultiBlueprintsTest() throws IOException, SdcToscaParserException { - - - MicroServicePolicy umService1 = Mockito.mock(MicroServicePolicy.class); - Mockito.when(umService1.getName()).thenReturn("testName1"); - - LoopElementModel loopElement = Mockito.mock(LoopElementModel.class); - String blueprint1 = ResourceFileUtils.getResourceAsString("example/sdc/blueprint-dcae/tca.yaml"); - Mockito.when(loopElement.getBlueprint()).thenReturn(blueprint1); - Mockito.when(umService1.getLoopElementModel()).thenReturn(loopElement); - - MicroServicePolicy umService2 = Mockito.mock(MicroServicePolicy.class); - Mockito.when(umService2.getName()).thenReturn("testName2"); - - LoopElementModel loopElement2 = Mockito.mock(LoopElementModel.class); - String blueprint2 = ResourceFileUtils.getResourceAsString("example/sdc/blueprint-dcae/tca_2.yaml"); - Mockito.when(loopElement2.getBlueprint()).thenReturn(blueprint2); - Mockito.when(umService2.getLoopElementModel()).thenReturn(loopElement2); - - MicroServicePolicy umService3 = Mockito.mock(MicroServicePolicy.class); - Mockito.when(umService3.getName()).thenReturn("testName3"); - - LoopElementModel loopElement3 = Mockito.mock(LoopElementModel.class); - String blueprint3 = ResourceFileUtils.getResourceAsString("example/sdc/blueprint-dcae/tca_3.yaml"); - Mockito.when(loopElement3.getBlueprint()).thenReturn(blueprint3); - Mockito.when(umService3.getLoopElementModel()).thenReturn(loopElement3); - - LinkedHashSet<MicroServicePolicy> umServiceSet = new LinkedHashSet<>(); - umServiceSet.add(umService1); - umServiceSet.add(umService2); - umServiceSet.add(umService3); - Loop loop = Mockito.mock(Loop.class); - Mockito.when(loop.getMicroServicePolicies()).thenReturn(umServiceSet); - - LoopTemplate template = Mockito.mock(LoopTemplate.class); - Mockito.when(template.getUniqueBlueprint()).thenReturn(false); - Mockito.when(loop.getLoopTemplate()).thenReturn(template); - - JsonObject paramJson = DcaeDeployParameters.getDcaeDeploymentParametersInJson(loop); - - Assert.assertEquals(JsonUtils.GSON_JPA_MODEL.toJson(paramJson), - ResourceFileUtils.getResourceAsString( - "example/sdc/expected-result/deployment-parameters-multi-blueprints.json")); - } - - /** - * getDeploymentParametersInJsonSingleBlueprintTest. - * - * @throws IOException In case of failure - * @throws SdcToscaParserException In case of failure - */ - @Test - public void getDeploymentParametersInJsonSingleBlueprintTest() throws IOException, SdcToscaParserException { - Loop loop = Mockito.mock(Loop.class); - - MicroServicePolicy umService1 = Mockito.mock(MicroServicePolicy.class); - Mockito.when(umService1.getName()).thenReturn("testName1"); - LinkedHashSet<MicroServicePolicy> umServiceSet = new LinkedHashSet<MicroServicePolicy>(); - umServiceSet.add(umService1); - Mockito.when(loop.getMicroServicePolicies()).thenReturn(umServiceSet); - - LoopTemplate template = Mockito.mock(LoopTemplate.class); - Mockito.when(template.getUniqueBlueprint()).thenReturn(true); - String blueprint = ResourceFileUtils.getResourceAsString("example/sdc/blueprint-dcae/tca.yaml"); - Mockito.when(template.getBlueprint()).thenReturn(blueprint); - Mockito.when(loop.getLoopTemplate()).thenReturn(template); - - JsonObject paramJson = DcaeDeployParameters.getDcaeDeploymentParametersInJson(loop); - - Assert.assertEquals(JsonUtils.GSON_JPA_MODEL.toJson(paramJson), - ResourceFileUtils.getResourceAsString( - "example/sdc/expected-result/deployment-parameters-single-blueprint.json")); - } -} diff --git a/src/test/java/org/onap/policy/clamp/policy/downloader/PolicyEngineControllerTestItCase.java b/src/test/java/org/onap/policy/clamp/policy/downloader/PolicyEngineControllerTestItCase.java deleted file mode 100644 index 657adf1d1..000000000 --- a/src/test/java/org/onap/policy/clamp/policy/downloader/PolicyEngineControllerTestItCase.java +++ /dev/null @@ -1,117 +0,0 @@ -package org.onap.policy.clamp.policy.downloader; -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -import static org.assertj.core.api.Assertions.assertThat; - -import com.google.gson.JsonObject; -import com.google.gson.JsonSyntaxException; -import java.io.IOException; -import java.time.Instant; -import java.util.List; -import javax.transaction.Transactional; -import org.json.simple.parser.ParseException; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.onap.policy.clamp.clds.Application; -import org.onap.policy.clamp.clds.util.JsonUtils; -import org.onap.policy.clamp.loop.template.PolicyModel; -import org.onap.policy.clamp.loop.template.PolicyModelId; -import org.onap.policy.clamp.loop.template.PolicyModelsRepository; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest(classes = Application.class) -@ActiveProfiles({"clamp-default", "clamp-policy-controller"}) -public class PolicyEngineControllerTestItCase { - - @Autowired - PolicyEngineController policyController; - - @Autowired - PolicyModelsRepository policyModelsRepository; - - /** - * This method tests a fake synchronization with the emulator. - * - * @throws JsonSyntaxException In case of issues - * @throws IOException In case of issues - * @throws InterruptedException In case of issues - */ - @Test - @Transactional - public void synchronizeAllPoliciesTest() throws JsonSyntaxException, IOException, InterruptedException { - policyController.synchronizeAllPolicies(); - Instant firstExecution = policyController.getLastInstantExecuted(); - assertThat(firstExecution).isNotNull(); - List<PolicyModel> policyModelsList = policyModelsRepository.findAll(); - assertThat(policyModelsList.size()).isGreaterThanOrEqualTo(5); - assertThat(policyModelsList).contains(new PolicyModel("onap.policies.controlloop.operational.common.Drools", - null, "1.0.0")); - assertThat(policyModelsList).contains(new PolicyModel("onap.policies.controlloop.operational.common.Apex", - null, "1.0.0")); - assertThat(policyModelsList) - .contains(new PolicyModel("onap.policies.controlloop.guard.common.FrequencyLimiter", null, "1.0.0")); - assertThat(policyModelsList) - .contains(new PolicyModel("onap.policies.controlloop.guard.common.Blacklist", null, "1.0.0")); - assertThat(policyModelsList) - .contains(new PolicyModel("onap.policies.controlloop.guard.common.MinMax", null, "2.0.0")); - - // Re-do it to check that there is no issue with duplicate key - policyController.synchronizeAllPolicies(); - Instant secondExecution = policyController.getLastInstantExecuted(); - assertThat(secondExecution).isNotNull(); - - assertThat(firstExecution).isBefore(secondExecution); - } - - @Test - @Transactional - public void downloadPdpGroupsTest() throws JsonSyntaxException, IOException, InterruptedException, ParseException { - PolicyModel policyModel1 = new PolicyModel("onap.policies.monitoring.test", null, "1.0.0"); - policyModelsRepository.saveAndFlush(policyModel1); - PolicyModel policyModel2 = new PolicyModel("onap.policies.controlloop.Operational", null, "1.0.0"); - policyModelsRepository.saveAndFlush(policyModel2); - - policyController.downloadPdpGroups(); - - List<PolicyModel> policyModelsList = policyModelsRepository.findAll(); - assertThat(policyModelsList.size()).isGreaterThanOrEqualTo(2); - - PolicyModel policy1 = policyModelsRepository - .getOne(new PolicyModelId("onap.policies.monitoring.test", "1.0.0")); - PolicyModel policy2 = policyModelsRepository - .getOne(new PolicyModelId("onap.policies.controlloop.Operational", "1.0.0")); - - String expectedRes1 = "{\"supportedPdpGroups\":[{\"monitoring\":[\"xacml\"]}]}"; - JsonObject expectedJson1 = JsonUtils.GSON.fromJson(expectedRes1, JsonObject.class); - assertThat(policy1.getPolicyPdpGroup()).isEqualTo(expectedJson1); - String expectedRes2 = "{\"supportedPdpGroups\":[{\"controlloop\":[\"apex\",\"drools\"]}]}"; - JsonObject expectedJson2 = JsonUtils.GSON.fromJson(expectedRes2, JsonObject.class); - assertThat(policy2.getPolicyPdpGroup()).isEqualTo(expectedJson2); - - } -} diff --git a/src/test/java/org/onap/policy/clamp/policy/microservice/MicroServicePayloadTest.java b/src/test/java/org/onap/policy/clamp/policy/microservice/MicroServicePayloadTest.java deleted file mode 100644 index 4bb850c35..000000000 --- a/src/test/java/org/onap/policy/clamp/policy/microservice/MicroServicePayloadTest.java +++ /dev/null @@ -1,47 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.policy.microservice; - -import com.google.gson.JsonObject; -import java.io.IOException; -import org.junit.Test; -import org.onap.policy.clamp.clds.util.JsonUtils; -import org.onap.policy.clamp.clds.util.ResourceFileUtils; -import org.onap.policy.clamp.loop.template.PolicyModel; -import org.skyscreamer.jsonassert.JSONAssert; - -public class MicroServicePayloadTest { - - @Test - public void testPayloadConstruction() throws IOException { - MicroServicePolicy policy = new MicroServicePolicy("testPolicy", new PolicyModel( - "onap.policies.monitoring.cdap.tca.hi.lo.app", - ResourceFileUtils.getResourceAsString("tosca/tosca_example.yaml"), "1.0.0"), false, null, null, null, - null); - policy.setConfigurationsJson(JsonUtils.GSON.fromJson( - ResourceFileUtils.getResourceAsString("tosca/micro-service-policy-properties.json"), JsonObject.class)); - JSONAssert.assertEquals(ResourceFileUtils.getResourceAsString("tosca/micro-service-policy-payload.json"), - policy.createPolicyPayload(), false); - } -} diff --git a/src/test/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepresentationBuilderTest.java b/src/test/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepresentationBuilderTest.java deleted file mode 100644 index 136430c8f..000000000 --- a/src/test/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepresentationBuilderTest.java +++ /dev/null @@ -1,67 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.policy.operational; - -import static org.assertj.core.api.Assertions.assertThat; - -import com.google.gson.GsonBuilder; -import com.google.gson.JsonObject; -import java.io.IOException; -import org.junit.Test; -import org.onap.policy.clamp.clds.util.ResourceFileUtils; -import org.onap.policy.clamp.loop.service.Service; -import org.skyscreamer.jsonassert.JSONAssert; - -public class OperationalPolicyRepresentationBuilderTest { - - @Test - public void testOperationalPolicyPayloadConstruction() throws IOException { - JsonObject jsonModel = new GsonBuilder().create().fromJson(ResourceFileUtils - .getResourceAsString("tosca/model-properties-operational-policy.json"), JsonObject.class); - Service service = new Service(jsonModel.get("serviceDetails").getAsJsonObject(), - jsonModel.get("resourceDetails").getAsJsonObject(), "1.0"); - - JsonObject jsonSchema = OperationalPolicyRepresentationBuilder.generateOperationalPolicySchema(service); - - assertThat(jsonSchema).isNotNull(); - - JSONAssert.assertEquals(ResourceFileUtils.getResourceAsString("tosca/operational-policy-json-schema.json"), - new GsonBuilder().create().toJson(jsonSchema), false); - } - - @Test - public void testOperationalPolicyPayloadConstructionForCds() throws IOException { - JsonObject jsonModel = new GsonBuilder().create() - .fromJson(ResourceFileUtils.getResourceAsString("tosca/model-properties-cds.json"), JsonObject.class); - Service service = new Service(jsonModel.get("serviceDetails").getAsJsonObject(), - jsonModel.get("resourceDetails").getAsJsonObject(), - "1.0"); - - JsonObject jsonSchema = OperationalPolicyRepresentationBuilder.generateOperationalPolicySchema(service); - assertThat(jsonSchema).isNotNull(); - JSONAssert.assertEquals( - ResourceFileUtils.getResourceAsString("tosca/operational-policy-cds-payload-with-list.json"), - new GsonBuilder().create().toJson(jsonSchema), false); - } -} diff --git a/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupAnalyzerTest.java b/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupAnalyzerTest.java deleted file mode 100644 index 30d4ebe28..000000000 --- a/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupAnalyzerTest.java +++ /dev/null @@ -1,231 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP POLICY-CLAMP - * ================================================================================ - * Copyright (C) 2021 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.policy.pdpgroup; - -import static org.assertj.core.api.Assertions.assertThat; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import org.junit.BeforeClass; -import org.junit.Test; -import org.onap.policy.clamp.clds.util.JsonUtils; -import org.onap.policy.clamp.clds.util.ResourceFileUtils; -import org.onap.policy.clamp.loop.template.PolicyModel; -import org.onap.policy.models.pdp.concepts.PdpGroup; -import org.onap.policy.models.pdp.concepts.PdpGroups; -import org.onap.policy.models.pdp.concepts.PdpSubGroup; -import org.onap.policy.models.pdp.enums.PdpState; -import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier; - -/** - * This test class validates the PdpGroupAnalyzer class. - */ -public class PdpGroupAnalyzerTest { - - private static PdpGroups pdpGroups; - private static PdpGroup pdpGroup1; - private static PdpGroup pdpGroup2; - private static PdpGroup pdpGroup3; - private static PdpGroup pdpGroup4; - - private static PdpSubGroup pdpSubgroupBad; - private static PdpSubGroup pdpSubgroup1; - private static PdpSubGroup pdpSubgroup2; - private static PdpSubGroup pdpSubgroup3; - - /** - * This method preloads the pdpGroups for the tests. - */ - @BeforeClass - public static void setupPdpGroup() { - // Create Pdp Groups - // Those that do not work first - pdpSubgroupBad = new PdpSubGroup(); - pdpSubgroupBad.setPdpType("subGroupBad"); - pdpSubgroupBad.setSupportedPolicyTypes(Arrays.asList(new ToscaConceptIdentifier("org.onap.test", "2.0.0"), - new ToscaConceptIdentifier("org.onap.test.*", "1.0.0"), - new ToscaConceptIdentifier("org.onip.testos", "1.0.0"), - new ToscaConceptIdentifier("org.onap.testos3", "2.0.0"), - new ToscaConceptIdentifier("org.onap.tes", "1.0.0"), - new ToscaConceptIdentifier("org.onap", "1.0.0") - )); - pdpSubgroupBad.setPolicies(Arrays.asList(new ToscaConceptIdentifier("org.onap", "1.0.0"), - new ToscaConceptIdentifier("org.onap.testos", "2.0.0"), - new ToscaConceptIdentifier("org.onap.testos", "1.0.1"), - new ToscaConceptIdentifier("org.onap.testos.new", "1.0.0"), - new ToscaConceptIdentifier("org.onap.", "1.0.0"))); - pdpSubgroupBad.setPdpInstances(Collections.emptyList()); - - pdpSubgroup1 = new PdpSubGroup(); - pdpSubgroup1.setPdpType("subGroup1"); - pdpSubgroup1.setSupportedPolicyTypes( - Arrays.asList(new ToscaConceptIdentifier("org.onap.*", "1.0.0"))); - pdpSubgroup1.setPdpInstances(Collections.emptyList()); - - pdpSubgroup2 = new PdpSubGroup(); - pdpSubgroup2.setPdpType("subGroup2"); - pdpSubgroup2.setSupportedPolicyTypes(Arrays.asList(new ToscaConceptIdentifier("org.onap.test", "1.0.0"))); - pdpSubgroup2.setPolicies(Arrays.asList(new ToscaConceptIdentifier("org.onap.testos", "1.0.0"))); - pdpSubgroup2.setPdpInstances(Collections.emptyList()); - - pdpSubgroup3 = new PdpSubGroup(); - pdpSubgroup3.setPdpType("subGroup3"); - pdpSubgroup3.setSupportedPolicyTypes(Arrays.asList(new ToscaConceptIdentifier("org.onap.test*", "1.0.0"))); - pdpSubgroup3.setPolicies(Arrays.asList(new ToscaConceptIdentifier("org.onap.testos", "2.0.0"))); - pdpSubgroup3.setPdpInstances(Collections.emptyList()); - - // Should match pdpSubgroup1 - pdpGroup1 = new PdpGroup(); - pdpGroup1.setName("pdpGroup1"); - pdpGroup1.setPdpGroupState(PdpState.ACTIVE); - pdpGroup1.setPdpSubgroups(Arrays.asList(pdpSubgroup1, pdpSubgroupBad)); - - // Should match pdpSubgroup1, pdpSubgroup2, pdpSubgroup3 - // Should match also for the policy (pdpSubgroup2) - pdpGroup2 = new PdpGroup(); - pdpGroup2.setName("pdpGroup2"); - pdpGroup2.setPdpGroupState(PdpState.ACTIVE); - pdpGroup2.setPdpSubgroups(Arrays.asList(pdpSubgroup1, pdpSubgroup2, pdpSubgroup3, pdpSubgroupBad)); - - /// Should not match - pdpGroup3 = new PdpGroup(); - pdpGroup3.setName("pdpGroup3"); - pdpGroup3.setPdpGroupState(PdpState.ACTIVE); - pdpGroup3.setPdpSubgroups(Arrays.asList(pdpSubgroupBad)); - - // Should not match - pdpGroup4 = new PdpGroup(); - pdpGroup4.setName("pdpGroup4"); - pdpGroup4.setPdpGroupState(PdpState.TERMINATED); - pdpGroup4.setPdpSubgroups(Arrays.asList(pdpSubgroup1)); - - pdpGroups = new PdpGroups(); - pdpGroups.setGroups(Arrays.asList(pdpGroup1, pdpGroup2, pdpGroup3, pdpGroup4)); - } - - @Test - public void testStructuresConstruction() { - PdpGroupsAnalyzer pdpGroupsAnalyzer = new PdpGroupsAnalyzer(pdpGroups); - assertThat(pdpGroupsAnalyzer).isNotNull(); - assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy()).hasSize(6); - assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy() - .get(new ToscaConceptIdentifier("org.onap.testos", "2.0.0"))).hasSize(3); - assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy() - .get(new ToscaConceptIdentifier("org.onap.testos", "2.0.0")).get("pdpGroup1").getPdpSubgroups().size()) - .isEqualTo(1); - assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy() - .get(new ToscaConceptIdentifier("org.onap.testos", "2.0.0")).get("pdpGroup1").getPdpSubgroups()) - .contains(pdpSubgroupBad); - assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy() - .get(new ToscaConceptIdentifier("org.onap.testos", "2.0.0")).get("pdpGroup2").getPdpSubgroups().size()) - .isEqualTo(2); - assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy() - .get(new ToscaConceptIdentifier("org.onap.testos", "2.0.0")).get("pdpGroup2").getPdpSubgroups()) - .contains(pdpSubgroup3); - assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy() - .get(new ToscaConceptIdentifier("org.onap.testos", "2.0.0")).get("pdpGroup2").getPdpSubgroups()) - .contains(pdpSubgroupBad); - assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy() - .get(new ToscaConceptIdentifier("org.onap.testos", "2.0.0")).get("pdpGroup3").getPdpSubgroups().size()) - .isEqualTo(1); - assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy() - .get(new ToscaConceptIdentifier("org.onap.testos", "2.0.0")).get("pdpGroup3").getPdpSubgroups()) - .contains(pdpSubgroupBad); - - assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy() - .get(new ToscaConceptIdentifier("org.onap.testos", "1.0.0"))).hasSize(1); - assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy() - .get(new ToscaConceptIdentifier("org.onap.testos", "1.0.0")).get("pdpGroup2").getPdpSubgroups()) - .hasSize(1); - assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy() - .get(new ToscaConceptIdentifier("org.onap.testos", "1.0.0")).get("pdpGroup2").getPdpSubgroups()) - .contains(pdpSubgroup2); - - assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy() - .get(new ToscaConceptIdentifier("org.onap.testos", "1.0.1"))).hasSize(3); - assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy() - .get(new ToscaConceptIdentifier("org.onap.testos", "1.0.1")).get("pdpGroup1").getPdpSubgroups()) - .hasSize(1); - assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy() - .get(new ToscaConceptIdentifier("org.onap.testos", "1.0.1")).get("pdpGroup1").getPdpSubgroups()) - .contains(pdpSubgroupBad); - assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy() - .get(new ToscaConceptIdentifier("org.onap.testos", "1.0.1")).get("pdpGroup2").getPdpSubgroups()) - .hasSize(1); - assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy() - .get(new ToscaConceptIdentifier("org.onap.testos", "1.0.1")).get("pdpGroup2").getPdpSubgroups()) - .contains(pdpSubgroupBad); - assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy() - .get(new ToscaConceptIdentifier("org.onap.testos", "1.0.1")).get("pdpGroup3").getPdpSubgroups()) - .hasSize(1); - assertThat(pdpGroupsAnalyzer.getPdpGroupsDeploymentPerPolicy() - .get(new ToscaConceptIdentifier("org.onap.testos", "1.0.1")).get("pdpGroup3").getPdpSubgroups()) - .contains(pdpSubgroupBad); - } - - @Test - public void testGetSupportedPdpGroupsForPolicy() throws IOException { - PolicyModel policyModel = new PolicyModel(); - policyModel.setCreatedBy("user"); - policyModel.setPolicyAcronym("TEST"); - policyModel.setPolicyModelTosca("yaml"); - policyModel.setPolicyModelType("org.onap.test"); - policyModel.setUpdatedBy("user"); - policyModel.setVersion("1.0.0"); - - PdpGroupsAnalyzer pdpGroupsAnalyzer = new PdpGroupsAnalyzer(pdpGroups); - assertThat(pdpGroupsAnalyzer).isNotNull(); - - assertThat( - JsonUtils.GSON.toJson(pdpGroupsAnalyzer.getPdpGroupsForPolicy("org.onap.testos", "2.0.0"))) - .isEqualTo(ResourceFileUtils.getResourceAsString("example/policy/pdp-deployment-testos-2_0_0.json")); - - assertThat( - JsonUtils.GSON.toJson(pdpGroupsAnalyzer.getPdpGroupsForPolicy("org.onap.testos", "1.0.0"))) - .isEqualTo(ResourceFileUtils.getResourceAsString("example/policy/pdp-deployment-testos-1_0_0.json")); - - assertThat( - pdpGroupsAnalyzer.getPdpGroupsForPolicy("org.onap.donotexist", "1.0.0")) - .isNull(); - } - - @Test - public void testUpdatePdpGroupOfPolicyModels() { - // Create policyModel - PolicyModel policyModel = new PolicyModel(); - policyModel.setCreatedBy("user"); - policyModel.setPolicyAcronym("TEST"); - policyModel.setPolicyModelTosca("yaml"); - policyModel.setPolicyModelType("org.onap.test"); - policyModel.setUpdatedBy("user"); - policyModel.setVersion("1.0.0"); - PdpGroupsAnalyzer.updatePdpGroupOfPolicyModels(Arrays.asList(policyModel), pdpGroups); - - assertThat(policyModel.getPolicyPdpGroup()).hasToString( - "{\"supportedPdpGroups\":[{\"pdpGroup1\":[\"subGroup1\"]}," - + "{\"pdpGroup2\":[\"subGroup1\",\"subGroup2\",\"subGroup3\"]}]}"); - } -} diff --git a/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadExceptionTest.java b/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadExceptionTest.java deleted file mode 100644 index f3c3fc6cd..000000000 --- a/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadExceptionTest.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * ONAP POLICY-CLAMP - * ================================================================================ - * Copyright (C) 2021 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.clamp.policy.pdpgroup; - -import org.junit.Test; -import org.onap.policy.clamp.policy.pdpgroup.PdpGroupPayloadException; -import org.onap.policy.common.utils.test.ExceptionsTester; - -public class PdpGroupPayloadExceptionTest extends ExceptionsTester { - - @Test - public void testPdpGroupPayloadException() { - test(PdpGroupPayloadException.class); - } -} diff --git a/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadTest.java b/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadTest.java deleted file mode 100644 index 34674e3ec..000000000 --- a/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadTest.java +++ /dev/null @@ -1,75 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP POLICY-CLAMP - * ================================================================================ - * Copyright (C) 2021 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.policy.pdpgroup; - -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; -import java.io.IOException; -import org.junit.Test; -import org.onap.policy.clamp.clds.util.ResourceFileUtils; -import org.skyscreamer.jsonassert.JSONAssert; - -/** - * This class tests the PdpGroupPayload features. - */ -public class PdpGroupPayloadTest { - - @Test - public void testGeneratePdpGroupPayload() throws IOException, PdpGroupPayloadException { - JsonArray operations = new JsonArray(); - operations.add("POST/pdpgroup1/pdpsubgroup1/policyname1/1.0.0"); - operations.add("POST/pdpgroup1/pdpsubgroup1/policyname2/1.0.0"); - operations.add("POST/pdpgroup1/pdpsubgroup1/policyname1/2.0.0"); - operations.add("DELETE/pdpgroup2/pdpsubgroup2/policyname1/1.0.0"); - operations.add("POST/pdpgroup2/pdpsubgroup2/policyname1/2.0.0"); - operations.add("DELETE/pdpgroup2/pdpsubgroup2/policyname2/1.0.0"); - JsonObject listOfOperations = new JsonObject(); - listOfOperations.add(PdpGroupPayload.PDP_ACTIONS, operations); - - PdpGroupPayload pdpGroupPayload = new PdpGroupPayload(listOfOperations); - JSONAssert.assertEquals( - ResourceFileUtils.getResourceAsString("example/policy/pdp-group-multi-policies-payload.json"), - pdpGroupPayload.generatePdpGroupPayload(), false); - } - - @Test - public void testGeneratePdpGroupPayload_WithEmptyList() throws PdpGroupPayloadException { - JsonArray operations = new JsonArray(); - JsonObject listOfOperations = new JsonObject(); - listOfOperations.add(PdpGroupPayload.PDP_ACTIONS, operations); - - PdpGroupPayload pdpGroupPayload = new PdpGroupPayload(listOfOperations); - JSONAssert.assertEquals("{}", pdpGroupPayload.generatePdpGroupPayload(), false); - } - - @Test(expected = PdpGroupPayloadException.class) - public void testUpdatePdpGroupMap_WithEmptyEntry() throws PdpGroupPayloadException { - JsonArray operations = new JsonArray(); - operations.add(""); - JsonObject listOfOperations = new JsonObject(); - listOfOperations.add(PdpGroupPayload.PDP_ACTIONS, operations); - - PdpGroupPayload pdpGroupPayload = new PdpGroupPayload(listOfOperations); - } -} diff --git a/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMergerTest.java b/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMergerTest.java deleted file mode 100644 index be7a9d674..000000000 --- a/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMergerTest.java +++ /dev/null @@ -1,102 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP POLICY-CLAMP - * ================================================================================ - * Copyright (C) 2021 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.policy.pdpgroup; - -import static org.assertj.core.api.Assertions.assertThat; - -import com.google.gson.JsonObject; -import java.io.IOException; -import java.util.Arrays; -import org.junit.BeforeClass; -import org.junit.Test; -import org.onap.policy.clamp.clds.util.JsonUtils; -import org.onap.policy.clamp.clds.util.ResourceFileUtils; -import org.onap.policy.models.pdp.concepts.PdpGroup; -import org.onap.policy.models.pdp.concepts.PdpGroups; -import org.onap.policy.models.pdp.concepts.PdpSubGroup; -import org.onap.policy.models.pdp.enums.PdpState; -import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier; -import org.skyscreamer.jsonassert.JSONAssert; - -/** - * This test class validates the PdpGroupAnalyzer class. - */ -public class PoliciesPdpMergerTest { - - private static String pdpGroupsJson; - - /** - * This method setups the pdpGroups required for the tests. - */ - @BeforeClass - public static void setupPdpGroup() { - // Create Pdp Groups - PdpSubGroup pdpSubgroup1 = new PdpSubGroup(); - pdpSubgroup1.setPdpType("subGroup1"); - pdpSubgroup1.setSupportedPolicyTypes( - Arrays.asList(new ToscaConceptIdentifier("org.onap.*", "1.0.0"))); - - PdpSubGroup pdpSubgroup2 = new PdpSubGroup(); - pdpSubgroup2.setPdpType("subGroup2"); - pdpSubgroup2.setSupportedPolicyTypes( - Arrays.asList(new ToscaConceptIdentifier("onap.policies.monitoring.tcagen2", "1.0.0"), - new ToscaConceptIdentifier("onap.policies.controlloop.operational.common.Drools", "1.0.0"))); - pdpSubgroup2.setPolicies(Arrays.asList( - new ToscaConceptIdentifier("MICROSERVICE_vLoadBalancerMS_v1_0_tcagen2_1_0_0_AV0", "1.0.0"))); - - PdpSubGroup pdpSubgroup3 = new PdpSubGroup(); - pdpSubgroup3.setPdpType("subGroup3"); - pdpSubgroup3.setSupportedPolicyTypes( - Arrays.asList(new ToscaConceptIdentifier("onap.policies.monitoring.tcagen2", "1.0.0"), - new ToscaConceptIdentifier("onap.policies.controlloop.operational.common.Drools", "1.0.0"))); - pdpSubgroup3.setPolicies(Arrays.asList(new ToscaConceptIdentifier("org.onap.testos", "2.0.0"), - new ToscaConceptIdentifier("OPERATIONAL_vLoadBalancerMS_v1_0_Drools_1_0_0_7xd", "1.0.0"))); - - // Should match pdpSubgroup1 - PdpGroup pdpGroup1 = new PdpGroup(); - pdpGroup1.setName("pdpGroup1"); - pdpGroup1.setPdpGroupState(PdpState.ACTIVE); - pdpGroup1.setPdpSubgroups(Arrays.asList(pdpSubgroup1)); - - // Should match pdpSubgroup1, pdpSubgroup2, pdpSubgroup3 - // Should match also for the policy (pdpSubgroup2) - PdpGroup pdpGroup2 = new PdpGroup(); - pdpGroup2.setName("pdpGroup2"); - pdpGroup2.setPdpGroupState(PdpState.ACTIVE); - pdpGroup2.setPdpSubgroups(Arrays.asList(pdpSubgroup1, pdpSubgroup2, pdpSubgroup3)); - - PdpGroups pdpGroups = new PdpGroups(); - pdpGroups.setGroups(Arrays.asList(pdpGroup1, pdpGroup2)); - - pdpGroupsJson = JsonUtils.GSON.toJson(pdpGroups); - } - - @Test - public void testMergePoliciesAndPdpGroupStates() throws IOException { - JSONAssert.assertEquals(ResourceFileUtils.getResourceAsString("example/policy/policy-merger.json"), - PoliciesPdpMerger.mergePoliciesAndPdpGroupStates( - ResourceFileUtils.getResourceAsString("http-cache/example/policy/api/v1/policies/.file"), - pdpGroupsJson).toString(), true); - } -} diff --git a/src/test/java/org/onap/policy/clamp/tosca/DictionaryServiceItCase.java b/src/test/java/org/onap/policy/clamp/tosca/DictionaryServiceItCase.java deleted file mode 100644 index fdde53a21..000000000 --- a/src/test/java/org/onap/policy/clamp/tosca/DictionaryServiceItCase.java +++ /dev/null @@ -1,247 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.tosca; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import java.util.List; -import javax.persistence.EntityNotFoundException; -import javax.transaction.Transactional; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.onap.policy.clamp.clds.Application; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest(classes = Application.class) -public class DictionaryServiceItCase { - - @Autowired - private DictionaryService dictionaryService; - - @Autowired - private DictionaryElementsRepository dictionaryElementsRepository; - - private DictionaryElement getDictionaryElement(String shortName, String name, - String description, String type, String subDictionaryName) { - - return new DictionaryElement(name, shortName, description, type, subDictionaryName); - - } - - private Dictionary getSimpleDictionaryExample() { - - Dictionary dictionary = new Dictionary("Dictionary1", 0, null); - - dictionary.addDictionaryElements(getDictionaryElement("DE1", "DictionaryElement1", - "DictionaryElement1", "string", null)); - - dictionary.addDictionaryElements(getDictionaryElement("DE2", "DictionaryElement2", - "DictionaryElement2", "number", null)); - - return dictionary; - } - - private Dictionary getSecondaryDictionaryExample() { - - Dictionary dictionary = new Dictionary("SecondaryDict", 1, "string"); - - dictionary.addDictionaryElements(getDictionaryElement("SDE1", "SecondaryDictElement1", - "SecondaryDictElement1", "string", null)); - - dictionary.addDictionaryElements(getDictionaryElement("SDE2", "SecondaryDictElement2", - "SecondaryDictElement2", "string", null)); - - return dictionary; - } - - /** - * Test to validate that Dictionary is created. - */ - @Test - @Transactional - public void shouldCreateDictionary() { - Dictionary dictionary = getSimpleDictionaryExample(); - Dictionary actualDictionary = dictionaryService.saveOrUpdateDictionary(dictionary); - assertNotNull(actualDictionary); - assertThat(actualDictionary).isEqualTo(dictionary); - assertThat(actualDictionary.getName()).isEqualTo(dictionary.getName()); - - assertThat(actualDictionary.getDictionaryElements()).contains( - dictionaryElementsRepository.findById("DE1").get(), - dictionaryElementsRepository.findById("DE2").get()); - } - - /** - * Test to validate a DictionaryElement is created for a Dictionary. - */ - @Test - @Transactional - public void shouldCreateorUpdateDictionaryElement() { - Dictionary dictionary = getSimpleDictionaryExample(); - Dictionary actualDictionary = dictionaryService.saveOrUpdateDictionary(dictionary); - DictionaryElement dictionaryElement = - getDictionaryElement("DictionaryElement3", "DE3", "DictionaryElement3", "date", null); - actualDictionary.addDictionaryElements(dictionaryElement); - Dictionary updatedDictionary = dictionaryService - .saveOrUpdateDictionaryElement(actualDictionary.getName(), actualDictionary); - assertNotNull(updatedDictionary); - assertTrue(updatedDictionary.getDictionaryElements().contains(dictionaryElement)); - assertThat(updatedDictionary.getName()).isEqualTo(actualDictionary.getName()); - // update the dictionary element. - dictionaryElement.setDescription("DictionaryElement3 New Description"); - Dictionary dictionary3 = new Dictionary("Dictionary1", 0, null); - dictionary3.addDictionaryElements(dictionaryElement); - Dictionary updatedDictionary2 = - dictionaryService.saveOrUpdateDictionaryElement(dictionary3.getName(), dictionary3); - - assertNotNull(updatedDictionary2); - assertTrue(updatedDictionary2.getDictionaryElements().contains(dictionaryElement)); - updatedDictionary2.getDictionaryElements().forEach(element -> { - if (element.equals(dictionaryElement)) { - assertTrue(element.getDescription().equals(dictionaryElement.getDescription())); - } - }); - - } - - /** - * Test to validate that All Dictionaries are retrieved. - */ - @Test - @Transactional - public void shouldReturnAllDictionaries() { - Dictionary dictionary = getSimpleDictionaryExample(); - Dictionary secondaryDictionary = getSecondaryDictionaryExample(); - dictionaryService.saveOrUpdateDictionary(dictionary); - dictionaryService.saveOrUpdateDictionary(secondaryDictionary); - - List<Dictionary> list = dictionaryService.getAllDictionaries(); - assertNotNull(list); - assertThat(list).contains(dictionary, secondaryDictionary); - } - - /** - * Test to validate one Dictionary is returned. - */ - @Test - @Transactional - public void shouldReturnOneDictionary() { - Dictionary dictionary = getSimpleDictionaryExample(); - dictionaryService.saveOrUpdateDictionary(dictionary); - - Dictionary returnedDictionary = dictionaryService.getDictionary("Dictionary1"); - assertNotNull(returnedDictionary); - assertThat(returnedDictionary).isEqualTo(dictionary); - assertThat(returnedDictionary.getDictionaryElements()) - .isEqualTo(dictionary.getDictionaryElements()); - } - - /** - * Test to validate one Dictionary is returned. - */ - @Test - @Transactional - public void shouldReturnEntityNotFoundException() { - try { - dictionaryService.getDictionary("Test"); - } catch (Exception e) { - assertThat(e).isInstanceOf(EntityNotFoundException.class); - assertTrue(e.getMessage().equals("Couldn't find Dictionary named: Test")); - } - } - - /** - * Test to validate Dictionary is deleted. - */ - @Test - @Transactional - public void shouldDeleteDictionaryByObject() { - Dictionary dictionary = getSimpleDictionaryExample(); - Dictionary returnedDictionary = dictionaryService.saveOrUpdateDictionary(dictionary); - - dictionaryService.deleteDictionary(returnedDictionary); - try { - dictionaryService.getDictionary("Dictionary1"); - } catch (EntityNotFoundException e) { - assertTrue(e.getMessage().equals("Couldn't find Dictionary named: Dictionary1")); - } - } - - /** - * Test to validate Dictionary is deleted by Name. - */ - @Test - @Transactional - public void shouldDeleteDictionaryByName() { - Dictionary dictionary = getSimpleDictionaryExample(); - dictionaryService.saveOrUpdateDictionary(dictionary); - dictionaryService.deleteDictionary(dictionary.getName()); - try { - dictionaryService.getDictionary("Dictionary1"); - } catch (EntityNotFoundException e) { - assertTrue(e.getMessage().equals("Couldn't find Dictionary named: Dictionary1")); - } - } - - /** - * Test to validate DictionaryElements is deleted by Name. - */ - @Test - @Transactional - public void shouldDeleteDictionaryElementsByName() { - Dictionary dictionary = getSimpleDictionaryExample(); - dictionaryService.saveOrUpdateDictionary(dictionary); - DictionaryElement dictionaryElement = - dictionaryElementsRepository.findById("DE1").orElse(null); - assertNotNull(dictionaryElement); - dictionaryService.deleteDictionaryElement("Dictionary1", "DE1"); - dictionary = dictionaryService.getDictionary("Dictionary1"); - DictionaryElement deletedDictionaryElement = - dictionaryElementsRepository.findById("DE1").orElse(null); - assertThat(deletedDictionaryElement).isNotIn(dictionary.getDictionaryElements()); - } - - /** - * Test to validate all secondary level dictionary names are returned. - */ - @Test - @Transactional - public void shouldReturnAllSecondaryLevelDictionaryNames() { - Dictionary dictionary = getSecondaryDictionaryExample(); - dictionaryService.saveOrUpdateDictionary(dictionary); - - Dictionary dictionary2 = new Dictionary("SecondaryDict2", 1, "string"); - dictionaryService.saveOrUpdateDictionary(dictionary2); - List<String> secondaryDictionaryNames = - dictionaryService.getAllSecondaryLevelDictionaryNames(); - - assertNotNull(secondaryDictionaryNames); - assertThat(secondaryDictionaryNames).contains(dictionary.getName(), dictionary2.getName()); - } -} diff --git a/src/test/java/org/onap/policy/clamp/util/PassDecoderTest.java b/src/test/java/org/onap/policy/clamp/util/PassDecoderTest.java deleted file mode 100644 index 7fd0cb91d..000000000 --- a/src/test/java/org/onap/policy/clamp/util/PassDecoderTest.java +++ /dev/null @@ -1,55 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP POLICY-CLAMP - * ================================================================================ - * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.util; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; - -import org.junit.Test; - -public class PassDecoderTest { - - private final String encrypted = "enc:WWCxchk4WGBNSvuzLq3MLjMs5ObRybJtts5AI0XD1Vc"; - - @Test - public final void testDecryptionNoKeyfile() throws Exception { - String decodedPass = PassDecoder.decode(encrypted, null); - assertEquals(decodedPass, encrypted); - } - - @Test - public final void testDecryptionNoPassword() throws Exception { - String decodedPass = PassDecoder.decode(null, "classpath:clds/aaf/org.onap.clamp.keyfile"); - assertNull(decodedPass); - } - - @Test - public final void testDecryption() throws Exception { - String decodedPass = PassDecoder.decode(encrypted, "classpath:clds/aaf/org.onap.clamp.keyfile"); - assertEquals(decodedPass, "China in the Spring"); - assertEquals("Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U", PassDecoder - .decode("enc:JPV4p067JlSXt2Fet9bfuI8JpkS4ZGYVcgypcPs98gXjgjCjTze_d3JxqmlKaaakdiOjIcEC_MJh6-5pJTLgdc", - "classpath:clds/aaf/org.onap.clamp.keyfile")); - } -} diff --git a/src/test/java/org/onap/policy/clamp/util/SemanticVersioningTest.java b/src/test/java/org/onap/policy/clamp/util/SemanticVersioningTest.java deleted file mode 100644 index 604ce55db..000000000 --- a/src/test/java/org/onap/policy/clamp/util/SemanticVersioningTest.java +++ /dev/null @@ -1,91 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP CLAMP - * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights - * reserved. - * ================================================================================ - * 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. - * ============LICENSE_END============================================ - * =================================================================== - * - */ - -package org.onap.policy.clamp.util; - -import static org.assertj.core.api.Assertions.assertThat; - -import org.junit.Test; - -public class SemanticVersioningTest { - - /** - * compare test. - */ - @Test - public void compareTest() { - assertThat(SemanticVersioning.compare("1.0.0", "2.0.0")).isEqualTo(-1); - assertThat(SemanticVersioning.compare("1.5.0", "2.0.0")).isEqualTo(-1); - assertThat(SemanticVersioning.compare("1.5.0", "2.1.0")).isEqualTo(-1); - assertThat(SemanticVersioning.compare("1.5.3", "2.0.0")).isEqualTo(-1); - assertThat(SemanticVersioning.compare("2.5.3", "2.6.0")).isEqualTo(-1); - assertThat(SemanticVersioning.compare("2.5", "2.5.1")).isEqualTo(-1); - assertThat(SemanticVersioning.compare("2.5.0", "2.5.1")).isEqualTo(-1); - assertThat(SemanticVersioning.compare("2.5.0.0", "2.5.1")).isEqualTo(-1); - assertThat(SemanticVersioning.compare("2.5.1.0", "2.5.1")).isEqualTo(1); - - assertThat(SemanticVersioning.compare("2.0.0", "1.0.0")).isEqualTo(1); - assertThat(SemanticVersioning.compare("2.0.0", "1.5.0")).isEqualTo(1); - assertThat(SemanticVersioning.compare("2.1.0", "1.5.0")).isEqualTo(1); - assertThat(SemanticVersioning.compare("2.0.0", "1.5.3")).isEqualTo(1); - assertThat(SemanticVersioning.compare("2.6.0", "2.5.3")).isEqualTo(1); - assertThat(SemanticVersioning.compare("2.5.1", "2.5")).isEqualTo(1); - assertThat(SemanticVersioning.compare("2.5.1", "2.5.0")).isEqualTo(1); - assertThat(SemanticVersioning.compare("2.5.1", "2.5.0.0")).isEqualTo(1); - assertThat(SemanticVersioning.compare("1", "1.2.3.0")).isEqualTo(-1); - assertThat(SemanticVersioning.compare("1.2", "1")).isEqualTo(1); - } - - /** - * Compare test. - */ - @Test - public void compareEqualsTest() { - assertThat(SemanticVersioning.compare("1.0.0", "1.0.0")).isEqualTo(0); - assertThat(SemanticVersioning.compare("1.0.0.0", "1.0.0")).isEqualTo(1); - assertThat(SemanticVersioning.compare("1.2.3", "1.2.3")).isEqualTo(0); - assertThat(SemanticVersioning.compare("1.2.3", "1.2.3.0")).isEqualTo(-1); - - } - - /** - * Compare with null. - */ - @Test - public void compareNullTest() { - assertThat(SemanticVersioning.compare(null, null)).isEqualTo(0); - assertThat(SemanticVersioning.compare(null, "1.0")).isEqualTo(-1); - assertThat(SemanticVersioning.compare("1.0", null)).isEqualTo(1); - } - - /** - * Increment major version test. - */ - @Test - public void incrementVersionTest() { - assertThat(SemanticVersioning.incrementMajorVersion("1.0")).isEqualTo("2.0.0"); - assertThat(SemanticVersioning.incrementMajorVersion("1.0.0")).isEqualTo("2.0.0"); - assertThat(SemanticVersioning.incrementMajorVersion("1")).isEqualTo("2.0.0"); - assertThat(SemanticVersioning.incrementMajorVersion("1.2.3")).isEqualTo("2.0.0"); - } -} |