diff options
Diffstat (limited to 'catalog-be/src/test/java')
300 files changed, 11267 insertions, 12680 deletions
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/ElementOperationMock.java b/catalog-be/src/test/java/org/openecomp/sdc/ElementOperationMock.java index 9d9ba2e697..b1c0330d4f 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/ElementOperationMock.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/ElementOperationMock.java @@ -21,6 +21,7 @@ package org.openecomp.sdc; import fj.data.Either; +import org.openecomp.sdc.be.config.Configuration; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.graph.datatype.GraphNode; import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; @@ -92,6 +93,10 @@ public class ElementOperationMock implements IElementOperation { } + /* + * @Override public Either<Category, ActionStatus> getCategory(String name) { if (name.equals(resourceCategory.getName())){ return Either.left(resourceCategory); } else { return Either.right(ActionStatus.CATEGORY_NOT_FOUND); } } + */ + @Override public Either<List<Tag>, ActionStatus> getAllTags() { // TODO Auto-generated method stub @@ -123,7 +128,7 @@ public class ElementOperationMock implements IElementOperation { } @Override - public Either<Integer, ActionStatus> getDefaultHeatTimeout() { + public Either<Configuration.HeatDeploymentArtifactTimeout, ActionStatus> getDefaultHeatTimeout() { // TODO Auto-generated method stub return null; } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/ErrorConfigurationTest.java b/catalog-be/src/test/java/org/openecomp/sdc/ErrorConfigurationTest.java index f5309ae373..16fb66e0f0 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/ErrorConfigurationTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/ErrorConfigurationTest.java @@ -36,7 +36,6 @@ import org.slf4j.LoggerFactory; import java.io.File; import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; public class ErrorConfigurationTest { ConfigurationSource configurationSource = null; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/TestUtils.java b/catalog-be/src/test/java/org/openecomp/sdc/TestUtils.java index cb0e5e8a9b..3f4166cff7 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/TestUtils.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/TestUtils.java @@ -20,11 +20,12 @@ package org.openecomp.sdc; -import static org.junit.Assert.assertArrayEquals; +import org.apache.commons.io.IOUtils; -import java.io.InputStream; import javax.ws.rs.core.Response; -import org.apache.commons.io.IOUtils; +import java.io.InputStream; + +import static org.junit.Assert.assertArrayEquals; public class TestUtils { public static boolean downloadedPayloadMatchesExpected(final Response response, final byte[] expected) { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/DummyConfigurationManager.java b/catalog-be/src/test/java/org/openecomp/sdc/be/DummyConfigurationManager.java index 77eb718447..27f793f998 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/DummyConfigurationManager.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/DummyConfigurationManager.java @@ -33,10 +33,15 @@ public class DummyConfigurationManager { private DistributionEngineConfiguration distributionConfigurationMock = mock(DistributionEngineConfiguration.class); private Configuration configurationMock = mock(Configuration.class); + public DummyConfigurationManager() { new ConfigurationManager(new DummyConfigurationSource()); } + public Configuration getConfigurationMock() { + return configurationMock; + } + public class DummyConfigurationSource implements ConfigurationSource { @SuppressWarnings("unchecked") @@ -57,4 +62,8 @@ public class DummyConfigurationManager { } } + public Configuration getDummyConfiguration() { + return configurationMock; + } + } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/AuditBaseEventFactoryTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/AuditBaseEventFactoryTest.java index 7081130a22..125ab416ce 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/AuditBaseEventFactoryTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/AuditBaseEventFactoryTest.java @@ -25,7 +25,13 @@ import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.common.api.Constants; import static org.junit.Assert.assertEquals; -import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.*; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DESIGNER_USER_ROLE; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.USER_EMAIL; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.USER_EXTENDED_NAME; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.USER_FIRST_NAME; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.USER_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.USER_LAST_NAME; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.USER_UID; public class AuditBaseEventFactoryTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/AuditConsumerEventFuncTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/AuditConsumerEventFuncTest.java deleted file mode 100644 index bfaccdd59e..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/AuditConsumerEventFuncTest.java +++ /dev/null @@ -1,170 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 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) 2019 Nokia - * ================================================================================ - */ -package org.openecomp.sdc.be.auditing.impl; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; -import org.mockito.Captor; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; -import org.openecomp.sdc.be.auditing.api.AuditEventFactory; -import org.openecomp.sdc.be.config.Configuration; -import org.openecomp.sdc.be.dao.api.ActionStatus; -import org.openecomp.sdc.be.dao.cassandra.AuditCassandraDao; -import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus; -import org.openecomp.sdc.be.dao.impl.AuditingDao; -import org.openecomp.sdc.be.model.ConsumerDefinition; -import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; -import org.openecomp.sdc.be.resources.data.auditing.AuditingGenericEvent; -import org.openecomp.sdc.be.resources.data.auditing.ConsumerEvent; -import org.openecomp.sdc.be.resources.data.auditing.model.CommonAuditData; -import org.openecomp.sdc.common.util.ThreadLocalsHolder; -import org.openecomp.sdc.test.utils.TestConfigurationProvider; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; -import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.*; - -@RunWith(MockitoJUnitRunner.class) -public class AuditConsumerEventFuncTest { - private AuditingManager auditingManager; - private ConsumerDefinition consumer; - - @Mock - private static AuditCassandraDao cassandraDao; - @Mock - private static AuditingDao auditingDao; - @Mock - private static Configuration.ElasticSearchConfig esConfig; - - @Captor - private ArgumentCaptor<ConsumerEvent> eventCaptor; - - @Before - public void setUp() { - init(esConfig); - auditingManager = new AuditingManager(auditingDao, cassandraDao, new TestConfigurationProvider()); - consumer = new ConsumerDefinition(); - consumer.setConsumerName(USER_ID); - ThreadLocalsHolder.setUuid(REQUEST_ID); - } - - @Test - public void testNewAddEcompUserCredEvent() { - AuditEventFactory factory = new AuditConsumerEventFactory( - AuditingActionEnum.ADD_ECOMP_USER_CREDENTIALS, - CommonAuditData.newBuilder() - .description(DESCRIPTION) - .status(STATUS_OK) - .requestId(REQUEST_ID) - .serviceInstanceId(SERVICE_INSTANCE_ID) - .build(), - modifier, consumer); - - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.ADD_ECOMP_USER_CREDENTIALS.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); - when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); - - assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_ADD_ECOMP_USER_CRED_LOG_STR); - verifyConsumerEvent(AuditingActionEnum.ADD_ECOMP_USER_CREDENTIALS.getName()); - } - - @Test - public void testNewGetEcompUserCredEvent() { - AuditEventFactory factory = new AuditConsumerEventFactory( - AuditingActionEnum.GET_ECOMP_USER_CREDENTIALS, - CommonAuditData.newBuilder() - .description(DESCRIPTION) - .status(STATUS_OK) - .requestId(REQUEST_ID) - .serviceInstanceId(SERVICE_INSTANCE_ID) - .build(), - modifier, consumer); - - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.GET_ECOMP_USER_CREDENTIALS.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); - when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); - - assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_GET_ECOMP_USER_CRED_LOG_STR); - verifyConsumerEvent(AuditingActionEnum.GET_ECOMP_USER_CREDENTIALS.getName()); - } - - @Test - public void buildConsumerNameWhenAllFieldsAreProvided() { - consumer.setConsumerName(CONSUMER_NAME); - consumer.setConsumerSalt(CONSUMER_SALT); - consumer.setConsumerPassword(CONSUMER_PASSWORD); - assertEquals(CONSUMER_NAME + "," + CONSUMER_SALT + "," + CONSUMER_PASSWORD, AuditConsumerEventFactory.buildConsumerName(consumer)); - } - - @Test - public void buildConsumerNameWhenSaltIsNull() { - consumer.setConsumerName(CONSUMER_NAME); - consumer.setConsumerPassword(CONSUMER_PASSWORD); - assertEquals(CONSUMER_NAME + "," + CONSUMER_PASSWORD, AuditConsumerEventFactory.buildConsumerName(consumer)); - } - - @Test - public void buildConsumerNameWhenNameIsNull() { - consumer.setConsumerName(null); - consumer.setConsumerSalt(CONSUMER_SALT); - consumer.setConsumerPassword(CONSUMER_PASSWORD); - assertEquals(CONSUMER_SALT + "," + CONSUMER_PASSWORD, AuditConsumerEventFactory.buildConsumerName(consumer)); - } - - @Test - public void buildConsumerNameWhenNameAndPwAreNull() { - consumer.setConsumerName(null); - consumer.setConsumerSalt(CONSUMER_SALT); - assertEquals(CONSUMER_SALT, AuditConsumerEventFactory.buildConsumerName(consumer)); - } - - @Test - public void buildConsumerNameWhenNameAndSaltAreNull() { - consumer.setConsumerName(null); - consumer.setConsumerPassword(CONSUMER_PASSWORD); - assertEquals(CONSUMER_PASSWORD, AuditConsumerEventFactory.buildConsumerName(consumer)); - } - - @Test - public void buildConsumerNameWhenConsumerObjectIsNull() { - assertEquals("", AuditConsumerEventFactory.buildConsumerName(null)); - } - - private void verifyConsumerEvent(String action) { - verify(cassandraDao).saveRecord(eventCaptor.capture()); - ConsumerEvent storedEvent = eventCaptor.getValue(); - assertThat(storedEvent.getModifier()).isEqualTo(MODIFIER_UID); - assertThat(storedEvent.getDesc()).isEqualTo(DESCRIPTION); - assertThat(storedEvent.getStatus()).isEqualTo(STATUS_OK); - assertThat(storedEvent.getRequestId()).isEqualTo(REQUEST_ID); - assertThat(storedEvent.getServiceInstanceId()).isNull(); - assertThat(storedEvent.getAction()).isEqualTo(action); - assertThat(storedEvent.getEcompUser()).isEqualTo(USER_ID); - } -} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/AuditTestUtils.java b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/AuditTestUtils.java index 9178900142..017a16b312 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/AuditTestUtils.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/AuditTestUtils.java @@ -20,7 +20,6 @@ package org.openecomp.sdc.be.auditing.impl; -import org.openecomp.sdc.be.config.Configuration; import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; import org.openecomp.sdc.be.model.User; @@ -182,12 +181,6 @@ public class AuditTestUtils { public final static String EXPECTED_AUTH_REQUEST_LOG_STR = "ACTION = \"" + AuditingActionEnum.AUTH_REQUEST.getName() + "\" URL = \"" + AUTH_URL + "\" USER = \"" + USER_ID + "\" AUTH_STATUS = \"" + AUTH_STATUS + "\" REALM = \"" + REALM + "\""; - final static String EXPECTED_ADD_ECOMP_USER_CRED_LOG_STR = "ACTION = \"" + AuditingActionEnum.ADD_ECOMP_USER_CREDENTIALS.getName() + - "\" MODIFIER = \"" + MODIFIER_UID + "\" ECOMP_USER = \"" + USER_ID + "\" STATUS = \"" + STATUS_OK + "\" DESC = \"" + DESCRIPTION + "\""; - - final static String EXPECTED_GET_ECOMP_USER_CRED_LOG_STR = "ACTION = \"" + AuditingActionEnum.GET_ECOMP_USER_CREDENTIALS.getName() + - "\" MODIFIER = \"" + MODIFIER_UID + "\" ECOMP_USER = \"" + USER_ID + "\" STATUS = \"" + STATUS_OK + "\" DESC = \"" + DESCRIPTION + "\""; - public final static String EXPECTED_ADD_CATEGORY_LOG_STR = "ACTION = \"" + AuditingActionEnum.ADD_CATEGORY.getName() + "\" MODIFIER = \"" + MODIFIER_UID + "\" CATEGORY_NAME = \"" + CATEGORY + "\" SUB_CATEGORY_NAME = \"" + SUB_CATEGORY + "\" GROUPING_NAME = \"" + GROUPING_NAME + "\" RESOURCE_TYPE = \"" + RESOURCE_TYPE + "\" STATUS = \"" + STATUS_OK + "\" DESC = \"" + DESCRIPTION + "\""; @@ -252,12 +245,11 @@ public class AuditTestUtils { public static User user; public static User modifier; - public static void init(Configuration.ElasticSearchConfig esConfig) { + public static void init() { String appConfigDir = "src/test/resources/config/catalog-be"; ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir); ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); configurationManager.getConfiguration().setDisableAudit(false); - configurationManager.getConfiguration().setElasticSearch(esConfig); user = new User(); modifier = new User(); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/AuditingManagerTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/AuditingManagerTest.java index 203a70df78..e672ced134 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/AuditingManagerTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/AuditingManagerTest.java @@ -19,9 +19,6 @@ */ package org.openecomp.sdc.be.auditing.impl; -import static org.hamcrest.CoreMatchers.is; -import static org.junit.Assert.assertThat; - import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -29,13 +26,14 @@ import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.be.auditing.api.AuditEventFactory; -import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.cassandra.AuditCassandraDao; import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus; -import org.openecomp.sdc.be.dao.impl.AuditingDao; import org.openecomp.sdc.be.resources.data.auditing.AuditingGenericEvent; import org.openecomp.sdc.test.utils.TestConfigurationProvider; +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; + @RunWith(MockitoJUnitRunner.class) public class AuditingManagerTest { @@ -46,21 +44,16 @@ public class AuditingManagerTest { @Mock private AuditingGenericEvent auditEvent; @Mock - private AuditingDao auditingDao; - @Mock private AuditCassandraDao cassandraDao; @Mock private AuditEventFactory eventFactory; @Before public void setUp() throws Exception { - auditingManager = new AuditingManager(auditingDao, cassandraDao, new TestConfigurationProvider()); + auditingManager = new AuditingManager(cassandraDao, new TestConfigurationProvider()); Mockito.when(eventFactory.getLogMessage()).thenReturn(msg); Mockito.when(eventFactory.getDbEvent()).thenReturn(auditEvent); - Mockito.when(eventFactory.getAuditingEsType()).thenReturn(MSG); Mockito.when(cassandraDao.saveRecord(auditEvent)).thenReturn(CassandraOperationStatus.OK); - Mockito.when(auditingDao.addRecord(auditEvent, MSG)).thenReturn( - ActionStatus.OK); } @Test @@ -68,7 +61,6 @@ public class AuditingManagerTest { String result = auditingManager.auditEvent(eventFactory); assertThat(result, is(msg)); Mockito.verify(cassandraDao).saveRecord(auditEvent); - Mockito.verify(auditingDao).addRecord(auditEvent, MSG); } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/category/AuditCategoryEventFuncTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/category/AuditCategoryEventFuncTest.java index 4c0a672f29..5db9c26c3e 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/category/AuditCategoryEventFuncTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/category/AuditCategoryEventFuncTest.java @@ -30,11 +30,8 @@ import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.be.auditing.api.AuditEventFactory; import org.openecomp.sdc.be.auditing.impl.AuditingManager; -import org.openecomp.sdc.be.config.Configuration; -import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.cassandra.AuditCassandraDao; import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus; -import org.openecomp.sdc.be.dao.impl.AuditingDao; import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; import org.openecomp.sdc.be.resources.data.auditing.AuditingGenericEvent; import org.openecomp.sdc.be.resources.data.auditing.CategoryEvent; @@ -44,10 +41,20 @@ import org.openecomp.sdc.test.utils.TestConfigurationProvider; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.*; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.CATEGORY; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DESCRIPTION; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_ADD_CATEGORY_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.GROUPING_NAME; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.MODIFIER_UID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.REQUEST_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.RESOURCE_TYPE; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.SERVICE_INSTANCE_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.STATUS_OK; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.SUB_CATEGORY; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.init; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.modifier; @RunWith(MockitoJUnitRunner.class) public class AuditCategoryEventFuncTest { @@ -55,18 +62,14 @@ public class AuditCategoryEventFuncTest { @Mock private static AuditCassandraDao cassandraDao; - @Mock - private static AuditingDao auditingDao; - @Mock - private static Configuration.ElasticSearchConfig esConfig; @Captor private ArgumentCaptor<CategoryEvent> eventCaptor; @Before public void setUp() { - init(esConfig); - auditingManager = new AuditingManager(auditingDao, cassandraDao, new TestConfigurationProvider()); + init(); + auditingManager = new AuditingManager(cassandraDao, new TestConfigurationProvider()); ThreadLocalsHolder.setUuid(REQUEST_ID); } @@ -82,8 +85,6 @@ public class AuditCategoryEventFuncTest { .build(), modifier, CATEGORY, SUB_CATEGORY, GROUPING_NAME, RESOURCE_TYPE); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.ADD_CATEGORY.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(builder)).isEqualTo(EXPECTED_ADD_CATEGORY_LOG_STR); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/category/AuditGetCategoryHierarchyEventTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/category/AuditGetCategoryHierarchyEventTest.java index f887355f37..6672e1a0a9 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/category/AuditGetCategoryHierarchyEventTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/category/AuditGetCategoryHierarchyEventTest.java @@ -30,11 +30,8 @@ import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.be.auditing.api.AuditEventFactory; import org.openecomp.sdc.be.auditing.impl.AuditingManager; -import org.openecomp.sdc.be.config.Configuration; -import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.cassandra.AuditCassandraDao; import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus; -import org.openecomp.sdc.be.dao.impl.AuditingDao; import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; import org.openecomp.sdc.be.resources.data.auditing.AuditingGenericEvent; import org.openecomp.sdc.be.resources.data.auditing.GetCategoryHierarchyEvent; @@ -43,10 +40,16 @@ import org.openecomp.sdc.test.utils.TestConfigurationProvider; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.*; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DESCRIPTION; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_GET_CATEGORY_HIERARCHY_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.REQUEST_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.STATUS_OK; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.USER_DETAILS; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.USER_UID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.init; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.user; @RunWith(MockitoJUnitRunner.class) public class AuditGetCategoryHierarchyEventTest { @@ -54,17 +57,13 @@ public class AuditGetCategoryHierarchyEventTest { private static AuditCassandraDao cassandraDao; @Captor private ArgumentCaptor<GetCategoryHierarchyEvent> eventCaptor; - @Mock - private static AuditingDao auditingDao; - @Mock - private Configuration.ElasticSearchConfig esConfig; private AuditingManager auditingManager; @Before public void setUp() { - init(esConfig); - auditingManager = new AuditingManager(auditingDao, cassandraDao, new TestConfigurationProvider()); + init(); + auditingManager = new AuditingManager(cassandraDao, new TestConfigurationProvider()); } @Test @@ -76,8 +75,6 @@ public class AuditGetCategoryHierarchyEventTest { .requestId(REQUEST_ID) .build(), user, USER_DETAILS); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.GET_CATEGORY_HIERARCHY.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_GET_CATEGORY_HIERARCHY_LOG_STR); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/distribution/AuditDistributionEngineEventFactoryManagerTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/distribution/AuditDistributionEngineEventFactoryManagerTest.java index b7b6cb9ab4..1b1f61d3a3 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/distribution/AuditDistributionEngineEventFactoryManagerTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/distribution/AuditDistributionEngineEventFactoryManagerTest.java @@ -19,13 +19,6 @@ */ package org.openecomp.sdc.be.auditing.impl.distribution; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.core.IsInstanceOf.instanceOf; -import static org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum.ADD_KEY_TO_TOPIC_ACL; -import static org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum.CREATE_DISTRIBUTION_TOPIC; -import static org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum.GET_UEB_CLUSTER; -import static org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum.REMOVE_KEY_FROM_TOPIC_ACL; - import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -33,6 +26,13 @@ import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.be.auditing.api.AuditEventFactory; import org.openecomp.sdc.be.resources.data.auditing.model.DistributionTopicData; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.core.IsInstanceOf.instanceOf; +import static org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum.ADD_KEY_TO_TOPIC_ACL; +import static org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum.CREATE_DISTRIBUTION_TOPIC; +import static org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum.GET_UEB_CLUSTER; +import static org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum.REMOVE_KEY_FROM_TOPIC_ACL; + @RunWith(MockitoJUnitRunner.class) public class AuditDistributionEngineEventFactoryManagerTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/distribution/AuditDistributionEngineEventMigrationFactoryTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/distribution/AuditDistributionEngineEventMigrationFactoryTest.java index 6d4dd6d823..e0e267b346 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/distribution/AuditDistributionEngineEventMigrationFactoryTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/distribution/AuditDistributionEngineEventMigrationFactoryTest.java @@ -19,8 +19,6 @@ */ package org.openecomp.sdc.be.auditing.impl.distribution; -import static org.junit.Assert.assertEquals; - import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -30,6 +28,8 @@ import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; import org.openecomp.sdc.be.resources.data.auditing.model.CommonAuditData; import org.openecomp.sdc.be.resources.data.auditing.model.DistributionTopicData; +import static org.junit.Assert.assertEquals; + @RunWith(MockitoJUnitRunner.class) public class AuditDistributionEngineEventMigrationFactoryTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/distribution/AuditDistributionEngineFuncTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/distribution/AuditDistributionEngineFuncTest.java index f184c78c65..0b099c0e81 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/distribution/AuditDistributionEngineFuncTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/distribution/AuditDistributionEngineFuncTest.java @@ -30,11 +30,8 @@ import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.be.auditing.api.AuditEventFactory; import org.openecomp.sdc.be.auditing.impl.AuditingManager; -import org.openecomp.sdc.be.config.Configuration; -import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.cassandra.AuditCassandraDao; import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus; -import org.openecomp.sdc.be.dao.impl.AuditingDao; import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; import org.openecomp.sdc.be.resources.data.auditing.AuditingGenericEvent; import org.openecomp.sdc.be.resources.data.auditing.DistributionEngineEvent; @@ -45,10 +42,22 @@ import org.openecomp.sdc.test.utils.TestConfigurationProvider; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.*; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DESCRIPTION; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DIST_API_KEY; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DIST_CONSUMER_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DIST_ENV_NAME; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DIST_NOTIFY_TOPIC; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DIST_ROLE; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DIST_STATUS_TOPIC; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_DIST_ADD_KEY_ENGINE_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_DIST_CREATE_TOPIC_ENGINE_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_DIST_REG_ENGINE_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.REQUEST_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.SERVICE_INSTANCE_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.STATUS_OK; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.init; @RunWith(MockitoJUnitRunner.class) public class AuditDistributionEngineFuncTest { @@ -56,18 +65,14 @@ public class AuditDistributionEngineFuncTest { @Mock private static AuditCassandraDao cassandraDao; - @Mock - private static AuditingDao auditingDao; - @Mock - private static Configuration.ElasticSearchConfig esConfig; @Captor private ArgumentCaptor<DistributionEngineEvent> eventCaptor; @Before public void setUp() { - init(esConfig); - auditingManager = new AuditingManager(auditingDao, cassandraDao, new TestConfigurationProvider()); + init(); + auditingManager = new AuditingManager(cassandraDao, new TestConfigurationProvider()); ThreadLocalsHolder.setUuid(REQUEST_ID); } @@ -87,8 +92,6 @@ public class AuditDistributionEngineFuncTest { .build(), DIST_API_KEY, DIST_ENV_NAME, DIST_ROLE); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.ADD_KEY_TO_TOPIC_ACL.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_DIST_ADD_KEY_ENGINE_LOG_STR); @@ -110,8 +113,6 @@ public class AuditDistributionEngineFuncTest { .build(), DIST_API_KEY, DIST_ENV_NAME, DIST_ROLE); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.CREATE_DISTRIBUTION_TOPIC.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_DIST_CREATE_TOPIC_ENGINE_LOG_STR); @@ -134,8 +135,6 @@ public class AuditDistributionEngineFuncTest { .build(), DIST_CONSUMER_ID, DIST_API_KEY, DIST_ENV_NAME); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.DISTRIBUTION_REGISTER.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_DIST_REG_ENGINE_LOG_STR); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/distribution/AuditDistributionEventFuncTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/distribution/AuditDistributionEventFuncTest.java index ab3b054fd0..5f1cb984cb 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/distribution/AuditDistributionEventFuncTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/distribution/AuditDistributionEventFuncTest.java @@ -31,22 +31,51 @@ import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.be.auditing.api.AuditEventFactory; import org.openecomp.sdc.be.auditing.impl.AuditGetUebClusterEventFactory; import org.openecomp.sdc.be.auditing.impl.AuditingManager; -import org.openecomp.sdc.be.config.Configuration; -import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.cassandra.AuditCassandraDao; import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus; -import org.openecomp.sdc.be.dao.impl.AuditingDao; -import org.openecomp.sdc.be.resources.data.auditing.*; -import org.openecomp.sdc.be.resources.data.auditing.model.*; +import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; +import org.openecomp.sdc.be.resources.data.auditing.AuditingGenericEvent; +import org.openecomp.sdc.be.resources.data.auditing.AuditingGetUebClusterEvent; +import org.openecomp.sdc.be.resources.data.auditing.DistributionDeployEvent; +import org.openecomp.sdc.be.resources.data.auditing.DistributionDownloadEvent; +import org.openecomp.sdc.be.resources.data.auditing.DistributionNotificationEvent; +import org.openecomp.sdc.be.resources.data.auditing.DistributionStatusEvent; +import org.openecomp.sdc.be.resources.data.auditing.model.CommonAuditData; +import org.openecomp.sdc.be.resources.data.auditing.model.DistributionData; +import org.openecomp.sdc.be.resources.data.auditing.model.OperationalEnvAuditData; +import org.openecomp.sdc.be.resources.data.auditing.model.ResourceCommonInfo; +import org.openecomp.sdc.be.resources.data.auditing.model.ResourceVersionInfo; import org.openecomp.sdc.common.util.ThreadLocalsHolder; import org.openecomp.sdc.test.utils.TestConfigurationProvider; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.*; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.CURRENT_STATE; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.CURRENT_VERSION; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DESCRIPTION; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DIST_CONSUMER_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DIST_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DIST_RESOURCE_URL; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DIST_STATUS_TIME; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_DISTRIB_DEPLOY_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_DISTRIB_NOTIFICATION_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_DIST_DOWNLOAD_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_DIST_STATUS_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_GET_UEB_CLUSTER_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.OP_ENV_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.REQUEST_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.RESOURCE_NAME; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.RESOURCE_TYPE; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.SERVICE_INSTANCE_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.STATUS_OK; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.TENANT_CONTEXT; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.TOPIC_NAME; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.USER_UID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.VNF_WORKLOAD_CONTEXT; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.init; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.user; @RunWith(MockitoJUnitRunner.class) public class AuditDistributionEventFuncTest { @@ -55,18 +84,14 @@ public class AuditDistributionEventFuncTest { @Mock private static AuditCassandraDao cassandraDao; - @Mock - private static AuditingDao auditingDao; - @Mock - private static Configuration.ElasticSearchConfig esConfig; @Captor private ArgumentCaptor<AuditingGenericEvent> eventCaptor; @Before public void setUp() { - init(esConfig); - auditingManager = new AuditingManager(auditingDao, cassandraDao, new TestConfigurationProvider()); + init(); + auditingManager = new AuditingManager(cassandraDao, new TestConfigurationProvider()); ThreadLocalsHolder.setUuid(REQUEST_ID); } @@ -87,8 +112,6 @@ public class AuditDistributionEventFuncTest { DIST_ID, user, TOPIC_NAME, new OperationalEnvAuditData(OP_ENV_ID, VNF_WORKLOAD_CONTEXT, TENANT_CONTEXT)); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.DISTRIBUTION_NOTIFY.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_DISTRIB_NOTIFICATION_LOG_STR); @@ -107,8 +130,6 @@ public class AuditDistributionEventFuncTest { new DistributionData(DIST_CONSUMER_ID, DIST_RESOURCE_URL), DIST_ID, TOPIC_NAME, DIST_STATUS_TIME); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.DISTRIBUTION_STATUS.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_DIST_STATUS_LOG_STR); @@ -126,8 +147,6 @@ public class AuditDistributionEventFuncTest { .build(), new DistributionData(DIST_CONSUMER_ID, DIST_RESOURCE_URL)); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.DISTRIBUTION_ARTIFACT_DOWNLOAD.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_DIST_DOWNLOAD_LOG_STR); @@ -146,8 +165,6 @@ public class AuditDistributionEventFuncTest { new ResourceCommonInfo(RESOURCE_NAME,RESOURCE_TYPE), DIST_ID, user, CURRENT_VERSION); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.DISTRIBUTION_DEPLOY.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_DISTRIB_DEPLOY_LOG_STR); @@ -165,8 +182,6 @@ public class AuditDistributionEventFuncTest { .build(), DIST_CONSUMER_ID); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.GET_UEB_CLUSTER.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).contains(EXPECTED_GET_UEB_CLUSTER_LOG_STR); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/ecompopenv/AuditEcompOpEnvEventTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/ecompopenv/AuditEcompOpEnvEventTest.java index ebae816845..de73cf8ce3 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/ecompopenv/AuditEcompOpEnvEventTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/ecompopenv/AuditEcompOpEnvEventTest.java @@ -31,11 +31,8 @@ import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.be.auditing.api.AuditEventFactory; import org.openecomp.sdc.be.auditing.impl.AuditEcompOpEnvEventFactory; import org.openecomp.sdc.be.auditing.impl.AuditingManager; -import org.openecomp.sdc.be.config.Configuration; -import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.cassandra.AuditCassandraDao; import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus; -import org.openecomp.sdc.be.dao.impl.AuditingDao; import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; import org.openecomp.sdc.be.resources.data.auditing.AuditingGenericEvent; import org.openecomp.sdc.be.resources.data.auditing.EcompOperationalEnvironmentEvent; @@ -43,10 +40,17 @@ import org.openecomp.sdc.test.utils.TestConfigurationProvider; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.*; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_CREATE_OP_ENV_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_UNKNOWN_NOTIFICATION_OP_ENV_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_UNSUPPORTED_TYPE_OP_ENV_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.OP_ENV_ACTION; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.OP_ENV_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.OP_ENV_NAME; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.OP_ENV_TYPE; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.TENANT_CONTEXT; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.init; @RunWith(MockitoJUnitRunner.class) public class AuditEcompOpEnvEventTest { @@ -55,18 +59,14 @@ public class AuditEcompOpEnvEventTest { @Mock private static AuditCassandraDao cassandraDao; - @Mock - private static AuditingDao auditingDao; - @Mock - private static Configuration.ElasticSearchConfig esConfig; @Captor private ArgumentCaptor<EcompOperationalEnvironmentEvent> eventCaptor; @Before public void setUp() { - init(esConfig); - auditingManager = new AuditingManager(auditingDao, cassandraDao, new TestConfigurationProvider()); + init(); + auditingManager = new AuditingManager(cassandraDao, new TestConfigurationProvider()); } @Test @@ -74,8 +74,6 @@ public class AuditEcompOpEnvEventTest { AuditEventFactory factory = new AuditEcompOpEnvEventFactory(AuditingActionEnum.CREATE_ENVIRONMENT, OP_ENV_ID, OP_ENV_NAME, OP_ENV_TYPE, OP_ENV_ACTION, TENANT_CONTEXT); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.CREATE_ENVIRONMENT.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_CREATE_OP_ENV_LOG_STR); @@ -87,8 +85,6 @@ public class AuditEcompOpEnvEventTest { AuditEventFactory factory = new AuditEcompOpEnvEventFactory(AuditingActionEnum.UNSUPPORTED_ENVIRONMENT_TYPE, OP_ENV_ID, OP_ENV_NAME, OP_ENV_TYPE, OP_ENV_ACTION, TENANT_CONTEXT); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.UNSUPPORTED_ENVIRONMENT_TYPE.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_UNSUPPORTED_TYPE_OP_ENV_LOG_STR); @@ -100,8 +96,6 @@ public class AuditEcompOpEnvEventTest { AuditEventFactory factory = new AuditEcompOpEnvEventFactory(AuditingActionEnum.UNKNOWN_ENVIRONMENT_NOTIFICATION, OP_ENV_ID, OP_ENV_NAME, OP_ENV_TYPE, OP_ENV_ACTION, TENANT_CONTEXT); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.UNKNOWN_ENVIRONMENT_NOTIFICATION.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_UNKNOWN_NOTIFICATION_OP_ENV_LOG_STR); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/externalapi/AuditActivateServiceExternalApiEventFactoryTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/externalapi/AuditActivateServiceExternalApiEventFactoryTest.java index e6aaec97ae..e2598f1499 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/externalapi/AuditActivateServiceExternalApiEventFactoryTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/externalapi/AuditActivateServiceExternalApiEventFactoryTest.java @@ -20,110 +20,31 @@ package org.openecomp.sdc.be.auditing.impl.externalapi; -import org.junit.Before; import org.junit.Test; -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; -import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.*; - -import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; -import org.mockito.Captor; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; -import org.openecomp.sdc.be.auditing.api.AuditEventFactory; -import org.openecomp.sdc.be.auditing.impl.AuditingManager; -import org.openecomp.sdc.be.config.Configuration; -import org.openecomp.sdc.be.dao.api.ActionStatus; -import org.openecomp.sdc.be.dao.cassandra.AuditCassandraDao; -import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus; -import org.openecomp.sdc.be.dao.impl.AuditingDao; -import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; -import org.openecomp.sdc.be.resources.data.auditing.AuditingGenericEvent; -import org.openecomp.sdc.be.resources.data.auditing.ExternalApiEvent; +import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.resources.data.auditing.model.CommonAuditData; +import org.openecomp.sdc.be.resources.data.auditing.model.CommonAuditData.Builder; import org.openecomp.sdc.be.resources.data.auditing.model.DistributionData; import org.openecomp.sdc.be.resources.data.auditing.model.ResourceCommonInfo; -import org.openecomp.sdc.test.utils.TestConfigurationProvider; +import org.openecomp.sdc.be.resources.data.auditing.model.ResourceVersionInfo; + -@RunWith(MockitoJUnitRunner.class) public class AuditActivateServiceExternalApiEventFactoryTest { private AuditActivateServiceExternalApiEventFactory createTestSubject() { - CommonAuditData.Builder newBuilder = CommonAuditData.newBuilder() - .description(DESCRIPTION) - .status(STATUS_OK) - .requestId(REQUEST_ID) - .serviceInstanceId(SERVICE_INSTANCE_ID); + Builder newBuilder = CommonAuditData.newBuilder(); CommonAuditData commonAuData = newBuilder.build(); - return new AuditActivateServiceExternalApiEventFactory(commonAuData, - new ResourceCommonInfo(RESOURCE_TYPE), - new DistributionData(DIST_CONSUMER_ID,DIST_RESOURCE_URL),INVARIANT_UUID, - modifier); - } - - private AuditingManager auditingManager; - - @Mock - private static AuditCassandraDao cassandraDao; - @Mock - private static AuditingDao auditingDao; - @Mock - private static Configuration.ElasticSearchConfig esConfig; - - @Captor - private ArgumentCaptor<ExternalApiEvent> eventCaptor; - - @Before - public void setUp() { - init(esConfig); - auditingManager = new AuditingManager(auditingDao, cassandraDao, new TestConfigurationProvider()); + ResourceVersionInfo.Builder newBuilder2 = ResourceVersionInfo.newBuilder(); + return new AuditActivateServiceExternalApiEventFactory(commonAuData,new ResourceCommonInfo(),new DistributionData("",""),"", new User()); } @Test public void testGetLogMessage() throws Exception { AuditActivateServiceExternalApiEventFactory testSubject; + String result; // default test testSubject = createTestSubject(); - testSubject.getLogMessage(); - assertThat(testSubject.getLogMessage()).isNotBlank(); - assertThat(testSubject.getLogMessage()).isEqualTo(EXPECTED_ACTIVATE_SERVICE_API_LOG_STR); - } - - @Test - public void testActivateServiceEvent() { - AuditEventFactory builder = new AuditActivateServiceExternalApiEventFactory( - CommonAuditData.newBuilder() - .description(DESCRIPTION) - .status(STATUS_OK) - .requestId(REQUEST_ID) - .serviceInstanceId(SERVICE_INSTANCE_ID) - .build(), - new ResourceCommonInfo(RESOURCE_NAME, RESOURCE_TYPE), - new DistributionData(DIST_CONSUMER_ID, DIST_RESOURCE_URL), - INVARIANT_UUID, modifier); - - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.ACTIVATE_SERVICE_BY_API.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); - when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); - - assertThat(auditingManager.auditEvent(builder)).isEqualTo(EXPECTED_ACTIVATE_SERVICE_API_LOG_STR); - verifyExternalApiEvent(AuditingActionEnum.ACTIVATE_SERVICE_BY_API.getName()); - - } - - private void verifyExternalApiEvent(String action) { - verify(cassandraDao).saveRecord(eventCaptor.capture()); - ExternalApiEvent storedEvent = eventCaptor.getValue(); - assertThat(storedEvent.getModifier()).isEqualTo(MODIFIER_UID); - assertThat(storedEvent.getDesc()).isEqualTo(DESCRIPTION); - assertThat(storedEvent.getStatus()).isEqualTo(STATUS_OK); - assertThat(storedEvent.getServiceInstanceId()).isEqualTo(SERVICE_INSTANCE_ID); - assertThat(storedEvent.getAction()).isEqualTo(action); - assertThat(storedEvent.getResourceType()).isEqualTo(RESOURCE_TYPE); + result = testSubject.getLogMessage(); } } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/externalapi/AuditChangeLifecycleExternalApiEventFactoryTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/externalapi/AuditChangeLifecycleExternalApiEventFactoryTest.java index 04fa768fb0..ce9645f31f 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/externalapi/AuditChangeLifecycleExternalApiEventFactoryTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/externalapi/AuditChangeLifecycleExternalApiEventFactoryTest.java @@ -20,131 +20,32 @@ package org.openecomp.sdc.be.auditing.impl.externalapi; -import org.junit.Before; import org.junit.Test; -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; -import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.*; - -import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; -import org.mockito.Captor; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; -import org.openecomp.sdc.be.auditing.api.AuditEventFactory; -import org.openecomp.sdc.be.auditing.impl.AuditingManager; -import org.openecomp.sdc.be.config.Configuration; -import org.openecomp.sdc.be.dao.api.ActionStatus; -import org.openecomp.sdc.be.dao.cassandra.AuditCassandraDao; -import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus; -import org.openecomp.sdc.be.dao.impl.AuditingDao; -import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; -import org.openecomp.sdc.be.resources.data.auditing.AuditingGenericEvent; -import org.openecomp.sdc.be.resources.data.auditing.ExternalApiEvent; +import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.resources.data.auditing.model.CommonAuditData; import org.openecomp.sdc.be.resources.data.auditing.model.DistributionData; import org.openecomp.sdc.be.resources.data.auditing.model.ResourceCommonInfo; import org.openecomp.sdc.be.resources.data.auditing.model.ResourceVersionInfo; -import org.openecomp.sdc.test.utils.TestConfigurationProvider; -@RunWith(MockitoJUnitRunner.class) + public class AuditChangeLifecycleExternalApiEventFactoryTest { private AuditChangeLifecycleExternalApiEventFactory createTestSubject() { - CommonAuditData.Builder newBuilder = CommonAuditData.newBuilder() - .description(DESCRIPTION) - .status(STATUS_OK) - .requestId(REQUEST_ID) - .serviceInstanceId(SERVICE_INSTANCE_ID); + org.openecomp.sdc.be.resources.data.auditing.model.CommonAuditData.Builder newBuilder = CommonAuditData.newBuilder(); CommonAuditData commonAuData = newBuilder.build(); - ResourceVersionInfo.Builder newBuilder2 = ResourceVersionInfo.newBuilder() - .artifactUuid(ARTIFACT_UUID) - .state(PREV_RESOURCE_STATE) - .version(PREV_RESOURCE_VERSION); - ResourceVersionInfo resAuData1 = newBuilder2.build(); - ResourceVersionInfo.Builder newBuilder3 = ResourceVersionInfo.newBuilder() - .artifactUuid(ARTIFACT_UUID) - .state(CURRENT_STATE) - .version(CURRENT_VERSION); - ResourceVersionInfo resAuData2 = newBuilder3.build(); - return new AuditChangeLifecycleExternalApiEventFactory(commonAuData, - new ResourceCommonInfo(RESOURCE_NAME, RESOURCE_TYPE), - new DistributionData(DIST_CONSUMER_ID,DIST_RESOURCE_URL), - resAuData1, - resAuData2, - INVARIANT_UUID, - modifier); - } - - private AuditingManager auditingManager; - @Mock - private static AuditCassandraDao cassandraDao; - @Mock - private static AuditingDao auditingDao; - @Mock - private static Configuration.ElasticSearchConfig esConfig; - - @Captor - private ArgumentCaptor<ExternalApiEvent> eventCaptor; - - @Before - public void setUp() { - init(esConfig); - auditingManager = new AuditingManager(auditingDao, cassandraDao, new TestConfigurationProvider()); + ResourceVersionInfo.Builder newBuilder2 = ResourceVersionInfo.newBuilder(); + ResourceVersionInfo resAuData = newBuilder2.build(); + return new AuditChangeLifecycleExternalApiEventFactory(commonAuData,new ResourceCommonInfo(), new DistributionData("",""), + resAuData, resAuData, "", new User()); } @Test public void testGetLogMessage() throws Exception { AuditChangeLifecycleExternalApiEventFactory testSubject; + String result; // default test testSubject = createTestSubject(); - assertThat(testSubject.getLogMessage()).isNotBlank(); - assertThat(testSubject.getLogMessage()).isEqualTo(EXPECTED_CHANGE_LIFECYCLE_EXTERNAL_API_LOG_STR); - } - - @Test - public void testChangeLifecycleEvent() { - AuditEventFactory factory = new AuditChangeLifecycleExternalApiEventFactory( - CommonAuditData.newBuilder() - .description(DESCRIPTION) - .status(STATUS_OK) - .requestId(REQUEST_ID) - .serviceInstanceId(SERVICE_INSTANCE_ID) - .build(), - new ResourceCommonInfo(RESOURCE_NAME, RESOURCE_TYPE), - new DistributionData(DIST_CONSUMER_ID, DIST_RESOURCE_URL), - ResourceVersionInfo.newBuilder() - .artifactUuid(ARTIFACT_UUID) - .state(PREV_RESOURCE_STATE) - .version(PREV_RESOURCE_VERSION) - .build(), - ResourceVersionInfo.newBuilder() - .artifactUuid(ARTIFACT_UUID) - .state(CURRENT_STATE) - .version(CURRENT_VERSION) - .build(), - INVARIANT_UUID, modifier); - - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.CHANGE_LIFECYCLE_BY_API.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); - when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); - - assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_CHANGE_LIFECYCLE_EXTERNAL_API_LOG_STR); - verifyExternalApiEvent(AuditingActionEnum.CHANGE_LIFECYCLE_BY_API.getName()); - } - - private void verifyExternalApiEvent(String action) { - verify(cassandraDao).saveRecord(eventCaptor.capture()); - ExternalApiEvent storedEvent = eventCaptor.getValue(); - assertThat(storedEvent.getModifier()).isEqualTo(MODIFIER_UID); - assertThat(storedEvent.getDesc()).isEqualTo(DESCRIPTION); - assertThat(storedEvent.getStatus()).isEqualTo(STATUS_OK); - assertThat(storedEvent.getServiceInstanceId()).isEqualTo(SERVICE_INSTANCE_ID); - assertThat(storedEvent.getAction()).isEqualTo(action); - assertThat(storedEvent.getResourceType()).isEqualTo(RESOURCE_TYPE); + result = testSubject.getLogMessage(); } } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/externalapi/AuditCreateResourceExternalApiEventFactoryTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/externalapi/AuditCreateResourceExternalApiEventFactoryTest.java index 06f91c561d..d04ba231d8 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/externalapi/AuditCreateResourceExternalApiEventFactoryTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/externalapi/AuditCreateResourceExternalApiEventFactoryTest.java @@ -20,121 +20,30 @@ package org.openecomp.sdc.be.auditing.impl.externalapi; -import org.junit.Before; import org.junit.Test; -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; -import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.*; - -import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; -import org.mockito.Captor; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; -import org.openecomp.sdc.be.auditing.api.AuditEventFactory; -import org.openecomp.sdc.be.auditing.impl.AuditingManager; -import org.openecomp.sdc.be.config.Configuration; -import org.openecomp.sdc.be.dao.api.ActionStatus; -import org.openecomp.sdc.be.dao.cassandra.AuditCassandraDao; -import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus; -import org.openecomp.sdc.be.dao.impl.AuditingDao; -import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; -import org.openecomp.sdc.be.resources.data.auditing.AuditingGenericEvent; -import org.openecomp.sdc.be.resources.data.auditing.ExternalApiEvent; +import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.resources.data.auditing.model.CommonAuditData; import org.openecomp.sdc.be.resources.data.auditing.model.DistributionData; import org.openecomp.sdc.be.resources.data.auditing.model.ResourceCommonInfo; import org.openecomp.sdc.be.resources.data.auditing.model.ResourceVersionInfo; -import org.openecomp.sdc.test.utils.TestConfigurationProvider; -@RunWith(MockitoJUnitRunner.class) public class AuditCreateResourceExternalApiEventFactoryTest { private AuditCreateResourceExternalApiEventFactory createTestSubject() { - CommonAuditData.Builder newBuilder = CommonAuditData.newBuilder() - .description(DESCRIPTION) - .status(STATUS_OK) - .requestId(REQUEST_ID) - .serviceInstanceId(SERVICE_INSTANCE_ID); + CommonAuditData.Builder newBuilder = CommonAuditData.newBuilder(); CommonAuditData commonAuData = newBuilder.build(); - ResourceVersionInfo.Builder newBuilder2 = ResourceVersionInfo.newBuilder() - .version(CURRENT_VERSION) - .state(CURRENT_STATE) - .artifactUuid(ARTIFACT_UUID); + ResourceVersionInfo.Builder newBuilder2 = ResourceVersionInfo.newBuilder(); ResourceVersionInfo resAuData = newBuilder2.build(); - return new AuditCreateResourceExternalApiEventFactory(commonAuData, - new ResourceCommonInfo(RESOURCE_NAME,RESOURCE_TYPE), - new DistributionData(DIST_CONSUMER_ID,DIST_RESOURCE_URL), - resAuData, - INVARIANT_UUID, - modifier); + return new AuditCreateResourceExternalApiEventFactory(commonAuData,new ResourceCommonInfo(),new DistributionData("",""),resAuData,"", new User()); } - private AuditingManager auditingManager; - @Mock - private static AuditCassandraDao cassandraDao; - @Mock - private static AuditingDao auditingDao; - @Mock - private static Configuration.ElasticSearchConfig esConfig; - - @Captor - private ArgumentCaptor<ExternalApiEvent> eventCaptor; - - @Before - public void setUp() { - init(esConfig); - auditingManager = new AuditingManager(auditingDao, cassandraDao, new TestConfigurationProvider()); - } - - @Test public void testGetLogMessage() throws Exception { AuditCreateResourceExternalApiEventFactory testSubject; + String result; // default test testSubject = createTestSubject(); - assertThat(testSubject.getLogMessage()).isNotBlank(); - assertThat(testSubject.getLogMessage()).isEqualTo(EXPECTED_EXTERNAL_CREATE_RESOURCE_LOG_STR); - } - - @Test - public void testCreateResourceEvent() { - AuditEventFactory factory = new AuditCreateResourceExternalApiEventFactory( - CommonAuditData.newBuilder() - .description(DESCRIPTION) - .status(STATUS_OK) - .requestId(REQUEST_ID) - .serviceInstanceId(SERVICE_INSTANCE_ID) - .build(), - new ResourceCommonInfo(RESOURCE_NAME, RESOURCE_TYPE), - new DistributionData(DIST_CONSUMER_ID, DIST_RESOURCE_URL), - ResourceVersionInfo.newBuilder() - .artifactUuid(ARTIFACT_UUID) - .state(CURRENT_STATE) - .version(CURRENT_VERSION) - .build(), - INVARIANT_UUID, modifier); - - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.CREATE_RESOURCE_BY_API.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); - when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); - - assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_EXTERNAL_CREATE_RESOURCE_LOG_STR); - verifyExternalApiEvent(AuditingActionEnum.CREATE_RESOURCE_BY_API.getName()); - } - - private void verifyExternalApiEvent(String action) { - verify(cassandraDao).saveRecord(eventCaptor.capture()); - ExternalApiEvent storedEvent = eventCaptor.getValue(); - assertThat(storedEvent.getModifier()).isEqualTo(MODIFIER_UID); - assertThat(storedEvent.getDesc()).isEqualTo(DESCRIPTION); - assertThat(storedEvent.getStatus()).isEqualTo(STATUS_OK); - assertThat(storedEvent.getServiceInstanceId()).isEqualTo(SERVICE_INSTANCE_ID); - assertThat(storedEvent.getAction()).isEqualTo(action); - assertThat(storedEvent.getResourceType()).isEqualTo(RESOURCE_TYPE); + result = testSubject.getLogMessage(); } } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/externalapi/AuditCreateServiceExternalApiEventFactoryTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/externalapi/AuditCreateServiceExternalApiEventFactoryTest.java index 71160eda8e..ef036d0d9e 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/externalapi/AuditCreateServiceExternalApiEventFactoryTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/externalapi/AuditCreateServiceExternalApiEventFactoryTest.java @@ -22,13 +22,6 @@ package org.openecomp.sdc.be.auditing.impl.externalapi; import org.junit.Before; import org.junit.Test; -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; -import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.*; - import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Captor; @@ -36,11 +29,8 @@ import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.be.auditing.api.AuditEventFactory; import org.openecomp.sdc.be.auditing.impl.AuditingManager; -import org.openecomp.sdc.be.config.Configuration; -import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.cassandra.AuditCassandraDao; import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus; -import org.openecomp.sdc.be.dao.impl.AuditingDao; import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; import org.openecomp.sdc.be.resources.data.auditing.AuditingGenericEvent; import org.openecomp.sdc.be.resources.data.auditing.ExternalApiEvent; @@ -49,6 +39,23 @@ import org.openecomp.sdc.be.resources.data.auditing.model.DistributionData; import org.openecomp.sdc.be.resources.data.auditing.model.ResourceCommonInfo; import org.openecomp.sdc.test.utils.TestConfigurationProvider; +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DESCRIPTION; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DIST_CONSUMER_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DIST_RESOURCE_URL; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_EXTERNAL_CREATE_SERVICE_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.INVARIANT_UUID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.MODIFIER_UID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.REQUEST_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.RESOURCE_TYPE; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.SERVICE_INSTANCE_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.STATUS_OK; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.init; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.modifier; + @RunWith(MockitoJUnitRunner.class) public class AuditCreateServiceExternalApiEventFactoryTest { @@ -69,18 +76,14 @@ public class AuditCreateServiceExternalApiEventFactoryTest { @Mock private static AuditCassandraDao cassandraDao; - @Mock - private static AuditingDao auditingDao; - @Mock - private static Configuration.ElasticSearchConfig esConfig; @Captor private ArgumentCaptor<ExternalApiEvent> eventCaptor; @Before public void setUp() { - init(esConfig); - auditingManager = new AuditingManager(auditingDao, cassandraDao, new TestConfigurationProvider()); + init(); + auditingManager = new AuditingManager(cassandraDao, new TestConfigurationProvider()); } @Test @@ -108,8 +111,6 @@ public class AuditCreateServiceExternalApiEventFactoryTest { new DistributionData(DIST_CONSUMER_ID, DIST_RESOURCE_URL), INVARIANT_UUID, modifier); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.CREATE_SERVICE_BY_API.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_EXTERNAL_CREATE_SERVICE_LOG_STR); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/externalapi/AuditExternalApiEventFuncTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/externalapi/AuditExternalApiEventFuncTest.java index 7205b07020..efa046712e 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/externalapi/AuditExternalApiEventFuncTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/externalapi/AuditExternalApiEventFuncTest.java @@ -30,11 +30,8 @@ import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.be.auditing.api.AuditEventFactory; import org.openecomp.sdc.be.auditing.impl.AuditingManager; -import org.openecomp.sdc.be.config.Configuration; -import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.cassandra.AuditCassandraDao; import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus; -import org.openecomp.sdc.be.dao.impl.AuditingDao; import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; import org.openecomp.sdc.be.resources.data.auditing.AuditingGenericEvent; import org.openecomp.sdc.be.resources.data.auditing.ExternalApiEvent; @@ -46,10 +43,34 @@ import org.openecomp.sdc.test.utils.TestConfigurationProvider; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.*; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.ARTIFACT_DATA; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.ARTIFACT_UUID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.CURRENT_STATE; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.CURRENT_VERSION; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DESCRIPTION; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DIST_CONSUMER_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DIST_RESOURCE_URL; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_ACTIVATE_SERVICE_API_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_CHANGE_LIFECYCLE_EXTERNAL_API_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_DELETE_ARTIFACT_EXTERNAL_API_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_DOWNLOAD_ARTIFACT_EXTERNAL_API_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_EXTERNAL_ASSET_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_EXTERNAL_CREATE_RESOURCE_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_GET_ASSET_LIST_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_GET_TOSCA_MODEL_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.INVARIANT_UUID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.MODIFIER_UID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.PREV_RESOURCE_STATE; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.PREV_RESOURCE_VERSION; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.REQUEST_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.RESOURCE_NAME; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.RESOURCE_TYPE; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.SERVICE_INSTANCE_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.STATUS_OK; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.init; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.modifier; @RunWith(MockitoJUnitRunner.class) @@ -59,18 +80,14 @@ public class AuditExternalApiEventFuncTest { @Mock private static AuditCassandraDao cassandraDao; - @Mock - private static AuditingDao auditingDao; - @Mock - private static Configuration.ElasticSearchConfig esConfig; @Captor private ArgumentCaptor<ExternalApiEvent> eventCaptor; @Before public void setUp() { - init(esConfig); - auditingManager = new AuditingManager(auditingDao, cassandraDao, new TestConfigurationProvider()); + init(); + auditingManager = new AuditingManager(cassandraDao, new TestConfigurationProvider()); } @Test @@ -86,8 +103,6 @@ public class AuditExternalApiEventFuncTest { new DistributionData(DIST_CONSUMER_ID, DIST_RESOURCE_URL), INVARIANT_UUID, modifier); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.ACTIVATE_SERVICE_BY_API.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(builder)).isEqualTo(EXPECTED_ACTIVATE_SERVICE_API_LOG_STR); @@ -113,8 +128,6 @@ public class AuditExternalApiEventFuncTest { .build(), modifier); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.DOWNLOAD_ARTIFACT.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(builder)).isEqualTo(EXPECTED_DOWNLOAD_ARTIFACT_EXTERNAL_API_LOG_STR); @@ -144,8 +157,6 @@ public class AuditExternalApiEventFuncTest { .build(), INVARIANT_UUID, modifier); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.CHANGE_LIFECYCLE_BY_API.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_CHANGE_LIFECYCLE_EXTERNAL_API_LOG_STR); @@ -176,8 +187,6 @@ public class AuditExternalApiEventFuncTest { .build(), INVARIANT_UUID, modifier, ARTIFACT_DATA); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.ARTIFACT_DELETE_BY_API.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_DELETE_ARTIFACT_EXTERNAL_API_LOG_STR); @@ -195,8 +204,6 @@ public class AuditExternalApiEventFuncTest { .build(), new ResourceCommonInfo(RESOURCE_NAME, RESOURCE_TYPE), new DistributionData(DIST_CONSUMER_ID, DIST_RESOURCE_URL)); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.GET_ASSET_METADATA.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_EXTERNAL_ASSET_LOG_STR); @@ -216,8 +223,6 @@ public class AuditExternalApiEventFuncTest { .build(), new DistributionData(DIST_CONSUMER_ID, DIST_RESOURCE_URL)); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.GET_ASSET_LIST.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_GET_ASSET_LIST_LOG_STR); @@ -237,8 +242,6 @@ public class AuditExternalApiEventFuncTest { new ResourceCommonInfo(RESOURCE_NAME, RESOURCE_TYPE), new DistributionData(DIST_CONSUMER_ID, DIST_RESOURCE_URL)); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.GET_TOSCA_MODEL.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_GET_TOSCA_MODEL_LOG_STR); @@ -263,8 +266,6 @@ public class AuditExternalApiEventFuncTest { .build(), INVARIANT_UUID, modifier); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.CREATE_RESOURCE_BY_API.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_EXTERNAL_CREATE_RESOURCE_LOG_STR); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/resourceadmin/AuditResourceAdminEventFuncTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/resourceadmin/AuditResourceAdminEventFuncTest.java index b6671fe429..89d12eeded 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/resourceadmin/AuditResourceAdminEventFuncTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/resourceadmin/AuditResourceAdminEventFuncTest.java @@ -30,11 +30,8 @@ import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.be.auditing.api.AuditEventFactory; import org.openecomp.sdc.be.auditing.impl.AuditingManager; -import org.openecomp.sdc.be.config.Configuration; -import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.cassandra.AuditCassandraDao; import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus; -import org.openecomp.sdc.be.dao.impl.AuditingDao; import org.openecomp.sdc.be.model.LifecycleStateEnum; import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; @@ -49,10 +46,35 @@ import org.openecomp.sdc.test.utils.TestConfigurationProvider; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.*; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.ARTIFACT_DATA; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.ARTIFACT_UUID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.COMMENT; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.CURRENT_STATE; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.CURRENT_VERSION; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DCURR_STATUS; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DESCRIPTION; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DIST_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DPREV_STATUS; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_ARTIFACT_UPLOAD_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_CHECK_IN_RESOURCE_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_CREATE_RESOURCE_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_DIST_STATE_CHANGE_APPROV; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_DIST_STATE_CHANGE_REQUEST; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_IMPORT_RESOURCE_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.INVARIANT_UUID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.MODIFIER_UID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.PREV_RESOURCE_STATE; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.PREV_RESOURCE_VERSION; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.REQUEST_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.RESOURCE_NAME; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.RESOURCE_TYPE_VFC; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.SERVICE_INSTANCE_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.STATUS_OK; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.TOSCA_NODE_TYPE; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.init; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.modifier; @RunWith(MockitoJUnitRunner.class) public class AuditResourceAdminEventFuncTest { @@ -60,18 +82,14 @@ public class AuditResourceAdminEventFuncTest { @Mock private static AuditCassandraDao cassandraDao; - @Mock - private static AuditingDao auditingDao; - @Mock - private static Configuration.ElasticSearchConfig esConfig; @Captor private ArgumentCaptor<ResourceAdminEvent> eventCaptor; @Before public void setUp() { - init(esConfig); - auditingManager = new AuditingManager(auditingDao, cassandraDao, new TestConfigurationProvider()); + init(); + auditingManager = new AuditingManager(cassandraDao, new TestConfigurationProvider()); ThreadLocalsHolder.setUuid(REQUEST_ID); } @@ -108,8 +126,6 @@ public class AuditResourceAdminEventFuncTest { INVARIANT_UUID, modifier, ARTIFACT_DATA, COMMENT, DIST_ID); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.CHECKIN_RESOURCE.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_CHECK_IN_RESOURCE_LOG_STR); @@ -143,8 +159,6 @@ public class AuditResourceAdminEventFuncTest { INVARIANT_UUID, modifier, ARTIFACT_DATA, COMMENT, DIST_ID, Constants.EMPTY_STRING); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.CREATE_RESOURCE.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_CREATE_RESOURCE_LOG_STR); @@ -185,8 +199,6 @@ public class AuditResourceAdminEventFuncTest { INVARIANT_UUID, modifier, ARTIFACT_DATA, COMMENT, DIST_ID, TOSCA_NODE_TYPE); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.IMPORT_RESOURCE.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_IMPORT_RESOURCE_LOG_STR); @@ -220,8 +232,6 @@ public class AuditResourceAdminEventFuncTest { INVARIANT_UUID, modifier, ARTIFACT_DATA, COMMENT, DIST_ID); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.ARTIFACT_UPLOAD.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_ARTIFACT_UPLOAD_LOG_STR); @@ -254,8 +264,6 @@ public class AuditResourceAdminEventFuncTest { INVARIANT_UUID, modifier, ARTIFACT_DATA, COMMENT, DIST_ID); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.DISTRIBUTION_STATE_CHANGE_REQUEST.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_DIST_STATE_CHANGE_REQUEST); @@ -289,8 +297,6 @@ public class AuditResourceAdminEventFuncTest { INVARIANT_UUID, modifier, ARTIFACT_DATA, COMMENT, DIST_ID); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.DISTRIBUTION_STATE_CHANGE_REQUEST.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_DIST_STATE_CHANGE_APPROV); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/usersadmin/AuditUserEventFuncTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/usersadmin/AuditUserEventFuncTest.java index 3db93370af..6dc81ab390 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/usersadmin/AuditUserEventFuncTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/auditing/impl/usersadmin/AuditUserEventFuncTest.java @@ -31,22 +31,47 @@ import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.be.auditing.api.AuditEventFactory; import org.openecomp.sdc.be.auditing.impl.AuditAuthRequestEventFactory; import org.openecomp.sdc.be.auditing.impl.AuditingManager; -import org.openecomp.sdc.be.config.Configuration; -import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.cassandra.AuditCassandraDao; import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus; -import org.openecomp.sdc.be.dao.impl.AuditingDao; import org.openecomp.sdc.be.model.User; -import org.openecomp.sdc.be.resources.data.auditing.*; +import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; +import org.openecomp.sdc.be.resources.data.auditing.AuditingGenericEvent; +import org.openecomp.sdc.be.resources.data.auditing.AuthEvent; +import org.openecomp.sdc.be.resources.data.auditing.GetUsersListEvent; +import org.openecomp.sdc.be.resources.data.auditing.UserAccessEvent; +import org.openecomp.sdc.be.resources.data.auditing.UserAdminEvent; import org.openecomp.sdc.be.resources.data.auditing.model.CommonAuditData; import org.openecomp.sdc.test.utils.TestConfigurationProvider; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.*; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.AUTH_STATUS; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.AUTH_URL; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DESCRIPTION; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DESIGNER_USER_ROLE; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_ADD_USER_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_AUTH_REQUEST_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_DELETE_USER_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_GET_USER_LIST_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_UPDATE_USER_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.EXPECTED_USER_ACCESS_LOG_STR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.MODIFIER_UID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.REALM; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.REQUEST_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.STATUS_CREATED; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.STATUS_OK; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.TESTER_USER_ROLE; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.UPDATED_USER_EXTENDED_NAME; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.USER_DETAILS; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.USER_EMAIL; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.USER_EXTENDED_NAME; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.USER_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.USER_UID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.init; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.modifier; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.user; @RunWith(MockitoJUnitRunner.class) @@ -55,17 +80,13 @@ public class AuditUserEventFuncTest { private static AuditCassandraDao cassandraDao; @Captor private ArgumentCaptor<AuditingGenericEvent> eventCaptor; - @Mock - private static AuditingDao auditingDao; - @Mock - private Configuration.ElasticSearchConfig esConfig; private AuditingManager auditingManager; @Before public void setUp() { - init(esConfig); - auditingManager = new AuditingManager(auditingDao, cassandraDao, new TestConfigurationProvider()); + init(); + auditingManager = new AuditingManager(cassandraDao, new TestConfigurationProvider()); } @Test @@ -77,8 +98,6 @@ public class AuditUserEventFuncTest { .requestId(REQUEST_ID) .build(), user); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.USER_ACCESS.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_USER_ACCESS_LOG_STR); @@ -99,8 +118,6 @@ public class AuditUserEventFuncTest { .build(), modifier, null, user); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.ADD_USER.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_ADD_USER_LOG_STR); @@ -124,8 +141,6 @@ public class AuditUserEventFuncTest { .build(), modifier, user, updated); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.UPDATE_USER.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(builder)).isEqualTo(EXPECTED_UPDATE_USER_LOG_STR); @@ -146,8 +161,6 @@ public class AuditUserEventFuncTest { .build(), modifier, user, null); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.DELETE_USER.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_DELETE_USER_LOG_STR); @@ -165,8 +178,6 @@ public class AuditUserEventFuncTest { .build(), user, USER_DETAILS); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.GET_USERS_LIST.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_GET_USER_LIST_LOG_STR); @@ -184,8 +195,6 @@ public class AuditUserEventFuncTest { .build(), USER_ID, AUTH_URL, REALM, AUTH_STATUS); - when(auditingDao.addRecord(any(AuditingGenericEvent.class), eq(AuditingActionEnum.AUTH_REQUEST.getAuditingEsType()))) - .thenReturn(ActionStatus.OK); when(cassandraDao.saveRecord(any(AuditingGenericEvent.class))).thenReturn(CassandraOperationStatus.OK); assertThat(auditingManager.auditEvent(factory)).isEqualTo(EXPECTED_AUTH_REQUEST_LOG_STR); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/catalog/impl/DmaapProducerTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/catalog/impl/DmaapProducerTest.java new file mode 100644 index 0000000000..af0687ccc6 --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/catalog/impl/DmaapProducerTest.java @@ -0,0 +1,140 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * 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.openecomp.sdc.be.catalog.impl; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.openecomp.sdc.be.catalog.api.IComponentMessage; +import org.openecomp.sdc.be.catalog.api.IStatus; +import org.openecomp.sdc.be.catalog.enums.ChangeTypeEnum; +import org.openecomp.sdc.be.config.ConfigurationManager; +import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; +import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; +import org.openecomp.sdc.be.model.CatalogUpdateTimestamp; +import org.openecomp.sdc.be.model.LifecycleStateEnum; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.category.CategoryDefinition; +import org.openecomp.sdc.be.model.category.SubCategoryDefinition; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.openecomp.sdc.be.catalog.enums.ResultStatusEnum.FAIL; +import static org.openecomp.sdc.be.catalog.enums.ResultStatusEnum.SERVICE_DISABLED; +import static org.openecomp.sdc.be.config.ConfigurationManager.getConfigurationManager; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration("classpath:application-context-test.xml") +public class DmaapProducerTest { + private static final Logger LOG = LoggerFactory.getLogger(DmaapProducer.class); + + @Autowired + ConfigurationManager configurationManager; + + @Autowired + private DmaapProducer dmaapProducer; + + + //actually sends the message + + + @Test + public void pushComponentMessageTest() { + boolean oldVal = isActive(); + + Resource resource = new Resource(); + resource.setUniqueId("mockUniqueId"); + resource.setUUID("mockNameUUID"); + resource.setResourceType(ResourceTypeEnum.VF); + resource.setComponentType(ComponentTypeEnum.RESOURCE); + resource.setName("mockName"); + resource.setSystemName("mockSystemName"); + resource.setVersion("1.0"); + resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); + resource.setLastUpdateDate(System.currentTimeMillis()); + resource.setInvariantUUID("mockInvariantUUID"); + resource.setDescription("mockDescription"); + resource.setHighestVersion(true); + resource.setArchived(false); + + List<CategoryDefinition> categories = new ArrayList<>(); + CategoryDefinition cat = new CategoryDefinition(); + cat.setName("mockCategory"); + cat.setNormalizedName("mockCategory"); + cat.setUniqueId("uniqueId"); + SubCategoryDefinition subcat = new SubCategoryDefinition(); + subcat.setName("mockSubCategory"); + subcat.setNormalizedName("mockSubCategory"); + subcat.setUniqueId("mockSubCategoryUniqueId"); + cat.addSubCategory(subcat); + categories.add(cat); + resource.setCategories(categories); + + IComponentMessage message = new ComponentMessage(resource, ChangeTypeEnum.LIFECYCLE, new CatalogUpdateTimestamp(123, 1234)); + ObjectMapper mapper = new ObjectMapper(); + try { + String jsonInString = mapper.writeValueAsString(message); + LOG.info("[DmaapProducer] pushing message =>{}",jsonInString); + //push msg by configuration => will send the message if configuration enables + //IStatus status = dmaapProducer.pushComponentMessage(message); + //will not test network connectivity to avoid build server automation fail + + toggleInactive(); + IStatus status = dmaapProducer.pushMessage(message); + assertThat(status.getResultStatus()).isEqualTo(SERVICE_DISABLED); + + toggleActive(); + dmaapProducer.shutdown(); + status = dmaapProducer.pushMessage(message); + assertThat(status.getResultStatus()).isEqualTo(FAIL); + + } catch (JsonProcessingException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + }finally { + getConfigurationManager().getConfiguration().getDmaapProducerConfiguration().setActive(oldVal); + } + } + + private boolean isActive(){ + return getConfigurationManager().getConfiguration().getDmaapProducerConfiguration().getActive(); + } + + private void toggleInactive(){ + getConfigurationManager().getConfiguration().getDmaapProducerConfiguration().setActive(false); + } + + private void toggleActive(){ + getConfigurationManager().getConfiguration().getDmaapProducerConfiguration().setActive(true); + } + +}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/BaseServiceBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/BaseServiceBusinessLogicTest.java index 97bde02794..883cdc4718 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/BaseServiceBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/BaseServiceBusinessLogicTest.java @@ -32,6 +32,7 @@ import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic; import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; import org.openecomp.sdc.be.components.impl.ResponseFormatManager; import org.openecomp.sdc.be.components.impl.ServiceBusinessLogic; +import org.openecomp.sdc.be.components.impl.ServiceBusinessLogicTest; import org.openecomp.sdc.be.components.impl.generic.GenericTypeBusinessLogic; import org.openecomp.sdc.be.components.path.ForwardingPathValidator; import org.openecomp.sdc.be.components.utils.ComponentBusinessLogicMock; @@ -48,18 +49,20 @@ import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.impl.WebAppContextWrapper; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.ArtifactDefinition; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.ComponentInstance; +import org.openecomp.sdc.be.model.GroupInstance; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.Service; +import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.category.CategoryDefinition; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ForwardingPathOperation; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.NodeFilterOperation; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.api.IElementOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupInstanceOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupTypeOperation; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.model.operations.impl.GraphLockOperation; -import org.openecomp.sdc.be.model.operations.impl.InterfaceLifecycleOperation; import org.openecomp.sdc.be.resources.data.auditing.ResourceAdminEvent; import org.openecomp.sdc.be.user.Role; import org.openecomp.sdc.be.user.UserBusinessLogic; @@ -69,6 +72,8 @@ import org.openecomp.sdc.common.api.Constants; import org.openecomp.sdc.common.datastructure.AuditingFieldsKey; import org.openecomp.sdc.common.impl.ExternalConfiguration; import org.openecomp.sdc.common.impl.FSConfigurationSource; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.web.context.WebApplicationContext; import javax.servlet.ServletContext; @@ -81,18 +86,19 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.when; public abstract class BaseServiceBusinessLogicTest extends ComponentBusinessLogicMock { + private static final Logger log = LoggerFactory.getLogger(ServiceBusinessLogicTest.class); private static final String SERVICE_CATEGORY = "Mobility"; private final ServletContext servletContext = Mockito.mock(ServletContext.class); private UserBusinessLogic mockUserAdmin = Mockito.mock(UserBusinessLogic.class); private WebAppContextWrapper webAppContextWrapper = Mockito.mock(WebAppContextWrapper.class); private WebApplicationContext webAppContext = Mockito.mock(WebApplicationContext.class); - private final IDistributionEngine distributionEngine = Mockito.mock(IDistributionEngine.class); - private final ComponentInstanceBusinessLogic componentInstanceBusinessLogic = Mockito.mock(ComponentInstanceBusinessLogic.class); - private final ServiceDistributionValidation serviceDistributionValidation = Mockito.mock(ServiceDistributionValidation.class); - private final ForwardingPathValidator forwardingPathValidator = Mockito.mock(ForwardingPathValidator.class); - private final UiComponentDataConverter uiComponentDataConverter = Mockito.mock(UiComponentDataConverter.class); - private final NodeFilterOperation serviceFilterOperation = Mockito.mock(NodeFilterOperation.class); - private final NodeFilterValidator serviceFilterValidator = Mockito.mock(NodeFilterValidator.class); + protected final IDistributionEngine distributionEngine = Mockito.mock(IDistributionEngine.class); + protected final ComponentInstanceBusinessLogic componentInstanceBusinessLogic = Mockito.mock(ComponentInstanceBusinessLogic.class); + protected final ServiceDistributionValidation serviceDistributionValidation = Mockito.mock(ServiceDistributionValidation.class); + protected final ForwardingPathValidator forwardingPathValidator = Mockito.mock(ForwardingPathValidator.class); + protected final UiComponentDataConverter uiComponentDataConverter = Mockito.mock(UiComponentDataConverter.class); + protected final NodeFilterOperation serviceFilterOperation = Mockito.mock(NodeFilterOperation.class); + protected final NodeFilterValidator serviceFilterValidator = Mockito.mock(NodeFilterValidator.class); private ServiceBusinessLogic bl; private ResponseFormatManager responseManager = null; private IElementOperation mockElementDao; @@ -136,11 +142,11 @@ public abstract class BaseServiceBusinessLogicTest extends ComponentBusinessLogi user.setLastName("Hendrix"); user.setRole(Role.ADMIN.name()); - Either<User, ActionStatus> eitherGetUser = Either.left(user); - when(mockUserAdmin.getUser("jh0003", false)).thenReturn(eitherGetUser); + when(mockUserAdmin.getUser("jh0003", false)).thenReturn(user); // Servlet Context attributes when(servletContext.getAttribute(Constants.CONFIGURATION_MANAGER_ATTR)).thenReturn(configurationManager); +// when(servletContext.getAttribute(Constants.SERVICE_OPERATION_MANAGER)).thenReturn(new ServiceOperation()); when(servletContext.getAttribute(Constants.WEB_APPLICATION_CONTEXT_WRAPPER_ATTR)).thenReturn(webAppContextWrapper); when(webAppContextWrapper.getWebAppContext(servletContext)).thenReturn(webAppContext); when(webAppContext.getBean(IElementOperation.class)).thenReturn(mockElementDao); @@ -174,7 +180,8 @@ public abstract class BaseServiceBusinessLogicTest extends ComponentBusinessLogi groupTypeOperation, groupBusinessLogic, interfaceOperation, interfaceLifecycleTypeOperation, artifactsBusinessLogic, distributionEngine, componentInstanceBusinessLogic, serviceDistributionValidation, forwardingPathValidator, uiComponentDataConverter, - serviceFilterOperation, serviceFilterValidator, artifactToscaOperation); + serviceFilterOperation, serviceFilterValidator, artifactToscaOperation, componentContactIdValidator, componentNameValidator, + componentTagsValidator, componentValidator, componentIconValidator, componentProjectCodeValidator, componentDescriptionValidator); bl.setUserAdmin(mockUserAdmin); bl.setGraphLockOperation(graphLockOperation); bl.setJanusGraphDao(mockJanusGraphDao); @@ -236,8 +243,10 @@ public abstract class BaseServiceBusinessLogicTest extends ComponentBusinessLogi createResourceAudit.setStatus("201"); createResourceAudit.setPrevVersion(""); createResourceAudit.setAction("Create"); + // fields.put("TIMESTAMP", "2015-11-22 09:19:12.977"); createResourceAudit.setPrevState(""); createResourceAudit.setResourceName("MyTestResource"); + // createResourceAudit.setFields(fields); final ResourceAdminEvent checkInResourceAudit = new ResourceAdminEvent(); checkInResourceAudit.setModifier("Carlos Santana(cs0008)"); @@ -251,6 +260,7 @@ public abstract class BaseServiceBusinessLogicTest extends ComponentBusinessLogi checkInResourceAudit.setStatus("200"); checkInResourceAudit.setPrevVersion("0.1"); checkInResourceAudit.setAction("Checkin"); + // fields.put("TIMESTAMP", "2015-11-22 09:25:03.797"); checkInResourceAudit.setPrevState("NOT_CERTIFIED_CHECKOUT"); checkInResourceAudit.setResourceName("MyTestResource"); @@ -266,8 +276,11 @@ public abstract class BaseServiceBusinessLogicTest extends ComponentBusinessLogi checkOutResourceAudit.setStatus("200"); checkOutResourceAudit.setPrevVersion("0.1"); checkOutResourceAudit.setAction("Checkout"); + // fields.put("TIMESTAMP", "2015-11-22 09:39:41.024"); checkOutResourceAudit.setPrevState("NOT_CERTIFIED_CHECKIN"); checkOutResourceAudit.setResourceName("MyTestResource"); + // checkOutResourceAudit.setFields(fields); + List<ResourceAdminEvent> list = new ArrayList<ResourceAdminEvent>() { { add(createResourceAudit); @@ -289,6 +302,7 @@ public abstract class BaseServiceBusinessLogicTest extends ComponentBusinessLogi }; Either<List<ResourceAdminEvent>, ActionStatus> resultCurr = Either.left(listCurr); Mockito.when(auditingDao.getAuditByServiceIdAndCurrVersion(Mockito.anyString(), Mockito.anyString())).thenReturn(resultCurr); + } protected Service createServiceObject(boolean afterCreate) { @@ -304,7 +318,10 @@ public abstract class BaseServiceBusinessLogicTest extends ComponentBusinessLogi List<String> tgs = new ArrayList<>(); tgs.add(service.getName()); service.setTags(tgs); + // service.setVendorName("Motorola"); + // service.setVendorRelease("1.0.0"); service.setIcon("MyIcon"); + // service.setState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); service.setContactId("aa1234"); service.setProjectCode("12345"); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/ComponentBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/ComponentBusinessLogicTest.java index 5f72b0a65b..125c5f6f20 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/ComponentBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/ComponentBusinessLogicTest.java @@ -23,34 +23,37 @@ package org.openecomp.sdc.be.components; import fj.data.Either; -import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.be.DummyConfigurationManager; -import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic; import org.openecomp.sdc.be.components.impl.ComponentBusinessLogic; import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; import org.openecomp.sdc.be.components.utils.ComponentBusinessLogicMock; import org.openecomp.sdc.be.components.utils.ResourceBuilder; -import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.model.ArtifactDefinition; +import org.openecomp.sdc.be.model.Component; import org.openecomp.sdc.be.model.ComponentInstance; import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.Service; import org.openecomp.sdc.be.model.User; +import org.openecomp.sdc.be.model.category.CategoryDefinition; +import org.openecomp.sdc.be.model.category.SubCategoryDefinition; import org.openecomp.sdc.be.ui.model.UiComponentDataTransfer; +import org.openecomp.sdc.be.ui.model.UiLeftPaletteComponent; import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum; import org.openecomp.sdc.exception.ResponseFormat; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.when; +import static org.openecomp.sdc.be.components.impl.utils.TestGenerationUtils.getComponentsUtils; +import static org.openecomp.sdc.common.util.GeneralUtility.getCategorizedComponents; @RunWith(MockitoJUnitRunner.class) public class ComponentBusinessLogicTest extends ComponentBusinessLogicMock { @@ -61,7 +64,8 @@ public class ComponentBusinessLogicTest extends ComponentBusinessLogicMock { private ComponentBusinessLogic testInstance = new ComponentBusinessLogic(elementDao, groupOperation, groupInstanceOperation, groupTypeOperation, groupBusinessLogic, interfaceOperation, interfaceLifecycleTypeOperation, artifactsBusinessLogic, - artifactToscaOperation) { + artifactToscaOperation,componentContactIdValidator, componentNameValidator, componentTagsValidator, componentValidator, + componentIconValidator, componentProjectCodeValidator, componentDescriptionValidator) { @Override public Either<List<String>, ResponseFormat> deleteMarkedComponents() { return null; @@ -83,10 +87,8 @@ public class ComponentBusinessLogicTest extends ComponentBusinessLogicMock { } }; - @BeforeClass - public static void setUp() throws Exception { - new DummyConfigurationManager(); - } + + DummyConfigurationManager dummyConfigurationManager = new DummyConfigurationManager();; @SuppressWarnings("unchecked") @Test @@ -98,7 +100,7 @@ public class ComponentBusinessLogicTest extends ComponentBusinessLogicMock { Map<String, Object> artifactsFromConfig = new HashMap<>(); artifactsFromConfig.put(ARTIFACT_LABEL, buildArtifactMap("artifact:not normalized.yml")); artifactsFromConfig.put(ARTIFACT_LABEL2, buildArtifactMap("alreadyNormalized.csar")); - when(ConfigurationManager.getConfigurationManager().getConfiguration().getToscaArtifacts()).thenReturn(artifactsFromConfig); + when(dummyConfigurationManager.getConfigurationMock().getToscaArtifacts()).thenReturn(artifactsFromConfig); when(artifactsBusinessLogic.createArtifactPlaceHolderInfo(resource.getUniqueId(), ARTIFACT_LABEL, (Map<String, Object>) artifactsFromConfig.get(ARTIFACT_LABEL), USER, ArtifactGroupTypeEnum.TOSCA)) .thenReturn(buildArtifactDef(ARTIFACT_LABEL)); when(artifactsBusinessLogic.createArtifactPlaceHolderInfo(resource.getUniqueId(), ARTIFACT_LABEL2, (Map<String, Object>) artifactsFromConfig.get(ARTIFACT_LABEL2), USER, ArtifactGroupTypeEnum.TOSCA)) @@ -124,4 +126,110 @@ public class ComponentBusinessLogicTest extends ComponentBusinessLogicMock { artifactDefinition.setArtifactLabel(artifactLabel); return artifactDefinition; } + + @Test + public void categorizeOneResource(){ + List<Component> componentList = new ArrayList<>(); + String subCategoryName = "Load Balancer"; + String categoryName = "Application L4+"; + Component component = initComponent(ComponentTypeEnum.RESOURCE, subCategoryName, categoryName); + componentList.add(component); + Map<String,Map<String,List<UiLeftPaletteComponent>>> response = getCategorizedComponents(getComponentsUtils().convertComponentToUiLeftPaletteComponentObject(componentList)); + assertThat(response.get(categoryName).get(subCategoryName).size()).isEqualTo(1); + } + + @Test + public void categorizeResourcesSameCategoryDifferentSubcategory(){ + List<Component> componentList = new ArrayList<>(); + String categoryName = "Application L4+"; + String subCategoryName = "Load Balancer"; + Component component = initComponent(ComponentTypeEnum.RESOURCE, subCategoryName, categoryName); + componentList.add(component); + String subCategoryName2 = "Database"; + Component component2 = initComponent(ComponentTypeEnum.RESOURCE, subCategoryName2, categoryName); + componentList.add(component2); + Map<String,Map<String,List<UiLeftPaletteComponent>>> response = getCategorizedComponents(getComponentsUtils().convertComponentToUiLeftPaletteComponentObject(componentList)); + assertThat(response.get(categoryName).get(subCategoryName).size()).isEqualTo(1); + assertThat(response.get(categoryName).get(subCategoryName2).size()).isEqualTo(1); + } + + @Test + public void categorizeResourceAndServiceSameCategoryDifferentSubcategory(){ + List<Component> componentList = new ArrayList<>(); + String categoryName = "Generic"; + String subCategoryName = "Load Balancer"; + Component component = initComponent(ComponentTypeEnum.RESOURCE, subCategoryName, categoryName); + componentList.add(component); + Component component2 = initComponent(ComponentTypeEnum.SERVICE, null, categoryName); + componentList.add(component2); + Map<String,Map<String,List<UiLeftPaletteComponent>>> response = getCategorizedComponents(getComponentsUtils().convertComponentToUiLeftPaletteComponentObject(componentList)); + assertThat(response.get(categoryName).get(subCategoryName).size()).isEqualTo(1); + assertThat(response.get("Generic").get("Generic").size()).isEqualTo(1); + } + + @Test + public void categorizeResourcesSameCategorySameSubcategory(){ + List<Component> componentList = new ArrayList<>(); + String categoryName = "Application L4+"; + String subCategoryName = "Load Balancer"; + Component component = initComponent(ComponentTypeEnum.RESOURCE, subCategoryName, categoryName); + componentList.add(component); + componentList.add(component); + Map<String,Map<String,List<UiLeftPaletteComponent>>> response = getCategorizedComponents(getComponentsUtils().convertComponentToUiLeftPaletteComponentObject(componentList)); + assertThat(response.get(categoryName).get(subCategoryName).size()).isEqualTo(2); + } + + @Test + public void categorizeTwoServices(){ + List<Component> componentList = new ArrayList<>(); + String categoryName = "Application L4+"; + String categoryName2 = "IP Mux Demux"; + Component component = initComponent(ComponentTypeEnum.SERVICE, null, categoryName); + componentList.add(component); + Component component2 = initComponent(ComponentTypeEnum.SERVICE, null, categoryName2); + componentList.add(component2); + Map<String,Map<String,List<UiLeftPaletteComponent>>> response = getCategorizedComponents(getComponentsUtils().convertComponentToUiLeftPaletteComponentObject(componentList)); + assertThat(response.get("Generic").get("Generic").size()).isEqualTo(2); + } + + @Test + public void categorizeTwoResourcesDiffCategory(){ + List<Component> componentList = new ArrayList<>(); + String categoryName = "Application L4+"; + String categoryName2 = "IP Mux Demux"; + String subCategoryName = "Load Balancer"; + Component component = initComponent(ComponentTypeEnum.RESOURCE, subCategoryName, categoryName); + componentList.add(component); + Component component2 = initComponent(ComponentTypeEnum.RESOURCE, subCategoryName, categoryName2); + componentList.add(component2); + Map<String,Map<String,List<UiLeftPaletteComponent>>> response = getCategorizedComponents(getComponentsUtils().convertComponentToUiLeftPaletteComponentObject(componentList)); + assertThat(response.get(categoryName).get(subCategoryName).size()).isEqualTo(1); + assertThat(response.get(categoryName2).get(subCategoryName).size()).isEqualTo(1); + } + + private Component initComponent(ComponentTypeEnum componentTypeEnum, String subCategoryName, String categoryName) { + Component component = null; + if(componentTypeEnum == ComponentTypeEnum.RESOURCE){ + component = new Resource(); + } + if(componentTypeEnum == ComponentTypeEnum.SERVICE){ + component = new Service(); + } + component.setComponentType(componentTypeEnum); + CategoryDefinition categoryDefinition = new CategoryDefinition(); + SubCategoryDefinition subCategoryDefinition = new SubCategoryDefinition(); + subCategoryDefinition.setName(subCategoryName); + List<SubCategoryDefinition> subCategoryDefinitionList = new ArrayList<>(); + subCategoryDefinitionList.add(subCategoryDefinition); + categoryDefinition.setSubcategories(subCategoryDefinitionList); + categoryDefinition.setName(categoryName); + List<CategoryDefinition> categoryDefinitionList = new ArrayList<>(); + categoryDefinitionList.add(categoryDefinition); + component.setCategories(categoryDefinitionList); + List<String> tags = new ArrayList<>(); + tags.add("tag1"); + tags.add("tag2"); + component.setTags(tags); + return component; + } } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/HealthCheckBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/HealthCheckBusinessLogicTest.java index 8d73b9e855..b0500fd5af 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/HealthCheckBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/HealthCheckBusinessLogicTest.java @@ -39,7 +39,7 @@ public class HealthCheckBusinessLogicTest { private final SwitchoverDetector switchoverDetector = Mockito.mock(SwitchoverDetector.class); - HealthCheckBusinessLogic healthCheckBusinessLogic = new HealthCheckBusinessLogic(switchoverDetector); + HealthCheckBusinessLogic healthCheckBusinessLogic = new HealthCheckBusinessLogic(); @Test public void checkStausUpdated() { @@ -56,10 +56,26 @@ public class HealthCheckBusinessLogicTest { HealthCheckInfo checkInfoJanusGraphUp = new HealthCheckInfo(Constants.HC_COMPONENT_JANUSGRAPH, HealthCheckStatus.UP, null, null); HealthCheckInfo checkInfoJanusGraphDown = new HealthCheckInfo(Constants.HC_COMPONENT_JANUSGRAPH, HealthCheckStatus.DOWN, null, null); + HealthCheckInfo checkInfoDmaapProducerUp = new HealthCheckInfo(Constants.HC_COMPONENT_DMAAP_PRODUCER, HealthCheckStatus.UP, null, null); + + HealthCheckInfo healthCheckInfoCADIUp = new HealthCheckInfo(Constants.HC_COMPONENT_CADI, HealthCheckStatus.UP, null, null); + + /* + * HealthCheckInfo checkInfoUebUp = new HealthCheckInfo(HealthCheckComponent.DE, HealthCheckStatus.UP, null, null); HealthCheckInfo checkInfoUebDown = new HealthCheckInfo(HealthCheckComponent.DE, HealthCheckStatus.DOWN, null, null); + */ + checkInfosLeft.add(checkInfoJanusGraphUp); checkInfosRight.add(checkInfoJanusGraphUp); + checkInfosLeft.add(checkInfoDmaapProducerUp); + + checkInfosRight.add(checkInfoDmaapProducerUp); + + checkInfosLeft.add(healthCheckInfoCADIUp); + + checkInfosRight.add(healthCheckInfoCADIUp); + statusChanged = healthCheckBusinessLogic.anyStatusChanged(checkInfosLeft, checkInfosRight); assertFalse("check false", statusChanged); @@ -79,6 +95,11 @@ public class HealthCheckBusinessLogicTest { statusChanged = healthCheckBusinessLogic.anyStatusChanged(checkInfosLeft, checkInfosRight); assertFalse("check false", statusChanged); + checkInfosRight.remove(healthCheckInfoCADIUp); + statusChanged = healthCheckBusinessLogic.anyStatusChanged(checkInfosLeft, checkInfosRight); + assertTrue("check true", statusChanged); + + checkInfosRight.add(healthCheckInfoCADIUp); statusChanged = healthCheckBusinessLogic.anyStatusChanged(checkInfosLeft, null); assertTrue("check true", statusChanged); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/PathTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/PathTest.java index 4b7ff83bf3..5b76eeaac6 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/PathTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/PathTest.java @@ -34,12 +34,22 @@ import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.impl.ForwardingPathUtils; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.CapabilityDefinition; +import org.openecomp.sdc.be.model.CapabilityRequirementRelationship; +import org.openecomp.sdc.be.model.ComponentInstance; +import org.openecomp.sdc.be.model.RelationshipImpl; +import org.openecomp.sdc.be.model.RequirementCapabilityRelDef; +import org.openecomp.sdc.be.model.Service; import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; import org.openecomp.sdc.exception.ResponseFormat; import java.io.IOException; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/PropertyBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/PropertyBusinessLogicTest.java index aeccf7d817..52fbdeed87 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/PropertyBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/PropertyBusinessLogicTest.java @@ -38,7 +38,15 @@ import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.impl.WebAppContextWrapper; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.ComponentInstanceInterface; +import org.openecomp.sdc.be.model.InterfaceDefinition; +import org.openecomp.sdc.be.model.LifecycleStateEnum; +import org.openecomp.sdc.be.model.PropertyConstraint; +import org.openecomp.sdc.be.model.PropertyDefinition; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.Service; +import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.exception.ToscaOperationException; import org.openecomp.sdc.be.model.operations.api.IGraphLockOperation; @@ -57,7 +65,11 @@ import org.springframework.web.context.WebApplicationContext; import javax.servlet.ServletContext; import java.lang.reflect.Field; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.hasItems; @@ -66,8 +78,14 @@ import static org.hamcrest.Matchers.instanceOf; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.notNullValue; import static org.hamcrest.Matchers.nullValue; -import static org.junit.Assert.*; -import static org.mockito.ArgumentMatchers.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyObject; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.when; public class PropertyBusinessLogicTest extends BaseBusinessLogicMock { @@ -120,14 +138,14 @@ public class PropertyBusinessLogicTest extends BaseBusinessLogicMock { user.setLastName("Hendrix"); user.setRole(Role.ADMIN.name()); - Either<User, ActionStatus> eitherGetUser = Either.left(user); - when(mockUserAdmin.getUser("jh003", false)).thenReturn(eitherGetUser); - when(userValidations.validateUserExists(eq("jh003"), anyString(), eq(false))).thenReturn(user); + when(mockUserAdmin.getUser("jh003", false)).thenReturn(user); + when(userValidations.validateUserExists(eq("jh003"))).thenReturn(user); // Servlet Context attributes when(servletContext.getAttribute(Constants.CONFIGURATION_MANAGER_ATTR)).thenReturn(configurationManager); when(servletContext.getAttribute(Constants.PROPERTY_OPERATION_MANAGER)).thenReturn(propertyOperation); when(servletContext.getAttribute(Constants.WEB_APPLICATION_CONTEXT_WRAPPER_ATTR)).thenReturn(webAppContextWrapper); +// when(servletContext.getAttribute(Constants.RESOURCE_OPERATION_MANAGER)).thenReturn(resourceOperation); when(webAppContextWrapper.getWebAppContext(servletContext)).thenReturn(webAppContext); } @@ -271,6 +289,7 @@ public class PropertyBusinessLogicTest extends BaseBusinessLogicMock { private PropertyDefinition createPropertyObject(final String propertyName, final String resourceId) { final PropertyDefinition pd = new PropertyDefinition(); + List<PropertyConstraint> constraints = new ArrayList<>(); pd.setConstraints(null); pd.setDefaultValue("100"); pd.setDescription("Size of thasdasdasdasde local disk, in Gigabytes (GB), available to applications running on the Compute node"); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/ResourceImportManagerTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/ResourceImportManagerTest.java index bcb993c372..88eff3372a 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/ResourceImportManagerTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/ResourceImportManagerTest.java @@ -28,16 +28,26 @@ import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.mockito.Mockito; -import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; import org.openecomp.sdc.be.auditing.impl.AuditingManager; -import org.openecomp.sdc.be.components.impl.*; +import org.openecomp.sdc.be.components.impl.ImportUtils; +import org.openecomp.sdc.be.components.impl.ImportUtilsTest; +import org.openecomp.sdc.be.components.impl.ResourceBusinessLogic; +import org.openecomp.sdc.be.components.impl.ResourceImportManager; +import org.openecomp.sdc.be.components.impl.ResponseFormatManager; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; import org.openecomp.sdc.be.components.lifecycle.LifecycleChangeInfoWithAction; import org.openecomp.sdc.be.config.Configuration; import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.CapabilityDefinition; +import org.openecomp.sdc.be.model.PropertyConstraint; +import org.openecomp.sdc.be.model.PropertyDefinition; +import org.openecomp.sdc.be.model.RequirementDefinition; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.UploadResourceInfo; +import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.impl.CapabilityTypeOperation; import org.openecomp.sdc.be.model.tosca.constraints.GreaterOrEqualConstraint; @@ -51,12 +61,13 @@ import org.openecomp.sdc.exception.PolicyException; import org.openecomp.sdc.exception.ResponseFormat; import java.io.IOException; -import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.when; @@ -106,17 +117,14 @@ public class ResourceImportManagerTest { user.setRole("ADMIN"); user.setFirstName("Jhon"); user.setLastName("Doh"); - Either<User, ActionStatus> eitherUser = Either.left(user); - - when(userAdmin.getUser(Mockito.anyString(), Mockito.anyBoolean())).thenReturn(eitherUser); + when(userAdmin.getUser(Mockito.anyString(), Mockito.anyBoolean())).thenReturn(user); setResourceBusinessLogicMock(); String jsonContent = ImportUtilsTest.loadFileNameToJsonString("normative-types-new-blockStorage.yml"); - Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> createResource = importManager.importNormativeResource(jsonContent, resourceMD, user, true, true); - assertTrue(createResource.isLeft()); - Resource resource = createResource.left().value().left; + ImmutablePair<Resource, ActionStatus> createResource = importManager.importNormativeResource(jsonContent, resourceMD, user, true, true); + Resource resource = createResource.left; testSetConstantMetaData(resource); testSetMetaDataFromJson(resource, resourceMD); @@ -127,31 +135,29 @@ public class ResourceImportManagerTest { Mockito.verify(resourceBusinessLogic, Mockito.times(1)).propagateStateToCertified(Mockito.eq(user), Mockito.eq(resource), Mockito.any(LifecycleChangeInfoWithAction.class), Mockito.eq(false), Mockito.eq(true), Mockito.eq(false)); } - @Test + @Test() public void testResourceCreationFailed() throws IOException { UploadResourceInfo resourceMD = createDummyResourceMD(); User user = new User(); user.setUserId(resourceMD.getContactId()); - Either<User, ActionStatus> eitherUser = Either.left(user); - when(userAdmin.getUser(Mockito.anyString(), Mockito.anyBoolean())).thenReturn(eitherUser); + when(userAdmin.getUser(Mockito.anyString(), Mockito.anyBoolean())).thenReturn(user); ResponseFormat dummyResponseFormat = createGeneralErrorInfo(); when(responseFormatManager.getResponseFormat(ActionStatus.GENERAL_ERROR)).thenReturn(dummyResponseFormat); setResourceBusinessLogicMock(); String jsonContent = "this is an invalid yml!"; - - Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> createResource = importManager.importNormativeResource(jsonContent, resourceMD, user, true, true); - assertTrue(createResource.isRight()); - ResponseFormat errorInfoFromTest = createResource.right().value(); - assertEquals(errorInfoFromTest.getStatus(), dummyResponseFormat.getStatus()); - assertEquals(errorInfoFromTest.getMessageId(), dummyResponseFormat.getMessageId()); - assertEquals(errorInfoFromTest.getFormattedMessage(), dummyResponseFormat.getFormattedMessage()); + ComponentException errorInfoFromTest = null; + try { + importManager.importNormativeResource(jsonContent, resourceMD, user, true, true); + }catch (ComponentException e){ + errorInfoFromTest = e; + } + assertNotNull(errorInfoFromTest); + assertEquals(errorInfoFromTest.getActionStatus(), ActionStatus.GENERAL_ERROR); Mockito.verify(resourceBusinessLogic, Mockito.times(0)).createOrUpdateResourceByImport(Mockito.any(Resource.class), Mockito.eq(user), Mockito.eq(true), Mockito.eq(false), Mockito.eq(true), Mockito.eq(null), Mockito.eq(null), Mockito.eq(false)); - Mockito.verify(resourceBusinessLogic, Mockito.times(0)).propagateStateToCertified(Mockito.eq(user), Mockito.any(Resource.class), Mockito.any(LifecycleChangeInfoWithAction.class), Mockito.eq(false), Mockito.eq(true), Mockito.eq(false)); - } @Test @@ -159,17 +165,14 @@ public class ResourceImportManagerTest { UploadResourceInfo resourceMD = createDummyResourceMD(); User user = new User(); user.setUserId(resourceMD.getContactId()); - Either<User, ActionStatus> eitherUser = Either.left(user); - - when(userAdmin.getUser(Mockito.anyString(), Mockito.anyBoolean())).thenReturn(eitherUser); + when(userAdmin.getUser(Mockito.anyString(), Mockito.anyBoolean())).thenReturn(user); setResourceBusinessLogicMock(); String jsonContent = ImportUtilsTest.loadFileNameToJsonString("normative-types-new-webServer.yml"); - Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> createResource = importManager.importNormativeResource(jsonContent, resourceMD, user, true, true); - assertTrue(createResource.isLeft()); - Resource resource = createResource.left().value().left; + ImmutablePair<Resource, ActionStatus> createResource = importManager.importNormativeResource(jsonContent, resourceMD, user, true, true); + Resource resource = createResource.left; testSetCapabilities(resource); Mockito.verify(resourceBusinessLogic, Mockito.times(1)).propagateStateToCertified(Mockito.eq(user), Mockito.eq(resource), Mockito.any(LifecycleChangeInfoWithAction.class), Mockito.eq(false), Mockito.eq(true), Mockito.eq(false)); @@ -182,58 +185,47 @@ public class ResourceImportManagerTest { UploadResourceInfo resourceMD = createDummyResourceMD(); User user = new User(); user.setUserId(resourceMD.getContactId()); - Either<User, ActionStatus> eitherUser = Either.left(user); - - when(userAdmin.getUser(Mockito.anyString(), Mockito.anyBoolean())).thenReturn(eitherUser); + when(userAdmin.getUser(Mockito.anyString(), Mockito.anyBoolean())).thenReturn(user); setResourceBusinessLogicMock(); String jsonContent = ImportUtilsTest.loadFileNameToJsonString("normative-types-new-port.yml"); - Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> createResource = importManager.importNormativeResource(jsonContent, resourceMD, user, true, true); - assertTrue(createResource.isLeft()); - testSetRequirments(createResource.left().value().left); + ImmutablePair<Resource, ActionStatus> createResource = importManager.importNormativeResource(jsonContent, resourceMD, user, true, true); + testSetRequirments(createResource.left); } private void setResourceBusinessLogicMock() { when(resourceBusinessLogic.getUserAdmin()).thenReturn(userAdmin); when(resourceBusinessLogic.createOrUpdateResourceByImport(Mockito.any(Resource.class), Mockito.any(User.class), Mockito.anyBoolean(), Mockito.anyBoolean(), Mockito.anyBoolean(), Mockito.eq(null), Mockito.eq(null), Mockito.eq(false))) - .thenAnswer(new Answer<ImmutablePair<Resource, ActionStatus>>() { - public ImmutablePair<Resource, ActionStatus> answer(InvocationOnMock invocation) throws Throwable { - Object[] args = invocation.getArguments(); - return new ImmutablePair<>((Resource) args[0], ActionStatus.CREATED); + .thenAnswer((Answer<ImmutablePair<Resource, ActionStatus>>) invocation -> { + Object[] args = invocation.getArguments(); + return new ImmutablePair<>((Resource) args[0], ActionStatus.CREATED); - } }); when(resourceBusinessLogic.propagateStateToCertified(Mockito.any(User.class), Mockito.any(Resource.class), Mockito.any(LifecycleChangeInfoWithAction.class), Mockito.eq(false), Mockito.eq(true), Mockito.eq(false))) - .thenAnswer(new Answer<Either<Resource, ResponseFormat>>() { - public Either<Resource, ResponseFormat> answer(InvocationOnMock invocation) throws Throwable { - Object[] args = invocation.getArguments(); - return Either.left((Resource) args[1]); + .thenAnswer((Answer<Resource>) invocation -> { + Object[] args = invocation.getArguments(); + return (Resource) args[1]; - } }); - when(resourceBusinessLogic.createResourceByDao(Mockito.any(Resource.class), Mockito.any(User.class), Mockito.any(AuditingActionEnum.class), Mockito.anyBoolean(), Mockito.anyBoolean())).thenAnswer(new Answer<Either<Resource, ResponseFormat>>() { - public Either<Resource, ResponseFormat> answer(InvocationOnMock invocation) throws Throwable { - Object[] args = invocation.getArguments(); - return Either.left((Resource) args[0]); + when(resourceBusinessLogic.createResourceByDao(Mockito.any(Resource.class), Mockito.any(User.class), Mockito.any(AuditingActionEnum.class), Mockito.anyBoolean(), Mockito.anyBoolean())).thenAnswer((Answer<Either<Resource, ResponseFormat>>) invocation -> { + Object[] args = invocation.getArguments(); + return Either.left((Resource) args[0]); - } }); - when(resourceBusinessLogic.validateResourceBeforeCreate(Mockito.any(Resource.class), Mockito.any(User.class), Mockito.any(AuditingActionEnum.class), Mockito.eq(false), Mockito.eq(null))).thenAnswer(new Answer<Either<Resource, ResponseFormat>>() { - public Either<Resource, ResponseFormat> answer(InvocationOnMock invocation) throws Throwable { - Object[] args = invocation.getArguments(); - return Either.left((Resource) args[0]); + when(resourceBusinessLogic.validateResourceBeforeCreate(Mockito.any(Resource.class), Mockito.any(User.class), Mockito.any(AuditingActionEnum.class), Mockito.eq(false), Mockito.eq(null))).thenAnswer((Answer<Either<Resource, ResponseFormat>>) invocation -> { + Object[] args = invocation.getArguments(); + return Either.left((Resource) args[0]); - } }); - Either<Boolean, ResponseFormat> either = Either.left(true); + Boolean either = true; when(resourceBusinessLogic.validatePropertiesDefaultValues(Mockito.any(Resource.class))).thenReturn(either); } - public ResponseFormat createGeneralErrorInfo() { + private ResponseFormat createGeneralErrorInfo() { ResponseFormat responseFormat = new ResponseFormat(500); responseFormat.setPolicyException(new PolicyException("POL5000", "Error: Internal Server Error. Please try again later", null)); return responseFormat; @@ -246,7 +238,7 @@ public class ResourceImportManagerTest { resourceMD.addSubCategory("Generic", "Infrastructure"); resourceMD.setContactId("ya107f"); resourceMD.setResourceIconPath("defaulticon"); - resourceMD.setTags(Arrays.asList(new String[] { "BlockStorage" })); + resourceMD.setTags(Collections.singletonList("BlockStorage")); resourceMD.setDescription("Represents a server-local block storage device (i.e., not shared) offering evenly sized blocks of data from which raw storage volumes can be created."); resourceMD.setResourceVendorModelNumber("vendorReleaseNumber"); return resourceMD; @@ -357,7 +349,7 @@ public class ResourceImportManagerTest { private void testSetConstantMetaData(Resource resource) { assertEquals(resource.getVersion(), TypeUtils.getFirstCertifiedVersionVersion()); assertSame(resource.getLifecycleState(), ImportUtils.Constants.NORMATIVE_TYPE_LIFE_CYCLE); - assertEquals((boolean) resource.isHighestVersion(), ImportUtils.Constants.NORMATIVE_TYPE_HIGHEST_VERSION); + assertEquals(resource.isHighestVersion(), ImportUtils.Constants.NORMATIVE_TYPE_HIGHEST_VERSION); assertEquals(resource.getVendorName(), ImportUtils.Constants.VENDOR_NAME); assertEquals(resource.getVendorRelease(), ImportUtils.Constants.VENDOR_RELEASE); } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/ServiceDistributionBLTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/ServiceDistributionBLTest.java index ce7b846934..6609a712cf 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/ServiceDistributionBLTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/ServiceDistributionBLTest.java @@ -77,12 +77,15 @@ public class ServiceDistributionBLTest extends ComponentBusinessLogicMock { private final NodeFilterOperation serviceFilterOperation = Mockito.mock(NodeFilterOperation.class); private final NodeFilterValidator serviceFilterValidator = Mockito.mock(NodeFilterValidator.class); + @InjectMocks ServiceBusinessLogic bl = new ServiceBusinessLogic(elementDao, groupOperation, groupInstanceOperation, groupTypeOperation, groupBusinessLogic, interfaceOperation, interfaceLifecycleTypeOperation, artifactsBusinessLogic, distributionEngine, componentInstanceBusinessLogic, serviceDistributionValidation, forwardingPathValidator, uiComponentDataConverter, - serviceFilterOperation, serviceFilterValidator, artifactToscaOperation); + serviceFilterOperation, serviceFilterValidator, artifactToscaOperation, componentContactIdValidator, + componentNameValidator, componentTagsValidator, componentValidator, componentIconValidator, + componentProjectCodeValidator, componentDescriptionValidator); ComponentsUtils componentsUtils; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/csar/CsarBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/csar/CsarBusinessLogicTest.java index 9bad9f4fa8..ddf6284379 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/csar/CsarBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/csar/CsarBusinessLogicTest.java @@ -30,30 +30,13 @@ package org.openecomp.sdc.be.components.csar; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.when; - import fj.data.Either; - -import java.io.IOException; -import java.net.URISyntaxException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; - import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; - import org.openecomp.sdc.be.components.impl.BaseBusinessLogicMock; import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; +import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.model.Resource; @@ -62,11 +45,35 @@ import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.model.operations.impl.CsarOperation; import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; +import org.openecomp.sdc.common.api.ConfigurationSource; +import org.openecomp.sdc.common.impl.ExternalConfiguration; +import org.openecomp.sdc.common.impl.FSConfigurationSource; import org.openecomp.sdc.common.zip.ZipUtils; import org.openecomp.sdc.common.zip.exception.ZipException; import org.openecomp.sdc.exception.ResponseFormat; +import java.io.IOException; +import java.net.URISyntaxException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.when; + + public class CsarBusinessLogicTest extends BaseBusinessLogicMock { + static ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), + "src/test/resources/config/catalog-be"); + static ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); + private CsarOperation csarOperation = Mockito.mock(CsarOperation.class); private ToscaOperationFacade toscaOperationFacade = Mockito.mock(ToscaOperationFacade.class); @@ -177,8 +184,9 @@ public class CsarBusinessLogicTest extends BaseBusinessLogicMock { @Test(expected = ComponentException.class) public void testValidateCsarBeforeCreate_Fail() { Resource resource = new Resource(); - - when(toscaOperationFacade.validateCsarUuidUniqueness(CSAR_UUID)).thenReturn(StorageOperationStatus.EXEUCTION_FAILED); + String csarUUID = "csarUUID"; + when(toscaOperationFacade.validateCsarUuidUniqueness(csarUUID)).thenReturn(StorageOperationStatus.EXEUCTION_FAILED); + when(componentsUtils.convertFromStorageResponse(StorageOperationStatus.EXEUCTION_FAILED)).thenReturn(ActionStatus.GENERAL_ERROR); test.validateCsarBeforeCreate(resource, AuditingActionEnum.ARTIFACT_DOWNLOAD, user, "csarUUID"); } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/csar/CsarInfoTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/csar/CsarInfoTest.java index 7537935816..4b8d10bb72 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/csar/CsarInfoTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/csar/CsarInfoTest.java @@ -20,30 +20,12 @@ package org.openecomp.sdc.be.components.csar; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.when; - -import java.io.File; -import java.net.URISyntaxException; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import java.util.Optional; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; - import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException; import org.openecomp.sdc.be.config.NonManoArtifactType; import org.openecomp.sdc.be.config.NonManoConfiguration; @@ -54,6 +36,23 @@ import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.common.zip.ZipUtils; import org.openecomp.sdc.common.zip.exception.ZipException; +import java.io.File; +import java.net.URISyntaxException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.is; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import static org.mockito.Mockito.when; + @RunWith(MockitoJUnitRunner.class) public class CsarInfoTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/ArtifactInfoImplTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/ArtifactInfoImplTest.java index 409cdb6eea..0b9542c269 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/ArtifactInfoImplTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/ArtifactInfoImplTest.java @@ -29,7 +29,11 @@ import org.openecomp.sdc.be.model.ComponentInstance; import org.openecomp.sdc.be.model.Service; import org.openecomp.sdc.common.api.ArtifactTypeEnum; -import java.util.*; +import java.util.Collection; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; public class ArtifactInfoImplTest extends BeConfDependentTest { @@ -315,12 +319,4 @@ public class ArtifactInfoImplTest extends BeConfDependentTest { testSubject.setGeneratedFromUUID(generatedFromUUID); } - @Test - public void testUpdateArtifactTimeout() throws Exception { - ArtifactInfoImpl testSubject; - - // default test - testSubject = createTestSubject(); - testSubject.updateArtifactTimeout(); - } } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/AuditDistributionNotificationBuilderTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/AuditDistributionNotificationBuilderTest.java index f3d901c456..c1cf520c8f 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/AuditDistributionNotificationBuilderTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/AuditDistributionNotificationBuilderTest.java @@ -19,15 +19,16 @@ */ package org.openecomp.sdc.be.components.distribution.engine; -import static org.mockito.Mockito.RETURNS_DEFAULTS; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; import org.junit.Test; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; import org.openecomp.sdc.be.model.Service; import org.openecomp.sdc.be.model.User; +import static org.mockito.Mockito.RETURNS_DEFAULTS; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + public class AuditDistributionNotificationBuilderTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/CambriaHandlerTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/CambriaHandlerTest.java index 516c0962cd..980bb8369a 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/CambriaHandlerTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/CambriaHandlerTest.java @@ -48,7 +48,11 @@ import org.openecomp.sdc.common.impl.FSConfigurationSource; import java.io.IOException; import java.net.MalformedURLException; import java.security.GeneralSecurityException; -import java.util.*; +import java.util.Arrays; +import java.util.Collection; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEngineHealthCheckTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEngineHealthCheckTest.java index 3c88ce96ae..1fa0fc60b7 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEngineHealthCheckTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEngineHealthCheckTest.java @@ -40,9 +40,41 @@ public class DistributionEngineHealthCheckTest extends BeConfDependentTest { @Mock private CambriaHandler cambriaHandler = Mockito.mock(CambriaHandler.class); + DistributionEngineClusterHealth distributionEngineClusterHealth = new DistributionEngineClusterHealth(); + + Gson gson = new Gson(); + + Gson prettyGson = new GsonBuilder().setPrettyPrinting().create(); + + // + // @Test + // public void validateDownWhenEnvAreDown() { + // + // Map<String, AtomicBoolean> envNamePerStatus = new HashMap<>(); + // envNamePerStatus.put("PROD1", new AtomicBoolean(false)); + // envNamePerStatus.put("PROD2", new AtomicBoolean(false)); + // + // distributionEngineClusterHealth.startHealthCheckTask(envNamePerStatus); + // + // HealthCheckInfo healthCheckInfo = + // distributionEngineClusterHealth.getHealthCheckInfo(); + // assertEquals("verify down", HealthCheckStatus.DOWN, + // healthCheckInfo.getHealthCheckStatus()); + // assertEquals("verify DE component", HealthCheckComponent.DE, + // healthCheckInfo.getHealthCheckComponent()); + // + // } + @Test public void validateUpWhenQuerySucceed() { + // Map<String, AtomicBoolean> envNamePerStatus = new HashMap<>(); + // envNamePerStatus.put("PROD1", new AtomicBoolean(true)); + // envNamePerStatus.put("PROD2", new AtomicBoolean(false)); + // + // distributionEngineClusterHealth.startHealthCheckTask(envNamePerStatus, + // false); + CambriaErrorResponse cambriaOkResponse = new CambriaErrorResponse(CambriaOperationStatus.OK, 200); CambriaErrorResponse cambriaErrorResponse = new CambriaErrorResponse(CambriaOperationStatus.INTERNAL_SERVER_ERROR, 500); CambriaErrorResponse cambriaNotErrorResponse = new CambriaErrorResponse(CambriaOperationStatus.AUTHENTICATION_ERROR, 403); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEngineInitTaskTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEngineInitTaskTest.java index 4a9c8e4d81..5643cd07bf 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEngineInitTaskTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEngineInitTaskTest.java @@ -43,7 +43,9 @@ import java.util.List; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import static org.mockito.Mockito.when; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEnginePollingTaskTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEnginePollingTaskTest.java index 84c5ff1891..be450c493b 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEnginePollingTaskTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEnginePollingTaskTest.java @@ -29,6 +29,11 @@ import org.openecomp.sdc.be.components.distribution.engine.report.DistributionCo import org.openecomp.sdc.be.config.DistributionEngineConfiguration; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.resources.data.OperationalEnvironmentEntry; +import org.openecomp.sdc.common.log.wrappers.LoggerSdcAudit; + +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; public class DistributionEnginePollingTaskTest extends BeConfDependentTest { @@ -39,16 +44,25 @@ public class DistributionEnginePollingTaskTest extends BeConfDependentTest { componentsUtils = Mockito.mock(ComponentsUtils.class); DistributionEngineConfiguration distributionEngineConfiguration = configurationManager .getDistributionEngineConfiguration(); - + distributionEngineConfiguration.setDistributionNotifTopicName("StamName"); + distributionEngineConfiguration.setDistributionStatusTopicName("StamName"); + List uebList = new LinkedList<>(); + uebList.add("FirstUEBserver.com"); + distributionEngineConfiguration.setUebServers(uebList); + + OperationalEnvironmentEntry environmentEntry = new OperationalEnvironmentEntry(); + HashSet<String> dmaapUebAddress = new HashSet<>(); + dmaapUebAddress.add("STAM"); + environmentEntry.setDmaapUebAddress(dmaapUebAddress); return new DistributionEnginePollingTask(distributionEngineConfiguration, new DistributionCompleteReporterMock(), componentsUtils, new DistributionEngineClusterHealth(), - new OperationalEnvironmentEntry()); + environmentEntry); } @Test public void testStartTask() throws Exception { DistributionEnginePollingTask testSubject; - String topicName = ""; + String topicName = "UEBTopic"; // default test testSubject = createTestSubject(); @@ -99,9 +113,9 @@ public class DistributionEnginePollingTaskTest extends BeConfDependentTest { testSubject = createTestSubject(); Mockito.doNothing().when(componentsUtils).auditDistributionStatusNotification( Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), - Mockito.anyString(), Mockito.anyString()); + Mockito.anyString(), Mockito.anyString(), Mockito.isNull()); Deencapsulation.invoke(testSubject, "handleDistributionNotificationMsg", - notification); + notification, new LoggerSdcAudit(DistributionEnginePollingTask.class)); } @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEngineTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEngineTest.java index 9e7930d7e0..8473bb2cb7 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEngineTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/DistributionEngineTest.java @@ -21,19 +21,16 @@ package org.openecomp.sdc.be.components.distribution.engine; import mockit.Deencapsulation; -import java.util.LinkedList; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentMatchers; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.mockito.Mockito; import org.mockito.MockitoAnnotations; -import org.openecomp.sdc.be.components.BeConfDependentTest; import org.openecomp.sdc.be.components.utils.OperationalEnvironmentBuilder; +import org.openecomp.sdc.be.config.Configuration; import org.openecomp.sdc.be.config.DistributionEngineConfiguration; -import org.openecomp.sdc.be.config.DistributionEngineConfiguration.CreateTopicConfig; import org.openecomp.sdc.be.config.DistributionEngineConfiguration.DistributionStatusTopicConfig; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.model.Service; @@ -52,10 +49,11 @@ import java.util.stream.Stream; import static org.junit.Assert.assertEquals; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verifyZeroInteractions; import static org.mockito.Mockito.when; -public class DistributionEngineTest extends BeConfDependentTest{ +public class DistributionEngineTest{ public static final String DISTRIBUTION_ID = "distId"; public static final String ENV_ID = "envId"; @@ -70,19 +68,18 @@ public class DistributionEngineTest extends BeConfDependentTest{ @Mock private DistributionNotificationSender distributionNotificationSender; - + @Mock private ServiceDistributionArtifactsBuilder serviceDistributionArtifactsBuilder; - - @Mock - private DistributionEngineClusterHealth distributionEngineClusterHealth; - + private DummyDistributionConfigurationManager distributionEngineConfigurationMock; private Map<String, OperationalEnvironmentEntry> envs; private User modifier = new User(); + private Configuration.EnvironmentContext environmentContext = mock(Configuration.EnvironmentContext.class); + @Before public void setUpMock() throws Exception { MockitoAnnotations.initMocks(this); @@ -91,6 +88,9 @@ public class DistributionEngineTest extends BeConfDependentTest{ modifier.setUserId(USER_ID); modifier.setFirstName(MODIFIER); modifier.setLastName(MODIFIER); + when(environmentContext.getDefaultValue()).thenReturn("General_Revenue-Bearing"); + when(distributionEngineConfigurationMock.getConfiguration().getEnvironmentContext()) + .thenReturn(environmentContext); } @Test @@ -135,58 +135,17 @@ public class DistributionEngineTest extends BeConfDependentTest{ .collect(Collectors.toMap(OperationalEnvironmentEntry::getEnvironmentId, Function.identity())); } - @Test - public void testIsActive() throws Exception { - // default test - testInstance.isActive(); + private DistributionEngine createTestSubject() { + return new DistributionEngine(); } - - @Test - public void testInitDisabled() throws Exception { - // default test - Deencapsulation.invoke(testInstance, "init"); - } - - @Test - public void testInitNotValidConfig() throws Exception { - DistributionEngine testSubject; - // default test - Mockito.when(distributionEngineConfigurationMock.getConfigurationMock().isStartDistributionEngine()) - .thenReturn(true); - Mockito.when(distributionEngineConfigurationMock.configurationMock.getDistributionStatusTopic()) - .thenReturn(new DistributionStatusTopicConfig()); - Deencapsulation.invoke(testInstance, "init"); - } - - @Test + @Test(expected=NullPointerException.class) public void testInit() throws Exception { DistributionEngine testSubject; // default test - Mockito.when(distributionEngineConfigurationMock.getConfigurationMock().isStartDistributionEngine()) - .thenReturn(true); - DistributionStatusTopicConfig value = new DistributionStatusTopicConfig(); - value.setConsumerId("mock"); - value.setConsumerGroup("mock"); - value.setFetchTimeSec(0); - value.setPollingIntervalSec(0); - LinkedList<String> value2 = new LinkedList<>(); - value2.add("uebsb91kcdc.it.att.com:3904"); - value2.add("uebsb92kcdc.it.att.com:3904"); - Mockito.when(distributionEngineConfigurationMock.configurationMock.getUebServers()).thenReturn(value2); - Mockito.when(distributionEngineConfigurationMock.configurationMock.getEnvironments()).thenReturn(value2); - Mockito.when(distributionEngineConfigurationMock.configurationMock.getUebPublicKey()).thenReturn("mock"); - Mockito.when(distributionEngineConfigurationMock.configurationMock.getUebSecretKey()).thenReturn("mock"); - Mockito.when(distributionEngineConfigurationMock.configurationMock.getDistributionNotifTopicName()) - .thenReturn("mock"); - Mockito.when(distributionEngineConfigurationMock.configurationMock.getDistributionStatusTopicName()) - .thenReturn("mock"); - Mockito.when(distributionEngineConfigurationMock.configurationMock.getCreateTopic()) - .thenReturn(new CreateTopicConfig()); - Mockito.when(distributionEngineConfigurationMock.configurationMock.getDistributionStatusTopic()) - .thenReturn(value); - Deencapsulation.invoke(testInstance, "init"); + testSubject = createTestSubject(); + Deencapsulation.invoke(testSubject, "init"); } @Test @@ -194,94 +153,109 @@ public class DistributionEngineTest extends BeConfDependentTest{ DistributionEngine testSubject; // default test - testInstance.shutdown(); + testSubject = createTestSubject(); + testSubject.shutdown(); } @Test public void testValidateConfiguration() throws Exception { + DistributionEngine testSubject; DistributionEngineConfiguration deConfiguration = new DistributionEngineConfiguration(); deConfiguration.setDistributionStatusTopic((new DistributionStatusTopicConfig())); boolean result; // default test - result = Deencapsulation.invoke(testInstance, "validateConfiguration", deConfiguration); + testSubject = createTestSubject(); + result = Deencapsulation.invoke(testSubject, "validateConfiguration", deConfiguration); } @Test public void testIsValidServers() throws Exception { + DistributionEngine testSubject; List<String> uebServers = null; String methodName = ""; String paramName = ""; boolean result; // test 1 + testSubject = createTestSubject(); uebServers = null; - result = Deencapsulation.invoke(testInstance, "isValidServers", + result = Deencapsulation.invoke(testSubject, "isValidServers", new Object[] { List.class, methodName, paramName }); Assert.assertEquals(false, result); } @Test public void testIsValidFqdn() throws Exception { + DistributionEngine testSubject; String serverFqdn = ""; boolean result; // default test - result = Deencapsulation.invoke(testInstance, "isValidFqdn", new Object[] { serverFqdn }); + testSubject = createTestSubject(); + result = Deencapsulation.invoke(testSubject, "isValidFqdn", new Object[] { serverFqdn }); } @Test public void testIsValidParam() throws Exception { + DistributionEngine testSubject; String paramValue = ""; String methodName = ""; String paramName = ""; boolean result; // default test - result = Deencapsulation.invoke(testInstance, "isValidParam", + testSubject = createTestSubject(); + result = Deencapsulation.invoke(testSubject, "isValidParam", new Object[] { paramValue, methodName, paramName }); } @Test public void testIsValidParam_1() throws Exception { + DistributionEngine testSubject; List<String> paramValue = null; String methodName = ""; String paramName = ""; boolean result; // default test - result = Deencapsulation.invoke(testInstance, "isValidParam", + testSubject = createTestSubject(); + result = Deencapsulation.invoke(testSubject, "isValidParam", new Object[] { List.class, methodName, paramName }); } @Test public void testIsValidObject() throws Exception { + DistributionEngine testSubject; Object paramValue = null; String methodName = ""; String paramName = ""; boolean result; // test 1 + testSubject = createTestSubject(); paramValue = null; - result = Deencapsulation.invoke(testInstance, "isValidObject", + result = Deencapsulation.invoke(testSubject, "isValidObject", new Object[] { Object.class, methodName, paramName }); Assert.assertEquals(false, result); } @Test public void testGetEnvironmentErrorDescription() throws Exception { + DistributionEngine testSubject; StorageOperationStatus status = null; String result; // default test - result = Deencapsulation.invoke(testInstance, "getEnvironmentErrorDescription", - StorageOperationStatus.DISTR_ENVIRONMENT_NOT_AVAILABLE); - result = Deencapsulation.invoke(testInstance, "getEnvironmentErrorDescription", - StorageOperationStatus.DISTR_ENVIRONMENT_NOT_FOUND); - result = Deencapsulation.invoke(testInstance, "getEnvironmentErrorDescription", - StorageOperationStatus.DISTR_ENVIRONMENT_SENT_IS_INVALID); - result = Deencapsulation.invoke(testInstance, "getEnvironmentErrorDescription", - StorageOperationStatus.ARTIFACT_NOT_FOUND); + testSubject = createTestSubject(); + result = Deencapsulation.invoke(testSubject, "getEnvironmentErrorDescription", + StorageOperationStatus.DISTR_ENVIRONMENT_NOT_AVAILABLE); + result = Deencapsulation.invoke(testSubject, "getEnvironmentErrorDescription", + StorageOperationStatus.DISTR_ENVIRONMENT_NOT_FOUND); + result = Deencapsulation.invoke(testSubject, "getEnvironmentErrorDescription", + StorageOperationStatus.DISTR_ENVIRONMENT_SENT_IS_INVALID); + result = Deencapsulation.invoke(testSubject, "getEnvironmentErrorDescription", + StorageOperationStatus.ARTIFACT_NOT_FOUND); } @Test @@ -291,36 +265,61 @@ public class DistributionEngineTest extends BeConfDependentTest{ StorageOperationStatus result; // test 1 + testSubject = createTestSubject(); envName = null; - result = testInstance.isEnvironmentAvailable(envName); + result = testSubject.isEnvironmentAvailable(envName); Assert.assertEquals(StorageOperationStatus.DISTR_ENVIRONMENT_SENT_IS_INVALID, result); // test 2 + testSubject = createTestSubject(); envName = "mock"; - result = testInstance.isEnvironmentAvailable(envName); + result = testSubject.isEnvironmentAvailable(envName); Assert.assertEquals(StorageOperationStatus.DISTR_ENVIRONMENT_NOT_FOUND, result); } - @Test + //TODO Create test coverage for this method + /*@Test public void testIsEnvironmentAvailable_1() throws Exception { DistributionEngine testSubject; StorageOperationStatus result; - LinkedList<String> value = new LinkedList<>(); - value.add("mock"); - Mockito.when(distributionEngineConfigurationMock.configurationMock.getEnvironments()).thenReturn(value); - testInstance.isEnvironmentAvailable(); + // default test + testSubject = createTestSubject(); + result = testInstance.isEnvironmentAvailable(); + }*/ + + @Test(expected=NullPointerException.class) + public void testDisableEnvironment() throws Exception { + DistributionEngine testSubject; + String envName = ""; + + // default test + testSubject = createTestSubject(); + testSubject.disableEnvironment(envName); } @Test public void testBuildTopicName() throws Exception { + DistributionEngine testSubject; String envName = ""; String result; // default test - result = Deencapsulation.invoke(testInstance, "buildTopicName", new Object[] { envName }); + testSubject = createTestSubject(); + result = Deencapsulation.invoke(testSubject, "buildTopicName", new Object[] { envName }); } + @Test + public void testIsReadyForDistribution() throws Exception { + DistributionEngine testSubject; + Service service = null; + String envName = ""; + StorageOperationStatus result; + + // default test + testSubject = createTestSubject(); + result = testSubject.isReadyForDistribution(envName); + } @Test @@ -330,8 +329,7 @@ public class DistributionEngineTest extends BeConfDependentTest{ OperationalEnvironmentEntry result; // default test - when(environmentsEngine.getEnvironmentById(ArgumentMatchers.anyString())) - .thenReturn(new OperationalEnvironmentEntry()); + when(environmentsEngine.getEnvironmentById(ArgumentMatchers.anyString())).thenReturn(new OperationalEnvironmentEntry()); result = testInstance.getEnvironmentById(opEnvId); } @@ -343,9 +341,8 @@ public class DistributionEngineTest extends BeConfDependentTest{ INotificationData result; // default test - // testSubject = createTestSubject(); - when(serviceDistributionArtifactsBuilder.buildResourceInstanceForDistribution(ArgumentMatchers.any(), - ArgumentMatchers.any(), ArgumentMatchers.any())).thenReturn(new NotificationDataImpl()); + //testSubject = createTestSubject(); + when(serviceDistributionArtifactsBuilder.buildResourceInstanceForDistribution(ArgumentMatchers.any(), ArgumentMatchers.any(), ArgumentMatchers.any())).thenReturn(new NotificationDataImpl()); result = testInstance.buildServiceForDistribution(service, distributionId, workloadContext); } } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/DmaapClientFactoryTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/DmaapClientFactoryTest.java index bb4c315580..64fa02f238 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/DmaapClientFactoryTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/DmaapClientFactoryTest.java @@ -69,6 +69,11 @@ public class DmaapClientFactoryTest { parameters.setAftDme2RoundtripTimeoutMs(435345); parameters.setAftDme2ReadTimeoutMs(5645); parameters.setDme2preferredRouterFilePath(filePath); + parameters.setAftDme2ClientIgnoreSslConfig(false); + parameters.setAftDme2SslEnable(true); + parameters.setAftDme2ClientKeystore("mock"); + parameters.setAftDme2ClientKeystorePassword("mock"); + parameters.setAftDme2ClientSslCertAlias("mock"); // default test testSubject = createTestSubject(); @@ -111,6 +116,11 @@ public class DmaapClientFactoryTest { parameters.setAftDme2RoundtripTimeoutMs(435345); parameters.setAftDme2ReadTimeoutMs(5645); parameters.setDme2preferredRouterFilePath(filePath); + parameters.setAftDme2ClientIgnoreSslConfig(false); + parameters.setAftDme2SslEnable(true); + parameters.setAftDme2ClientKeystore("mock"); + parameters.setAftDme2ClientKeystorePassword("mock"); + parameters.setAftDme2ClientSslCertAlias("mock"); // default test testSubject = createTestSubject(); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/DummyDistributionConfigurationManager.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/DummyDistributionConfigurationManager.java index b810175295..0d19db9ba7 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/DummyDistributionConfigurationManager.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/DummyDistributionConfigurationManager.java @@ -21,6 +21,7 @@ package org.openecomp.sdc.be.components.distribution.engine; import org.mockito.Mockito; +import org.openecomp.sdc.be.config.Configuration; import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.config.DistributionEngineConfiguration; import org.openecomp.sdc.common.api.ConfigurationListener; @@ -28,7 +29,8 @@ import org.openecomp.sdc.common.api.ConfigurationSource; public class DummyDistributionConfigurationManager { - DistributionEngineConfiguration configurationMock = Mockito.mock(DistributionEngineConfiguration.class); + private DistributionEngineConfiguration configurationMock = Mockito.mock(DistributionEngineConfiguration.class); + private Configuration configuration = Mockito.mock(Configuration.class); public DummyDistributionConfigurationManager() { new ConfigurationManager(new DummyConfigurationSource()); @@ -42,6 +44,9 @@ public class DummyDistributionConfigurationManager { if (className.equals(DistributionEngineConfiguration.class)) { return (T)configurationMock; } + if (className.equals(Configuration.class)) { + return (T)configuration; + } return null; } @@ -54,4 +59,7 @@ public class DummyDistributionConfigurationManager { public DistributionEngineConfiguration getConfigurationMock() { return configurationMock; } + public Configuration getConfiguration() { + return configuration; + } } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/EnvironmentsEngineTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/EnvironmentsEngineTest.java index da2b3e387c..f73442cd8a 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/EnvironmentsEngineTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/EnvironmentsEngineTest.java @@ -20,7 +20,6 @@ package org.openecomp.sdc.be.components.distribution.engine; -import com.att.nsa.apiClient.credentials.ApiCredential; import fj.data.Either; import mockit.Deencapsulation; import org.apache.http.HttpStatus; @@ -30,6 +29,7 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; import org.openecomp.sdc.be.config.Configuration; import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.config.DistributionEngineConfiguration; @@ -43,9 +43,15 @@ import org.openecomp.sdc.common.datastructure.Wrapper; import org.openecomp.sdc.common.http.client.api.HttpResponse; import java.io.IOException; -import java.util.*; -import java.util.concurrent.atomic.AtomicBoolean; - +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Map; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.when; @@ -77,7 +83,7 @@ public class EnvironmentsEngineTest { Either<List<OperationalEnvironmentEntry>, CassandraOperationStatus> successEither = Either.left(entryList); when(operationalEnvironmentDao.getByEnvironmentsStatus(EnvironmentStatusEnum.COMPLETED)).thenReturn(successEither); when(configurationManager.getDistributionEngineConfiguration()).thenReturn(distributionEngineConfiguration); - when(distributionEngineConfiguration.getEnvironments()).thenReturn(Arrays.asList("Env Loaded From Configuration")); + when(distributionEngineConfiguration.getEnvironments()).thenReturn(Collections.singletonList("Env Loaded From Configuration")); when(distributionEngineConfiguration.getUebPublicKey()).thenReturn("Dummy Public Key"); when(distributionEngineConfiguration.getUebSecretKey()).thenReturn("Dummy Private Key"); when(distributionEngineConfiguration.getUebServers()).thenReturn( @@ -95,13 +101,13 @@ public class EnvironmentsEngineTest { @Test public void testGetFullOperationalEnvByIdSuccess() { String json = getFullOperationalEnvJson(); - + HttpResponse restResponse = new HttpResponse(json, HttpStatus.SC_OK, "Successfully completed"); when(aaiRequestHandler.getOperationalEnvById(Mockito.anyString())).thenReturn(restResponse); - + Either<OperationalEnvInfo, Integer> response = envEngine.getOperationalEnvById("DummyId"); assertTrue("The operational environment request ran as not expected", response.isLeft()); - + OperationalEnvInfo operationalEnvInfo = response.left().value(); assertEquals("The operational environment json is not as expected", operationalEnvInfo.toString(), json); @@ -110,26 +116,26 @@ public class EnvironmentsEngineTest { @Test public void testGetPartialOperationalEnvByIdSuccess() { String json = getPartialOperationalEnvJson(); - + HttpResponse<String> restResponse = new HttpResponse<String>(json, HttpStatus.SC_OK, "Successfully completed"); when(aaiRequestHandler.getOperationalEnvById(Mockito.anyString())).thenReturn(restResponse); - + Either<OperationalEnvInfo, Integer> response = envEngine.getOperationalEnvById("DummyId"); assertTrue("The operational environment request ran as not expected", response.isLeft()); - + OperationalEnvInfo operationalEnvInfo = response.left().value(); assertEquals("The operational environment json is not as expected", operationalEnvInfo.toString(), json); } - + @Test public void testGetOperationalEnvByIdFailedByJsonConvert() { String jsonCorrupted = getCorruptedOperationalEnvJson(); - + HttpResponse<String> restResponse = new HttpResponse<String>(jsonCorrupted, HttpStatus.SC_OK, "Successfully Completed"); when(aaiRequestHandler.getOperationalEnvById(Mockito.anyString())).thenReturn(restResponse); - + Either<OperationalEnvInfo, Integer> response = envEngine.getOperationalEnvById("DummyId"); assertTrue("The operational environment request ran as not expected", response.isRight()); assertEquals("The operational environment request status code is not as expected", (Integer)HttpStatus.SC_INTERNAL_SERVER_ERROR, response.right().value()); @@ -140,7 +146,7 @@ public class EnvironmentsEngineTest { String json = getFullOperationalEnvJson(); HttpResponse<String> restResponse = new HttpResponse<String>(json, HttpStatus.SC_NOT_FOUND, "Not Found"); when(aaiRequestHandler.getOperationalEnvById(Mockito.anyString())).thenReturn(restResponse); - + Either<OperationalEnvInfo, Integer> response = envEngine.getOperationalEnvById("DummyId"); assertTrue("The operational environment request ran as not expected", response.isRight()); assertEquals("The operational environment request status code is not as expected", (Integer)HttpStatus.SC_NOT_FOUND, response.right().value()); @@ -164,6 +170,50 @@ public class EnvironmentsEngineTest { assertTrue(oe == returnedOe); } + @Test + public void getEnvironmentByDmaapUebAddressNoProperEnvironment() { + OperationalEnvironmentEntry opEnvEntry = createOpEnvEntry("1"); + opEnvEntry.setDmaapUebAddress(new HashSet<>()); + envEngine.addToMap(opEnvEntry); + assertThatThrownBy(() -> { + envEngine.getEnvironmentByDmaapUebAddress(Arrays.asList("11", "22"));}) + .isInstanceOf(ComponentException.class); + } + + @Test + public void getEnvironmentByDmaapUebAddressListWithEmptyList() { + OperationalEnvironmentEntry opEnvEntry = createOpEnvEntry("1"); + opEnvEntry.setDmaapUebAddress(new HashSet<>(Arrays.asList("11","22"))); + OperationalEnvironmentEntry opEnvEntry2 = createOpEnvEntry("2"); + opEnvEntry2.setDmaapUebAddress(new HashSet<>(Arrays.asList("33","44","55"))); + envEngine.addToMap(opEnvEntry); + envEngine.addToMap(opEnvEntry2); + assertThatThrownBy(() -> { + envEngine.getEnvironmentByDmaapUebAddress(new ArrayList<>());}) + .isInstanceOf(ComponentException.class); + } + + @Test + public void getEnvironmentByDmaapUebAddressList() { + OperationalEnvironmentEntry opEnvEntry = createOpEnvEntry("1"); + opEnvEntry.setDmaapUebAddress(new HashSet<>(Arrays.asList("11","22"))); + OperationalEnvironmentEntry opEnvEntry2 = createOpEnvEntry("2"); + opEnvEntry2.setDmaapUebAddress(new HashSet<>(Arrays.asList("33","44","55"))); + envEngine.addToMap(opEnvEntry); + envEngine.addToMap(opEnvEntry2); + assertThat(envEngine.getEnvironmentByDmaapUebAddress(Arrays.asList("77","22")) + .getEnvironmentId()).isEqualTo("1"); + + assertThat(envEngine.getEnvironmentByDmaapUebAddress(Arrays.asList("77","55")) + .getEnvironmentId()).isEqualTo("2"); + + assertThat(envEngine.getEnvironmentByDmaapUebAddress(Arrays.asList("11","44")) + .getEnvironmentId()).isEqualTo("1"); + } + + + + private String getCorruptedOperationalEnvJson() { return "{\"OPERATIONAL-environment-name\":\"Op Env Name\"," + "\"OPERATIONAL-environment-type\":\"VNF\"," @@ -183,7 +233,7 @@ public class EnvironmentsEngineTest { "\"relationship-list\":{" + "\"relationship\":[]" + "}" + - "}"; + "}"; } private String getFullOperationalEnvJson() { @@ -213,7 +263,7 @@ public class EnvironmentsEngineTest { "\"property-value\":\"OEname3\"" + "}]}]}}"; } - + private OperationalEnvironmentEntry createOpEnvEntry(String name) { OperationalEnvironmentEntry entry = new OperationalEnvironmentEntry(); entry.setEnvironmentId(name); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/NotificationExecutorServiceTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/NotificationExecutorServiceTest.java index 05f220a8b2..c5b9ff1ae1 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/NotificationExecutorServiceTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/NotificationExecutorServiceTest.java @@ -25,7 +25,12 @@ import org.openecomp.sdc.be.config.DistributionEngineConfiguration.DistributionN import java.util.Collection; import java.util.List; -import java.util.concurrent.*; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Future; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; public class NotificationExecutorServiceTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/ServiceDistributionArtifactsBuilderTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/ServiceDistributionArtifactsBuilderTest.java index ff0a59075d..c1cd5f3181 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/ServiceDistributionArtifactsBuilderTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/ServiceDistributionArtifactsBuilderTest.java @@ -39,80 +39,141 @@ import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade import org.openecomp.sdc.be.model.operations.impl.InterfaceLifecycleOperation; import org.openecomp.sdc.common.api.ArtifactTypeEnum; +import java.util.Arrays; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.when; + public class ServiceDistributionArtifactsBuilderTest extends BeConfDependentTest { @InjectMocks - ServiceDistributionArtifactsBuilder testSubject; - + private ServiceDistributionArtifactsBuilder testInstance; + @Mock - ToscaOperationFacade toscaOperationFacade; + ToscaOperationFacade toscaOperationFacade; + + private ServiceDistributionArtifactsBuilder createTestSubject() { + return testInstance; + } @Before - public void setUpMocks() throws Exception { + public void setUpMock() throws Exception { MockitoAnnotations.initMocks(this); } - @Test public void testGetInterfaceLifecycleOperation() throws Exception { + ServiceDistributionArtifactsBuilder testSubject; InterfaceLifecycleOperation result; // default test + testSubject = createTestSubject(); result = testSubject.getInterfaceLifecycleOperation(); } @Test public void testSetInterfaceLifecycleOperation() throws Exception { + ServiceDistributionArtifactsBuilder testSubject; InterfaceLifecycleOperation interfaceLifecycleOperation = null; // default test + testSubject = createTestSubject(); testSubject.setInterfaceLifecycleOperation(interfaceLifecycleOperation); } @Test public void testResolveWorkloadContext() throws Exception { + ServiceDistributionArtifactsBuilder testSubject; String workloadContext = ""; String result; // default test + testSubject = createTestSubject(); result = Deencapsulation.invoke(testSubject, "resolveWorkloadContext", new Object[] { workloadContext }); } @Test public void testBuildResourceInstanceForDistribution() throws Exception { + ServiceDistributionArtifactsBuilder testSubject; Service service = new Service(); String distributionId = ""; String workloadContext = ""; INotificationData result; // test 1 + testSubject = createTestSubject(); workloadContext = "mock"; result = testSubject.buildResourceInstanceForDistribution(service, distributionId, workloadContext); // test 2 + testSubject = createTestSubject(); workloadContext = null; result = testSubject.buildResourceInstanceForDistribution(service, distributionId, workloadContext); } @Test + public void testBuildResourceInstanceForDistributionArtifactsTimeout() throws Exception { + Service service = new Service(); + int deploymentArtifactTimeout = 60; + ComponentInstance ci = createComponentInstance("ci"); + ci.setDeploymentArtifacts(createDeploymentArtifactList(deploymentArtifactTimeout)); + service.setComponentInstances(Arrays.asList(ci)); + + when(toscaOperationFacade.getToscaElement(Mockito.eq(ci.getComponentUid()), Mockito.any(ComponentParametersView.class))) + .thenReturn(Either.left(createDefaultResource())); + + INotificationData notificationData = testInstance.buildResourceInstanceForDistribution(service, "did", "workload"); + assertThat(notificationData.getResources().get(0).getArtifacts().get(0).getArtifactTimeout()) + .isEqualTo(deploymentArtifactTimeout); + } + + private Map<String, ArtifactDefinition> createDeploymentArtifactList(int timeout) { + Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>(); + deploymentArtifacts.put("label", createArtifactDefinition("1", timeout)); + return deploymentArtifacts; + } + + private Resource createDefaultResource() { + Resource ciResource = new Resource(); + ciResource.setInvariantUUID("res"); + return ciResource; + } + + private ComponentInstance createComponentInstance(String cuid) { + ComponentInstance ci = new ComponentInstance(); + ci.setComponentUid(cuid); + return ci; + } + + private ArtifactDefinition createArtifactDefinition(String id, int timeout) { + ArtifactDefinition artifactDefinition = new ArtifactDefinition(); + artifactDefinition.setTimeout(60); + artifactDefinition.setUniqueId(id); + artifactDefinition.setEsId(id); + return artifactDefinition; + } + + @Test public void testBuildServiceForDistribution() throws Exception { - INotificationData notificationData = Mockito.mock(INotificationData.class); + ServiceDistributionArtifactsBuilder testSubject; + INotificationData notificationData = new INotificationDataMock(); Service service = new Service(); service.setDeploymentArtifacts(new HashMap<>()); service.setToscaArtifacts(new HashMap<>()); INotificationData result; // default test + testSubject = createTestSubject(); result = testSubject.buildServiceForDistribution(notificationData, service); } @Test(expected = NullPointerException.class) public void testConvertServiceArtifactsToArtifactInfo() throws Exception { + ServiceDistributionArtifactsBuilder testSubject; Service service = new Service(); service.setDeploymentArtifacts(new HashMap<>()); Map<String, ArtifactDefinition> toscaArtifacts = new HashMap<>(); @@ -126,19 +187,21 @@ public class ServiceDistributionArtifactsBuilderTest extends BeConfDependentTest List<ArtifactInfoImpl> result; // default test + testSubject = createTestSubject(); result = Deencapsulation.invoke(testSubject, "convertServiceArtifactsToArtifactInfo", service); service.setToscaArtifacts(toscaArtifacts); result = Deencapsulation.invoke(testSubject, "convertServiceArtifactsToArtifactInfo", service); } - @Test + @Test(expected=NullPointerException.class) public void testConvertRIsToJsonContanier() throws Exception { + ServiceDistributionArtifactsBuilder testSubject; Service service = new Service(); List<ComponentInstance> resourceInstances = new LinkedList<>(); List<JsonContainerResourceInstance> result; - Mockito.when(toscaOperationFacade.getToscaElement(Mockito.nullable(String.class), Mockito.any(ComponentParametersView.class))).thenReturn(Either.left(new Resource())); // default test + testSubject = createTestSubject(); result = Deencapsulation.invoke(testSubject, "convertRIsToJsonContanier", service); resourceInstances.add(new ComponentInstance()); @@ -148,46 +211,51 @@ public class ServiceDistributionArtifactsBuilderTest extends BeConfDependentTest @Test public void testFillJsonContainer() throws Exception { + ServiceDistributionArtifactsBuilder testSubject; JsonContainerResourceInstance jsonContainer = new JsonContainerResourceInstance(new ComponentInstance(), new LinkedList<>()); Resource resource = new Resource(); // default test + testSubject = createTestSubject(); Deencapsulation.invoke(testSubject, "fillJsonContainer", jsonContainer, resource); } @Test public void testConvertToArtifactsInfoImpl() throws Exception { + ServiceDistributionArtifactsBuilder testSubject; Service service = new Service(); ComponentInstance resourceInstance = new ComponentInstance(); List<ArtifactInfoImpl> result; // default test + testSubject = createTestSubject(); result = Deencapsulation.invoke(testSubject, "convertToArtifactsInfoImpl", service, resourceInstance); } @Test public void testSetCategories() throws Exception { + ServiceDistributionArtifactsBuilder testSubject; JsonContainerResourceInstance jsonContainer = null; List<CategoryDefinition> categories = null; // test 1 + testSubject = createTestSubject(); categories = null; - LinkedList<CategoryDefinition> linkedList = new LinkedList<>(); - linkedList.add(new CategoryDefinition()); - LinkedList<ArtifactInfoImpl> artifacts = new LinkedList<>(); Deencapsulation.invoke(testSubject, "setCategories", - new JsonContainerResourceInstance(new ComponentInstance(), artifacts), linkedList); + new Object[] { JsonContainerResourceInstance.class, List.class }); } @Test public void testGetArtifactsWithPayload() throws Exception { + ServiceDistributionArtifactsBuilder testSubject; ComponentInstance resourceInstance = new ComponentInstance(); Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>(); resourceInstance.setDeploymentArtifacts(deploymentArtifacts); List<ArtifactDefinition> result; // default test + testSubject = createTestSubject(); result = Deencapsulation.invoke(testSubject, "getArtifactsWithPayload", resourceInstance); deploymentArtifacts.put("mock", new ArtifactDefinition()); result = Deencapsulation.invoke(testSubject, "getArtifactsWithPayload", resourceInstance); @@ -220,10 +288,12 @@ public class ServiceDistributionArtifactsBuilderTest extends BeConfDependentTest @Test public void testVerifyServiceContainsDeploymentArtifacts() throws Exception { + ServiceDistributionArtifactsBuilder testSubject; Service service = new Service(); boolean result; // default test + testSubject = createTestSubject(); result = testSubject.verifyServiceContainsDeploymentArtifacts(service); Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>(); deploymentArtifacts.put("mock", new ArtifactDefinition()); @@ -238,10 +308,124 @@ public class ServiceDistributionArtifactsBuilderTest extends BeConfDependentTest @Test public void testIsContainsPayload() throws Exception { + ServiceDistributionArtifactsBuilder testSubject; Map<String, ArtifactDefinition> deploymentArtifacts = null; boolean result; // default test + testSubject = createTestSubject(); result = Deencapsulation.invoke(testSubject, "isContainsPayload", new Object[] { Map.class }); } + + private class INotificationDataMock implements INotificationData { + + @Override + public String getDistributionID() { + // TODO Auto-generated method stub + return null; + } + + @Override + public String getServiceName() { + // TODO Auto-generated method stub + return null; + } + + @Override + public String getServiceVersion() { + // TODO Auto-generated method stub + return null; + } + + @Override + public String getServiceUUID() { + // TODO Auto-generated method stub + return null; + } + + @Override + public String getServiceDescription() { + // TODO Auto-generated method stub + return null; + } + + @Override + public String getServiceInvariantUUID() { + // TODO Auto-generated method stub + return null; + } + + @Override + public List<JsonContainerResourceInstance> getResources() { + // TODO Auto-generated method stub + return null; + } + + @Override + public List<ArtifactInfoImpl> getServiceArtifacts() { + // TODO Auto-generated method stub + return null; + } + + @Override + public String getWorkloadContext() { + // TODO Auto-generated method stub + return null; + } + + @Override + public void setDistributionID(String distributionId) { + // TODO Auto-generated method stub + + } + + @Override + public void setServiceName(String serviceName) { + // TODO Auto-generated method stub + + } + + @Override + public void setServiceVersion(String serviceVersion) { + // TODO Auto-generated method stub + + } + + @Override + public void setServiceUUID(String serviceUUID) { + // TODO Auto-generated method stub + + } + + @Override + public void setServiceDescription(String serviceDescription) { + // TODO Auto-generated method stub + + } + + @Override + public void setServiceInvariantUUID(String serviceInvariantUuid) { + // TODO Auto-generated method stub + + } + + @Override + public void setResources(List<JsonContainerResourceInstance> resource) { + // TODO Auto-generated method stub + + } + + @Override + public void setServiceArtifacts(List<ArtifactInfoImpl> artifacts) { + // TODO Auto-generated method stub + + } + + @Override + public void setWorkloadContext(String workloadContext) { + // TODO Auto-generated method stub + + } + + } } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/StepsTenantIsolation.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/StepsTenantIsolation.java index b76804f673..ecd239664e 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/StepsTenantIsolation.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/StepsTenantIsolation.java @@ -34,7 +34,11 @@ import org.apache.commons.lang.NotImplementedException; import org.apache.commons.lang.math.NumberUtils; import org.apache.http.HttpStatus; import org.junit.Assert; -import org.mockito.*; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.mockito.Spy; import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus; import org.openecomp.sdc.be.dao.cassandra.OperationalEnvironmentDao; import org.openecomp.sdc.be.datatypes.enums.EnvironmentStatusEnum; @@ -46,7 +50,9 @@ import org.openecomp.sdc.common.http.client.api.HttpResponse; import static java.util.Objects.isNull; import static org.apache.commons.lang3.StringUtils.isEmpty; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; public class StepsTenantIsolation { @@ -282,7 +288,7 @@ public class StepsTenantIsolation { @Then("^trying to retrieve Ueb Addresses From AftDme (.*)$") public void trying_to_retrieve_ueb_addresses_from_AftDme(boolean isActivated) throws Throwable { verify(envEngine, Mockito.times(getNumberOfCallsToValidate(isActivated))).discoverUebHosts( - Mockito.anyString(), Mockito.anyString()); + Mockito.anyString()); } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/rest/MsoRestClientTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/rest/MsoRestClientTest.java deleted file mode 100644 index ef594af274..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/distribution/engine/rest/MsoRestClientTest.java +++ /dev/null @@ -1,161 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * 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.openecomp.sdc.be.components.distribution.engine.rest; - -import com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder; -import com.github.tomakehurst.wiremock.junit.WireMockRule; -import com.github.tomakehurst.wiremock.matching.AnythingPattern; -import com.github.tomakehurst.wiremock.matching.UrlPattern; -import fj.data.Either; -import org.apache.http.HttpHeaders; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import org.openecomp.sdc.be.components.distribution.engine.DistributionStatusNotificationEnum; -import org.openecomp.sdc.be.components.distribution.engine.DummyDistributionConfigurationManager; -import org.openecomp.sdc.be.config.ConfigurationManager; -import org.openecomp.sdc.common.api.ConfigurationSource; -import org.openecomp.sdc.common.http.client.api.HttpResponse; -import org.openecomp.sdc.common.http.config.*; -import org.openecomp.sdc.common.impl.ExternalConfiguration; -import org.openecomp.sdc.common.impl.FSConfigurationSource; -import org.openecomp.sdc.security.SecurityUtil; - -import static com.github.tomakehurst.wiremock.client.WireMock.*; -import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.options; -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.when; - -public class MsoRestClientTest { - - private static final String MSO_HOST = "127.0.0.1"; - private static final String MSO_API_URL = "onap/mso/infra/modelDistributions/v1"; - private static final String DISTRIBUTION_ID = "1000"; - - private MSORestClient msoRestClient; - static ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be"); - static ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); - - - @ClassRule - public static WireMockRule msoRestServer = new WireMockRule(options() - .dynamicPort() - .bindAddress(MSO_HOST)); - - @Before - public void setupMsoServer() throws Exception { - String encodedPw = ""; - Either<String, String> passkey = SecurityUtil.INSTANCE.decrypt(getPwd()); - if(passkey.isLeft()) { - encodedPw = passkey.left().value(); - } - else { - throw new IllegalArgumentException(passkey.right().value()); - } - - msoRestServer.resetToDefaultMappings(); - msoRestServer.stubFor(patch(urlMatching(String.format("/%s%s/(.*)", MSO_API_URL, getDistributionsUrl()))) - .withBasicAuth(getUserName(), encodedPw) - .withHeader(HttpHeaders.CONTENT_TYPE, containing("application/json")) - .withRequestBody(matchingJsonPath("$.status")) - .withRequestBody(matchingJsonPath("$.errorReason", new AnythingPattern()))//error reason is not mandatory - .willReturn(aResponse().withStatus(200))); - } - - @Before - public void setUp() throws Exception { - DummyDistributionConfigurationManager distributionEngineConfigurationMock = new DummyDistributionConfigurationManager(); - when(distributionEngineConfigurationMock.getConfigurationMock().getMsoConfig()).thenReturn(new MsoDummyConfig(msoRestServer.port())); - msoRestClient = new MSORestClient(); - } - - @Test - public void notifyDistributionComplete_emptyErrReason() throws Exception { - HttpResponse<String> response = msoRestClient.notifyDistributionComplete(DISTRIBUTION_ID, DistributionStatusNotificationEnum.DISTRIBUTION_COMPLETE_OK, ""); - assertThat(response.getStatusCode()).isEqualTo(200); - } - - private int getNumOfRetries() { - return ConfigurationManager.getConfigurationManager().getDistributionEngineConfiguration().getMsoConfig().getHttpClientConfig().getNumOfRetries(); - } - - @Test - public void notifyDistributionComplete_noErrReason() throws Exception { - HttpResponse<String> response = msoRestClient.notifyDistributionComplete(DISTRIBUTION_ID, DistributionStatusNotificationEnum.DISTRIBUTION_COMPLETE_OK, null); - assertThat(response.getStatusCode()).isEqualTo(200); - } - - @Test - public void notifyDistributionComplete_completeWithError() throws Exception { - HttpResponse<String> response = msoRestClient.notifyDistributionComplete(DISTRIBUTION_ID, DistributionStatusNotificationEnum.DISTRIBUTION_COMPLETE_ERROR, "my reason"); - assertThat(response.getStatusCode()).isEqualTo(200); - } - - @Test - public void testRetries() throws Exception { - int readTimeout = ConfigurationManager.getConfigurationManager().getDistributionEngineConfiguration().getMsoConfig().getHttpClientConfig().getTimeouts().getReadTimeoutMs(); - int expectedNumOfRetries = getNumOfRetries(); - - UrlPattern msoReqUrlPattern = urlMatching(String.format("/%s%s/(.*)", MSO_API_URL, getDistributionsUrl())); - msoRestServer.stubFor(patch(msoReqUrlPattern) - .willReturn(new ResponseDefinitionBuilder().withFixedDelay(readTimeout + 1))); - HttpResponse<String> response = msoRestClient.notifyDistributionComplete(DISTRIBUTION_ID, DistributionStatusNotificationEnum.DISTRIBUTION_COMPLETE_ERROR, "my reason"); - verify(expectedNumOfRetries + 1, patchRequestedFor(msoReqUrlPattern)); - assertThat(response.getStatusCode()).isEqualTo(500); - } - - private static String getDistributionsUrl() { - return "/distributions"; - } - - private static String getUserName() { - return "asdc"; - } - - private static String getPwd() { - return "OTLEp5lfVhYdyw5EAtTUBQ=="; - } - - private static class MsoDummyConfig extends ExternalServiceConfig { - int port; - - MsoDummyConfig(int port) { - this.port = port; - - BasicAuthorization basicAuthorization = new BasicAuthorization(); - basicAuthorization.setUserName(MsoRestClientTest.getUserName()); - basicAuthorization.setPassword(getPwd()); - HttpClientConfig httpClientConfig = new HttpClientConfig(new Timeouts(500, 2000), basicAuthorization); - httpClientConfig.setNumOfRetries(getNumOfRetries()); - super.setHttpClientConfig(httpClientConfig); - - HttpRequestConfig httpRequestConfig = new HttpRequestConfig(); - httpRequestConfig.setServerRootUrl(String.format("http://%s:%s/%s", MSO_HOST, this.port, MSO_API_URL)); - httpRequestConfig.getResourceNamespaces().put(MSORestClient.DISTRIBUTIONS_RESOURCE_CONFIG_PARAM, getDistributionsUrl()); - super.setHttpRequestConfig(httpRequestConfig); - } - - int getNumOfRetries() { - return 1; - } - } - -} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/health/HealthCheckBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/health/HealthCheckBusinessLogicHealthTest.java index a05184fc78..d7e0654806 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/health/HealthCheckBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/health/HealthCheckBusinessLogicHealthTest.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * SDC * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * 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. @@ -21,163 +21,212 @@ package org.openecomp.sdc.be.components.health; import mockit.Deencapsulation; -import org.apache.commons.lang3.tuple.Pair; import org.junit.Assert; +import org.junit.Before; import org.junit.Test; -import org.mockito.Mockito; +import org.junit.runner.RunWith; +import org.mockito.junit.MockitoJUnitRunner; +import org.onap.portalsdk.core.onboarding.exception.CipherUtilException; +import org.openecomp.sdc.be.catalog.impl.DmaapProducerHealth; import org.openecomp.sdc.be.components.BeConfDependentTest; import org.openecomp.sdc.be.components.distribution.engine.DistributionEngineClusterHealth; import org.openecomp.sdc.be.components.distribution.engine.DmaapHealth; import org.openecomp.sdc.be.switchover.detector.SwitchoverDetector; import org.openecomp.sdc.common.api.HealthCheckInfo; +import org.openecomp.sdc.common.http.client.api.HttpExecuteException; import org.springframework.test.util.ReflectionTestUtils; import java.util.LinkedList; import java.util.List; -public class HealthCheckBusinessLogicTest extends BeConfDependentTest{ +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.when; +import static org.openecomp.sdc.common.api.Constants.HC_COMPONENT_DCAE; +import static org.openecomp.sdc.common.api.Constants.HC_COMPONENT_ON_BOARDING; - private final SwitchoverDetector switchoverDetector = Mockito.mock(SwitchoverDetector.class); +@RunWith(MockitoJUnitRunner.class) +public class HealthCheckBusinessLogicHealthTest extends BeConfDependentTest { + private DmaapProducerHealth dmaapProducerHealth = mock(DmaapProducerHealth.class); + private HealthCheckInfo dmaapProducerHealthCheckInfo = mock(HealthCheckInfo.class); + + private SwitchoverDetector switchoverDetector; private HealthCheckBusinessLogic createTestSubject() { - HealthCheckBusinessLogic healthCheckBusinessLogic = new HealthCheckBusinessLogic(switchoverDetector); + + HealthCheckBusinessLogic healthCheckBusinessLogic = new HealthCheckBusinessLogic(); DmaapHealth dmaapHealth = new DmaapHealth(); ReflectionTestUtils.setField(healthCheckBusinessLogic, "dmaapHealth", dmaapHealth); + PortalHealthCheckBuilder portalHealthCheckBuilder = new PortalHealthCheckBuilder(); + ReflectionTestUtils.setField(healthCheckBusinessLogic, "portalHealthCheck", portalHealthCheckBuilder); DistributionEngineClusterHealth distributionEngineClusterHealth = new DistributionEngineClusterHealth(); - ReflectionTestUtils.setField(healthCheckBusinessLogic, "distributionEngineClusterHealth", distributionEngineClusterHealth); + ReflectionTestUtils.setField(healthCheckBusinessLogic, "distributionEngineClusterHealth", + distributionEngineClusterHealth); SwitchoverDetector switchoverDetector = new SwitchoverDetector(); ReflectionTestUtils.setField(healthCheckBusinessLogic, "switchoverDetector", switchoverDetector); - List<HealthCheckInfo> prevBeHealthCheckInfos = new LinkedList<>(); + List<HealthCheckInfo> prevBeHealthCheckInfos = new LinkedList<>(); ReflectionTestUtils.setField(healthCheckBusinessLogic, "prevBeHealthCheckInfos", prevBeHealthCheckInfos); + ReflectionTestUtils.setField(healthCheckBusinessLogic, "dmaapProducerHealth", dmaapProducerHealth); return healthCheckBusinessLogic; } + + + @Before + public void beforeTest() { + when(dmaapProducerHealth.getHealthCheckInfo()) + .thenReturn(dmaapProducerHealthCheckInfo); + } + @Test public void testInit() throws Exception { - HealthCheckBusinessLogic testSubject; - - // default test - testSubject = createTestSubject(); + HealthCheckBusinessLogic testSubject = createTestSubject(); testSubject.init(); } @Test public void testIsDistributionEngineUp() throws Exception { HealthCheckBusinessLogic testSubject; - boolean result; - // default test testSubject = createTestSubject(); - result = testSubject.isDistributionEngineUp(); + testSubject.isDistributionEngineUp(); } @Test public void testGetBeHealthCheckInfosStatus() throws Exception { HealthCheckBusinessLogic testSubject; - Pair<Boolean, List<HealthCheckInfo>> result; // default test testSubject = createTestSubject(); - result = testSubject.getBeHealthCheckInfosStatus(); + testSubject.getBeHealthCheckInfosStatus(); } @Test public void testGetBeHealthCheckInfos() throws Exception { HealthCheckBusinessLogic testSubject; - List<HealthCheckInfo> result; - - - + // default test testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "getBeHealthCheckInfos"); + Deencapsulation.invoke(testSubject, "getBeHealthCheckInfos"); } @Test - public void testGetEsHealthCheck() throws Exception { + public void testGetDmaapHealthCheck() throws Exception { HealthCheckBusinessLogic testSubject; List<HealthCheckInfo> healthCheckInfos = new LinkedList<>(); - List<HealthCheckInfo> result; // default test testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "getEsHealthCheck", healthCheckInfos); + Deencapsulation.invoke(testSubject, "getDmaapHealthCheck"); } @Test - public void testGetBeHealthCheck() throws Exception { + public void testGetJanusGraphHealthCheck() throws Exception { HealthCheckBusinessLogic testSubject; List<HealthCheckInfo> healthCheckInfos = new LinkedList<>(); - List<HealthCheckInfo> result; // default test testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "getBeHealthCheck", healthCheckInfos); +// testSubject.getJanusGraphHealthCheck(healthCheckInfos); + healthCheckInfos.add(testSubject.getJanusGraphHealthCheck()); } @Test - public void testGetDmaapHealthCheck() throws Exception { + public void testGetCassandraHealthCheck() throws Exception { HealthCheckBusinessLogic testSubject; - List<HealthCheckInfo> healthCheckInfos = new LinkedList<>(); - List<HealthCheckInfo> result; // default test testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "getDmaapHealthCheck", healthCheckInfos); + Deencapsulation.invoke(testSubject, "getCassandraHealthCheck"); } @Test - public void testGetJanusGraphHealthCheck() throws Exception { - HealthCheckBusinessLogic testSubject; - List<HealthCheckInfo> healthCheckInfos = new LinkedList<>(); - List<HealthCheckInfo> result; + public void testGetDistributionEngineCheck() throws Exception { +// HealthCheckBusinessLogic testSubject; + DistributionEngineClusterHealth testSubject = new DistributionEngineClusterHealth(); // default test - testSubject = createTestSubject(); - result = testSubject.getJanusGraphHealthCheck(healthCheckInfos); + Deencapsulation.invoke(testSubject, "getHealthCheckInfo"); } @Test - public void testGetCassandraHealthCheck() throws Exception { + public void testGetAmdocsHealthCheck() throws Exception { HealthCheckBusinessLogic testSubject; List<HealthCheckInfo> healthCheckInfos = new LinkedList<>(); - List<HealthCheckInfo> result; // default test testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "getCassandraHealthCheck", healthCheckInfos); + String url = testSubject.buildOnBoardingHealthCheckUrl(); + Deencapsulation.invoke(testSubject, "getHostedComponentsBeHealthCheck", HC_COMPONENT_ON_BOARDING, url); } @Test - public void testGetDistributionEngineCheck() throws Exception { - HealthCheckBusinessLogic testSubject; - List<HealthCheckInfo> healthCheckInfos = new LinkedList<>(); + public void testGetPortalHealthCheckSuccess() throws Exception { + PortalHealthCheckBuilder testSubject = spy(PortalHealthCheckBuilder.class); + String healthCheckURL = testSubject.buildPortalHealthCheckUrl(); + int timeout = 3000; + doReturn(200).when(testSubject).getStatusCode(eq(healthCheckURL), eq(timeout)); + testSubject.init(); + testSubject.runTask(); + HealthCheckInfo hci = testSubject.getHealthCheckInfo(); + Assert.assertEquals("PORTAL", hci.getHealthCheckComponent()); + Assert.assertEquals(HealthCheckInfo.HealthCheckStatus.UP, hci.getHealthCheckStatus()); + Assert.assertEquals("OK", hci.getDescription()); + } - // default test - testSubject = createTestSubject(); - Deencapsulation.invoke(testSubject, "getDistributionEngineCheck", healthCheckInfos); + @Test + public void testGetPortalHealthCheckFailureMissingConfig() throws Exception{ + PortalHealthCheckBuilder testSubject = new PortalHealthCheckBuilder(); + testSubject.init(null); + HealthCheckInfo hci = testSubject.getHealthCheckInfo(); + Assert.assertEquals("PORTAL", hci.getHealthCheckComponent()); + Assert.assertEquals(HealthCheckInfo.HealthCheckStatus.DOWN, hci.getHealthCheckStatus()); + Assert.assertEquals("PORTAL health check configuration is missing", hci.getDescription()); } + @Test - public void testGetAmdocsHealthCheck() throws Exception { - HealthCheckBusinessLogic testSubject; - List<HealthCheckInfo> healthCheckInfos = new LinkedList<>(); - List<HealthCheckInfo> result; + public void testGetPortalHealthCheckFailureErrorResponse() throws HttpExecuteException, CipherUtilException { + PortalHealthCheckBuilder testSubject = spy(PortalHealthCheckBuilder.class); + String healthCheckURL = testSubject.buildPortalHealthCheckUrl(); + int timeout = 3000; +// when(testSubject.getStatusCode(healthCheckURL,timeout)).thenReturn(404); + doReturn(404).when(testSubject).getStatusCode(eq(healthCheckURL), eq(timeout)); + testSubject.init(testSubject.getConfiguration()); + testSubject.runTask(); + HealthCheckInfo hci = testSubject.getHealthCheckInfo(); + Assert.assertEquals("PORTAL", hci.getHealthCheckComponent()); + Assert.assertEquals(HealthCheckInfo.HealthCheckStatus.DOWN, hci.getHealthCheckStatus()); + Assert.assertEquals("PORTAL responded with 404 status code", hci.getDescription()); + } - // default test - testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "getAmdocsHealthCheck", healthCheckInfos); + @Test + public void testGetPortalHealthCheckFailureNoResponse() throws HttpExecuteException, CipherUtilException { + PortalHealthCheckBuilder testSubject = spy(PortalHealthCheckBuilder.class); + String healthCheckURL = testSubject.buildPortalHealthCheckUrl(); + int timeout = 3000; +// when(testSubject.getStatusCode(healthCheckURL, timeout)).thenThrow(HttpExecuteException.class); + doThrow(HttpExecuteException.class).when(testSubject).getStatusCode(eq(healthCheckURL), eq(timeout)); + testSubject.init(testSubject.getConfiguration()); + testSubject.runTask(); + HealthCheckInfo hci = testSubject.getHealthCheckInfo(); + Assert.assertEquals("PORTAL", hci.getHealthCheckComponent()); + Assert.assertEquals(HealthCheckInfo.HealthCheckStatus.DOWN, hci.getHealthCheckStatus()); + Assert.assertEquals("PORTAL is not available", hci.getDescription()); } @Test public void testGetDcaeHealthCheck() throws Exception { HealthCheckBusinessLogic testSubject; List<HealthCheckInfo> healthCheckInfos = new LinkedList<>(); - List<HealthCheckInfo> result; // default test testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "getDcaeHealthCheck", healthCheckInfos); + String url = testSubject.buildDcaeHealthCheckUrl(); + Deencapsulation.invoke(testSubject, "getHostedComponentsBeHealthCheck", HC_COMPONENT_DCAE, url); } @Test @@ -185,18 +234,14 @@ public class HealthCheckBusinessLogicTest extends BeConfDependentTest{ HealthCheckBusinessLogic testSubject; String componentName = "mock"; String healthCheckUrl = "mock"; - HealthCheckInfo result; - // test 1 testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "getHostedComponentsBeHealthCheck", - componentName, healthCheckUrl); + Deencapsulation.invoke(testSubject, "getHostedComponentsBeHealthCheck", componentName, healthCheckUrl); // test 2 testSubject = createTestSubject(); healthCheckUrl = ""; - result = Deencapsulation.invoke(testSubject, "getHostedComponentsBeHealthCheck", - componentName, healthCheckUrl); + Deencapsulation.invoke(testSubject, "getHostedComponentsBeHealthCheck", componentName, healthCheckUrl); } @Test @@ -221,11 +266,10 @@ public class HealthCheckBusinessLogicTest extends BeConfDependentTest{ @Test public void testGetSiteMode() throws Exception { HealthCheckBusinessLogic testSubject; - String result; // default test testSubject = createTestSubject(); - result = testSubject.getSiteMode(); + testSubject.getSiteMode(); } @Test @@ -267,20 +311,18 @@ public class HealthCheckBusinessLogicTest extends BeConfDependentTest{ @Test public void testBuildOnBoardingHealthCheckUrl() throws Exception { HealthCheckBusinessLogic testSubject; - String result; // default test testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "buildOnBoardingHealthCheckUrl"); + Deencapsulation.invoke(testSubject, "buildOnBoardingHealthCheckUrl"); } @Test public void testBuildDcaeHealthCheckUrl() throws Exception { HealthCheckBusinessLogic testSubject; - String result; // default test testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "buildDcaeHealthCheckUrl"); + Deencapsulation.invoke(testSubject, "buildDcaeHealthCheckUrl"); } -} +}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ActivationRequestInformationTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ActivationRequestInformationTest.java index 978c0a4796..68c1036575 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ActivationRequestInformationTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ActivationRequestInformationTest.java @@ -19,13 +19,13 @@ */ package org.openecomp.sdc.be.components.impl; +import org.junit.Test; +import org.openecomp.sdc.be.model.Service; + import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThat; -import org.junit.Test; -import org.openecomp.sdc.be.model.Service; - public class ActivationRequestInformationTest { private static final String TENANT = "tenant"; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/AdditionalInformationBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/AdditionalInformationBusinessLogicTest.java index f560129ace..56f5a928bf 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/AdditionalInformationBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/AdditionalInformationBusinessLogicTest.java @@ -46,13 +46,13 @@ import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum; import org.openecomp.sdc.be.datatypes.elements.AdditionalInfoParameterInfo; import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.model.AdditionalInformationDefinition; +import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; -import org.openecomp.sdc.be.model.operations.api.IAdditionalInformationOperation; import org.openecomp.sdc.be.model.operations.api.IGraphLockOperation; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; +import org.openecomp.sdc.be.model.operations.impl.AdditionalInformationOperation; import org.openecomp.sdc.common.api.ConfigurationSource; import org.openecomp.sdc.common.impl.ExternalConfiguration; import org.openecomp.sdc.common.impl.FSConfigurationSource; @@ -62,7 +62,6 @@ import java.util.ArrayList; import java.util.List; import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) @@ -80,7 +79,7 @@ public class AdditionalInformationBusinessLogicTest { @Mock private JanusGraphDao janusGraphDao; @Mock - private IAdditionalInformationOperation additionalInformationOperation; + private AdditionalInformationOperation additionalInformationOperation; @Mock private Resource resource; @@ -108,7 +107,7 @@ public class AdditionalInformationBusinessLogicTest { ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); configurationManager.setConfiguration(new Configuration()); configurationManager.getConfiguration().setAdditionalInformationMaxNumberOfKeys(0); - when(additionalInformationBusinessLogic.validateUserExists(anyString(), anyString(), eq(false))).thenReturn(user); + when(additionalInformationBusinessLogic.validateUserExists(anyString())).thenReturn(user); when(toscaOperationFacade.getToscaElement(ArgumentMatchers.eq("resourceId"), ArgumentMatchers.eq(JsonParseFlagEnum.ParseMetadata))).thenReturn(Either.left(resource)); when(graphLockOperation.lockComponent(resourceId, nodeType)).thenReturn(StorageOperationStatus.OK); when(additionalInformationOperation.getNumberOfAdditionalInformationParameters(nodeType,resourceId,true)).thenReturn(Either.left(0)); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/AnnotationBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/AnnotationBusinessLogicTest.java index ce5a5bc352..f115f3038c 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/AnnotationBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/AnnotationBusinessLogicTest.java @@ -19,12 +19,6 @@ */ package org.openecomp.sdc.be.components.impl; -import static org.junit.Assert.assertEquals; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -36,6 +30,13 @@ import org.openecomp.sdc.be.model.AnnotationTypeDefinition; import org.openecomp.sdc.be.model.InputDefinition; import org.openecomp.sdc.be.model.operations.impl.AnnotationTypeOperations; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static org.junit.Assert.assertEquals; + @RunWith(MockitoJUnitRunner.class) public class AnnotationBusinessLogicTest { private static final String TEST = "TEST"; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ArchiveBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ArchiveBusinessLogicTest.java index 96d8665caf..48abff135e 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ArchiveBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ArchiveBusinessLogicTest.java @@ -44,7 +44,9 @@ import java.util.List; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) public class ArchiveBusinessLogicTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ArtifactBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ArtifactBusinessLogicTest.java index a86ed18827..23e30e799d 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ArtifactBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ArtifactBusinessLogicTest.java @@ -28,9 +28,6 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonElement; import fj.data.Either; -import org.apache.commons.codec.binary.Base64; -import org.apache.commons.lang3.tuple.ImmutablePair; -import org.apache.http.HttpStatus; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -42,15 +39,12 @@ import org.openecomp.sdc.be.components.ArtifactsResolver; import org.openecomp.sdc.be.components.lifecycle.LifecycleBusinessLogic; import org.openecomp.sdc.be.components.utils.ArtifactBuilder; import org.openecomp.sdc.be.components.utils.ObjectGenerator; -import org.openecomp.sdc.be.components.validation.UserValidations; import org.openecomp.sdc.be.config.Configuration.ArtifactTypeConfig; import org.openecomp.sdc.be.config.ConfigurationManager; -import org.openecomp.sdc.be.config.validation.DeploymentArtifactHeatConfiguration; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.cassandra.ArtifactCassandraDao; import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus; import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; -import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum; import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; @@ -58,9 +52,6 @@ import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.model.ArtifactDefinition; import org.openecomp.sdc.be.model.ArtifactType; -import org.openecomp.sdc.be.model.Component; -import org.openecomp.sdc.be.model.ComponentInstance; -import org.openecomp.sdc.be.model.ComponentParametersView; import org.openecomp.sdc.be.model.HeatParameterDefinition; import org.openecomp.sdc.be.model.InterfaceDefinition; import org.openecomp.sdc.be.model.Operation; @@ -69,15 +60,13 @@ import org.openecomp.sdc.be.model.Service; import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.NodeTemplateOperation; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; -import org.openecomp.sdc.be.model.operations.api.IElementOperation; import org.openecomp.sdc.be.model.operations.api.IGraphLockOperation; import org.openecomp.sdc.be.model.operations.api.IInterfaceLifecycleOperation; -import org.openecomp.sdc.be.model.operations.api.IUserAdminOperation; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; -import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; import org.openecomp.sdc.be.model.operations.impl.ArtifactOperation; -import org.openecomp.sdc.be.resources.data.ESArtifactData; -import org.openecomp.sdc.be.resources.data.auditing.model.ResourceVersionInfo; +import org.openecomp.sdc.be.model.operations.impl.UserAdminOperation; +import org.openecomp.sdc.be.resources.data.DAOArtifactData; +import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; import org.openecomp.sdc.be.servlets.RepresentationUtils; import org.openecomp.sdc.be.tosca.CsarUtils; import org.openecomp.sdc.be.tosca.ToscaExportHandler; @@ -85,26 +74,25 @@ import org.openecomp.sdc.be.user.UserBusinessLogic; import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum; import org.openecomp.sdc.common.api.ArtifactTypeEnum; import org.openecomp.sdc.common.api.ConfigurationSource; -import org.openecomp.sdc.common.datastructure.Wrapper; import org.openecomp.sdc.common.impl.ExternalConfiguration; import org.openecomp.sdc.common.impl.FSConfigurationSource; -import org.openecomp.sdc.common.util.GeneralUtility; import org.openecomp.sdc.exception.ResponseFormat; import java.io.IOException; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; -import static junit.framework.TestCase.assertEquals; -import static junit.framework.TestCase.assertFalse; -import static junit.framework.TestCase.assertNull; -import static junit.framework.TestCase.assertTrue; import static org.assertj.core.api.Java6Assertions.assertThat; -import static org.junit.Assert.assertArrayEquals; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import static org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic.HEAT_ENV_NAME; import static org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic.HEAT_VF_ENV_NAME; @@ -126,22 +114,18 @@ public class ArtifactBusinessLogicTest extends BaseBusinessLogicMock{ @InjectMocks private ArtifactsBusinessLogic artifactBL; @Mock + private UserBusinessLogic userBusinessLogic; + @Mock private ArtifactOperation artifactOperation; @Mock public ComponentsUtils componentsUtils; @Mock - private IInterfaceLifecycleOperation lifecycleOperation; - @Mock - private IUserAdminOperation userOperation; - @Mock - private IElementOperation elementOperation; + private UserAdminOperation userOperation; @Mock private ArtifactCassandraDao artifactCassandraDao; @Mock public ToscaOperationFacade toscaOperationFacade; @Mock - private UserBusinessLogic userBusinessLogic; - @Mock private NodeTemplateOperation nodeTemplateOperation; @Mock private IGraphLockOperation graphLockOperation; @@ -149,10 +133,10 @@ public class ArtifactBusinessLogicTest extends BaseBusinessLogicMock{ JanusGraphDao janusGraphDao; @Mock private IInterfaceLifecycleOperation interfaceLifecycleOperation; - @Mock - private ResponseFormat responseFormat; - @Mock - private User user; + + // public static final InformationDeployedArtifactsBusinessLogic + // informationDeployedArtifactsBusinessLogic = + // Mockito.mock(InformationDeployedArtifactsBusinessLogic.class); @Mock private ToscaExportHandler toscaExportHandler; @Mock @@ -183,10 +167,9 @@ public class ArtifactBusinessLogicTest extends BaseBusinessLogicMock{ Either<ArtifactDefinition, StorageOperationStatus> NotFoundResult = Either.right(StorageOperationStatus.NOT_FOUND); Either<Map<String, ArtifactDefinition>, StorageOperationStatus> NotFoundResult2 = Either.right(StorageOperationStatus.NOT_FOUND); - Either<Map<String, InterfaceDefinition>, StorageOperationStatus> notFoundInterfaces = Either.right(StorageOperationStatus.NOT_FOUND); - Either<User, ActionStatus> getUserResult = Either.left(USER); - Either<List<ArtifactType>, ActionStatus> getType = Either.left(getAllTypes()); + when(userBusinessLogic.getUser(eq("jh0003"), anyBoolean())).thenReturn(USER); + when(resource.getResourceType()).thenReturn(ResourceTypeEnum.VFC); } @@ -209,7 +192,7 @@ public class ArtifactBusinessLogicTest extends BaseBusinessLogicMock{ e.printStackTrace(); } - ArtifactDefinition afterConvert = RepresentationUtils.convertJsonToArtifactDefinition(jsonArtifact, ArtifactDefinition.class); + ArtifactDefinition afterConvert = RepresentationUtils.convertJsonToArtifactDefinition(jsonArtifact, ArtifactDefinition.class, false); assertThat(afterConvert).isEqualTo(ad); } @@ -236,8 +219,11 @@ public class ArtifactBusinessLogicTest extends BaseBusinessLogicMock{ JsonElement jsonArtifact = gson.toJsonTree(ad); jsonArtifact.getAsJsonObject().addProperty("artifactGroupType", "www"); + jsonArtifact.getAsJsonObject().addProperty("artifactLabel", " label"); + jsonArtifact.getAsJsonObject().addProperty("timeout", " 80"); + jsonArtifact.getAsJsonObject().addProperty("artifactType", " HEAT"); - ArtifactDefinition afterConvert = RepresentationUtils.convertJsonToArtifactDefinition(jsonArtifact.toString(), ArtifactDefinition.class); + ArtifactDefinition afterConvert = RepresentationUtils.convertJsonToArtifactDefinition(jsonArtifact.toString(), ArtifactDefinition.class, false); assertThat(afterConvert).isNull(); } @@ -251,8 +237,11 @@ public class ArtifactBusinessLogicTest extends BaseBusinessLogicMock{ JsonElement jsonArtifact = gson.toJsonTree(ad); jsonArtifact.getAsJsonObject().addProperty("artifactGroupType", 123); + jsonArtifact.getAsJsonObject().addProperty("artifactLabel", " label"); + jsonArtifact.getAsJsonObject().addProperty("timeout", " 80"); + jsonArtifact.getAsJsonObject().addProperty("artifactType", " HEAT"); - ArtifactDefinition afterConvert = RepresentationUtils.convertJsonToArtifactDefinition(jsonArtifact.toString(), ArtifactDefinition.class); + ArtifactDefinition afterConvert = RepresentationUtils.convertJsonToArtifactDefinition(jsonArtifact.toString(), ArtifactDefinition.class, false); assertThat(afterConvert).isNull(); } @@ -266,8 +255,11 @@ public class ArtifactBusinessLogicTest extends BaseBusinessLogicMock{ JsonElement jsonArtifact = gson.toJsonTree(ad); jsonArtifact.getAsJsonObject().addProperty("artifactGroupType", " DEPLOYMENT"); + jsonArtifact.getAsJsonObject().addProperty("artifactLabel", " label"); + jsonArtifact.getAsJsonObject().addProperty("timeout", " 80"); + jsonArtifact.getAsJsonObject().addProperty("artifactType", " HEAT"); - ArtifactDefinition afterConvert = RepresentationUtils.convertJsonToArtifactDefinition(jsonArtifact.toString(), ArtifactDefinition.class); + ArtifactDefinition afterConvert = RepresentationUtils.convertJsonToArtifactDefinition(jsonArtifact.toString(), ArtifactDefinition.class, false); assertThat(afterConvert).isNull(); } @@ -281,8 +273,11 @@ public class ArtifactBusinessLogicTest extends BaseBusinessLogicMock{ JsonElement jsonArtifact = gson.toJsonTree(ad); jsonArtifact.getAsJsonObject().addProperty("timeout", "dfsdf15"); + jsonArtifact.getAsJsonObject().addProperty("artifactLabel", " label"); + jsonArtifact.getAsJsonObject().addProperty("artifactGroupType", " DEPLOYMENT"); + jsonArtifact.getAsJsonObject().addProperty("artifactType", " HEAT"); - ArtifactDefinition afterConvert = RepresentationUtils.convertJsonToArtifactDefinition(jsonArtifact.toString(), ArtifactDefinition.class); + ArtifactDefinition afterConvert = RepresentationUtils.convertJsonToArtifactDefinition(jsonArtifact.toString(), ArtifactDefinition.class, true); assertThat(afterConvert).isNull(); } @@ -457,9 +452,9 @@ public class ArtifactBusinessLogicTest extends BaseBusinessLogicMock{ @Test public void testValidMibAritactsConfiguration() { Map<String, ArtifactTypeConfig> componentDeploymentArtifacts = - ConfigurationManager.getConfigurationManager().getConfiguration().getResourceDeploymentArtifacts(); + ConfigurationManager.getConfigurationManager().getConfiguration().getResourceDeploymentArtifacts(); Map<String, ArtifactTypeConfig> componentInstanceDeploymentArtifacts = - ConfigurationManager.getConfigurationManager().getConfiguration().getResourceInstanceDeploymentArtifacts(); + ConfigurationManager.getConfigurationManager().getConfiguration().getResourceInstanceDeploymentArtifacts(); assertThat(componentDeploymentArtifacts.containsKey(ArtifactTypeEnum.SNMP_POLL.getType())).isTrue(); assertThat(componentDeploymentArtifacts.containsKey(ArtifactTypeEnum.SNMP_TRAP.getType())).isTrue(); assertThat(componentInstanceDeploymentArtifacts.containsKey(ArtifactTypeEnum.SNMP_POLL.getType())).isTrue(); @@ -491,19 +486,18 @@ public class ArtifactBusinessLogicTest extends BaseBusinessLogicMock{ toscaArtifacts.put(artifactLabel, toscaTemplateArtifact); service.setToscaArtifacts(toscaArtifacts); - ESArtifactData esArtifactData =new ESArtifactData(esArtifactId); - esArtifactData.setDataAsArray(payload); - Either<ESArtifactData, CassandraOperationStatus> artifactfromESres = Either.left(esArtifactData); + DAOArtifactData DAOArtifactData =new DAOArtifactData(esArtifactId); + DAOArtifactData.setDataAsArray(payload); + Either<DAOArtifactData, CassandraOperationStatus> artifactfromESres = Either.left(DAOArtifactData); when(artifactCassandraDao.getArtifact(esArtifactId)).thenReturn(artifactfromESres); List<org.openecomp.sdc.be.model.Component> serviceList = new ArrayList<>(); serviceList.add(service); Either<List<org.openecomp.sdc.be.model.Component>, StorageOperationStatus> getServiceRes = Either.left(serviceList); when(toscaOperationFacade.getBySystemName(ComponentTypeEnum.SERVICE, serviceName)).thenReturn(getServiceRes); - Either<byte[], ResponseFormat> downloadServiceArtifactByNamesRes = - artifactBL.downloadServiceArtifactByNames(serviceName, serviceVersion, artifactName); - assertThat(downloadServiceArtifactByNamesRes.isLeft()).isTrue(); - assertThat(downloadServiceArtifactByNamesRes.left().value() !=null && - downloadServiceArtifactByNamesRes.left().value().length == payload.length).isTrue(); + byte[] downloadServiceArtifactByNamesRes = + artifactBL.downloadServiceArtifactByNames(serviceName, serviceVersion, artifactName); + assertThat(downloadServiceArtifactByNamesRes !=null && + downloadServiceArtifactByNamesRes.length == payload.length).isTrue(); } @Test @@ -514,12 +508,11 @@ public class ArtifactBusinessLogicTest extends BaseBusinessLogicMock{ .build(); Resource component = new Resource(); - when(userBusinessLogic.getUser(anyString(), anyBoolean())).thenReturn(Either.left(USER)); - when(artifactToscaOperation.addHeatEnvArtifact(any(ArtifactDefinition.class), any(ArtifactDefinition.class), eq(component.getUniqueId()), eq(NodeTypeEnum.Resource), eq(true), eq("parentId"))) + when(userBusinessLogic.getUser(anyString(), anyBoolean())).thenReturn(USER); + when(artifactToscaOperation.addHeatEnvArtifact(any(ArtifactDefinition.class), any(ArtifactDefinition.class), eq(component), eq(NodeTypeEnum.Resource), eq(true), eq("parentId"))) .thenReturn(Either.left(new ArtifactDefinition())); - Either<ArtifactDefinition, ResponseFormat> heatEnvPlaceHolder = artifactBL.createHeatEnvPlaceHolder(heatArtifact, HEAT_VF_ENV_NAME, "parentId", NodeTypeEnum.Resource, "parentName", USER, component, Collections.emptyMap()); - assertThat(heatEnvPlaceHolder.isLeft()).isTrue(); - assertThat(heatEnvPlaceHolder.left().value().getListHeatParameters()).isNull(); + ArtifactDefinition heatEnvPlaceHolder = artifactBL.createHeatEnvPlaceHolder(new ArrayList<>(),heatArtifact, HEAT_VF_ENV_NAME, "parentId", NodeTypeEnum.Resource, "parentName", USER, component, Collections.emptyMap()); + assertThat(heatEnvPlaceHolder.getListHeatParameters()).isNull(); } @Test @@ -535,12 +528,8 @@ public class ArtifactBusinessLogicTest extends BaseBusinessLogicMock{ Resource component = new Resource(); - when(userBusinessLogic.getUser(anyString(), anyBoolean())).thenReturn(Either.left(USER)); - - Either<ArtifactDefinition, ResponseFormat> heatEnvPlaceHolder = artifactBL.createHeatEnvPlaceHolder(heatArtifact, HEAT_ENV_NAME, "parentId", NodeTypeEnum.ResourceInstance, "parentName", USER, component, Collections.emptyMap()); - assertThat(heatEnvPlaceHolder.isLeft()).isTrue(); - ArtifactDefinition heatEnvArtifact = heatEnvPlaceHolder.left().value(); + ArtifactDefinition heatEnvArtifact = artifactBL.createHeatEnvPlaceHolder(new ArrayList<>(),heatArtifact, HEAT_ENV_NAME, "parentId", NodeTypeEnum.ResourceInstance, "parentName", USER, component, Collections.emptyMap()); List<HeatParameterDefinition> listHeatParameters = heatEnvArtifact.getListHeatParameters(); assertThat(listHeatParameters.size()).isEqualTo(3); verifyHeatParam(listHeatParameters.get(0), heatParam1); @@ -561,7 +550,7 @@ public class ArtifactBusinessLogicTest extends BaseBusinessLogicMock{ when(graphLockOperation.lockComponent(any(), any())).thenReturn(StorageOperationStatus.OK); //TODO Remove if passes when(artifactToscaOperation.updateArtifactOnResource(any(ArtifactDefinition.class), any(), any(), any(NodeTypeEnum.class) - , any(String.class))).thenReturn(Either.left(artifactDefinition)); + , any(String.class), eq(true))).thenReturn(Either.left(artifactDefinition)); when(artifactCassandraDao.saveArtifact(any())).thenReturn(CassandraOperationStatus.OK); when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(new ResponseFormat()); artifactBL.generateAndSaveHeatEnvArtifact(artifactDefinition, String.valueOf(PAYLOAD), ComponentTypeEnum.SERVICE, new Service(), RESOURCE_INSTANCE_NAME, @@ -591,7 +580,7 @@ public class ArtifactBusinessLogicTest extends BaseBusinessLogicMock{ when(graphLockOperation.lockComponent(any(), any())).thenReturn(StorageOperationStatus.OK); //TODO Remove if passes when(artifactToscaOperation.updateArtifactOnResource(any(ArtifactDefinition.class), any(), any(), any(NodeTypeEnum.class) - , any(String.class))).thenReturn(Either.left(artifactDefinition)); + , any(String.class), eq(true))).thenReturn(Either.left(artifactDefinition)); when(artifactCassandraDao.saveArtifact(any())).thenReturn(CassandraOperationStatus.OK); when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(new ResponseFormat()); artifactBL.generateAndSaveHeatEnvArtifact(artifactDefinition, String.valueOf(PAYLOAD), ComponentTypeEnum.SERVICE, new Service(), RESOURCE_INSTANCE_NAME, @@ -621,588 +610,12 @@ public class ArtifactBusinessLogicTest extends BaseBusinessLogicMock{ .thenReturn(StorageOperationStatus.OK); when(graphLockOperation.unlockComponent(uniqueId, NodeTypeEnum.Resource)) .thenReturn(StorageOperationStatus.OK); - when(toscaOperationFacade.getToscaElement(uniqueId)).thenReturn(Either.left(resource)); - when(componentsUtils.getResponseFormatByArtifactId(ActionStatus.ARTIFACT_NOT_FOUND, "artifactId")). - thenReturn(responseFormat); - result = artifactBL.handleDelete("parentId", "artifactId", user, AuditingActionEnum.ARTIFACT_DELETE, + result = artifactBL.handleDelete("parentId", "artifactId", USER, AuditingActionEnum.ARTIFACT_DELETE, ComponentTypeEnum.RESOURCE, resource, true, false); assertThat(result.isRight()); } - @Test - public void validateHandleArtifactRequestReturnsProperResponseMessage() { - ArtifactsBusinessLogic testArtifactsBusinessLogic = getArtifactsBusinessLogic(); - - final String componentId = "testComponent"; - final String userId = "testUser"; - final String artifactId = "testArtifact"; - final String origMd5 = "testOrigMd5"; - final String originData = "testOriginData"; - final String interfaceUuid = "testInterfaceUuid"; - final String operationUuid = "testOperationUuid"; - final String parentId = "testParentId"; - final String containerComponentType = "services"; - User testUser = new User(); - ComponentTypeEnum componentType = ComponentTypeEnum.SERVICE_INSTANCE; - - ArtifactsBusinessLogic.ArtifactOperationInfo operation = Mockito.mock(ArtifactsBusinessLogic.ArtifactOperationInfo.class); - when(operation.getArtifactOperationEnum()).thenReturn(ArtifactsBusinessLogic.ArtifactOperationEnum.DOWNLOAD); - - UserValidations testUserValidation = Mockito.mock(UserValidations.class); - when(testUserValidation.validateUserExists(eq(userId),any(String.class),anyBoolean())).thenReturn(testUser); - - ResponseFormat responseFormat = Mockito.mock(ResponseFormat.class); - - ComponentsUtils componentsUtils = Mockito.mock(ComponentsUtils.class); - when(componentsUtils.getResponseFormat(any(ActionStatus.class),eq(componentId)) ).thenReturn(responseFormat); - - ArtifactDefinition artifactInfo = new ArtifactDefinition(); - - Either<Component, StorageOperationStatus> storageStatus = Either.right(StorageOperationStatus.OK);//.RightProjection<Component, StorageOperationStatus>() ; - when(toscaOperationFacade.getToscaFullElement(eq(componentId))).thenReturn(storageStatus); - - testArtifactsBusinessLogic.setComponentsUtils(componentsUtils); - testArtifactsBusinessLogic.setUserValidations(testUserValidation); - Either<Either<ArtifactDefinition, Operation>, ResponseFormat> response = testArtifactsBusinessLogic.handleArtifactRequest( - componentId, userId, componentType, operation, - artifactId, artifactInfo, origMd5, originData, - interfaceUuid, operationUuid, parentId, containerComponentType); - - assertTrue(response.isRight()); - assertEquals(response.right().value(), responseFormat); - } - - - @Test - public void validateHandleArtifactRequestWithNoUserReturnsMissingInformationResponseMessage() { - ArtifactsBusinessLogic testArtifactsBusinessLogic = getArtifactsBusinessLogic(); - - final String componentId = "testComponent"; - final String artifactId = "testArtifact"; - final String origMd5 = "testOrigMd5"; - final String originData = "testOriginData"; - final String interfaceUuid = "testInterfaceUuid"; - final String operationUuid = "testOperationUuid"; - final String parentId = "testParentId"; - final String containerComponentType = "services"; - ArtifactDefinition artifactInfo = new ArtifactDefinition(); - ComponentTypeEnum componentType = ComponentTypeEnum.SERVICE_INSTANCE; - - ArtifactsBusinessLogic.ArtifactOperationInfo operation = - Mockito.mock(ArtifactsBusinessLogic.ArtifactOperationInfo.class); - when(operation.getArtifactOperationEnum()).thenReturn(ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE); - - ResponseFormat responseFormat = Mockito.mock(ResponseFormat.class); - - when(componentsUtils.getResponseFormat(eq(ActionStatus.MISSING_INFORMATION)) ).thenReturn(responseFormat); - - testArtifactsBusinessLogic.setComponentsUtils(componentsUtils); - Either<Either<ArtifactDefinition, Operation>, ResponseFormat> response = - testArtifactsBusinessLogic.handleArtifactRequest( - componentId, null, componentType, operation, - artifactId, artifactInfo, origMd5, originData, - interfaceUuid, operationUuid, parentId, containerComponentType - ); - - assertTrue(response.isRight()); - assertEquals(response.right().value(), responseFormat); - } - - @Test - public void validateValidateAndHandleArtifactWillCallAuditResourceWithProperParameters() { - ArtifactsBusinessLogic testArtifactsBusinessLogic = getArtifactsBusinessLogic(); - - final String componentUniqueId = "testComponentId"; - final ComponentTypeEnum componentType = ComponentTypeEnum.RESOURCE; - final ArtifactsBusinessLogic.ArtifactOperationInfo operation = Mockito.mock(ArtifactsBusinessLogic.ArtifactOperationInfo.class); - final String artifactUniqueId = "testArtifactId"; - final String artifactName = "testArtifact"; - final String artifactType = "testData"; - final ArtifactDefinition artifactDefinition = new ArtifactDefinition(); - artifactDefinition.setArtifactType("testArtifact"); - final String origMd5 = GeneralUtility.calculateMD5Base64EncodedByString(artifactType); - final String interfaceUuid = "testInterfaceUUID"; - final String operationName = "testOperation"; - final User user = new User(); - final Resource component = Mockito.mock(Resource.class); - when(component.getName()).thenReturn(artifactName); - final boolean shouldLock = false; - final boolean inTransaction = false; - final boolean needUpdateGroup = false; - - when(operation.getArtifactOperationEnum()).thenReturn(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE); - - when(componentsUtils.isExternalApiEvent(AuditingActionEnum.ARTIFACT_UPLOAD)).thenReturn(false); - - testArtifactsBusinessLogic.setComponentsUtils(componentsUtils); - Either<Either<ArtifactDefinition, Operation>, ResponseFormat> response = - testArtifactsBusinessLogic.validateAndHandleArtifact( - componentUniqueId, componentType, operation, - artifactUniqueId, artifactDefinition, origMd5, - artifactType, interfaceUuid, operationName, - user, component, shouldLock, inTransaction, needUpdateGroup - ); - - assertTrue(response.isRight()); - assertNull(response.right().value()); - verify(componentsUtils).auditResource( - eq(null), eq(user), eq(component), - eq(artifactName), eq(AuditingActionEnum.ARTIFACT_UPLOAD), any(ResourceVersionInfo.class), - eq(null), eq(null)); - } - - @Test - public void validateGenerateAndSaveToscaArtifactStoresProperArtifact() { - ArtifactsBusinessLogic testArtifactsBusinessLogic = getArtifactsBusinessLogic(); - - final ResponseFormat expectedResponseFormat = Mockito.mock(ResponseFormat.class); - - final ArtifactDefinition artifactDefinition = Mockito.mock(ArtifactDefinition.class); - when(artifactDefinition.getArtifactType()).thenReturn(ArtifactTypeEnum.TOSCA_CSAR.getType()); - final Component component = Mockito.mock(Component.class); - final User user = new User(); - final boolean isInCertificationRequest = false; - final boolean shouldLock = false; - final boolean inTransaction= false; - final boolean fetchTemplatesFromDB = false; - - - when(csarUtils.createCsar(eq(component), eq(false), eq(false))).thenReturn(Either.right(expectedResponseFormat)); - Either<Either<ArtifactDefinition, Operation>, ResponseFormat> response = - testArtifactsBusinessLogic.generateAndSaveToscaArtifact( - artifactDefinition, component, user, - isInCertificationRequest, shouldLock, inTransaction, fetchTemplatesFromDB); - - assertTrue(response.isRight()); - assertEquals(response.right().value(), expectedResponseFormat); - } - - @Test - public void validateGenerateAndSaveToscaArtifactResponseProperlyToGenerationFail() { - ArtifactsBusinessLogic testArtifactsBusinessLogic = getArtifactsBusinessLogic(); - - final ResponseFormat expectedResponseFormat = Mockito.mock(ResponseFormat.class); - - final byte[] byteResponse= "testBytes".getBytes(); - final byte[] testPayloadData = "testPayloadData".getBytes(); - final String testESId = "testEsId"; - final ArtifactDefinition artifactDefinition = Mockito.mock(ArtifactDefinition.class); - when(artifactDefinition.getArtifactType()).thenReturn(ArtifactTypeEnum.TOSCA_CSAR.getType()); - when(artifactDefinition.getPayloadData()).thenReturn(testPayloadData); - when(artifactDefinition.getEsId()).thenReturn(testESId); - final String artifactName = "testArtifact"; - final String componentUniqueId = "testUniqueId"; - final Resource component = Mockito.mock(Resource.class); - when(component.getComponentType()).thenReturn(ComponentTypeEnum.RESOURCE); - when(component.getUniqueId()).thenReturn(componentUniqueId); - when(component.getName()).thenReturn(artifactName); - final User user = new User(); - final boolean isInCertificationRequest = false; - final boolean shouldLock = false; - final boolean inTransaction= false; - final boolean fetchTemplatesFromDB = false; - final ComponentsUtils testComponentUtils = Mockito.mock(ComponentsUtils.class); - when(testComponentUtils.getResponseFormat(eq(ActionStatus.OK))).thenReturn(expectedResponseFormat); - - when(artifactCassandraDao.saveArtifact(any(ESArtifactData.class))).thenReturn(CassandraOperationStatus.OK); - when(artifactToscaOperation.updateArtifactOnResource( - eq(artifactDefinition), eq(componentUniqueId), eq(null), - eq(NodeTypeEnum.Resource), eq(componentUniqueId) - )).thenReturn(Either.left(artifactDefinition)); - when(csarUtils.createCsar(eq(component), eq(false), eq(false))).thenReturn(Either.left(byteResponse)); - testArtifactsBusinessLogic.setComponentsUtils(testComponentUtils); - Either<Either<ArtifactDefinition, Operation>, ResponseFormat> response = - testArtifactsBusinessLogic.generateAndSaveToscaArtifact( - artifactDefinition, component, user, - isInCertificationRequest, shouldLock, inTransaction, fetchTemplatesFromDB); - assertTrue(response.isLeft()); - assertTrue(response.isLeft()); - assertEquals(response.left().value().left().value(), artifactDefinition); - } - - @Test - public void validateHandleDownloadToscaModelRequestReturnsProperResponseFormat() { - ArtifactsBusinessLogic testArtifactsBusinessLogic = getArtifactsBusinessLogic(); - - final ResponseFormat expectedResponseFormat = Mockito.mock(ResponseFormat.class); - - final Component component = Mockito.mock(Component.class); - final String testESId = "testEsId"; - final String artifactName = "testArtifact"; - final ArtifactDefinition artifactDefinition = Mockito.mock(ArtifactDefinition.class); - when(artifactDefinition.getEsId()).thenReturn(testESId); - when(artifactDefinition.getArtifactDisplayName()).thenReturn(artifactName); - final ComponentsUtils componentsUtils = Mockito.mock(ComponentsUtils.class); - when(componentsUtils.convertFromStorageResponse(eq(StorageOperationStatus.OK))).thenReturn(ActionStatus.OK); - when(componentsUtils.getResponseFormatByArtifactId( - eq(ActionStatus.OK), eq(artifactName))).thenReturn(expectedResponseFormat); - - when(artifactCassandraDao.getArtifact(eq(testESId))).thenReturn(Either.right(CassandraOperationStatus.OK)); - - testArtifactsBusinessLogic.setComponentsUtils(componentsUtils); - - Either<ImmutablePair<String, byte[]>, ResponseFormat> response = - testArtifactsBusinessLogic.handleDownloadToscaModelRequest(component,artifactDefinition); - - assertTrue(response.isRight()); - assertEquals(response.right().value(), expectedResponseFormat); - } - - @Test - public void validateHandleDownloadRequestByIdReturnsProperResponseFormat() { - ArtifactsBusinessLogic testArtifactsBusinessLogic = getArtifactsBusinessLogic(); - - final ResponseFormat expectedResponseFormat = Mockito.mock(ResponseFormat.class); - - final String componentId = "testComponent"; - final String artifactId = "testArtifact"; - final String userId = "testUser"; - final ComponentTypeEnum componentType = ComponentTypeEnum.SERVICE; - final String parentId = "testParent"; - final String containerComponentType = "products"; - final User user = new User(); - final Service component = Mockito.mock(Service.class); - when(component.getUniqueId()).thenReturn(componentId); - final UserValidations userValidations = Mockito.mock(UserValidations.class); - when(userValidations.validateUserExists( - eq(userId), eq("ArtifactDownload"), eq(false))).thenReturn(user); - - when(toscaOperationFacade.getToscaFullElement(eq(componentId))).thenReturn(Either.left(component)); - when(artifactToscaOperation.getArtifactById(componentId, artifactId, componentType, componentId)). - thenReturn(Either.right(StorageOperationStatus.OK)); - when(componentsUtils.convertFromStorageResponse(eq(StorageOperationStatus.OK))).thenReturn(ActionStatus.OK); - when(componentsUtils.getResponseFormat(eq(ActionStatus.OK))).thenReturn(expectedResponseFormat); - - testArtifactsBusinessLogic.setComponentsUtils(componentsUtils); - testArtifactsBusinessLogic.setUserValidations(userValidations); - - Either<ImmutablePair<String, byte[]>, ResponseFormat> response = - testArtifactsBusinessLogic.handleDownloadRequestById( - componentId, artifactId, userId, - componentType, parentId, containerComponentType); - - assertTrue(response.isRight()); - assertEquals(response.right().value(), expectedResponseFormat); - } - - @Test - public void testIfValidateArtifactTypeExistsRespondsWithNotSupportedFormat() { - - final Wrapper<ResponseFormat> responseWrapper = new Wrapper<>(); - final ArtifactDefinition artifactInfo = Mockito.mock(ArtifactDefinition.class); - when(artifactInfo.getArtifactType()).thenReturn("WrongFormat"); - - ArtifactsBusinessLogic testArtifactsBusinessLogic = getArtifactsBusinessLogic(); - - testArtifactsBusinessLogic.validateArtifactTypeExists(responseWrapper,artifactInfo); - - assertEquals(responseWrapper.getInnerElement().getStatus().intValue(), HttpStatus.SC_BAD_REQUEST); - } - - @Test - public void testIfValidateFileExtensionRespondsWithCorrectResult() { - ArtifactsBusinessLogic testArtifactsBusinessLogic = getArtifactsBusinessLogic(); - - final Wrapper<ResponseFormat> responseWrapper = new Wrapper<>(); - final ArtifactDefinition artifactInfo = Mockito.mock(ArtifactDefinition.class); - when(artifactInfo.getArtifactName()).thenReturn("test.heat"); - final ArtifactTypeConfig artifactTypeConfig = - Mockito.mock(ArtifactTypeConfig.class); - when(artifactTypeConfig.getAcceptedTypes()).thenReturn(Collections.singletonList("heat")); - final IDeploymentArtifactTypeConfigGetter deploymentConfigGetter = - Mockito.mock(IDeploymentArtifactTypeConfigGetter.class); - when(deploymentConfigGetter.getDeploymentArtifactConfig()). - thenReturn(artifactTypeConfig); - final NodeTypeEnum parentType = NodeTypeEnum.Service; - final ArtifactTypeEnum artifactType = ArtifactTypeEnum.HEAT; - - testArtifactsBusinessLogic.validateFileExtension( - responseWrapper, deploymentConfigGetter, artifactInfo, - parentType, artifactType); - - assertTrue(responseWrapper.isEmpty()); - } - - @Test - public void testIfValidateFileExtensionRespondsWithGeneralErrorIfNodeTypeIsWrong() { - ArtifactsBusinessLogic testArtifactsBusinessLogic = getArtifactsBusinessLogic(); - - final ResponseFormat expectedResponseFormat = Mockito.mock(ResponseFormat.class); - final Wrapper<ResponseFormat> responseWrapper = new Wrapper<>(); - final ArtifactDefinition artifactInfo = Mockito.mock(ArtifactDefinition.class); - final IDeploymentArtifactTypeConfigGetter deploymentConfigGetter = - Mockito.mock(IDeploymentArtifactTypeConfigGetter.class); - final NodeTypeEnum parentType = NodeTypeEnum.Group; - final ArtifactTypeEnum artifactType = ArtifactTypeEnum.HEAT; - - when(componentsUtils.getResponseFormat(eq(ActionStatus.GENERAL_ERROR))).thenReturn(expectedResponseFormat); - - testArtifactsBusinessLogic.setComponentsUtils(componentsUtils); - - testArtifactsBusinessLogic.validateFileExtension( - responseWrapper, deploymentConfigGetter, artifactInfo, - parentType, artifactType); - - assertFalse(responseWrapper.isEmpty()); - assertEquals(responseWrapper.getInnerElement(),expectedResponseFormat); - } - - @Test - public void testIfValidateFileExtensionRespondsWithArtifactTypeNotSupportedIfAcceptedTypeIsNull() { - ArtifactsBusinessLogic testArtifactsBusinessLogic = getArtifactsBusinessLogic(); - - final ResponseFormat expectedResponseFormat = Mockito.mock(ResponseFormat.class); - final Wrapper<ResponseFormat> responseWrapper = new Wrapper<>(); - final String testArtifactType = "testArtifact"; - final ArtifactDefinition artifactInfo = Mockito.mock(ArtifactDefinition.class); - when(artifactInfo.getArtifactType()).thenReturn(testArtifactType); - final IDeploymentArtifactTypeConfigGetter deploymentConfigGetter = - Mockito.mock(IDeploymentArtifactTypeConfigGetter.class); - final NodeTypeEnum parentType = NodeTypeEnum.Resource; - final ArtifactTypeEnum artifactType = ArtifactTypeEnum.HEAT; - - when(componentsUtils.getResponseFormat(eq(ActionStatus.ARTIFACT_TYPE_NOT_SUPPORTED), eq(testArtifactType))).thenReturn(expectedResponseFormat); - - testArtifactsBusinessLogic.setComponentsUtils(componentsUtils); - - testArtifactsBusinessLogic.validateFileExtension( - responseWrapper, deploymentConfigGetter, artifactInfo, - parentType, artifactType); - - assertFalse(responseWrapper.isEmpty()); - assertEquals(responseWrapper.getInnerElement(),expectedResponseFormat); - } - - @Test - public void testIfValidateFileExtensionRespondsWithWrongArtifactTypeExtensionIfExtensionIsNotAccepted() { - ArtifactsBusinessLogic testArtifactsBusinessLogic = getArtifactsBusinessLogic(); - - final ResponseFormat expectedResponseFormat = Mockito.mock(ResponseFormat.class); - final Wrapper<ResponseFormat> responseWrapper = new Wrapper<>(); - final ArtifactDefinition artifactInfo = Mockito.mock(ArtifactDefinition.class); - when(artifactInfo.getArtifactName()).thenReturn("test.heat"); - final ArtifactTypeConfig artifactTypeConfig = - Mockito.mock(ArtifactTypeConfig.class); - when(artifactTypeConfig.getAcceptedTypes()).thenReturn(Collections.singletonList("yaml")); - final IDeploymentArtifactTypeConfigGetter deploymentConfigGetter = - Mockito.mock(IDeploymentArtifactTypeConfigGetter.class); - when(deploymentConfigGetter.getDeploymentArtifactConfig()). - thenReturn(artifactTypeConfig); - final NodeTypeEnum parentType = NodeTypeEnum.Service; - final ArtifactTypeEnum artifactType = ArtifactTypeEnum.HEAT; - - when(componentsUtils.getResponseFormat(eq(ActionStatus.WRONG_ARTIFACT_FILE_EXTENSION), eq(artifactType.getType()))).thenReturn(expectedResponseFormat); - - testArtifactsBusinessLogic.setComponentsUtils(componentsUtils); - - testArtifactsBusinessLogic.validateFileExtension( - responseWrapper, deploymentConfigGetter, artifactInfo, - parentType, artifactType); - - assertFalse(responseWrapper.isEmpty()); - assertEquals(responseWrapper.getInnerElement(),expectedResponseFormat); - } - - @Test - public void validateFillArtifactPayloadValidationReturnsNoErrorIfCalledWithProperParameters() { - ArtifactsBusinessLogic testArtifactsBusinessLogic = getArtifactsBusinessLogic(); - - final Wrapper<ResponseFormat> errorWrapper = new Wrapper<>(); - final ArtifactDefinition artifactInfo = Mockito.mock(ArtifactDefinition.class); - when(artifactInfo.getPayloadData()).thenReturn("artifactInfoPayload".getBytes()); - final Wrapper<byte[]> payloadWrapper = new Wrapper<>(); - - testArtifactsBusinessLogic.setComponentsUtils(componentsUtils); - - testArtifactsBusinessLogic.fillArtifactPayloadValidation(errorWrapper, payloadWrapper, artifactInfo); - - assertEquals(artifactInfo.getPayloadData(),payloadWrapper.getInnerElement()); - } - - @Test - public void validateFillArtifactPayloadValidationReturnsNoErrorIfCalledWithEmptyArtifactPayloadButPayloadIsInCasandraDao() { - ArtifactsBusinessLogic testArtifactsBusinessLogic = getArtifactsBusinessLogic(); - - final Wrapper<ResponseFormat> errorWrapper = new Wrapper<>(); - final String esId = "testEsId"; - final ArtifactDefinition artifactInfo = Mockito.mock(ArtifactDefinition.class); - when(artifactInfo.getPayloadData()).thenReturn("".getBytes()); - when(artifactInfo.getEsId()).thenReturn(esId); - final Wrapper<byte[]> payloadWrapper = new Wrapper<>(); - final byte[] payloadArtifactData = "testArtifactData".getBytes(); - final byte[] base64PayloadArtifactData = Base64.decodeBase64(payloadArtifactData); - final ESArtifactData artifactData = Mockito.mock(ESArtifactData.class); - when(artifactData.getDataAsArray()).thenReturn(base64PayloadArtifactData); - - testArtifactsBusinessLogic.setComponentsUtils(componentsUtils); - - when(artifactCassandraDao.getArtifact(esId)).thenReturn(Either.left(artifactData)); - - testArtifactsBusinessLogic.fillArtifactPayloadValidation(errorWrapper, payloadWrapper, artifactInfo); - - assertFalse(payloadWrapper.isEmpty()); - assertArrayEquals(payloadWrapper.getInnerElement(), payloadArtifactData); - } - - @Test - public void validateFillArtifactPayloadValidationReturnsErrorIfCalledWithEmptyArtifactPayloadAndNoPayloadInCasandraDao() { - ArtifactsBusinessLogic testArtifactsBusinessLogic = getArtifactsBusinessLogic(); - - final ResponseFormat expectedResponseFormat = Mockito.mock(ResponseFormat.class); - final Wrapper<ResponseFormat> errorWrapper = new Wrapper<>(); - final String esId = "testEsId"; - final ArtifactDefinition artifactInfo = Mockito.mock(ArtifactDefinition.class); - when(artifactInfo.getPayloadData()).thenReturn("".getBytes()); - when(artifactInfo.getEsId()).thenReturn(esId); - final Wrapper<byte[]> payloadWrapper = new Wrapper<>(); - - when(artifactCassandraDao.getArtifact(esId)).thenReturn(Either.right(CassandraOperationStatus.GENERAL_ERROR)); - when(componentsUtils.convertFromStorageResponse(StorageOperationStatus.GENERAL_ERROR)).thenReturn(ActionStatus.ERROR_DURING_CSAR_CREATION); - when(componentsUtils.getResponseFormat(eq(ActionStatus.ERROR_DURING_CSAR_CREATION))).thenReturn(expectedResponseFormat); - - testArtifactsBusinessLogic.setComponentsUtils(componentsUtils); - testArtifactsBusinessLogic.fillArtifactPayloadValidation(errorWrapper, payloadWrapper, artifactInfo); - - assertFalse(errorWrapper.isEmpty()); - assertEquals(errorWrapper.getInnerElement(),expectedResponseFormat); - } - - @Test - public void validateGetDeploymentArtifactsReturnsCorrectArtifactLists() { - ArtifactsBusinessLogic testArtifactsBusinessLogic = getArtifactsBusinessLogic(); - - final Component parentComponent = Mockito.mock(Component.class); - final ArtifactDefinition artifactDefinition = Mockito.mock(ArtifactDefinition.class); - when(parentComponent.getDeploymentArtifacts()).thenReturn(Collections.singletonMap("testService", artifactDefinition)); - final NodeTypeEnum parentType = NodeTypeEnum.Service; - final String ciId = "testCiId"; - - List<ArtifactDefinition> result = testArtifactsBusinessLogic.getDeploymentArtifacts(parentComponent, parentType, ciId); - - assertEquals(result.size(), 1); - assertEquals(result.get(0), artifactDefinition); - } - - @Test - public void validateGetDeploymentArtifactsReturnsCorrectArtifactListsForResourceInstance() { - ArtifactsBusinessLogic testArtifactsBusinessLogic = getArtifactsBusinessLogic(); - - final String ciId = "testCiId"; - final ArtifactDefinition deploymentArtifact = Mockito.mock(ArtifactDefinition.class); - final Map<String, ArtifactDefinition> deploymentArtifacts = Collections.singletonMap("",deploymentArtifact); - final ComponentInstance componentInstance = Mockito.mock(ComponentInstance.class); - when(componentInstance.getUniqueId()).thenReturn(ciId); - when(componentInstance.getDeploymentArtifacts()).thenReturn(deploymentArtifacts); - final Component parentComponent = Mockito.mock(Component.class); - when(parentComponent.getComponentInstances()).thenReturn(Collections.singletonList(componentInstance)); - final NodeTypeEnum parentType = NodeTypeEnum.ResourceInstance; - - List<ArtifactDefinition> result = testArtifactsBusinessLogic.getDeploymentArtifacts(parentComponent, parentType, ciId); - - assertEquals(result.size(), 1); - assertEquals(result.get(0), deploymentArtifact); - } - - @Test - public void validateHandleGetArtifactsByTypeReturnsProperArtifact() { - ArtifactsBusinessLogic testArtifactsBusinessLogic = getArtifactsBusinessLogic(); - - final ResponseFormat expectedResponseFormat = Mockito.mock(ResponseFormat.class); - final String containerComponentType = "services"; - final String parentId = "testParentId"; - final ComponentTypeEnum componentType = ComponentTypeEnum.SERVICE; - final String componentId = "testComponentId"; - final String artifactGroupType = "testArtifactGroupType"; - final String userId = "testUserId"; - final User user = new User(); - - final UserValidations userValidations = Mockito.mock(UserValidations.class); - when(userValidations.validateUserExists(eq(userId), eq("get artifacts"), eq(false))) - .thenReturn(user); - - - when(toscaOperationFacade.getToscaElement(eq(componentId), any(ComponentParametersView.class))) - .thenReturn(Either.right(StorageOperationStatus.OK)); - when(componentsUtils.convertFromStorageResponse( - eq(StorageOperationStatus.OK), eq(ComponentTypeEnum.SERVICE))) - .thenReturn(ActionStatus.OK); - when(componentsUtils.getResponseFormat(eq(ActionStatus.OK), eq(componentId))) - .thenReturn(expectedResponseFormat); - - testArtifactsBusinessLogic.setUserValidations(userValidations); - testArtifactsBusinessLogic.setComponentsUtils(componentsUtils); - - Either<Map<String, ArtifactDefinition>, ResponseFormat> response = - testArtifactsBusinessLogic.handleGetArtifactsByType( - containerComponentType, parentId, componentType, - componentId, artifactGroupType, userId - ); - - assertTrue(response.isRight()); - assertEquals(response.right().value(), expectedResponseFormat); - } - - @Test - public void validateHandleGetArtifactsByTypeReturnsMissingInformationIfUserIdIsNull() { - ArtifactsBusinessLogic testArtifactsBusinessLogic = getArtifactsBusinessLogic(); - - final ResponseFormat expectedResponseFormat = Mockito.mock(ResponseFormat.class); - final String containerComponentType = "services"; - final String parentId = "testParentId"; - final ComponentTypeEnum componentType = ComponentTypeEnum.SERVICE; - final String componentId = "testComponentId"; - final String artifactGroupType = "testArtifactGroupType"; - final String userId = null; - - when(componentsUtils.getResponseFormat(eq(ActionStatus.MISSING_INFORMATION))) - .thenReturn(expectedResponseFormat); - - testArtifactsBusinessLogic.setComponentsUtils(componentsUtils); - - Either<Map<String, ArtifactDefinition>, ResponseFormat> response = - testArtifactsBusinessLogic.handleGetArtifactsByType( - containerComponentType, parentId, componentType, - componentId, artifactGroupType, userId - ); - - assertTrue(response.isRight()); - assertEquals(response.right().value(), expectedResponseFormat); - } - - @Test - public void validateDeleteArtifactByInterfaceReturnsProperResponse() { - ArtifactsBusinessLogic testArtifactsBusinessLogic = getArtifactsBusinessLogic(); - - final ResponseFormat expectedResponseFormat = Mockito.mock(ResponseFormat.class); - final String resourceId = "testResources"; - final String userId = "testUser"; - final String artifactId = "testArtifact"; - final boolean inTransaction = false; - final String serviceId = "testService"; - final Resource resource = Mockito.mock(Resource.class); - when(resource.getUniqueId()).thenReturn(serviceId); - - when(toscaOperationFacade.getToscaElement(resourceId, JsonParseFlagEnum.ParseMetadata)) - .thenReturn(Either.left(resource)); - when(toscaOperationFacade.getToscaElement(serviceId)).thenReturn(Either.right(StorageOperationStatus.OK)); - when(componentsUtils.getResponseFormat(ActionStatus.OK)) - .thenReturn(expectedResponseFormat); - when(componentsUtils.convertFromStorageResponse(StorageOperationStatus.OK)) - .thenReturn(ActionStatus.OK); - when(componentsUtils.getResponseFormatByArtifactId(ActionStatus.OK, artifactId)) - .thenReturn(expectedResponseFormat); - testArtifactsBusinessLogic.setComponentsUtils(componentsUtils); - - Either<Operation, ResponseFormat> response = - testArtifactsBusinessLogic.deleteArtifactByInterface( - resourceId, userId, artifactId, inTransaction - ); - - assertTrue(response.isRight()); - assertEquals(response.right().value(),expectedResponseFormat); - } - private void verifyHeatParam(HeatParameterDefinition heatEnvParam, HeatParameterDefinition heatYamlParam) { assertThat(heatYamlParam.getCurrentValue()).isEqualTo(heatEnvParam.getDefaultValue()); assertThat(heatEnvParam.getCurrentValue()).isNull(); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ArtifactResolverTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ArtifactResolverTest.java index 140957f8fa..dc89156ee9 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ArtifactResolverTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ArtifactResolverTest.java @@ -23,7 +23,12 @@ package org.openecomp.sdc.be.components.impl; import org.junit.Before; import org.junit.Test; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.ArtifactDefinition; +import org.openecomp.sdc.be.model.ComponentInstance; +import org.openecomp.sdc.be.model.InterfaceDefinition; +import org.openecomp.sdc.be.model.Operation; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.Service; import java.util.Collections; import java.util.HashMap; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ArtifactsBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ArtifactsBusinessLogicTest.java index 553877773f..0b4a30ec94 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ArtifactsBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ArtifactsBusinessLogicTest.java @@ -44,6 +44,7 @@ import org.openecomp.sdc.be.MockGenerator; import org.openecomp.sdc.be.components.ArtifactsResolver; import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic.ArtifactOperationEnum; import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic.ArtifactOperationInfo; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; import org.openecomp.sdc.be.components.lifecycle.LifecycleBusinessLogic; import org.openecomp.sdc.be.components.utils.ArtifactBuilder; import org.openecomp.sdc.be.components.utils.ObjectGenerator; @@ -53,9 +54,9 @@ import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.cassandra.ArtifactCassandraDao; import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum; -import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.datatypes.components.ResourceMetadataDataDefinition; import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition; import org.openecomp.sdc.be.datatypes.elements.GroupDataDefinition; @@ -81,26 +82,19 @@ import org.openecomp.sdc.be.model.ResourceMetadataDefinition; import org.openecomp.sdc.be.model.Service; import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache; -import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ArtifactsOperations; -import org.openecomp.sdc.be.model.jsonjanusgraph.operations.InterfaceOperation; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.NodeTemplateOperation; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.api.IElementOperation; import org.openecomp.sdc.be.model.operations.api.IGraphLockOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupInstanceOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupTypeOperation; import org.openecomp.sdc.be.model.operations.api.IInterfaceLifecycleOperation; -import org.openecomp.sdc.be.model.operations.api.IUserAdminOperation; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.model.operations.impl.ArtifactOperation; -import org.openecomp.sdc.be.model.operations.impl.InterfaceLifecycleOperation; -import org.openecomp.sdc.be.resources.data.ESArtifactData; +import org.openecomp.sdc.be.model.operations.impl.UserAdminOperation; +import org.openecomp.sdc.be.resources.data.DAOArtifactData; import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; import org.openecomp.sdc.be.servlets.RepresentationUtils; import org.openecomp.sdc.be.tosca.CsarUtils; import org.openecomp.sdc.be.tosca.ToscaExportHandler; -import org.openecomp.sdc.be.user.IUserBusinessLogic; import org.openecomp.sdc.be.user.Role; import org.openecomp.sdc.be.user.UserBusinessLogic; import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum; @@ -114,15 +108,19 @@ import org.openecomp.sdc.exception.ResponseFormat; import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy; import static org.junit.Assert.assertArrayEquals; 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 static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyList; @@ -137,19 +135,21 @@ import static org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic.HEAT_V public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ - public static final User USER = new User("John", "Doh", "jh0003", "jh0003@gmail.com", "ADMIN", + private static final User USER = new User("John", "Doh", "jh0003", "jh0003@gmail.com", "ADMIN", System.currentTimeMillis()); - public static final String RESOURCE_NAME = "My-Resource_Name with space"; + private final static String RESOURCE_INSTANCE_NAME = "Service-111"; + private final static String INSTANCE_ID = "S-123-444-ghghghg"; + + private final static String ARTIFACT_NAME = "service-Myservice-template.yml"; + private final static String ARTIFACT_LABEL = "assettoscatemplate"; + private final static String ES_ARTIFACT_ID = "123123dfgdfgd0"; + private final static byte[] PAYLOAD = "some payload".getBytes(); + private static final String RESOURCE_NAME = "My-Resource_Name with space"; + private static final String RESOURCE_CATEGORY1 = "Network Layer 2-3"; + private static final String RESOURCE_SUBCATEGORY = "Router"; public static final String RESOURCE_CATEGORY = "Network Layer 2-3/Router"; - public static final String RESOURCE_CATEGORY1 = "Network Layer 2-3"; - public static final String RESOURCE_SUBCATEGORY = "Router"; public static final Resource resource = Mockito.mock(Resource.class); - private static final String RESOURCE_INSTANCE_NAME = "Service-111"; - private static final String INSTANCE_ID = "S-123-444-ghghghg"; - private static final String ARTIFACT_NAME = "service-Myservice-template.yml"; - private static final String ARTIFACT_LABEL = "assettoscatemplate"; - private static final String ES_ARTIFACT_ID = "123123dfgdfgd0"; - private static final byte[] PAYLOAD = "some payload".getBytes(); + static ConfigurationSource configurationSource = new FSConfigurationSource( ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be"); static ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); @@ -173,7 +173,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ @Mock private IInterfaceLifecycleOperation lifecycleOperation; @Mock - private IUserAdminOperation userOperation; + private UserAdminOperation userOperation; @Mock private IElementOperation elementOperation; @Mock @@ -195,7 +195,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ private Gson gson = new GsonBuilder().setPrettyPrinting().create(); private static List<ArtifactType> getAllTypes() { - List<ArtifactType> artifactTypes = new ArrayList<>(); + List<ArtifactType> artifactTypes = new ArrayList<ArtifactType>(); List<String> artifactTypesList = ConfigurationManager.getConfigurationManager().getConfiguration() .getArtifactTypes(); for (String artifactType : artifactTypesList) { @@ -224,9 +224,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ when(lifecycleOperation.getAllInterfacesOfResource(Mockito.anyString(), Mockito.anyBoolean())) .thenReturn(notFoundInterfaces); - Either<User, ActionStatus> getUserResult = Either.left(USER); - - when(userOperation.getUserData("jh0003", false)).thenReturn(getUserResult); + when(userOperation.getUserData("jh0003", false)).thenReturn(Either.left(USER)); Either<List<ArtifactType>, ActionStatus> getType = Either.left(getAllTypes()); when(elementOperation.getAllArtifactTypes()).thenReturn(getType); @@ -245,7 +243,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ Either<Resource, StorageOperationStatus> eitherCreate = Either.left(resourceResponse); when(toscaOperationFacade.createToscaComponent(any(Resource.class))).thenReturn(eitherCreate); when(toscaOperationFacade.validateCsarUuidUniqueness(Mockito.anyString())).thenReturn(StorageOperationStatus.OK); - Map<String, DataTypeDefinition> emptyDataTypes = new HashMap<>(); + Map<String, DataTypeDefinition> emptyDataTypes = new HashMap<String, DataTypeDefinition>(); when(applicationDataTypeCache.getAll()).thenReturn(Either.left(emptyDataTypes)); when(mockJanusGraphDao.commit()).thenReturn(JanusGraphOperationStatus.OK); @@ -274,7 +272,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ } ArtifactDefinition afterConvert = RepresentationUtils.convertJsonToArtifactDefinition(jsonArtifact, - ArtifactDefinition.class); + ArtifactDefinition.class, false); assertEquals(ad, afterConvert); } @@ -320,6 +318,209 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ } @Test + public void testUpdateCIDeploymentArtifactTimeout() { + ArtifactDefinition heatArtifact = new ArtifactDefinition(); + ArtifactDefinition envArtifact = new ArtifactDefinition(); + ArtifactDefinition origEnvArtifact = new ArtifactDefinition(); + ComponentInstance ci = new ComponentInstance(); + ci.setUniqueId("ciid"); + ci.setDeploymentArtifacts(fillDeploymentArtifacts(heatArtifact,envArtifact, origEnvArtifact)); + GroupInstance groupInstance = new GroupInstance(); + groupInstance.setGroupInstanceArtifacts(new ArrayList<>(Arrays.asList(heatArtifact.getUniqueId(), envArtifact.getUniqueId()))); + groupInstance.setCustomizationUUID("custUid"); + groupInstance.setUniqueId("guid"); + List<GroupInstance> groupInstances = new ArrayList<>(); + groupInstances.addAll(Arrays.asList(groupInstance)); + ci.setGroupInstances(groupInstances); + Service service = new Service(); + service.setComponentInstances(Collections.singletonList(ci)); + service.setUniqueId("suid"); + + when (artifactToscaOperation.updateArtifactOnResource(heatArtifact, service, + heatArtifact.getUniqueId(), ComponentTypeEnum.RESOURCE_INSTANCE.getNodeType(), ci.getUniqueId(), false)).thenReturn(Either.left(heatArtifact)); + when(toscaOperationFacade.generateCustomizationUUIDOnInstance(service.getUniqueId(), ci.getUniqueId())) + .thenReturn(StorageOperationStatus.OK); + when(toscaOperationFacade.updateGroupInstancesOnComponent(eq(service),eq(ci.getUniqueId()), any(List.class))) + .thenReturn(Either.left(new ArrayList())); + when(toscaOperationFacade.generateCustomizationUUIDOnInstanceGroup(service.getUniqueId(), ci.getUniqueId(), new ArrayList<>(Arrays.asList("guid")))) + .thenReturn(StorageOperationStatus.OK); + artifactBL.handleUpdate(ci.getUniqueId(),ComponentTypeEnum.RESOURCE_INSTANCE,artifactBL.new ArtifactOperationInfo(false, false, ArtifactOperationEnum.UPDATE), + "uid2", envArtifact, null, null, null, null, null, AuditingActionEnum.ARTIFACT_METADATA_UPDATE, user, service, true); + assertThat(ci.getDeploymentArtifacts().get("HEAT").getTimeout()).isEqualTo(envArtifact.getTimeout()); + assertThat(ci.getDeploymentArtifacts().get("HEAT_ENV").getTimeout()).isEqualTo(origEnvArtifact.getTimeout()); + } + + @Test + public void testUpdateCIDeploymentTimeout_invalidTimeout() { + ArtifactDefinition heatArtifact = new ArtifactDefinition(); + ArtifactDefinition envArtifact = new ArtifactDefinition(); + ArtifactDefinition origEnvArtifact = new ArtifactDefinition(); + ComponentInstance ci = new ComponentInstance(); + ci.setUniqueId("ciid"); + ci.setDeploymentArtifacts(fillDeploymentArtifacts(heatArtifact,envArtifact, origEnvArtifact)); + GroupInstance groupInstance = new GroupInstance(); + groupInstance.setGroupInstanceArtifacts(new ArrayList<>(Arrays.asList(heatArtifact.getUniqueId(), envArtifact.getUniqueId()))); + groupInstance.setCustomizationUUID("custUid"); + groupInstance.setUniqueId("guid"); + List<GroupInstance> groupInstances = new ArrayList<>(); + groupInstances.addAll(Arrays.asList(groupInstance)); + ci.setGroupInstances(groupInstances); + Service service = new Service(); + service.setComponentInstances(Collections.singletonList(ci)); + service.setUniqueId("suid"); + envArtifact.setTimeout(130); + + when (artifactToscaOperation.updateArtifactOnResource(heatArtifact, service, + heatArtifact.getUniqueId(), ComponentTypeEnum.RESOURCE_INSTANCE.getNodeType(), ci.getUniqueId(), false)).thenReturn(Either.left(heatArtifact)); + when(toscaOperationFacade.generateCustomizationUUIDOnInstance(service.getUniqueId(), ci.getUniqueId())) + .thenReturn(StorageOperationStatus.OK); + when(toscaOperationFacade.updateGroupInstancesOnComponent(eq(service),eq(ci.getUniqueId()), any(List.class))) + .thenReturn(Either.left(new ArrayList())); + when(toscaOperationFacade.generateCustomizationUUIDOnInstanceGroup(service.getUniqueId(), ci.getUniqueId(), new ArrayList<>(Arrays.asList("guid")))) + .thenReturn(StorageOperationStatus.OK); + try { + artifactBL.handleUpdate(ci.getUniqueId(), ComponentTypeEnum.RESOURCE_INSTANCE, artifactBL.new ArtifactOperationInfo(false, false, ArtifactOperationEnum.UPDATE), + "uid2", envArtifact, null, null, null, null, null, AuditingActionEnum.ARTIFACT_METADATA_UPDATE, user, service, true); + } catch (ComponentException exp) { + assertThat(exp.getActionStatus()).isEqualTo(ActionStatus.ARTIFACT_INVALID_TIMEOUT); + return; + } + fail(); + } + + @Test + public void testUpdateCIDeploymentTimeout_negativeTimeout() { + ArtifactDefinition heatArtifact = new ArtifactDefinition(); + ArtifactDefinition envArtifact = new ArtifactDefinition(); + ArtifactDefinition origEnvArtifact = new ArtifactDefinition(); + ComponentInstance ci = new ComponentInstance(); + ci.setUniqueId("ciid"); + ci.setDeploymentArtifacts(fillDeploymentArtifacts(heatArtifact,envArtifact, origEnvArtifact)); + GroupInstance groupInstance = new GroupInstance(); + groupInstance.setGroupInstanceArtifacts(new ArrayList<>(Arrays.asList(heatArtifact.getUniqueId(), envArtifact.getUniqueId()))); + groupInstance.setCustomizationUUID("custUid"); + groupInstance.setUniqueId("guid"); + List<GroupInstance> groupInstances = new ArrayList<>(); + groupInstances.addAll(Arrays.asList(groupInstance)); + ci.setGroupInstances(groupInstances); + Service service = new Service(); + service.setComponentInstances(Collections.singletonList(ci)); + service.setUniqueId("suid"); + envArtifact.setTimeout(-1); + + when (artifactToscaOperation.updateArtifactOnResource(heatArtifact, service, + heatArtifact.getUniqueId(), ComponentTypeEnum.RESOURCE_INSTANCE.getNodeType(), ci.getUniqueId(), false)).thenReturn(Either.left(heatArtifact)); + when(toscaOperationFacade.generateCustomizationUUIDOnInstance(service.getUniqueId(), ci.getUniqueId())) + .thenReturn(StorageOperationStatus.OK); + when(toscaOperationFacade.updateGroupInstancesOnComponent(eq(service),eq(ci.getUniqueId()), any(List.class))) + .thenReturn(Either.left(new ArrayList())); + when(toscaOperationFacade.generateCustomizationUUIDOnInstanceGroup(service.getUniqueId(), ci.getUniqueId(), new ArrayList<>(Arrays.asList("guid")))) + .thenReturn(StorageOperationStatus.OK); + try { + artifactBL.handleUpdate(ci.getUniqueId(), ComponentTypeEnum.RESOURCE_INSTANCE, artifactBL.new ArtifactOperationInfo(false, false, ArtifactOperationEnum.UPDATE), + "uid2", envArtifact, null, null, null, null, null, AuditingActionEnum.ARTIFACT_METADATA_UPDATE, user, service, true); + } catch (ComponentException exp) { + assertThat(exp.getActionStatus()).isEqualTo(ActionStatus.ARTIFACT_INVALID_TIMEOUT); + return; + } + fail(); + } + + @Test + public void testUpdateCIDeploymentArtifactTimeout_noUpdate() { + ArtifactDefinition heatArtifact = new ArtifactDefinition(); + ArtifactDefinition envArtifact = new ArtifactDefinition(); + ArtifactDefinition origEnvArtifact = new ArtifactDefinition(); + ComponentInstance ci = new ComponentInstance(); + ci.setUniqueId("ciid"); + ci.setDeploymentArtifacts(fillDeploymentArtifacts(heatArtifact,envArtifact, origEnvArtifact)); + envArtifact.setTimeout(heatArtifact.getTimeout()); + GroupInstance groupInstance = new GroupInstance(); + groupInstance.setGroupInstanceArtifacts(new ArrayList<>(Arrays.asList(heatArtifact.getUniqueId(), envArtifact.getUniqueId()))); + groupInstance.setCustomizationUUID("custUid"); + groupInstance.setUniqueId("guid"); + List<GroupInstance> groupInstances = new ArrayList<>(); + groupInstances.addAll(Arrays.asList(groupInstance)); + ci.setGroupInstances(groupInstances); + Service service = new Service(); + service.setComponentInstances(Collections.singletonList(ci)); + service.setUniqueId("suid"); + + when(toscaOperationFacade.generateCustomizationUUIDOnInstance(service.getUniqueId(), ci.getUniqueId())) + .thenReturn(StorageOperationStatus.OK); + when(toscaOperationFacade.updateGroupInstancesOnComponent(eq(service),eq(ci.getUniqueId()), any(List.class))) + .thenReturn(Either.left(new ArrayList())); + artifactBL.handleUpdate(ci.getUniqueId(),ComponentTypeEnum.RESOURCE_INSTANCE,artifactBL.new ArtifactOperationInfo(false, false, ArtifactOperationEnum.UPDATE), + "uid2", envArtifact, null, null, null, null, null, AuditingActionEnum.ARTIFACT_METADATA_UPDATE, user, service, true); + assertThat(ci.getDeploymentArtifacts().get("HEAT").getTimeout()).isEqualTo(origEnvArtifact.getTimeout()); + } + + @Test + public void testUpdateCIDeploymentArtifactTimeout_nonExistingArtifact() { + ArtifactDefinition heatArtifact = new ArtifactDefinition(); + ArtifactDefinition envArtifact = new ArtifactDefinition(); + ArtifactDefinition origEnvArtifact = new ArtifactDefinition(); + envArtifact.setTimeout(heatArtifact.getTimeout()); + envArtifact.setArtifactType("HEAT_ENV"); + envArtifact.setGeneratedFromId("uid1"); + ComponentInstance ci = new ComponentInstance(); + ci.setUniqueId("ciid"); + ci.setDeploymentArtifacts(new HashMap<>()); + Service service = new Service(); + service.setComponentInstances(Collections.singletonList(ci)); + service.setUniqueId("suid"); + + when(toscaOperationFacade.generateCustomizationUUIDOnInstance(service.getUniqueId(), ci.getUniqueId())) + .thenReturn(StorageOperationStatus.OK); + when(toscaOperationFacade.updateGroupInstancesOnComponent(eq(service),eq(ci.getUniqueId()), any(List.class))) + .thenReturn(Either.left(new ArrayList())); + + assertThatThrownBy(() -> { + artifactBL.handleUpdate(ci.getUniqueId(),ComponentTypeEnum.RESOURCE_INSTANCE,artifactBL.new ArtifactOperationInfo(false, false, ArtifactOperationEnum.UPDATE), + "uid2", envArtifact, null, null, null, null, null, AuditingActionEnum.ARTIFACT_METADATA_UPDATE, user, service, true); + }).isInstanceOf(ComponentException.class); + } + + @Test + public void testUpdateCIDeploymentArtifactTimeout_invalidArtifactType() { + ArtifactDefinition envArtifact = new ArtifactDefinition(); + envArtifact.setArtifactType("invalid"); + + try { + artifactBL.handleUpdate("uid", ComponentTypeEnum.RESOURCE_INSTANCE, artifactBL.new ArtifactOperationInfo(false, false, ArtifactOperationEnum.UPDATE), + "uid2", envArtifact, null, null, null, null, null, AuditingActionEnum.ARTIFACT_METADATA_UPDATE, user, null, true); + fail(); + } catch(ComponentException exp) { + assertThat(exp.getActionStatus()).isEqualTo(ActionStatus.ARTIFACT_TYPE_NOT_SUPPORTED); + assertThat(exp.getParams()[0]).isEqualTo("invalid"); + } + } + + private Map<String, ArtifactDefinition> fillDeploymentArtifacts(ArtifactDefinition heatArtifact, ArtifactDefinition envArtifact, ArtifactDefinition origEnvArtifact) { + heatArtifact.setArtifactType("HEAT"); + heatArtifact.setTimeout(60); + heatArtifact.setEsId("es"); + heatArtifact.setArtifactUUID("uuid1"); + heatArtifact.setUniqueId("uid1"); + envArtifact.setArtifactUUID("uuid2"); + envArtifact.setArtifactType("HEAT_ENV"); + envArtifact.setTimeout(30); + envArtifact.setGenerated(true); + envArtifact.setGeneratedFromId("uid1"); + envArtifact.setUniqueId("uid2"); + origEnvArtifact.setUniqueId("uid2"); + origEnvArtifact.setGeneratedFromId("uid1"); + origEnvArtifact.setArtifactType("HEAT_ENV"); + origEnvArtifact.setTimeout(60); + origEnvArtifact.setGenerated(true); + Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>(); + deploymentArtifacts.put(heatArtifact.getArtifactType(), heatArtifact); + //deploymentArtifacts.put(envArtifact.getArtifactType(), envArtifact); + deploymentArtifacts.put(envArtifact.getArtifactType(), origEnvArtifact); + return deploymentArtifacts; + } + + @Test public void testInvalidStringGroupType() { ArtifactDefinition ad = new ArtifactDefinition(); ad.setArtifactName("artifact1"); @@ -329,13 +530,26 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ JsonElement jsonArtifact = gson.toJsonTree(ad); jsonArtifact.getAsJsonObject().addProperty("artifactGroupType", "www"); + jsonArtifact.getAsJsonObject().addProperty("artifactLabel", " label"); + jsonArtifact.getAsJsonObject().addProperty("timeout", " 80"); + jsonArtifact.getAsJsonObject().addProperty("artifactType", " HEAT"); ArtifactDefinition afterConvert = RepresentationUtils.convertJsonToArtifactDefinition(jsonArtifact.toString(), - ArtifactDefinition.class); + ArtifactDefinition.class, false); assertNull(afterConvert); } @Test + public void testUpdateArtifactWithEmptyBody() { + try { + RepresentationUtils.convertJsonToArtifactDefinition("", ArtifactDefinition.class, true); + fail(); + } catch (ComponentException exp) { + assertThat(exp.getActionStatus()).isEqualTo(ActionStatus.MISSING_BODY); + } + } + + @Test public void testInvalidNumberGroupType() { ArtifactDefinition ad = new ArtifactDefinition(); ad.setArtifactName("artifact1"); @@ -345,13 +559,74 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ JsonElement jsonArtifact = gson.toJsonTree(ad); jsonArtifact.getAsJsonObject().addProperty("artifactGroupType", 123); + jsonArtifact.getAsJsonObject().addProperty("artifactLabel", " label"); + jsonArtifact.getAsJsonObject().addProperty("timeout", " 80"); + jsonArtifact.getAsJsonObject().addProperty("artifactType", " HEAT"); ArtifactDefinition afterConvert = RepresentationUtils.convertJsonToArtifactDefinition(jsonArtifact.toString(), - ArtifactDefinition.class); + ArtifactDefinition.class, false); assertNull(afterConvert); } @Test + public void testMissingArtifactTypeValue() { + ArtifactDefinition ad = new ArtifactDefinition(); + + JsonElement jsonArtifact = gson.toJsonTree(ad); + jsonArtifact.getAsJsonObject().addProperty("artifactGroupType", ArtifactGroupTypeEnum.DEPLOYMENT.toString()); + jsonArtifact.getAsJsonObject().addProperty("artifactLabel", " label"); + jsonArtifact.getAsJsonObject().addProperty("timeout", " 80"); + jsonArtifact.getAsJsonObject().add("artifactType", null); + try { + RepresentationUtils.convertJsonToArtifactDefinition(jsonArtifact.toString(), + ArtifactDefinition.class, true); + fail(); + } catch (ComponentException exp) { + assertThat(exp.getActionStatus()).isEqualTo(ActionStatus.MANDATORY_PROPERTY_MISSING_VALUE); + assertThat(exp.getParams()[0]).isEqualTo("artifactType"); + } + } + + @Test + public void testMissingArtifactLabel() { + ArtifactDefinition ad = new ArtifactDefinition(); + + JsonElement jsonArtifact = gson.toJsonTree(ad); + jsonArtifact.getAsJsonObject().addProperty("artifactGroupType", ArtifactGroupTypeEnum.DEPLOYMENT.toString()); + jsonArtifact.getAsJsonObject().addProperty("timeout", " 80"); + jsonArtifact.getAsJsonObject().addProperty("artifactType", " HEAT"); + + try { + RepresentationUtils.convertJsonToArtifactDefinition(jsonArtifact.toString(), + ArtifactDefinition.class, false); + fail(); + } catch (ComponentException exp) { + assertThat(exp.getActionStatus()).isEqualTo(ActionStatus.MISSING_MANDATORY_PROPERTY); + assertThat(exp.getParams()[0]).isEqualTo("artifactLabel"); + } + } + + @Test + public void testMissingArtifactTimeout() { + ArtifactDefinition ad = new ArtifactDefinition(); + + JsonElement jsonArtifact = gson.toJsonTree(ad); + jsonArtifact.getAsJsonObject().addProperty("artifactGroupType", ArtifactGroupTypeEnum.DEPLOYMENT.toString()); + jsonArtifact.getAsJsonObject().addProperty("artifactLabel", " label"); + jsonArtifact.getAsJsonObject().addProperty("artifactType", " HEAT"); + + try { + RepresentationUtils.convertJsonToArtifactDefinition(jsonArtifact.toString(), + ArtifactDefinition.class, true); + fail(); + } catch (ComponentException exp) { + assertThat(exp.getActionStatus()).isEqualTo(ActionStatus.MISSING_MANDATORY_PROPERTY); + assertThat(exp.getParams()[0]).isEqualTo("timeout"); + } + } + + + @Test public void testInvalidGroupTypeWithSpace() { ArtifactDefinition ad = new ArtifactDefinition(); ad.setArtifactName("artifact1"); @@ -361,9 +636,12 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ JsonElement jsonArtifact = gson.toJsonTree(ad); jsonArtifact.getAsJsonObject().addProperty("artifactGroupType", " DEPLOYMENT"); + jsonArtifact.getAsJsonObject().addProperty("artifactLabel", " label"); + jsonArtifact.getAsJsonObject().addProperty("timeout", " 80"); + jsonArtifact.getAsJsonObject().addProperty("artifactType", " HEAT"); ArtifactDefinition afterConvert = RepresentationUtils.convertJsonToArtifactDefinition(jsonArtifact.toString(), - ArtifactDefinition.class); + ArtifactDefinition.class, false); assertNull(afterConvert); } @@ -377,9 +655,12 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ JsonElement jsonArtifact = gson.toJsonTree(ad); jsonArtifact.getAsJsonObject().addProperty("timeout", "dfsdf15"); + jsonArtifact.getAsJsonObject().addProperty("artifactLabel", " label"); + jsonArtifact.getAsJsonObject().addProperty("artifactGroupType", " DEPLOYMENT"); + jsonArtifact.getAsJsonObject().addProperty("artifactType", " HEAT"); ArtifactDefinition afterConvert = RepresentationUtils.convertJsonToArtifactDefinition(jsonArtifact.toString(), - ArtifactDefinition.class); + ArtifactDefinition.class, true); assertNull(afterConvert); } @@ -420,20 +701,19 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ toscaArtifacts.put(artifactLabel, toscaTemplateArtifact); service.setToscaArtifacts(toscaArtifacts); - ESArtifactData esArtifactData = new ESArtifactData(esArtifactId); - esArtifactData.setDataAsArray(payload); - Either<ESArtifactData, CassandraOperationStatus> artifactfromESres = Either.left(esArtifactData); + DAOArtifactData DAOArtifactData = new DAOArtifactData(esArtifactId); + DAOArtifactData.setDataAsArray(payload); + Either<DAOArtifactData, CassandraOperationStatus> artifactfromESres = Either.left(DAOArtifactData); when(artifactCassandraDao.getArtifact(esArtifactId)).thenReturn(artifactfromESres); List<org.openecomp.sdc.be.model.Component> serviceList = new ArrayList<>(); serviceList.add(service); Either<List<org.openecomp.sdc.be.model.Component>, StorageOperationStatus> getServiceRes = Either .left(serviceList); when(toscaOperationFacade.getBySystemName(ComponentTypeEnum.SERVICE, serviceName)).thenReturn(getServiceRes); - Either<byte[], ResponseFormat> downloadServiceArtifactByNamesRes = artifactBL + byte[] downloadServiceArtifactByNamesRes = artifactBL .downloadServiceArtifactByNames(serviceName, serviceVersion, artifactName); - assertTrue(downloadServiceArtifactByNamesRes.isLeft()); - assertTrue(downloadServiceArtifactByNamesRes.left().value() != null - && downloadServiceArtifactByNamesRes.left().value().length == payload.length); + assertTrue(downloadServiceArtifactByNamesRes != null + && downloadServiceArtifactByNamesRes.length == payload.length); } @Test @@ -444,15 +724,14 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ Resource component = new Resource(); component.setComponentType(ComponentTypeEnum.RESOURCE); - when(userBusinessLogic.getUser(anyString(), anyBoolean())).thenReturn(Either.left(USER)); + when(userBusinessLogic.getUser(anyString(), anyBoolean())).thenReturn(USER); when(artifactToscaOperation.addHeatEnvArtifact(any(ArtifactDefinition.class), any(ArtifactDefinition.class), - eq(component.getUniqueId()), eq(NodeTypeEnum.Resource), eq(true), eq("parentId"))) + eq(component), eq(NodeTypeEnum.Resource), eq(true), eq("parentId"))) .thenReturn(Either.left(new ArtifactDefinition())); - Either<ArtifactDefinition, ResponseFormat> heatEnvPlaceHolder = artifactBL.createHeatEnvPlaceHolder( - heatArtifact, HEAT_VF_ENV_NAME, "parentId", NodeTypeEnum.Resource, "parentName", USER, component, + ArtifactDefinition heatEnvPlaceHolder = artifactBL.createHeatEnvPlaceHolder( + new ArrayList<>(), heatArtifact, HEAT_VF_ENV_NAME, "parentId", NodeTypeEnum.Resource, "parentName", USER, component, Collections.emptyMap()); - assertTrue(heatEnvPlaceHolder.isLeft()); - assertNull(heatEnvPlaceHolder.left().value().getListHeatParameters()); + assertNull(heatEnvPlaceHolder.getListHeatParameters()); } @Test @@ -466,17 +745,16 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ Resource component = new Resource(); - when(userBusinessLogic.getUser(anyString(), anyBoolean())).thenReturn(Either.left(USER)); + when(userBusinessLogic.getUser(anyString(), anyBoolean())).thenReturn(USER); when(artifactToscaOperation.addHeatEnvArtifact(any(ArtifactDefinition.class), any(ArtifactDefinition.class), - eq(component.getUniqueId()), eq(NodeTypeEnum.Resource), eq(true), eq("parentId"))) + eq(component), eq(NodeTypeEnum.Resource), eq(true), eq("parentId"))) .thenReturn(Either.left(new ArtifactDefinition())); - Either<ArtifactDefinition, ResponseFormat> heatEnvPlaceHolder = artifactBL.createHeatEnvPlaceHolder( - heatArtifact, HEAT_ENV_NAME, "parentId", NodeTypeEnum.ResourceInstance, "parentName", USER, component, + ArtifactDefinition heatEnvPlaceHolder = artifactBL.createHeatEnvPlaceHolder( + new ArrayList<>(), heatArtifact, HEAT_ENV_NAME, "parentId", NodeTypeEnum.ResourceInstance, "parentName", USER, component, Collections.emptyMap()); - assertTrue(heatEnvPlaceHolder.isLeft()); - ArtifactDefinition heatEnvArtifact = heatEnvPlaceHolder.left().value(); + ArtifactDefinition heatEnvArtifact = heatEnvPlaceHolder; List<HeatParameterDefinition> listHeatParameters = heatEnvArtifact.getListHeatParameters(); assertEquals(listHeatParameters.size(), 3); verifyHeatParam(listHeatParameters.get(0), heatParam1); @@ -496,7 +774,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ when(graphLockOperation.lockComponent(any(), any())).thenReturn(StorageOperationStatus.OK); when(artifactToscaOperation.updateArtifactOnResource(any(ArtifactDefinition.class), any(), any(), - any(NodeTypeEnum.class), any(String.class))).thenReturn(Either.left(artifactDefinition)); + any(NodeTypeEnum.class), any(String.class), eq(true))).thenReturn(Either.left(artifactDefinition)); when(artifactCassandraDao.saveArtifact(any())).thenReturn(CassandraOperationStatus.OK); when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(new ResponseFormat()); artifactBL.generateAndSaveHeatEnvArtifact(artifactDefinition, String.valueOf(PAYLOAD), @@ -515,7 +793,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ when(graphLockOperation.lockComponent(any(), any())).thenReturn(StorageOperationStatus.OK); when(artifactToscaOperation.updateArtifactOnResource(any(ArtifactDefinition.class), any(), any(), - any(NodeTypeEnum.class), any(String.class))).thenReturn(Either.left(artifactDefinition)); + any(NodeTypeEnum.class), any(String.class), eq(true))).thenReturn(Either.left(artifactDefinition)); when(artifactCassandraDao.saveArtifact(any())).thenReturn(CassandraOperationStatus.OK); when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(new ResponseFormat()); artifactBL.generateAndSaveHeatEnvArtifact(artifactDefinition, String.valueOf(PAYLOAD), @@ -534,7 +812,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ when(graphLockOperation.lockComponent(any(), any())).thenReturn(StorageOperationStatus.OK); when(artifactToscaOperation.updateArtifactOnResource(any(ArtifactDefinition.class), any(), any(), - any(NodeTypeEnum.class), any(String.class))).thenReturn(Either.left(artifactDefinition)); + any(NodeTypeEnum.class), any(String.class), eq(true))).thenReturn(Either.left(artifactDefinition)); when(artifactCassandraDao.saveArtifact(any())).thenReturn(CassandraOperationStatus.OK); when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(new ResponseFormat()); artifactBL.generateAndSaveHeatEnvArtifact(artifactDefinition, String.valueOf(PAYLOAD), @@ -548,6 +826,9 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ assertNull(heatEnvParam.getCurrentValue()); } + ////////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////new tests/////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////// private ArtifactsBusinessLogic createTestSubject() { return getTestSubject(); } @@ -577,6 +858,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ new Object[]{component, artifactId}); } + @Test public void testCheckCreateFields() throws Exception { ArtifactsBusinessLogic testSubject; @@ -655,6 +937,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ artifactId, component, artifacts); } + @Test public void testValidateArtifact() throws Exception { ArtifactsBusinessLogic testSubject; @@ -667,14 +950,12 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ AuditingActionEnum auditingAction = AuditingActionEnum.ADD_CATEGORY; Component component = createResourceObject(true); - Wrapper<ResponseFormat> errorWrapper = new Wrapper<>(); boolean shouldLock = false; boolean inTransaction = false; - ArtifactDefinition result; // default test testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "validateArtifact", new Object[]{componentId, componentType, operation, artifactId, artifactInfo, auditingAction, user, component, component, errorWrapper, shouldLock, inTransaction}); + testSubject.validateArtifact(componentId, componentType, operation, artifactId, artifactInfo, auditingAction, user, component, shouldLock, inTransaction); } @Test @@ -685,15 +966,13 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ Component component = createResourceObject(true); ArtifactDefinition artifactInfo = buildArtifactPayload(); - Either<ArtifactDefinition, ResponseFormat> validateArtifact = Either.left(artifactInfo); - Wrapper<ResponseFormat> errorWrapper = new Wrapper<>(); boolean shouldLock = false; boolean inTransaction = false; // default test testSubject = createTestSubject(); - Deencapsulation.invoke(testSubject, "handleHeatEnvDownload", componentId, componentType, user, component, validateArtifact, errorWrapper, shouldLock, inTransaction); + testSubject.handleHeatEnvDownload(componentId, componentType, user, component, artifactInfo, shouldLock, inTransaction); } @Test @@ -716,12 +995,10 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ ArtifactDefinition artAfterUpdate = null; Component component = createResourceObject(true); ComponentTypeEnum componentType = ComponentTypeEnum.RESOURCE; - ActionStatus result; // default test testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "updateGroupForHeat", new Object[]{artifactInfo, - artifactInfo, component, componentType}); + testSubject.updateGroupForHeat(artifactInfo, artifactInfo, component); } @Test @@ -730,15 +1007,14 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ ArtifactDefinition artifactInfo = buildArtifactPayload(); Component component = createResourceObject(true); ComponentTypeEnum componentType = ComponentTypeEnum.RESOURCE; - ActionStatus result; // default test testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "updateGroupForHeat", - new Object[]{artifactInfo, artifactInfo, artifactInfo, - artifactInfo, component, componentType}); + testSubject.updateGroupForHeat(artifactInfo, artifactInfo, artifactInfo, + artifactInfo, component); } + @Test public void testHandleAuditing() throws Exception { ArtifactsBusinessLogic testSubject; @@ -791,6 +1067,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ componentType, parentId, operation, artifactId}); } + @Test public void testValidateInformationalArtifact() throws Exception { ArtifactsBusinessLogic testSubject; @@ -832,6 +1109,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ result = Deencapsulation.invoke(testSubject, "getUpdatedGroupInstances", new Object[]{artifactId, artifactInfo, groups}); } + @Test public void testFindArtifact_1() throws Exception { ArtifactsBusinessLogic testSubject; @@ -858,7 +1136,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ // default test testSubject = createTestSubject(); - Deencapsulation.invoke(testSubject, "fetchArtifactsFromInstance", artifactId, artifacts, instance); + Deencapsulation.invoke(testSubject, "fetchArtifactsFromInstance", new Object[]{artifactId, artifacts, instance}); } @@ -891,18 +1169,15 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ } - @Test - public void testValidateDeploymentArtifactConf() throws Exception { + @Test(expected= ComponentException.class) + public void testDeploymentArtifactTypeIsLegalForParent_shouldThrowException() throws Exception { ArtifactsBusinessLogic testSubject; ArtifactDefinition artifactInfo = buildArtifactPayload(); - Wrapper<ResponseFormat> responseWrapper = new Wrapper<>(); ArtifactTypeEnum artifactType = ArtifactTypeEnum.AAI_SERVICE_MODEL; Map<String, ArtifactTypeConfig> resourceDeploymentArtifacts = new HashMap<>(); - - // test 1 testSubject = createTestSubject(); - Deencapsulation.invoke(testSubject, "validateDeploymentArtifactConf", artifactInfo, responseWrapper, artifactType, resourceDeploymentArtifacts); + testSubject.validateDeploymentArtifactTypeIsLegalForParent(artifactInfo, artifactType, resourceDeploymentArtifacts); } @@ -927,7 +1202,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ // default test testSubject = createTestSubject(); - testSubject.validateArtifactTypeExists(responseWrapper, artifactInfo); + testSubject.getValidArtifactType(artifactInfo); } @@ -945,19 +1220,16 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ } - @Test - public void testValidateHeatEnvDeploymentArtifact() throws Exception { + @Test(expected= ComponentException.class) + public void testValidateHeatEnvDeploymentArtifact_shouldThrowException() throws Exception { ArtifactsBusinessLogic testSubject; Component component = createResourceObject(true); String parentId = ""; ArtifactDefinition artifactInfo = buildArtifactPayload(); NodeTypeEnum parentType = NodeTypeEnum.AdditionalInfoParameters; - Either<Boolean, ResponseFormat> result; - // default test testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "validateHeatEnvDeploymentArtifact", - new Object[]{component, parentId, artifactInfo, parentType}); + testSubject.validateHeatEnvDeploymentArtifact(component, parentId, artifactInfo, parentType); } @Test @@ -969,20 +1241,10 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ // default test testSubject = createTestSubject(); - testSubject.fillArtifactPayloadValidation(errorWrapper, payloadWrapper, artifactDefinition); + testSubject.fillArtifactPayload(payloadWrapper, artifactDefinition); } - @Test - public void testValidateValidYaml() throws Exception { - ArtifactsBusinessLogic testSubject; - Wrapper<ResponseFormat> errorWrapper = new Wrapper<>(); - ArtifactDefinition artifactInfo = buildArtifactPayload(); - - // default test - testSubject = createTestSubject(); - Deencapsulation.invoke(testSubject, "validateValidYaml", errorWrapper, artifactInfo); - } @Test public void testIsValidXml() throws Exception { @@ -996,17 +1258,16 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ } @Test - public void testValidateSingleDeploymentArtifactName() throws Exception { + public void testHeatTimeoutValue() throws Exception { ArtifactsBusinessLogic testSubject; - Wrapper<ResponseFormat> errorWrapper = new Wrapper<>(); - String artifactName = ""; - Component component = createResourceObject(true); - NodeTypeEnum parentType = null; - + boolean isCreate = false; + ArtifactDefinition artifactInfo = buildArtifactPayload(); + ArtifactDefinition currentArtifact = null; + Either<Boolean, ResponseFormat> result; // default test testSubject = createTestSubject(); - Deencapsulation.invoke(testSubject, "validateSingleDeploymentArtifactName", errorWrapper, artifactName, component, NodeTypeEnum.class); + testSubject.validateHeatTimeoutValue(isCreate, artifactInfo, artifactInfo); } @Test @@ -1019,12 +1280,12 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ // default test testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "validateHeatDeploymentArtifact", - new Object[]{isCreate, artifactInfo, artifactInfo}); + testSubject.validateHeatTimeoutValue(isCreate, artifactInfo, artifactInfo); } - @Test - public void testValidateResourceType() throws Exception { + + @Test(expected= ComponentException.class) + public void testValidateResourceType_shouldThrowException() throws Exception { ArtifactsBusinessLogic testSubject; ResourceTypeEnum resourceType = ResourceTypeEnum.VF; ArtifactDefinition artifactInfo = buildArtifactPayload(); @@ -1033,12 +1294,13 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ // test 1 testSubject = createTestSubject(); + testSubject.validateResourceType(resourceType, artifactInfo, typeList); result = Deencapsulation.invoke(testSubject, "validateResourceType", new Object[]{resourceType, artifactInfo, typeList}); } @Test - public void testValidateAndConvertHeatParamers() throws Exception { + public void testValidateAndConvertHeatParameters() throws Exception { ArtifactsBusinessLogic testSubject; ArtifactDefinition artifactInfo = buildArtifactPayload(); String artifactType = ""; @@ -1046,8 +1308,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ // default test testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "validateAndConvertHeatParamers", - new Object[]{artifactInfo, artifactType}); + testSubject.validateAndConvertHeatParameters(artifactInfo, artifactType); } @Test @@ -1063,6 +1324,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ result = testSubject.getDeploymentArtifacts(component, parentType, ciId); } + @Test public void testValidateFirstUpdateHasPayload() throws Exception { ArtifactsBusinessLogic testSubject; @@ -1084,8 +1346,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ // default test testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "validateAndSetArtifactname", - new Object[]{artifactInfo}); + testSubject.validateAndSetArtifactName(artifactInfo); } @Test @@ -1139,7 +1400,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ // default test testSubject = createTestSubject(); - Deencapsulation.invoke(testSubject, "checkAndSetUnupdatableHeatParams", heatParameters, currentParameters); + Deencapsulation.invoke(testSubject, "checkAndSetUnupdatableHeatParams", new Object[]{heatParameters, currentParameters}); } @Test @@ -1162,16 +1423,20 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ ArtifactsBusinessLogic testSubject = getTestSubject(); Either<byte[], ResponseFormat> result = Deencapsulation.invoke(testSubject, "handlePayload", - new Object[]{artifactInfo, isArtifactMetadataUpdate}); + new Object[] { artifactInfo, isArtifactMetadataUpdate }); assertArrayEquals(payload, result.left().value()); } + + + + @Test - public void testGivenInValidVesEventsArtifactPayload_WhenHandlePayload_ThenResultIsInvalidYaml() { - final int expectedStatus = 100; - when(componentsUtils.getResponseFormat(eq(ActionStatus.INVALID_YAML), any(String.class))).thenReturn(new ResponseFormat(expectedStatus)); - final byte[] payload = "invalidYaml".getBytes(); - ArtifactDefinition artifactInfo = createArtifactInfo(payload, "ves_events_file.yaml", ArtifactTypeEnum.VES_EVENTS); + public void testGivenInValidVesEventsArtifactPayload_WhenHandlePayload_ThenResultIsInvalidYaml() { + final int expectedStatus = 100; + when(componentsUtils.getResponseFormat(eq(ActionStatus.INVALID_YAML), any(String.class))).thenReturn(new ResponseFormat(expectedStatus)); + final byte[] payload = "invalidYaml".getBytes(); + ArtifactDefinition artifactInfo = createArtifactInfo(payload, "ves_events_file.yaml", ArtifactTypeEnum.VES_EVENTS); final boolean isArtifactMetadataUpdate = false; ArtifactsBusinessLogic testSubject = getTestSubject(); @@ -1185,11 +1450,11 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ } @Test - public void testGivenEmptyVesEventsArtifactPayload_WhenHandlePayload_ThenResultIsMissingData() { - final int expectedStatus = 101; - when(componentsUtils.getResponseFormat(eq(ActionStatus.MISSING_DATA), any(String.class))).thenReturn(new ResponseFormat(expectedStatus)); - final byte[] payload = "".getBytes(); - ArtifactDefinition artifactInfo = createArtifactInfo(payload, "ves_events_file.yaml", ArtifactTypeEnum.VES_EVENTS); + public void testGivenEmptyVesEventsArtifactPayload_WhenHandlePayload_ThenResultIsMissingData() { + final int expectedStatus = 101; + when(componentsUtils.getResponseFormat(eq(ActionStatus.MISSING_DATA), any(String.class))).thenReturn(new ResponseFormat(expectedStatus)); + final byte[] payload = "".getBytes(); + ArtifactDefinition artifactInfo = createArtifactInfo(payload, "ves_events_file.yaml", ArtifactTypeEnum.VES_EVENTS); final boolean isArtifactMetadataUpdate = false; ArtifactsBusinessLogic testSubject = getTestSubject(); @@ -1198,15 +1463,15 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ Either<byte[], ResponseFormat> result = Deencapsulation.invoke(testSubject, "handlePayload", new Object[]{artifactInfo, isArtifactMetadataUpdate}); - int status = result.right().value().getStatus(); - assertEquals(expectedStatus, status); + int status = result.right().value().getStatus(); + assertEquals(expectedStatus, status); } @Test - public void testGivenValidHeatArtifactPayload_WhenHandlePayload_ThenResultIsDecodedPayload() { - final byte[] payload = "heat_template_version: 1.0".getBytes(); - ArtifactDefinition artifactInfo = createArtifactInfo(payload, "heat_template.yaml", ArtifactTypeEnum.HEAT); + public void testGivenValidHeatArtifactPayload_WhenHandlePayload_ThenResultIsDecodedPayload() { + final byte[] payload = "heat_template_version: 1.0".getBytes(); + ArtifactDefinition artifactInfo = createArtifactInfo(payload, "heat_template.yaml", ArtifactTypeEnum.HEAT); final boolean isArtifactMetadataUpdate = false; ArtifactsBusinessLogic testSubject = getTestSubject(); @@ -1217,11 +1482,11 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ } @Test - public void testGivenInValidHeatArtifactPayload_WhenHandlePayload_ThenResultIsInvalidYaml() { - final int expectedStatus = 1000; - when(componentsUtils.getResponseFormat(eq(ActionStatus.INVALID_DEPLOYMENT_ARTIFACT_HEAT), any(String.class))).thenReturn(new ResponseFormat(expectedStatus)); - final byte[] payload = "validYaml: butNoHeatTemplateVersion".getBytes(); - ArtifactDefinition artifactInfo = createArtifactInfo(payload, "heat_template.yaml", ArtifactTypeEnum.HEAT); + public void testGivenInValidHeatArtifactPayload_WhenHandlePayload_ThenResultIsInvalidYaml() { + final int expectedStatus = 1000; + when(componentsUtils.getResponseFormat(eq(ActionStatus.INVALID_DEPLOYMENT_ARTIFACT_HEAT), any(String.class))).thenReturn(new ResponseFormat(expectedStatus)); + final byte[] payload = "validYaml: butNoHeatTemplateVersion".getBytes(); + ArtifactDefinition artifactInfo = createArtifactInfo(payload, "heat_template.yaml", ArtifactTypeEnum.HEAT); final boolean isArtifactMetadataUpdate = false; ArtifactsBusinessLogic testSubject = getTestSubject(); @@ -1276,18 +1541,20 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ new Object[]{operation, origMd5}); } + @Test public void testCreateEsArtifactData() throws Exception { ArtifactsBusinessLogic testSubject; ArtifactDataDefinition artifactInfo = buildArtifactPayload(); byte[] artifactPayload = new byte[]{' '}; - ESArtifactData result; + DAOArtifactData result; // default test testSubject = createTestSubject(); result = testSubject.createEsArtifactData(artifactInfo, artifactPayload); } + @Test public void testIsArtifactMetadataUpdate() throws Exception { ArtifactsBusinessLogic testSubject; @@ -1332,7 +1599,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ ArtifactsBusinessLogic testSubject; ArtifactDefinition artifactDefinition = buildArtifactPayload(); String payloadStr = ""; - Either<ESArtifactData, ResponseFormat> result; + Either<DAOArtifactData, ResponseFormat> result; // default test testSubject = createTestSubject(); @@ -1352,11 +1619,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ // test 1 testSubject = createTestSubject(); - prevUUID = ""; - result = Deencapsulation.invoke(testSubject, "updateArtifactOnGroupInstance", - new Object[]{componentType, component, instanceId, prevUUID, artifactInfo, - artifactInfo}); - + testSubject.updateArtifactOnGroupInstance(component, instanceId, prevUUID, artifactInfo, artifactInfo); } @Test @@ -1371,6 +1634,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ new Object[]{artifactDefinition}); } + @Test public void testBuildJsonForUpdateArtifact() throws Exception { ArtifactsBusinessLogic testSubject; @@ -1406,6 +1670,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ label, displayName, description, artifactContent, updatedRequiredArtifacts, heatParameters); } + @Test public void testReplaceCurrHeatValueWithUpdatedValue() throws Exception { ArtifactsBusinessLogic testSubject; @@ -1415,9 +1680,10 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ // default test testSubject = createTestSubject(); - Deencapsulation.invoke(testSubject, "replaceCurrHeatValueWithUpdatedValue", currentHeatEnvParams, updatedHeatEnvParams); + Deencapsulation.invoke(testSubject, "replaceCurrHeatValueWithUpdatedValue", new Object[]{currentHeatEnvParams, updatedHeatEnvParams}); } + @Test public void testExtractArtifactDefinition() throws Exception { ArtifactsBusinessLogic testSubject; @@ -1430,6 +1696,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ result = testSubject.extractArtifactDefinition(eitherArtifact); } + @Test public void testSetHeatCurrentValuesOnHeatEnvDefaultValues() throws Exception { ArtifactsBusinessLogic testSubject; @@ -1452,7 +1719,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ // default test testSubject = createTestSubject(); - Deencapsulation.invoke(testSubject, "buildHeatEnvFileName", artifactInfo, artifactInfo, placeHolderData); + Deencapsulation.invoke(testSubject, "buildHeatEnvFileName", new Object[]{artifactInfo, artifactInfo, placeHolderData}); } @Test @@ -1478,11 +1745,11 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ ArtifactOperationInfo operation = arb.new ArtifactOperationInfo(false, false, ArtifactOperationEnum.CREATE); boolean shouldLock = false; boolean inTransaction = false; - Either<List<ArtifactDefinition>, ResponseFormat> result; + List<ArtifactDefinition> result; // default test testSubject = createTestSubject(); - result = testSubject.handleArtifactsRequestForInnerVfcComponent(artifactsToHandle, component, user, + result = testSubject.handleArtifactsForInnerVfcComponent(artifactsToHandle, component, user, vfcsNewCreatedArtifacts, operation, shouldLock, inTransaction); } @@ -1553,7 +1820,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ user.setRole(Role.ADMIN.name()); - when(userValidations.validateUserExists(Mockito.eq("userId"), any(), anyBoolean())) + when(userValidations.validateUserExists(Mockito.eq("userId"))) .thenReturn(user); when(toscaOperationFacade.getToscaFullElement(any())) .thenReturn(Either.left(resource)); @@ -1563,23 +1830,23 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ .thenReturn(artifactDefinition); when(graphLockOperation.lockComponent(eq(resource.getUniqueId()), any(NodeTypeEnum.class))) .thenReturn(StorageOperationStatus.OK); - when(artifactToscaOperation.updateArtifactOnResource(any(ArtifactDefinition.class), any(), anyString(), any(NodeTypeEnum.class), any())) + when(artifactToscaOperation.updateArtifactOnResource(any(ArtifactDefinition.class), any(), anyString(), any(NodeTypeEnum.class), any(), anyBoolean())) .thenReturn(Either.left(artifactDefinition)); - when(artifactCassandraDao.saveArtifact(any(ESArtifactData.class))) + when(artifactCassandraDao.saveArtifact(any(DAOArtifactData.class))) .thenReturn(CassandraOperationStatus.OK); when(toscaOperationFacade.getToscaElement(anyString())) .thenReturn(Either.left(resource)); when(interfaceOperation.updateInterfaces(anyString(), anyList())) .thenReturn(Either.left(interfaceDefinitionsList)); + when(artifactToscaOperation.getAllInstanceArtifacts(resource.getUniqueId(), componentId)).thenReturn(Either.left(artifactDefinitionMap)); + when(toscaOperationFacade.generateCustomizationUUIDOnInstance(any(), any())).thenReturn(StorageOperationStatus.OK); - Either<Either<ArtifactDefinition, Operation>, ResponseFormat> result = artifactBL.handleArtifactRequest(componentId, user.getUserId(), ComponentTypeEnum.RESOURCE_INSTANCE + Either<ArtifactDefinition, Operation> result = artifactBL.handleArtifactRequest(componentId, user.getUserId(), ComponentTypeEnum.RESOURCE_INSTANCE , operationInfo, artifactDefinition.getUniqueId(), artifactDefinition, requestMd5, "data", "iuuid", - "ouuid", componentId, "resources"); + null, componentId, "resources"); - Assert.assertTrue(result.isLeft()); - Either<ArtifactDefinition, Operation> leftResult = result.left().value(); - assertTrue(leftResult.isLeft()); - ArtifactDefinition leftValue = leftResult.left().value(); + assertTrue(result.isLeft()); + ArtifactDefinition leftValue = result.left().value(); assertEquals(artifactDefinition.getArtifactName(), leftValue.getArtifactName()); } @@ -1603,19 +1870,17 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ when(csarUtils.createCsar(any(Component.class), anyBoolean(), anyBoolean())) .thenReturn(Either.left(csar)); - when(artifactToscaOperation.updateArtifactOnResource(any(ArtifactDefinition.class), anyString(), anyString(), any(NodeTypeEnum.class), anyString())) + when(artifactToscaOperation.updateArtifactOnResource(any(ArtifactDefinition.class), any(Component.class), anyString(), any(NodeTypeEnum.class), anyString(), anyBoolean())) .thenReturn(Either.left(artifactDefinition)); - when(artifactCassandraDao.saveArtifact(any(ESArtifactData.class))) + when(artifactCassandraDao.saveArtifact(any(DAOArtifactData.class))) .thenReturn(CassandraOperationStatus.OK); - Either<Either<ArtifactDefinition, Operation>, ResponseFormat> result + Either<ArtifactDefinition, Operation> result = artifactBL.generateAndSaveToscaArtifact(artifactDefinition, resource, user, inCertificationRequest, shouldLock, inTransaction, fetchTemplatesFromDB); - Assert.assertTrue(result.isLeft()); - Either<ArtifactDefinition, Operation> leftResult = result.left().value(); - Assert.assertEquals(artifactDefinition.getUniqueId(), leftResult.left().value().getUniqueId()); + Assert.assertEquals(artifactDefinition.getUniqueId(), result.left().value().getUniqueId()); } @Test @@ -1634,11 +1899,10 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ when(csarUtils.createCsar(any(Component.class), anyBoolean(), anyBoolean())) .thenReturn(Either.left(generatedCsar)); - Either<ImmutablePair<String, byte[]>, ResponseFormat> result = + ImmutablePair<String, byte[]> result = testSubject.handleDownloadToscaModelRequest(resource, csarArtifact); - ImmutablePair<String, byte[]> leftResult = result.left().value(); - assertEquals(csarArtifact.getArtifactName(), leftResult.getKey()); + assertEquals(csarArtifact.getArtifactName(), result.getKey()); } @Test @@ -1647,7 +1911,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ String artifactId = "artifactId"; String parentId = "parentId"; - ESArtifactData esArtifactData = new ESArtifactData(); + DAOArtifactData daoArtifactData = new DAOArtifactData(); ArtifactDefinition artifactDefinition = new ArtifactDefinition(); InterfaceDefinition interfaceDefinition = new InterfaceDefinition(); Operation operation = new Operation(); @@ -1659,7 +1923,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ artifactDefinition.setUniqueId(artifactId); artifactDefinition.setArtifactGroupType(ArtifactGroupTypeEnum.TOSCA); - esArtifactData.setDataAsArray("data".getBytes()); + daoArtifactData.setDataAsArray("data".getBytes()); Resource resource = new Resource(); resource.setUniqueId("resourceId"); @@ -1676,20 +1940,20 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ User user = new User(); user.setUserId("userId"); - when(userValidations.validateUserExists(eq(user.getUserId()), any(), anyBoolean())) + when(userValidations.validateUserExists(eq(user.getUserId()))) .thenReturn(user); when(toscaOperationFacade.getToscaFullElement(eq(componentId))) .thenReturn(Either.left(resource)); when(artifactToscaOperation.getArtifactById(anyString(), anyString(), any(ComponentTypeEnum.class), anyString())) .thenReturn(Either.left(artifactDefinition)); when(artifactCassandraDao.getArtifact(any())) - .thenReturn(Either.left(esArtifactData)); + .thenReturn(Either.left(daoArtifactData)); + when(graphLockOperation.lockComponent(any(), any())).thenReturn(StorageOperationStatus.OK); - Either<ImmutablePair<String, byte[]>, ResponseFormat> result = + ImmutablePair<String, byte[]> result = artifactBL.handleDownloadRequestById(componentId, artifactId, user.getUserId(), ComponentTypeEnum.RESOURCE, parentId, null); - ImmutablePair<String, byte[]> leftResult = result.left().value(); - Assert.assertEquals(artifactDefinition.getArtifactName(), leftResult.getKey()); + Assert.assertEquals(artifactDefinition.getArtifactName(), result.getKey()); } @Test @@ -1698,10 +1962,15 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ String userId = null; String artifactId = "artifactId"; - Either<ImmutablePair<String, byte[]>, ResponseFormat> result = - artifactBL.handleDownloadRequestById(componentId, artifactId, userId, ComponentTypeEnum.RESOURCE, componentId - , null); - Assert.assertTrue(result.isRight()); + try { + ImmutablePair<String, byte[]> result = + artifactBL.handleDownloadRequestById(componentId, artifactId, userId, ComponentTypeEnum.RESOURCE, componentId + , null); + } catch (ComponentException e) { + assertEquals(e.getActionStatus(), ActionStatus.MISSING_INFORMATION); + return; + } + fail(); } @Test @@ -1727,11 +1996,10 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ when(artifactToscaOperation.getArtifacts(any(), any(NodeTypeEnum.class), any(ArtifactGroupTypeEnum.class), any())) .thenReturn(Either.left(artifactDefinitionMap)); - Either<Map<String, ArtifactDefinition>, ResponseFormat> result = + Map<String, ArtifactDefinition> result = artifactBL.handleGetArtifactsByType(ComponentTypeEnum.SERVICE.name(), parentId, ComponentTypeEnum.SERVICE, componentId, artifactGroupType, userId); - Map<String, ArtifactDefinition> leftResult = result.left().value(); - Assert.assertEquals(artifactDefinition.getArtifactName(), leftResult.get("artifact1").getArtifactName()); + Assert.assertEquals(artifactDefinition.getArtifactName(), result.get("artifact1").getArtifactName()); } @Test @@ -1809,13 +2077,15 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ String resourceName = "resource"; String resourceVersion = "1.0"; String artifactName = "artifactName"; - ResponseFormat responseFormat = new ResponseFormat(); - responseFormat.setStatus(007); - when(componentsUtils.getResponseFormat(eq(ActionStatus.INVALID_CONTENT))) - .thenReturn(responseFormat); - Either<byte[], ResponseFormat> result = artifactBL.downloadRsrcArtifactByNames(serviceName, serviceVersion, resourceName, resourceVersion, artifactName); - assertEquals(responseFormat.getStatus(), result.right().value().getStatus()); + try{ + artifactBL.downloadRsrcArtifactByNames(serviceName, serviceVersion, resourceName, resourceVersion, artifactName); + } catch(ComponentException e) { + assertEquals(ActionStatus.INVALID_CONTENT, e.getActionStatus()); + return; + } + fail(); + } @Test @@ -1837,7 +2107,7 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ ArtifactDefinition artifactDefinition = new ArtifactDefinition(); artifactDefinition.setEsId("esId"); - ESArtifactData esArtifactData = new ESArtifactData(); + DAOArtifactData esArtifactData = new DAOArtifactData(); esArtifactData.setDataAsArray("test".getBytes()); artifactDefinition.setArtifactName(artifactName); @@ -1854,9 +2124,8 @@ public class ArtifactsBusinessLogicTest extends BaseBusinessLogicMock{ when(artifactCassandraDao.getArtifact(any())) .thenReturn(Either.left(esArtifactData)); - Either<byte[], ResponseFormat> result = artifactBL.downloadRsrcArtifactByNames(serviceName, version, resourceName, version, artifactName); - byte[] data = result.left().value(); - Assert.assertEquals(esArtifactData.getDataAsArray(), data); + byte[] result = artifactBL.downloadRsrcArtifactByNames(serviceName, version, resourceName, version, artifactName); + Assert.assertEquals(esArtifactData.getDataAsArray(), result); } private ArtifactsBusinessLogic getTestSubject() { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/AttributeBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/AttributeBusinessLogicTest.java index 2084e443fd..57af76a103 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/AttributeBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/AttributeBusinessLogicTest.java @@ -21,12 +21,7 @@ */ package org.openecomp.sdc.be.components.impl; -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - +import fj.data.Either; import junit.framework.Assert; import org.junit.Before; import org.junit.Test; @@ -35,7 +30,11 @@ import org.openecomp.sdc.be.components.validation.UserValidations; import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.DataTypeDefinition; +import org.openecomp.sdc.be.model.LifecycleStateEnum; +import org.openecomp.sdc.be.model.PropertyDefinition; +import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.api.IGraphLockOperation; @@ -43,12 +42,17 @@ import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.model.operations.impl.PropertyOperation; import org.openecomp.sdc.be.model.tosca.ToscaPropertyType; import org.openecomp.sdc.exception.ResponseFormat; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyObject; import static org.mockito.Mockito.when; -import fj.data.Either; - public class AttributeBusinessLogicTest extends BaseBusinessLogicMock{ diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/CapabilitiesBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/CapabilitiesBusinessLogicTest.java index 25568b9a9f..af9aa7d660 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/CapabilitiesBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/CapabilitiesBusinessLogicTest.java @@ -23,14 +23,12 @@ import fj.data.Either; import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import org.mockito.InjectMocks; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.openecomp.sdc.be.auditing.impl.AuditingManager; import org.openecomp.sdc.be.components.validation.CapabilitiesValidation; import org.openecomp.sdc.be.components.validation.UserValidations; import org.openecomp.sdc.be.config.ConfigurationManager; -import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.datatypes.elements.SchemaDefinition; @@ -49,16 +47,10 @@ import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.model.Service; import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.CapabilitiesOperation; -import org.openecomp.sdc.be.model.jsonjanusgraph.operations.InterfaceOperation; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.api.ICapabilityTypeOperation; -import org.openecomp.sdc.be.model.operations.api.IElementOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupInstanceOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupTypeOperation; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.model.operations.impl.GraphLockOperation; -import org.openecomp.sdc.be.model.operations.impl.InterfaceLifecycleOperation; import org.openecomp.sdc.be.user.Role; import org.openecomp.sdc.be.user.UserBusinessLogic; import org.openecomp.sdc.common.api.ConfigurationSource; @@ -120,8 +112,7 @@ public class CapabilitiesBusinessLogicTest extends BaseBusinessLogicMock { user.setLastName("Hendrix"); user.setRole(Role.ADMIN.name()); - Either<User, ActionStatus> eitherGetUser = Either.left(user); - when(mockUserAdmin.getUser("jh0003", false)).thenReturn(eitherGetUser); + when(mockUserAdmin.getUser("jh0003", false)).thenReturn(user); when(graphLockOperation.lockComponent(Mockito.anyString(), eq(NodeTypeEnum.Resource))) .thenReturn(StorageOperationStatus.OK); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/CapabilityTypeImportManagerTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/CapabilityTypeImportManagerTest.java index 66d7225360..7de4296ffa 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/CapabilityTypeImportManagerTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/CapabilityTypeImportManagerTest.java @@ -21,7 +21,6 @@ package org.openecomp.sdc.be.components.impl; import fj.data.Either; -import static org.junit.Assert.assertEquals; import org.apache.commons.lang3.tuple.ImmutablePair; import org.junit.Before; import org.junit.BeforeClass; @@ -47,6 +46,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/CommonImportManagerTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/CommonImportManagerTest.java index 44e6045dd2..429d8f848d 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/CommonImportManagerTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/CommonImportManagerTest.java @@ -44,7 +44,9 @@ import java.util.function.BiFunction; import java.util.function.Function; import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) public class CommonImportManagerTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ComponentInstanceBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ComponentInstanceBusinessLogicTest.java index f0942f6be0..75bf5a43ea 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ComponentInstanceBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ComponentInstanceBusinessLogicTest.java @@ -20,23 +20,12 @@ package org.openecomp.sdc.be.components.impl; -import static org.assertj.core.api.Assertions.assertThat; import fj.data.Either; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.Set; import mockit.Deencapsulation; import org.apache.commons.lang3.tuple.ImmutablePair; import org.assertj.core.util.Lists; import org.junit.Assert; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; @@ -45,18 +34,25 @@ import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; import org.openecomp.sdc.be.components.validation.UserValidations; +import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum; -import org.openecomp.sdc.be.datatypes.elements.*; +import org.openecomp.sdc.be.datatypes.elements.CapabilityDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.ForwardingPathDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.ForwardingPathElementDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.GetPolicyValueDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.RequirementDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.SchemaDefinition; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields; import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.impl.ServletUtils; -import org.openecomp.sdc.be.info.CreateAndAssotiateInfo; import org.openecomp.sdc.be.model.ArtifactDefinition; import org.openecomp.sdc.be.model.CapabilityDefinition; import org.openecomp.sdc.be.model.CapabilityRequirementRelationship; @@ -65,6 +61,7 @@ import org.openecomp.sdc.be.model.ComponentInstance; import org.openecomp.sdc.be.model.ComponentInstanceInput; import org.openecomp.sdc.be.model.ComponentInstanceProperty; import org.openecomp.sdc.be.model.ComponentParametersView; +import org.openecomp.sdc.be.model.DataTypeDefinition; import org.openecomp.sdc.be.model.InputDefinition; import org.openecomp.sdc.be.model.LifecycleStateEnum; import org.openecomp.sdc.be.model.PolicyDefinition; @@ -75,25 +72,41 @@ import org.openecomp.sdc.be.model.RequirementDefinition; import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.model.Service; import org.openecomp.sdc.be.model.User; +import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ForwardingPathOperation; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.model.operations.impl.GraphLockOperation; +import org.openecomp.sdc.be.model.operations.impl.PropertyOperation; import org.openecomp.sdc.be.user.UserBusinessLogic; import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum; +import org.openecomp.sdc.common.api.ArtifactTypeEnum; +import org.openecomp.sdc.common.api.ConfigurationSource; +import org.openecomp.sdc.common.impl.ExternalConfiguration; +import org.openecomp.sdc.common.impl.FSConfigurationSource; import org.openecomp.sdc.exception.ResponseFormat; -import static org.junit.Assert.assertTrue; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anySet; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.when; -import static org.mockito.ArgumentMatchers.*; - /** * The test suite designed for test functionality of ComponentInstanceBusinessLogic class */ @@ -103,8 +116,10 @@ public class ComponentInstanceBusinessLogicTest { private final static String USER_ID = "jh0003"; private final static String COMPONENT_ID = "componentId"; + private final static String ORIGIN_COMPONENT_ID = "originComponentId"; private final static String COMPONENT_INST_ID = "componentInstId"; private final static String TO_INSTANCE_ID = "toInstanceId"; + private final static String COMPONENT_INSTANCE_ID = "componentInstanceId"; private final static String FROM_INSTANCE_ID = "fromInstanceId"; private final static String RELATION_ID = "relationId"; private final static String CAPABILITY_OWNER_ID = "capabilityOwnerId"; @@ -122,6 +137,14 @@ public class ComponentInstanceBusinessLogicTest { private final static String PROP_NAME = "propName"; private final static String NON_EXIST_NAME = "nonExistName"; + static ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), + "src/test/resources/config/catalog-be"); + static ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); + + @InjectMocks + private static ComponentInstanceBusinessLogic componentInstanceBusinessLogic; + @Mock + ArtifactsBusinessLogic artifactsBusinessLogic; @Mock private ComponentsUtils componentsUtils; @Mock @@ -139,13 +162,15 @@ public class ComponentInstanceBusinessLogicTest { @Mock private UserValidations userValidations; @Mock + GraphLockOperation graphLockOperation; + @Mock private JanusGraphDao janusGraphDao; @Mock - private ArtifactsBusinessLogic artifactBusinessLogic; + ApplicationDataTypeCache dataTypeCache; @Mock - private GraphLockOperation graphLockOperation; - @InjectMocks - private ComponentInstanceBusinessLogic componentInstanceBusinessLogic; + PropertyOperation propertyOperation; + @Mock + ApplicationDataTypeCache applicationDataTypeCache; private Component service; private Component resource; @@ -159,12 +184,6 @@ public class ComponentInstanceBusinessLogicTest { @Before public void init() { MockitoAnnotations.initMocks(componentInstanceBusinessLogic); - componentInstanceBusinessLogic.setToscaOperationFacade(toscaOperationFacade); - componentInstanceBusinessLogic.setUserValidations(userValidations); - componentInstanceBusinessLogic.setComponentsUtils(componentsUtils); - componentInstanceBusinessLogic.setGraphLockOperation(graphLockOperation); - componentInstanceBusinessLogic.setJanusGraphDao(janusGraphDao); - stubMethods(); createComponents(); } @@ -243,6 +262,215 @@ public class ComponentInstanceBusinessLogicTest { } + @Test + public void testCreateOrUpdatePropertiesValues2(){ + String containerComponentID="containerId"; + String resourceInstanceId = "resourceId"; + String componentInstanceID = "componentInstance"; + List<ComponentInstanceProperty> properties = new ArrayList<>(); + ComponentInstanceProperty property = new ComponentInstanceProperty(); + property.setName("property"); + property.setValue("newVal"); + property.setType("string"); + properties.add(property); + + List<ComponentInstanceProperty> origProperties = new ArrayList<>(); + ComponentInstanceProperty origProperty = new ComponentInstanceProperty(); + origProperty.setName("property"); + origProperty.setValue("value"); + origProperty.setType("string"); + origProperties.add(origProperty); + + Map<String, DataTypeDefinition> types = new HashMap<>(); + DataTypeDefinition dataTypeDef = new DataTypeDefinition(); + types.put("string", dataTypeDef); + + Component component = new Service(); + component.setLastUpdaterUserId("userId"); + component.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); + Map<String, List<ComponentInstanceProperty>> componentInstanceProps = new HashMap<>(); + componentInstanceProps.put("resourceId", origProperties); + component.setComponentInstancesProperties(componentInstanceProps); + ComponentInstance ci = createComponentInstance("ci1"); + ci.setUniqueId("resourceId"); + component.setComponentInstances(Arrays.asList(ci, createComponentInstance("ci2"), + createComponentInstance(componentInstanceID))); + HashMap<String, DataTypeDefinition> dataTypeDefinitionHashMap = new HashMap<>(); + DataTypeDefinition dataTypeDefinition = new DataTypeDefinition(); + dataTypeDefinition.setName("string"); + dataTypeDefinitionHashMap.put("string", dataTypeDefinition); + + //when(userValidations.validateUserExists(user.getUserId(), false)).thenReturn(user); + when(toscaOperationFacade.getToscaElement(containerComponentID, JsonParseFlagEnum.ParseAll)).thenReturn(Either.left(component)); + when(graphLockOperation.lockComponent(containerComponentID, NodeTypeEnum.ResourceInstance)).thenReturn(StorageOperationStatus.OK); + when(dataTypeCache.getAll()).thenReturn(Either.left(types)); + when(propertyOperation.validateAndUpdatePropertyValue(property.getType(), "newVal", true, null, types)) + .thenReturn(Either.left("newVal")); + when(propertyOperation.validateAndUpdateRules("string", property.getRules(), + null, types, true)).thenReturn(ImmutablePair.of("string", null)); + when(toscaOperationFacade.updateComponentInstanceProperty(component, ci.getUniqueId(), + origProperty)).thenReturn(StorageOperationStatus.OK); + origProperties.get(0).setValue("newVal"); + when(toscaOperationFacade.updateComponentInstanceMetadataOfTopologyTemplate(component)).thenReturn(Either.left(component)); + when (janusGraphDao.commit()).thenReturn(JanusGraphOperationStatus.OK); + when(graphLockOperation.unlockComponent(containerComponentID, NodeTypeEnum.ResourceInstance)).thenReturn(StorageOperationStatus.OK); + + Either<List<ComponentInstanceProperty>, ResponseFormat> responseFormatEither = componentInstanceBusinessLogic.createOrUpdatePropertiesValues( + ComponentTypeEnum.RESOURCE_INSTANCE, containerComponentID, resourceInstanceId, properties, "userId"); + assertThat(responseFormatEither.left().value()).isEqualTo(properties); + } + + @Test + public void testCreateOrUpdatePropertiesValuesPropertyNotExists(){ + String containerComponentID="containerId"; + String resourceInstanceId = "resourceId"; + String componentInstanceID = "componentInstance"; + List<ComponentInstanceProperty> properties = new ArrayList<>(); + ComponentInstanceProperty property = new ComponentInstanceProperty(); + property.setName("property"); + property.setValue("newVal"); + property.setType("string"); + properties.add(property); + + List<ComponentInstanceProperty> origProperties = new ArrayList<>(); + + Map<String, DataTypeDefinition> types = new HashMap<>(); + DataTypeDefinition dataTypeDef = new DataTypeDefinition(); + types.put("string", dataTypeDef); + + Component component = new Service(); + component.setLastUpdaterUserId("userId"); + component.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); + Map<String, List<ComponentInstanceProperty>> componentInstanceProps = new HashMap<>(); + componentInstanceProps.put("resourceId", origProperties); + component.setComponentInstancesProperties(componentInstanceProps); + ComponentInstance ci = createComponentInstance("ci1"); + ci.setUniqueId("resourceId"); + component.setComponentInstances(Arrays.asList(ci, createComponentInstance("ci2"), + createComponentInstance(componentInstanceID))); + HashMap<String, DataTypeDefinition> dataTypeDefinitionHashMap = new HashMap<>(); + DataTypeDefinition dataTypeDefinition = new DataTypeDefinition(); + dataTypeDefinition.setName("string"); + dataTypeDefinitionHashMap.put("string", dataTypeDefinition); + + //when(userValidations.validateUserExists(user.getUserId(), false)).thenReturn(user); + when(toscaOperationFacade.getToscaElement(containerComponentID, JsonParseFlagEnum.ParseAll)).thenReturn(Either.left(component)); + when(graphLockOperation.lockComponent(containerComponentID, NodeTypeEnum.ResourceInstance)).thenReturn(StorageOperationStatus.OK); + //when(dataTypeCache.getAll()).thenReturn(Either.left(types)); + //when (janusGraphDao.commit()).thenReturn(JanusGraphOperationStatus.OK); + when(graphLockOperation.unlockComponent(containerComponentID, NodeTypeEnum.ResourceInstance)).thenReturn(StorageOperationStatus.OK); + + try { + componentInstanceBusinessLogic.createOrUpdatePropertiesValues( + ComponentTypeEnum.RESOURCE_INSTANCE, containerComponentID, resourceInstanceId, properties, "userId"); + } catch (ComponentException e) { + assertThat(e.getActionStatus()).isEqualTo(ActionStatus.PROPERTY_NOT_FOUND); + } + + } + + + @Test + public void testCreateOrUpdatePropertiesValuesValidationFailure(){ + String containerComponentID="containerId"; + String resourceInstanceId = "resourceId"; + String componentInstanceID = "componentInstance"; + List<ComponentInstanceProperty> properties = new ArrayList<>(); + ComponentInstanceProperty property = new ComponentInstanceProperty(); + property.setName("property"); + property.setValue("newVal"); + property.setType("string"); + properties.add(property); + + List<ComponentInstanceProperty> origProperties = new ArrayList<>(); + ComponentInstanceProperty origProperty = new ComponentInstanceProperty(); + origProperty.setName("property"); + origProperty.setValue("value"); + origProperty.setType("string"); + origProperties.add(origProperty); + + Map<String, DataTypeDefinition> types = new HashMap<>(); + DataTypeDefinition dataTypeDef = new DataTypeDefinition(); + types.put("string", dataTypeDef); + + Component component = new Service(); + component.setLastUpdaterUserId("userId"); + component.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); + Map<String, List<ComponentInstanceProperty>> componentInstanceProps = new HashMap<>(); + componentInstanceProps.put("resourceId", origProperties); + component.setComponentInstancesProperties(componentInstanceProps); + ComponentInstance ci = createComponentInstance("ci1"); + ci.setUniqueId("resourceId"); + component.setComponentInstances(Arrays.asList(ci, createComponentInstance("ci2"), + createComponentInstance(componentInstanceID))); + HashMap<String, DataTypeDefinition> dataTypeDefinitionHashMap = new HashMap<>(); + DataTypeDefinition dataTypeDefinition = new DataTypeDefinition(); + dataTypeDefinition.setName("string"); + dataTypeDefinitionHashMap.put("string", dataTypeDefinition); + + //when(userValidations.validateUserExists(user.getUserId(), false)).thenReturn(user); + when(toscaOperationFacade.getToscaElement(containerComponentID, JsonParseFlagEnum.ParseAll)).thenReturn(Either.left(component)); + when(graphLockOperation.lockComponent(containerComponentID, NodeTypeEnum.ResourceInstance)).thenReturn(StorageOperationStatus.OK); + when(dataTypeCache.getAll()).thenReturn(Either.left(types)); + when(propertyOperation.validateAndUpdatePropertyValue(property.getType(), "newVal", true, null, types)) + .thenReturn(Either.right(false)); + when(componentsUtils.convertFromStorageResponse(StorageOperationStatus.BAD_REQUEST)).thenReturn(ActionStatus.INVALID_CONTENT); + + try{ + componentInstanceBusinessLogic.createOrUpdatePropertiesValues( + ComponentTypeEnum.RESOURCE_INSTANCE, containerComponentID, resourceInstanceId, properties, "userId"); + } catch(ComponentException e){ + assertThat(e.getActionStatus()).isEqualTo(ActionStatus.INVALID_CONTENT); + return; + } + fail(); + } + + @Test + public void testCreateOrUpdatePropertiesValuesMissingFieldFailure(){ + String containerComponentID="containerId"; + String resourceInstanceId = "resourceId"; + String componentInstanceID = "componentInstance"; + List<ComponentInstanceProperty> properties = new ArrayList<>(); + ComponentInstanceProperty property = new ComponentInstanceProperty(); + property.setValue("newVal"); + property.setType("string"); + properties.add(property); + + List<ComponentInstanceProperty> origProperties = new ArrayList<>(); + ComponentInstanceProperty origProperty = new ComponentInstanceProperty(); + origProperty.setName("property"); + origProperty.setValue("value"); + origProperty.setType("string"); + origProperties.add(origProperty); + + Component component = new Service(); + component.setLastUpdaterUserId("userId"); + component.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); + Map<String, List<ComponentInstanceProperty>> componentInstanceProps = new HashMap<>(); + componentInstanceProps.put("resourceId", origProperties); + component.setComponentInstancesProperties(componentInstanceProps); + ComponentInstance ci = createComponentInstance("ci1"); + ci.setUniqueId("resourceId"); + component.setComponentInstances(Arrays.asList(ci, createComponentInstance("ci2"), + createComponentInstance(componentInstanceID))); + + HashMap<String, DataTypeDefinition> dataTypeDefinitionHashMap = new HashMap<>(); + DataTypeDefinition dataTypeDefinition = new DataTypeDefinition(); + dataTypeDefinition.setName("string"); + dataTypeDefinitionHashMap.put("string", dataTypeDefinition); + + //when(userValidations.validateUserExists(user.getUserId(), false)).thenReturn(user); + when(toscaOperationFacade.getToscaElement(containerComponentID, JsonParseFlagEnum.ParseAll)).thenReturn(Either.left(component)); + when(graphLockOperation.lockComponent(containerComponentID, NodeTypeEnum.ResourceInstance)).thenReturn(StorageOperationStatus.OK); + + try{ + componentInstanceBusinessLogic.createOrUpdatePropertiesValues( + ComponentTypeEnum.RESOURCE_INSTANCE, containerComponentID, resourceInstanceId, properties, "userId"); + } catch(ComponentException e){ + assertThat(e.getActionStatus()).isEqualTo(ActionStatus.MISSING_PROPERTY_NAME); + } + } @Test public void testDeleteForwardingPathsWhenComponentinstanceDeleted() { @@ -251,9 +479,8 @@ public class ComponentInstanceBusinessLogicTest { String containerComponentID = "Service-comp"; String componentInstanceID = "NodeA1"; Service component = new Service(); - component.setComponentInstances( - Arrays.asList(createComponentIstance("NodeA2"), createComponentIstance("NodeB2"), - createComponentIstance(componentInstanceID))); + component.setComponentInstances(Arrays.asList(createComponentInstance("NodeA2"), createComponentInstance("NodeB2"), + createComponentInstance(componentInstanceID))); component.addForwardingPath(createPath("path1", componentInstanceID, "NodeB1", "1")); component.addForwardingPath(createPath("Path2", "NodeA2", "NodeB2", "2")); @@ -264,13 +491,82 @@ public class ComponentInstanceBusinessLogicTest { .thenReturn(Either.left(new HashSet<>())); final ComponentInstance ci = new ComponentInstance(); ci.setName(componentInstanceID); - Either<ComponentInstance, ResponseFormat> responseFormatEither = componentInstanceBusinessLogic.deleteForwardingPathsRelatedTobeDeletedComponentInstance( - containerComponentID, containerComponentType, Either.left(ci)); - assertThat(responseFormatEither.isLeft()).isEqualTo(true); + ComponentInstance responseFormatEither = componentInstanceBusinessLogic.deleteForwardingPathsRelatedTobeDeletedComponentInstance( + containerComponentID, containerComponentType, ci); + assertThat(!responseFormatEither.isEmpty()).isEqualTo(true); } - private ComponentInstance createComponentIstance(String path1) { + @Test + public void testAddComponentInstanceDeploymentArtifacts() { + + Component containerComponent = new Service(); + ComponentInstance componentInstance = new ComponentInstance(); + componentInstance.setUniqueId(COMPONENT_INSTANCE_ID); + Component originComponent = fillOriginComponent(new Resource()); + + Map<String, ArtifactDefinition> artifacts = new HashMap<>(); + ArtifactDefinition deploymentArtifact1 = getArtifact("deploymentArtifact1", ArtifactTypeEnum.HEAT.getType()); + artifacts.put(deploymentArtifact1.getArtifactLabel(), deploymentArtifact1); + ArtifactDefinition deploymentArtifact2 = getArtifact("deploymentArtifact2", ArtifactTypeEnum.HEAT_ENV.getType()); + artifacts.put(deploymentArtifact2.getArtifactLabel(), deploymentArtifact2); + ArtifactDefinition deploymentArtifact3 = getArtifact("deploymentArtifact3", ArtifactTypeEnum.HEAT_VOL.getType()); + artifacts.put(deploymentArtifact3.getArtifactLabel(), deploymentArtifact3); + ArtifactDefinition heatEnvPlaceHolder = getArtifact("deploymentArtifact4", ArtifactTypeEnum.HEAT_ENV.getType()); + ArtifactDefinition heatEnvPlaceHolder2 = getArtifact("deploymentArtifact5", ArtifactTypeEnum.HEAT_ENV.getType()); + + Either<Map<String, ArtifactDefinition>, StorageOperationStatus> getResourceDeploymentArtifacts = Either.left(artifacts); + + Map<String, ArtifactDefinition> finalDeploymentArtifacts = new HashMap<>(); + finalDeploymentArtifacts.put(deploymentArtifact1.getArtifactLabel(), deploymentArtifact1); + finalDeploymentArtifacts.put(deploymentArtifact3.getArtifactLabel(), deploymentArtifact3); + finalDeploymentArtifacts.put(heatEnvPlaceHolder.getArtifactLabel(), heatEnvPlaceHolder); + finalDeploymentArtifacts.put(heatEnvPlaceHolder2.getArtifactLabel(), heatEnvPlaceHolder2); + + + when(artifactsBusinessLogic.getArtifacts(componentInstance.getComponentUid(), NodeTypeEnum.Resource, + ArtifactGroupTypeEnum.DEPLOYMENT, null)).thenReturn(getResourceDeploymentArtifacts); + when(artifactsBusinessLogic.createHeatEnvPlaceHolder(new ArrayList<>(), + deploymentArtifact1, ArtifactsBusinessLogic.HEAT_ENV_NAME, componentInstance.getUniqueId(), + NodeTypeEnum.ResourceInstance, componentInstance.getName(), user, containerComponent, + null)).thenReturn(heatEnvPlaceHolder); + when(artifactsBusinessLogic.createHeatEnvPlaceHolder(new ArrayList<>(), + deploymentArtifact3, ArtifactsBusinessLogic.HEAT_ENV_NAME, componentInstance.getUniqueId(), + NodeTypeEnum.ResourceInstance, componentInstance.getName(), user, containerComponent, + null)).thenReturn(heatEnvPlaceHolder2); + + + when(toscaOperationFacade.addDeploymentArtifactsToInstance(containerComponent.getUniqueId(), componentInstance, finalDeploymentArtifacts)).thenReturn(StorageOperationStatus.OK); + when(toscaOperationFacade.addGroupInstancesToComponentInstance(containerComponent, componentInstance, null, new HashMap<>())).thenReturn(StorageOperationStatus.OK); + when(toscaOperationFacade.addInformationalArtifactsToInstance(containerComponent.getUniqueId(), componentInstance, null)).thenReturn(StorageOperationStatus.OK); + + + ActionStatus status = componentInstanceBusinessLogic.addComponentInstanceArtifacts(containerComponent, + componentInstance, originComponent, user, null); + + assertThat(status).isEqualTo(ActionStatus.OK); + + } + + private Component fillOriginComponent(Resource originComponent) { + originComponent.setUniqueId("resourceId"); + originComponent.setUniqueId(ORIGIN_COMPONENT_ID); + originComponent.setComponentInstances(Lists.newArrayList(toInstance,fromInstance)); + originComponent.setComponentType(ComponentTypeEnum.RESOURCE); + originComponent.setState(LifecycleStateEnum.CERTIFIED); + return originComponent; + } + + private ArtifactDefinition getArtifact(String artifactLabel, String artifactType) { + ArtifactDefinition artifactDefinition = new ArtifactDefinition(); + artifactDefinition.setArtifactLabel(artifactLabel); + artifactDefinition.setArtifactGroupType(ArtifactGroupTypeEnum.DEPLOYMENT); + artifactDefinition.setEsId("esId" + artifactLabel); + artifactDefinition.setArtifactType(artifactType); + return artifactDefinition; + } + + private ComponentInstance createComponentInstance(String path1) { ComponentInstance componentInstance = new ComponentInstance(); componentInstance.setName(path1); return componentInstance; @@ -299,7 +595,7 @@ public class ComponentInstanceBusinessLogicTest { forwardingPath.setDestinationPortNumber("DestinationPortNumber"); forwardingPath.setUniqueId("FP-ID-1"); ListDataDefinition<ForwardingPathElementDataDefinition> forwardingPathElementListDataDefinition = - new ListDataDefinition<>(); + new ListDataDefinition<>(); forwardingPathElementListDataDefinition .add(new ForwardingPathElementDataDefinition(componentInstanceID, "nodeB", "nodeA_FORWARDER_CAPABILITY", "nodeBcpType", "nodeDcpName", "nodeBcpName")); @@ -309,8 +605,8 @@ public class ComponentInstanceBusinessLogicTest { return forwardingPaths; } - @SuppressWarnings("unchecked") - private void getServiceRelationByIdSuccess(Component component) { + @SuppressWarnings("unchecked") + private void getServiceRelationByIdSuccess(Component component){ Either<Component, StorageOperationStatus> getComponentRes = Either.left(component); when(toscaOperationFacade.getToscaElement(eq(COMPONENT_ID), any(ComponentParametersView.class))) .thenReturn(getComponentRes); @@ -322,8 +618,7 @@ public class ComponentInstanceBusinessLogicTest { } private void getServiceRelationByIdUserValidationFailure(Component component) { - when(userValidations.validateUserExists(eq(USER_ID), eq("get relation by Id"), eq(false))) - .thenThrow(new ByActionStatusComponentException(ActionStatus.USER_NOT_FOUND)); + when(userValidations.validateUserExists(eq(USER_ID))).thenThrow(new ByActionStatusComponentException(ActionStatus.USER_NOT_FOUND)); try { componentInstanceBusinessLogic .getRelationById(COMPONENT_ID, RELATION_ID, USER_ID, component.getComponentType()); @@ -346,7 +641,9 @@ public class ComponentInstanceBusinessLogicTest { } private void stubMethods() { - when(userValidations.validateUserExists(eq(USER_ID), eq("get relation by Id"), eq(false))).thenReturn(user); + when(userValidations.validateUserExists(eq(USER_ID))).thenReturn(user); + when(componentsUtils.convertFromStorageResponse(eq(StorageOperationStatus.GENERAL_ERROR),any(ComponentTypeEnum.class))) + .thenReturn(ActionStatus.GENERAL_ERROR); } private void createComponents() { @@ -461,20 +758,7 @@ public class ComponentInstanceBusinessLogicTest { } - @Test - public void testDeleteForwardingPathsRelatedTobeDeletedComponentInstance() { - ComponentInstanceBusinessLogic testSubject; - String containerComponentId = ""; - String componentInstanceId = ""; - ComponentTypeEnum containerComponentType = ComponentTypeEnum.RESOURCE; - Either<ComponentInstance, ResponseFormat> resultOp = null; - Either<ComponentInstance, ResponseFormat> result; - // default test - testSubject = createTestSubject(); - result = testSubject.deleteForwardingPathsRelatedTobeDeletedComponentInstance(containerComponentId, - containerComponentType, resultOp); - } @Test @@ -529,136 +813,8 @@ public class ComponentInstanceBusinessLogicTest { result = testSubject.getRelationById(componentId, relationId, userId, componentTypeEnum); } - - @Test - public void testCreateComponentInstance_1() { - ComponentInstanceBusinessLogic testSubject; - String containerComponentParam = ""; - String containerComponentId = ""; - String userId = user.getUserId(); - ComponentInstance resourceInstance = null; - boolean inTransaction = false; - boolean needLock = false; - Either<ComponentInstance, ResponseFormat> result; - - // default test - testSubject = createTestSubject(); - result = testSubject.createComponentInstance(containerComponentParam, containerComponentId, userId, - resourceInstance, inTransaction, needLock); - } - - - @Test - public void testCreateAndAssociateRIToRI() { - ComponentInstanceBusinessLogic testSubject; - - String containerComponentParam = ""; - String containerComponentId = ""; - String userId = user.getUserId(); - CreateAndAssotiateInfo createAndAssotiateInfo = new CreateAndAssotiateInfo(null, null); - Either<CreateAndAssotiateInfo, ResponseFormat> result; - - // default test - testSubject = createTestSubject(); - result = testSubject.createAndAssociateRIToRI(containerComponentParam, containerComponentId, userId, - createAndAssotiateInfo); - } - - @Test - public void testGetOriginComponentFromComponentInstance_1() { - ComponentInstanceBusinessLogic testSubject; - createResource(); - String componentInstanceName = ""; - String origComponetId = resource.getUniqueId(); - Either<Component, StorageOperationStatus> oldResourceRes = Either.left(resource); - when(toscaOperationFacade.getToscaFullElement(resource.getUniqueId())).thenReturn(oldResourceRes); - Either<Component, ResponseFormat> result; - - // default test - testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "getOriginComponentFromComponentInstance", - new Object[] {componentInstanceName, origComponetId}); - } - - - @Test - public void testCreateComponentInstanceOnGraph() { - ComponentInstanceBusinessLogic testSubject; - createResource(); - createInstances(); - Either<ComponentInstance, ResponseFormat> result; - - Either<ImmutablePair<Component, String>, StorageOperationStatus> result2 = - Either.right(StorageOperationStatus.ARTIFACT_NOT_FOUND); - when(toscaOperationFacade.addComponentInstanceToTopologyTemplate(resource, resource, toInstance, false, user)) - .thenReturn(result2); - - // default test - testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "createComponentInstanceOnGraph", - new Object[] {resource, resource, toInstance, user}); - } - - @Ignore("test failing skipping for now") - @Test - public void testCreateComponentInstanceOnGraph2() { - ComponentInstanceBusinessLogic testSubject; - createResource(); - resource.setName("name"); - createInstances(); - Either<ComponentInstance, ResponseFormat> result; - ImmutablePair<Component, String> pair = new ImmutablePair<>(resource, ""); - - - Either<ImmutablePair<Component, String>, StorageOperationStatus> result2 = Either.left(pair); - when(toscaOperationFacade.addComponentInstanceToTopologyTemplate(resource, resource, toInstance, false, user)) - .thenReturn(result2); - - // default test - testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "createComponentInstanceOnGraph", - new Object[] {resource, resource, toInstance, user}); - } - - @Test - public void testUpdateComponentInstanceMetadata() { - ComponentInstanceBusinessLogic testSubject; - String containerComponentParam = ""; - String containerComponentId = ""; - String componentInstanceId = ""; - String userId = user.getUserId(); - createInstances(); - Either<ComponentInstance, ResponseFormat> result; - - // default test - testSubject = createTestSubject(); - result = testSubject.updateComponentInstanceMetadata(containerComponentParam, containerComponentId, - componentInstanceId, userId, toInstance); - } - - - @Test - public void testUpdateComponentInstanceMetadata_1() { - ComponentInstanceBusinessLogic testSubject; - String containerComponentParam = ""; - String containerComponentId = ""; - String componentInstanceId = ""; - String userId = user.getUserId(); - createInstances(); - boolean inTransaction = false; - boolean needLock = false; - boolean createNewTransaction = false; - Either<ComponentInstance, ResponseFormat> result; - - // default test - testSubject = createTestSubject(); - result = testSubject.updateComponentInstanceMetadata(containerComponentParam, containerComponentId, - componentInstanceId, userId, toInstance, inTransaction, needLock, createNewTransaction); - } - - - @Test - public void testValidateParent() { + @Test + public void testValidateParent() { ComponentInstanceBusinessLogic testSubject; createResource(); String nodeTemplateId = ""; @@ -709,63 +865,6 @@ public class ComponentInstanceBusinessLogicTest { .invoke(testSubject, "updateComponentInstanceMetadata", new Object[] {toInstance, toInstance}); } - - @Test - public void testDeleteComponentInstance() throws Exception { - ComponentInstanceBusinessLogic testSubject; - String containerComponentParam = ""; - String containerComponentId = ""; - String componentInstanceId = ""; - String userId = user.getUserId(); - Either<ComponentInstance, ResponseFormat> result; - - // default test - testSubject = createTestSubject(); - JanusGraphDao mock = Mockito.mock(JanusGraphDao.class); - testSubject.setJanusGraphDao(mock); - result = testSubject.deleteComponentInstance(containerComponentParam, containerComponentId, componentInstanceId, - userId); - } - - @Test - public void testDeleteForwardingPaths() { - ComponentInstanceBusinessLogic testSubject; - createService(); - String serviceId = service.getUniqueId(); - List<String> pathIdsToDelete = new ArrayList<>(); - Either<Set<String>, ResponseFormat> result; - - // Either<Service, StorageOperationStatus> storageStatus = toscaOperationFacade.getToscaElement(serviceId); - when(toscaOperationFacade.getToscaElement(serviceId)) - .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST)); - - // default test - testSubject = createTestSubject(); - result = - Deencapsulation.invoke(testSubject, "deleteForwardingPaths", new Object[] {serviceId, pathIdsToDelete}); - } - - - @Test - public void testAssociateRIToRIOnGraph() throws Exception { - ComponentInstanceBusinessLogic testSubject; - createResource(); - RequirementCapabilityRelDef requirementDef = new RequirementCapabilityRelDef(); - ComponentTypeEnum componentTypeEnum = ComponentTypeEnum.RESOURCE; - boolean inTransaction = false; - Either<RequirementCapabilityRelDef, ResponseFormat> result; - - - Either<RequirementCapabilityRelDef, StorageOperationStatus> getResourceResult = Either.left(requirementDef); - when(toscaOperationFacade.associateResourceInstances(resource.getUniqueId(), requirementDef)) - .thenReturn(getResourceResult); - - // default test - testSubject = createTestSubject(); - result = testSubject.associateRIToRIOnGraph(resource, requirementDef, componentTypeEnum, inTransaction); - } - - @Test public void testFindRelation() throws Exception { ComponentInstanceBusinessLogic testSubject; @@ -781,37 +880,6 @@ public class ComponentInstanceBusinessLogicTest { @Test - public void testIsNetworkRoleServiceProperty() throws Exception { - ComponentInstanceBusinessLogic testSubject; - ComponentInstanceProperty property = new ComponentInstanceProperty(); - ComponentTypeEnum componentTypeEnum = ComponentTypeEnum.RESOURCE; - boolean result; - - // default test - testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "isNetworkRoleServiceProperty", - new Object[] {property, componentTypeEnum}); - } - - - @Test - public void testConcatServiceNameToVLINetworkRolePropertiesValues() throws Exception { - ComponentInstanceBusinessLogic testSubject; - ToscaOperationFacade toscaOperationFacade = new ToscaOperationFacade(); - ComponentTypeEnum componentTypeEnum = ComponentTypeEnum.RESOURCE; - String componentId = ""; - String resourceInstanceId = ""; - List<ComponentInstanceProperty> properties = new ArrayList<>(); - StorageOperationStatus result; - - // default test - testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "concatServiceNameToVLINetworkRolePropertiesValues", - new Object[] {toscaOperationFacade, componentTypeEnum, componentId, resourceInstanceId, properties}); - } - - - @Test public void testCreateOrUpdatePropertiesValues() throws Exception { ComponentInstanceBusinessLogic testSubject; ComponentTypeEnum componentTypeEnum = ComponentTypeEnum.RESOURCE; @@ -930,37 +998,6 @@ public class ComponentInstanceBusinessLogicTest { @Test - public void testCreateOrUpdateInputValue() throws Exception { - ComponentInstanceBusinessLogic testSubject; - createResource(); - ComponentTypeEnum componentTypeEnum = ComponentTypeEnum.RESOURCE; - String componentId = resource.getUniqueId(); - String resourceInstanceId = resource.getUniqueId(); - ComponentInstanceInput inputProperty = new ComponentInstanceInput(); - String userId = user.getUserId(); - Either<ComponentInstanceInput, ResponseFormat> result; - - - Either<Component, StorageOperationStatus> getResourceResult = Either.left(resource); - when(toscaOperationFacade.getToscaElement(resource.getUniqueId(), JsonParseFlagEnum.ParseMetadata)) - .thenReturn(getResourceResult); - - // test 1 - testSubject = createTestSubject(); - result = testSubject.createOrUpdateInputValue(componentTypeEnum, componentId, resourceInstanceId, inputProperty, - userId); - - componentTypeEnum = null; - result = testSubject.createOrUpdateInputValue(componentTypeEnum, componentId, resourceInstanceId, inputProperty, - userId); - - // when(toscaOperationFacade.getToscaElement(resource.getUniqueId(), JsonParseFlagEnum.ParseMetadata)).thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST)); - result = testSubject.createOrUpdateInputValue(componentTypeEnum, componentId, resourceInstanceId, inputProperty, - userId); - } - - - @Test public void testDeletePropertyValue() throws Exception { ComponentInstanceBusinessLogic testSubject; ComponentTypeEnum componentTypeEnum = ComponentTypeEnum.RESOURCE; @@ -987,24 +1024,6 @@ public class ComponentInstanceBusinessLogicTest { userId); } - - @Test - public void testGetAndValidateOriginComponentOfComponentInstance() throws Exception { - ComponentInstanceBusinessLogic testSubject; - ComponentTypeEnum containerComponentType = ComponentTypeEnum.RESOURCE; - createResource(); - createInstances(); - Either<Component, ResponseFormat> result; - - when(toscaOperationFacade.getToscaFullElement(toInstance.getComponentUid())).thenReturn(Either.left(resource)); - - // default test - testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "getAndValidateOriginComponentOfComponentInstance", - new Object[] {containerComponentType, toInstance}); - } - - @Test public void testGetComponentParametersViewForForwardingPath() throws Exception { ComponentInstanceBusinessLogic testSubject; @@ -1015,45 +1034,6 @@ public class ComponentInstanceBusinessLogicTest { result = Deencapsulation.invoke(testSubject, "getComponentParametersViewForForwardingPath"); } - - @Test - public void testChangeComponentInstanceVersion() throws Exception { - ComponentInstanceBusinessLogic testSubject; - String containerComponentParam = ""; - String containerComponentId = ""; - String componentInstanceId = ""; - String userId = user.getUserId(); - createInstances(); - ComponentInstance newComponentInstance = toInstance; - Either<ComponentInstance, ResponseFormat> result; - - // default test - testSubject = createTestSubject(); - result = testSubject.changeComponentInstanceVersion(containerComponentParam, containerComponentId, - componentInstanceId, userId, newComponentInstance); - newComponentInstance = null; - testSubject = createTestSubject(); - result = testSubject.changeComponentInstanceVersion(containerComponentParam, containerComponentId, - componentInstanceId, userId, newComponentInstance); - - } - - @Ignore("test failing skipping for now") - @Test - public void testValidateInstanceNameUniquenessUponUpdate() throws Exception { - ComponentInstanceBusinessLogic testSubject; - createResource(); - createInstances(); - String newInstanceName = toInstance.getName(); - Boolean result; - - // default test - testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "validateInstanceNameUniquenessUponUpdate", - new Object[] {resource, toInstance, newInstanceName}); - } - - @Test public void testGetResourceInstanceById() throws Exception { ComponentInstanceBusinessLogic testSubject; @@ -1066,108 +1046,6 @@ public class ComponentInstanceBusinessLogicTest { result = Deencapsulation.invoke(testSubject, "getResourceInstanceById", new Object[] {resource, instanceId}); } - @Ignore("test failing skipping for now") - @Test - public void testBuildComponentInstance() throws Exception { - ComponentInstanceBusinessLogic testSubject; - createInstances(); - ComponentInstance origInstanceForUpdate = null; - ComponentInstance result; - - // default test - testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "buildComponentInstance", new Object[] {toInstance, toInstance}); - } - - - @Test - public void testFindCapabilityOfInstance() throws Exception { - ComponentInstanceBusinessLogic testSubject; - String componentId = ""; - String instanceId = ""; - String capabilityType = ""; - String capabilityName = ""; - String ownerId = ""; - Map<String, List<CapabilityDefinition>> instanceCapabilities = new HashMap<>(); - Either<List<ComponentInstanceProperty>, ResponseFormat> result; - - // default test - testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "findCapabilityOfInstance", - new Object[] {componentId, instanceId, capabilityType, capabilityName, ownerId, instanceCapabilities}); - } - - - @Test - public void testFetchComponentInstanceCapabilityProperties() throws Exception { - ComponentInstanceBusinessLogic testSubject; - String componentId = ""; - String instanceId = ""; - String capabilityType = ""; - String capabilityName = ""; - String ownerId = ""; - Either<List<ComponentInstanceProperty>, ResponseFormat> result; - - // default test - testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "fetchComponentInstanceCapabilityProperties", - new Object[] {componentId, instanceId, capabilityType, capabilityName, ownerId}); - } - - - @Test - public void testUpdateCapabilityPropertyOnContainerComponent_1() throws Exception { - ComponentInstanceBusinessLogic testSubject; - ComponentInstanceProperty property = new ComponentInstanceProperty(); - String newValue = ""; - createResource(); - createInstances(); - String capabilityType = ""; - String capabilityName = ""; - String ownerId = ""; - ResponseFormat result; - - // default test - testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "updateCapabilityPropertyOnContainerComponent", - new Object[] {property, newValue, resource, toInstance, capabilityType, capabilityName, ownerId}); - } - - - @Test - public void testUpdateInstanceCapabilityProperties() throws Exception { - ComponentInstanceBusinessLogic testSubject; - ComponentTypeEnum componentTypeEnum = ComponentTypeEnum.RESOURCE; - createResource(); - String containerComponentId = resource.getUniqueId(); - String componentInstanceUniqueId = ""; - String capabilityType = ""; - String capabilityName = ""; - String ownerId = ""; - List<ComponentInstanceProperty> properties = new ArrayList<>(); - String userId = user.getUserId(); - Either<List<ComponentInstanceProperty>, ResponseFormat> result; - - - when(toscaOperationFacade.getToscaFullElement(containerComponentId)).thenReturn(Either.left(resource)); - - - // test 1 - testSubject = createTestSubject(); - result = testSubject.updateInstanceCapabilityProperties(componentTypeEnum, containerComponentId, - componentInstanceUniqueId, capabilityType, capabilityName, ownerId, properties, userId); - when(toscaOperationFacade.getToscaFullElement(containerComponentId)) - .thenReturn(Either.right(StorageOperationStatus.ARTIFACT_NOT_FOUND)); - result = testSubject.updateInstanceCapabilityProperties(componentTypeEnum, containerComponentId, - componentInstanceUniqueId, capabilityType, capabilityName, ownerId, properties, userId); - componentTypeEnum = null; - result = testSubject.updateInstanceCapabilityProperties(componentTypeEnum, containerComponentId, - componentInstanceUniqueId, capabilityType, capabilityName, ownerId, properties, userId); - - - } - - @Test public void testUpdateInstanceCapabilityProperties_1() throws Exception { ComponentInstanceBusinessLogic testSubject; @@ -1241,15 +1119,9 @@ public class ComponentInstanceBusinessLogicTest { when(graphLockOperation.lockComponent(Mockito.anyString(), eq(NodeTypeEnum.Service))) .thenReturn(StorageOperationStatus.OK); Either<Component, StorageOperationStatus> getComponentRes = Either.left(resource); - when(toscaOperationFacade.getToscaFullElement(inputComponentInstance.getComponentUid())) - .thenReturn(getComponentRes); - result = componentInstanceBusinessLogic - .copyComponentInstance(inputComponentInstance, containerComponentId, componentInstanceId, - USER_ID); - + .copyComponentInstance(inputComponentInstance, containerComponentId, componentInstanceId, USER_ID); service.setLastUpdaterUserId(oldServiceLastUpdatedUserId); - assertThat(result.isRight()); } @@ -1273,21 +1145,11 @@ public class ComponentInstanceBusinessLogicTest { when(graphLockOperation.lockComponent(Mockito.anyString(), eq(NodeTypeEnum.Service))) .thenReturn(StorageOperationStatus.OK); Either<Component, StorageOperationStatus> getComponentRes = Either.left(resource); - when(toscaOperationFacade.getToscaFullElement(inputComponentInstance.getComponentUid())) - .thenReturn(getComponentRes); ImmutablePair<Component, String> pair = new ImmutablePair<>(resource, TO_INSTANCE_ID); Either<ImmutablePair<Component, String>, StorageOperationStatus> result2 = Either.left(pair); - when(toscaOperationFacade - .addComponentInstanceToTopologyTemplate(eq(service), eq(resource), eq(inputComponentInstance), - eq(false), isNull(User.class))).thenReturn(result2); - Either<Map<String, ArtifactDefinition>, StorageOperationStatus> getResourceDeploymentArtifacts = - Either.left(new HashMap<String, ArtifactDefinition>()); - when(artifactBusinessLogic.getArtifacts(eq(inputComponentInstance.getComponentUid()), eq(NodeTypeEnum.Resource), - eq(ArtifactGroupTypeEnum.DEPLOYMENT), isNull(String.class))).thenReturn(getResourceDeploymentArtifacts); + Either<Map<String, ArtifactDefinition>, StorageOperationStatus> getResourceDeploymentArtifacts = Either + .left(new HashMap<String, ArtifactDefinition>()); StorageOperationStatus artStatus = StorageOperationStatus.OK; - when(toscaOperationFacade - .addInformationalArtifactsToInstance(eq(resource.getUniqueId()), eq(inputComponentInstance), - isNull(Map.class))).thenReturn(artStatus); result = componentInstanceBusinessLogic .copyComponentInstance(inputComponentInstance, containerComponentId, componentInstanceId, @@ -1403,17 +1265,26 @@ public class ComponentInstanceBusinessLogicTest { List<String> deleteErrorIds = new ArrayList<>(); deleteErrorIds.add(componentInstanceId); deleteErrorMap.put("deleteFailedIds", deleteErrorIds); + Either<Component, StorageOperationStatus> cont = Either.left(service); + when(componentsUtils.convertFromStorageResponse(eq(StorageOperationStatus.NOT_FOUND),eq(null))) + .thenReturn(ActionStatus.GENERAL_ERROR); + when(toscaOperationFacade.getToscaElement(any(String.class), any(ComponentParametersView.class))) + .thenReturn(cont); + try{ result = componentInstanceBusinessLogic - .batchDeleteComponentInstance(containerComponentParam, containerComponentId, - componentInstanceIdList, userId); + .batchDeleteComponentInstance(containerComponentParam, containerComponentId, componentInstanceIdList, + userId); + }catch (ComponentException e){ + assertEquals(e.getActionStatus().toString(), StorageOperationStatus.GENERAL_ERROR.toString()); + } - assertEquals(deleteErrorMap, result); +// assertEquals(deleteErrorMap, result); } @Test public void testBatchDeleteComponentInstanceFailureCompIds() { - Map<String, List<String>> result; + Map<String, List<String>> result = new HashMap<>(); String containerComponentParam = ComponentTypeEnum.SERVICE_PARAM_NAME; String containerComponentId = "containerComponentId"; String componentInstanceId = "componentInstanceId"; @@ -1429,11 +1300,14 @@ public class ComponentInstanceBusinessLogicTest { when(toscaOperationFacade.getToscaElement(eq(containerComponentId), any(ComponentParametersView.class))) .thenReturn(err); - result = componentInstanceBusinessLogic - .batchDeleteComponentInstance(containerComponentParam, containerComponentId, - componentInstanceIdList, userId); - - assertEquals(deleteErrorMap, result); + try { + result = componentInstanceBusinessLogic + .batchDeleteComponentInstance(containerComponentParam, containerComponentId, componentInstanceIdList, + userId); + }catch (ComponentException e){ + assertEquals(e.getActionStatus().toString(), StorageOperationStatus.GENERAL_ERROR.toString()); + } +// assertEquals(deleteErrorMap, result); } @Test @@ -1508,15 +1382,21 @@ public class ComponentInstanceBusinessLogicTest { .thenReturn(StorageOperationStatus.OK); Either<RequirementCapabilityRelDef, StorageOperationStatus> resultEither; resultEither = Either.right(StorageOperationStatus.OK); + when(componentsUtils.convertFromStorageResponseForResourceInstance(eq(StorageOperationStatus.OK),eq(true))) + .thenReturn(ActionStatus.GENERAL_ERROR); when(toscaOperationFacade.dissociateResourceInstances(componentId, ref)).thenReturn(resultEither); + try{ result = componentInstanceBusinessLogic .batchDissociateRIFromRI(componentId, userId, requirementDefList, componentTypeEnum); + }catch (ComponentException e){ + assertEquals(e.getActionStatus().toString(), StorageOperationStatus.GENERAL_ERROR.toString()); + } service.setLastUpdaterUserId(oldLastUpdatedUserId); service.setLifecycleState(oldLifeCycleState); - assertEquals(new ArrayList<>(), result); +// assertEquals(new ArrayList<>(), result); } @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ComponentsUtilsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ComponentsUtilsTest.java index 15166fc590..e11c40dfb9 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ComponentsUtilsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ComponentsUtilsTest.java @@ -36,12 +36,23 @@ import org.openecomp.sdc.be.auditing.impl.externalapi.AuditCreateResourceExterna import org.openecomp.sdc.be.auditing.impl.externalapi.AuditCreateServiceExternalApiEventFactory; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.model.*; -import org.openecomp.sdc.be.resources.data.auditing.*; +import org.openecomp.sdc.be.model.ArtifactDefinition; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.LifecycleStateEnum; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.Service; +import org.openecomp.sdc.be.model.User; +import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; +import org.openecomp.sdc.be.resources.data.auditing.DistributionDownloadEvent; +import org.openecomp.sdc.be.resources.data.auditing.EcompOperationalEnvironmentEvent; +import org.openecomp.sdc.be.resources.data.auditing.ExternalApiEvent; +import org.openecomp.sdc.be.resources.data.auditing.ResourceAdminEvent; +import org.openecomp.sdc.be.resources.data.auditing.UserAdminEvent; import org.openecomp.sdc.be.resources.data.auditing.model.DistributionData; import org.openecomp.sdc.be.resources.data.auditing.model.ResourceCommonInfo; import org.openecomp.sdc.be.resources.data.auditing.model.ResourceVersionInfo; import org.openecomp.sdc.common.api.Constants; +import org.openecomp.sdc.common.log.wrappers.LoggerSdcAudit; import org.openecomp.sdc.common.util.ThreadLocalsHolder; import org.openecomp.sdc.exception.ResponseFormat; @@ -50,7 +61,42 @@ import javax.servlet.http.HttpServletRequest; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.*; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.ARTIFACT_DATA; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.ARTIFACT_UUID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.COMMENT; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.CURRENT_STATE; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.CURRENT_VERSION; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DCURR_STATUS; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DESCRIPTION; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DESC_ERROR; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DIST_CONSUMER_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DIST_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DIST_RESOURCE_URL; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.DPREV_STATUS; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.INVARIANT_UUID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.MODIFIER_FIRST_NAME; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.MODIFIER_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.MODIFIER_LAST_NAME; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.MODIFIER_UID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.OP_ENV_ACTION; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.OP_ENV_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.OP_ENV_NAME; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.OP_ENV_TYPE; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.PREV_RESOURCE_STATE; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.PREV_RESOURCE_VERSION; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.REQUEST_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.RESOURCE_NAME; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.SERVICE_INSTANCE_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.STATUS_500; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.STATUS_OK; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.TENANT_CONTEXT; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.TESTER_USER_ROLE; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.TOSCA_NODE_TYPE; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.UPDATED_USER_EXTENDED_NAME; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.USER_EMAIL; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.USER_FIRST_NAME; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.USER_ID; +import static org.openecomp.sdc.be.auditing.impl.AuditTestUtils.USER_LAST_NAME; @RunWith(MockitoJUnitRunner.class) public class ComponentsUtilsTest { @@ -71,6 +117,9 @@ public class ComponentsUtilsTest { @Captor private ArgumentCaptor<AuditEventFactory> factoryCaptor; + @Captor + private ArgumentCaptor<LoggerSdcAudit> audit; + @InjectMocks private static ComponentsUtils utils; @@ -281,8 +330,9 @@ public class ComponentsUtilsTest { @Test public void auditEcompOpEnvEvent() { + utils.auditEnvironmentEngine(AuditingActionEnum.CREATE_ENVIRONMENT, OP_ENV_ID, OP_ENV_TYPE, OP_ENV_ACTION, OP_ENV_NAME, TENANT_CONTEXT); - verify(manager).auditEvent(factoryCaptor.capture()); + verify(manager).auditEvent(factoryCaptor.capture(), audit.capture()); AuditEventFactory factory = factoryCaptor.getValue(); EcompOperationalEnvironmentEvent event = (EcompOperationalEnvironmentEvent)factory.getDbEvent(); assertThat(event.getAction()).isEqualTo(AuditingActionEnum.CREATE_ENVIRONMENT.getName()); @@ -438,69 +488,6 @@ public class ComponentsUtilsTest { assertThat(event.getResourceType()).isEqualTo(ComponentTypeEnum.RESOURCE.getValue()); } - @Test - public void auditChangeLifeCycleExternalApiEventWhenComponentIsNotNullAndResponseObjectIsNull() { - when(responseFormat.getStatus()).thenReturn(Integer.valueOf(STATUS_500)); - when(responseFormat.getFormattedMessage()).thenReturn(DESC_ERROR); - Component component = new Resource(); - component.setVersion(PREV_RESOURCE_VERSION); - component.setState(LifecycleStateEnum.READY_FOR_CERTIFICATION); - component.setInvariantUUID(INVARIANT_UUID); - component.setName(RESOURCE_NAME); - - utils.auditChangeLifecycleAction(responseFormat, ComponentTypeEnum.RESOURCE, REQUEST_ID, - component, null, new DistributionData(DIST_CONSUMER_ID, DIST_RESOURCE_URL), modifier); - - verify(manager).auditEvent(factoryCaptor.capture()); - AuditChangeLifecycleExternalApiEventFactory factory = (AuditChangeLifecycleExternalApiEventFactory)factoryCaptor.getValue(); - - ExternalApiEvent event = (ExternalApiEvent)factory.getDbEvent(); - assertThat(event.getAction()).isEqualTo(AuditingActionEnum.CHANGE_LIFECYCLE_BY_API.getName()); - - verifyCommonDataForExternalApiEvent(event, false); - verifyPreviousResourceVersionInfoForExternalApiEvent(event, false); - verifyDistributionDataForExternalApiEvent(event); - assertThat(event.getModifier()).isEqualTo(MODIFIER_UID); - assertThat(event.getInvariantUuid()).isEqualTo(INVARIANT_UUID); - assertThat(event.getResourceName()).isEqualTo(RESOURCE_NAME); - assertThat(event.getResourceType()).isEqualTo(ComponentTypeEnum.RESOURCE.getValue()); - } - - @Test - public void auditChangeLifeCycleExternalApiEventWhenComponentAndResponseObjectAreNotNull() { - when(responseFormat.getStatus()).thenReturn(Integer.valueOf(STATUS_OK)); - when(responseFormat.getFormattedMessage()).thenReturn(DESCRIPTION); - Component responseObject = new Resource(); - responseObject.setVersion(CURRENT_VERSION); - responseObject.setState(LifecycleStateEnum.CERTIFIED); - responseObject.setInvariantUUID(INVARIANT_UUID); - responseObject.setUUID(SERVICE_INSTANCE_ID); - - Component component = new Resource(); - component.setVersion(PREV_RESOURCE_VERSION); - component.setState(LifecycleStateEnum.READY_FOR_CERTIFICATION); - component.setInvariantUUID(INVARIANT_UUID); - component.setUUID(SERVICE_INSTANCE_ID); - component.setName(RESOURCE_NAME); - - utils.auditChangeLifecycleAction(responseFormat, ComponentTypeEnum.RESOURCE, REQUEST_ID, - null, responseObject, new DistributionData(DIST_CONSUMER_ID, DIST_RESOURCE_URL), modifier); - - verify(manager).auditEvent(factoryCaptor.capture()); - AuditChangeLifecycleExternalApiEventFactory factory = (AuditChangeLifecycleExternalApiEventFactory)factoryCaptor.getValue(); - - ExternalApiEvent event = (ExternalApiEvent)factory.getDbEvent(); - assertThat(event.getAction()).isEqualTo(AuditingActionEnum.CHANGE_LIFECYCLE_BY_API.getName()); - verifyCommonDataForExternalApiEvent(event, true); - verifyPreviousResourceVersionInfoForExternalApiEvent(event, true); - verifyCurrentResourceVersionInfoForExternalApiEvent(event, false); - verifyDistributionDataForExternalApiEvent(event); - assertThat(event.getModifier()).isEqualTo(MODIFIER_UID); - assertThat(event.getInvariantUuid()).isEqualTo(INVARIANT_UUID); - assertThat(event.getResourceName()).isNull(); - assertThat(event.getResourceType()).isEqualTo(ComponentTypeEnum.RESOURCE.getValue()); - - } private void verifyDistributionDataForExternalApiEvent(ExternalApiEvent event) { assertThat(event.getConsumerId()).isEqualTo(DIST_CONSUMER_ID); @@ -545,7 +532,6 @@ public class ComponentsUtilsTest { assertThat(event.getPrevVersion()).isNull(); } else { - assertThat(event.getPrevState()).isEqualTo(LifecycleStateEnum.READY_FOR_CERTIFICATION.name()); assertThat(event.getPrevVersion()).isEqualTo(PREV_RESOURCE_VERSION); } } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/CompositionBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/CompositionBusinessLogicTest.java index 407da47c51..98f08b35e0 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/CompositionBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/CompositionBusinessLogicTest.java @@ -31,7 +31,11 @@ import org.openecomp.sdc.be.model.RequirementCapabilityRelDef; import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.unittests.utils.FactoryUtils; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.stream.Collectors; import static org.junit.Assert.assertEquals; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ConsumerBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ConsumerBusinessLogicTest.java index 648072ba03..24a9f58be1 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ConsumerBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ConsumerBusinessLogicTest.java @@ -21,6 +21,7 @@ */ package org.openecomp.sdc.be.components.impl; +import fj.data.Either; import org.apache.commons.lang3.RandomStringUtils; import org.junit.Before; import org.junit.Test; @@ -28,25 +29,20 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; +import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.datatypes.elements.ConsumerDataDefinition; import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.model.ConsumerDefinition; import org.openecomp.sdc.be.model.User; -import org.openecomp.sdc.be.model.jsonjanusgraph.operations.InterfaceOperation; -import org.openecomp.sdc.be.model.operations.api.IElementOperation; import org.openecomp.sdc.be.model.operations.api.IGraphLockOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupInstanceOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupTypeOperation; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.model.operations.impl.ConsumerOperation; -import org.openecomp.sdc.be.model.operations.impl.InterfaceLifecycleOperation; import org.openecomp.sdc.be.resources.data.ConsumerData; -import org.openecomp.sdc.be.user.IUserBusinessLogic; +import org.openecomp.sdc.be.user.UserBusinessLogic; import org.openecomp.sdc.exception.ResponseFormat; -import fj.data.Either; + import java.util.HashMap; import java.util.Map; @@ -68,7 +64,7 @@ public class ConsumerBusinessLogicTest extends BaseBusinessLogicMock { private ComponentsUtils componentsUtils; @Mock - private IUserBusinessLogic iUserBusinessLogic; + private UserBusinessLogic UserBusinessLogic; @Mock private IGraphLockOperation iGraphLockOperation; @@ -104,8 +100,7 @@ public class ConsumerBusinessLogicTest extends BaseBusinessLogicMock { ConsumerDefinition consumerDefinition = new ConsumerDefinition(); Mockito.when(componentsUtils.getResponseFormat(ActionStatus.RESTRICTED_ACCESS)) .thenReturn(new ResponseFormat()); - Mockito.when(iUserBusinessLogic.getUser(user.getUserId(), false)) - .thenReturn(Either.right(ActionStatus.RESTRICTED_OPERATION)); + Mockito.when(UserBusinessLogic.getUser(user.getUserId(), false)).thenThrow(new ByActionStatusComponentException(ActionStatus.RESTRICTED_OPERATION)); assertTrue(consumerBusinessLogic.createConsumer(user, consumerDefinition).isRight()); } @@ -114,8 +109,7 @@ public class ConsumerBusinessLogicTest extends BaseBusinessLogicMock { user.setRole("DESIGNER"); Mockito.when(componentsUtils.getResponseFormat(ActionStatus.RESTRICTED_OPERATION)) .thenReturn(new ResponseFormat()); - Mockito.when(iUserBusinessLogic.getUser(user.getUserId(), false)) - .thenReturn(Either.left(user)); + Mockito.when(UserBusinessLogic.getUser(user.getUserId(), false)).thenReturn(user); assertTrue(consumerBusinessLogic.createConsumer(user, consumer).isRight()); } @@ -127,8 +121,7 @@ public class ConsumerBusinessLogicTest extends BaseBusinessLogicMock { invalidConsumerNames.put(RandomStringUtils.random(256, true, false), ActionStatus.EXCEEDS_LIMIT); for(Map.Entry<String, ActionStatus> e: invalidConsumerNames.entrySet()){ consumer.setConsumerName(e.getKey()); - Mockito.when(iUserBusinessLogic.getUser(user.getUserId(), false)) - .thenReturn(Either.left(user)); + Mockito.when(UserBusinessLogic.getUser(user.getUserId(), false)).thenReturn(user); Mockito.when(componentsUtils.getResponseFormat(e.getValue(), "Consumer name")) .thenReturn(new ResponseFormat()); assertTrue(consumerBusinessLogic.createConsumer(user, consumer).isRight()); @@ -144,8 +137,7 @@ public class ConsumerBusinessLogicTest extends BaseBusinessLogicMock { for(Map.Entry<String, ActionStatus> e: invalidPasswordResults.entrySet()){ consumer.setConsumerName("_marvel"); consumer.setConsumerPassword(e.getKey()); - Mockito.when(iUserBusinessLogic.getUser(user.getUserId(), false)) - .thenReturn(Either.left(user)); + Mockito.when(UserBusinessLogic.getUser(user.getUserId(), false)).thenReturn(user); Mockito.when(componentsUtils.getResponseFormat(e.getValue(), "Consumer password")) .thenReturn(new ResponseFormat()); assertTrue(consumerBusinessLogic.createConsumer(user, consumer).isRight()); @@ -162,8 +154,7 @@ public class ConsumerBusinessLogicTest extends BaseBusinessLogicMock { for(Map.Entry<String, ActionStatus> e: invalidPasswordSalts.entrySet()){ consumer.setConsumerName("_marvel"); consumer.setConsumerSalt(e.getKey()); - Mockito.when(iUserBusinessLogic.getUser(user.getUserId(), false)) - .thenReturn(Either.left(user)); + Mockito.when(UserBusinessLogic.getUser(user.getUserId(), false)).thenReturn(user); Mockito.when(componentsUtils.getResponseFormat(e.getValue(), "Consumer salt")) .thenReturn(new ResponseFormat()); assertTrue(consumerBusinessLogic.createConsumer(user, consumer).isRight()); @@ -175,8 +166,7 @@ public class ConsumerBusinessLogicTest extends BaseBusinessLogicMock { consumer.setConsumerName("_marvel"); consumer.setConsumerPassword(RandomStringUtils.random(64, true,true)); consumer.setConsumerSalt(RandomStringUtils.random(32, 'a')); - Mockito.when(iUserBusinessLogic.getUser(user.getUserId(), false)) - .thenReturn(Either.left(user)); + Mockito.when(UserBusinessLogic.getUser(user.getUserId(), false)).thenReturn(user); Mockito.when(iGraphLockOperation.lockComponent(anyString(), any(NodeTypeEnum.class))) .thenReturn(StorageOperationStatus.GENERAL_ERROR); assertTrue(consumerBusinessLogic.createConsumer(user, consumer).isRight()); @@ -189,8 +179,7 @@ public class ConsumerBusinessLogicTest extends BaseBusinessLogicMock { consumerDataDefinition.setConsumerPassword(RandomStringUtils.random(64, true,true)); consumerDataDefinition.setConsumerSalt(RandomStringUtils.random(32, 'a')); ConsumerDefinition consumer = new ConsumerDefinition(consumerDataDefinition); - Mockito.when(iUserBusinessLogic.getUser(user.getUserId(), false)) - .thenReturn(Either.left(user)); + Mockito.when(UserBusinessLogic.getUser(user.getUserId(), false)).thenReturn(user); Mockito.when(iGraphLockOperation.lockComponent(anyString(), any(NodeTypeEnum.class))) .thenReturn(StorageOperationStatus.OK); Mockito.when(consumerOperation.getCredentials(anyString())) @@ -207,8 +196,7 @@ public class ConsumerBusinessLogicTest extends BaseBusinessLogicMock { consumerDataDefinition.setConsumerPassword(RandomStringUtils.random(64, true,true)); consumerDataDefinition.setConsumerSalt(RandomStringUtils.random(32, 'a')); ConsumerDefinition consumer = new ConsumerDefinition(consumerDataDefinition); - Mockito.when(iUserBusinessLogic.getUser(user.getUserId(), false)) - .thenReturn(Either.left(user)); + Mockito.when(UserBusinessLogic.getUser(user.getUserId(), false)).thenReturn(user); Mockito.when(iGraphLockOperation.lockComponent(anyString(), any(NodeTypeEnum.class))) .thenReturn(StorageOperationStatus.OK); Mockito.when(consumerOperation.getCredentials(anyString())) @@ -231,8 +219,7 @@ public class ConsumerBusinessLogicTest extends BaseBusinessLogicMock { .thenReturn(Either.left(new ConsumerData())); Mockito.when(consumerData.getConsumerDataDefinition()) .thenReturn(consumerDataDefinition); - Mockito.when(iUserBusinessLogic.getUser(user.getUserId(), false)) - .thenReturn(Either.left(user)); + Mockito.when(UserBusinessLogic.getUser(user.getUserId(), false)).thenReturn(user); assertTrue(consumerBusinessLogic.getConsumer("marvel123", user).isLeft()); } @@ -258,8 +245,7 @@ public class ConsumerBusinessLogicTest extends BaseBusinessLogicMock { @Test public void testDeleteConsumer_givenValidUserAndConsumerId_thenReturnsSuccessful() { ConsumerData consumerData = new ConsumerData(new ConsumerDataDefinition()); - Mockito.when(iUserBusinessLogic.getUser(user.getUserId(), false)) - .thenReturn(Either.left(user)); + Mockito.when(UserBusinessLogic.getUser(user.getUserId(), false)).thenReturn(user); Mockito.when(consumerOperation.deleteCredentials("marvel123")) .thenReturn(Either.left(consumerData)); assertTrue(consumerBusinessLogic.deleteConsumer("marvel123", user).isLeft()); @@ -267,8 +253,7 @@ public class ConsumerBusinessLogicTest extends BaseBusinessLogicMock { @Test public void testDeleteConsumer_givenInvalidUser_thenReturnsError() { - Mockito.when(iUserBusinessLogic.getUser(user.getUserId(), false)) - .thenReturn(Either.left(user)); + Mockito.when(UserBusinessLogic.getUser(user.getUserId(), false)).thenReturn(user); Mockito.when(consumerOperation.deleteCredentials("marvel123")) .thenReturn(Either.right(StorageOperationStatus.USER_NOT_FOUND)); assertTrue(consumerBusinessLogic.deleteConsumer("marvel123", user).isRight()); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/DataTypeBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/DataTypeBusinessLogicTest.java index 609a9f9302..cc05eaf7b4 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/DataTypeBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/DataTypeBusinessLogicTest.java @@ -20,18 +20,7 @@ package org.openecomp.sdc.be.components.impl; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.when; - import fj.data.Either; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; import org.junit.Before; import org.junit.Test; import org.mockito.InjectMocks; @@ -49,7 +38,18 @@ import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.model.tosca.ToscaPropertyType; -import org.openecomp.sdc.be.user.IUserBusinessLogic; +import org.openecomp.sdc.be.user.UserBusinessLogic; + +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.when; public class DataTypeBusinessLogicTest { @@ -63,7 +63,7 @@ public class DataTypeBusinessLogicTest { private ComponentsUtils componentsUtilsMock; @Mock - private IUserBusinessLogic userAdminMock; + private UserBusinessLogic userAdminMock; @Mock private ToscaOperationFacade toscaOperationFacadeMock; @@ -92,7 +92,7 @@ public class DataTypeBusinessLogicTest { service.setComponentInstances(Collections.singletonList(componentInstance)); DataTypeDefinition dataType = new DataTypeDefinition(); dataType.setName(DATATYPE_NAME); - dataType.setDerivedFromName(ToscaPropertyType.Root.getType()); + dataType.setDerivedFromName(ToscaPropertyType.ROOT.getType()); List<DataTypeDefinition> dataTypes = Arrays.asList(dataType); service.setDataTypes(dataTypes); @@ -102,8 +102,8 @@ public class DataTypeBusinessLogicTest { instanceInputMap.put(COMPONENT_INSTANCE_ID, Collections.singletonList(componentInstanceInput)); instanceInputMap.put("someInputId", Collections.singletonList(new ComponentInstanceInput())); service.setComponentInstancesInputs(instanceInputMap); - when(userValidations.validateUserExists(eq(USER_ID), anyString(), eq(false))).thenReturn(new User()); - when(userAdminMock.getUser(USER_ID, false)).thenReturn(Either.left(new User())); + when(userValidations.validateUserExists(eq(USER_ID))).thenReturn(new User()); + when(userAdminMock.getUser(USER_ID, false)).thenReturn(new User()); } @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/DataTypesServiceTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/DataTypesServiceTest.java index 6f8d2c8a4b..0349985608 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/DataTypesServiceTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/DataTypesServiceTest.java @@ -24,20 +24,17 @@ import fj.data.Either; import junit.framework.Assert; import org.junit.Before; import org.junit.Test; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.when; import org.mockito.Mockito; import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.model.DataTypeDefinition; import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache; - import java.util.HashMap; import java.util.Map; +import static org.mockito.Mockito.when; + public class DataTypesServiceTest { ApplicationDataTypeCache applicationDataTypeCache = Mockito.mock(ApplicationDataTypeCache.class); ComponentsUtils componentsUtils = Mockito.mock(ComponentsUtils.class); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/DistributionMonitoringBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/DistributionMonitoringBusinessLogicTest.java index ed8daadced..0d6e87a165 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/DistributionMonitoringBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/DistributionMonitoringBusinessLogicTest.java @@ -25,7 +25,6 @@ package org.openecomp.sdc.be.components.impl; import fj.data.Either; import org.junit.Before; import org.junit.Test; -import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; @@ -35,15 +34,10 @@ import org.openecomp.sdc.be.dao.cassandra.AuditCassandraDao; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.info.DistributionStatusListResponse; import org.openecomp.sdc.be.model.User; -import org.openecomp.sdc.be.model.jsonjanusgraph.operations.InterfaceOperation; -import org.openecomp.sdc.be.model.operations.api.IElementOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupInstanceOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupTypeOperation; -import org.openecomp.sdc.be.model.operations.impl.InterfaceLifecycleOperation; import org.openecomp.sdc.be.resources.data.auditing.AuditingGenericEvent; import org.openecomp.sdc.be.resources.data.auditing.DistributionStatusEvent; import org.openecomp.sdc.exception.ResponseFormat; + import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -51,8 +45,6 @@ import java.util.Map; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.anyBoolean; -import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.when; public class DistributionMonitoringBusinessLogicTest extends BaseBusinessLogicMock { @@ -87,7 +79,7 @@ public class DistributionMonitoringBusinessLogicTest extends BaseBusinessLogicMo ditributionId = "did"; serviceId = "serviceId"; - when(userValidations.validateUserExists(Mockito.eq(uId), eq(ditributionId), anyBoolean())) + when(userValidations.validateUserExists(Mockito.eq(uId))) .thenReturn(user); } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ElementBLTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ElementBLTest.java index 3d890b9b9f..f312914400 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ElementBLTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ElementBLTest.java @@ -21,29 +21,27 @@ package org.openecomp.sdc.be.components.impl; import fj.data.Either; -import org.apache.commons.lang3.tuple.ImmutablePair; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.be.components.validation.UserValidations; -import org.openecomp.sdc.be.dao.graph.datatype.GraphEdge; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphGenericDao; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; +import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; +import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum; import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum; -import org.openecomp.sdc.be.dao.neo4j.GraphEdgeLabels; +import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary; -import org.openecomp.sdc.be.dao.janusgraph.JanusGraphGenericDao; -import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; -import org.openecomp.sdc.be.datatypes.components.ComponentMetadataDataDefinition; -import org.openecomp.sdc.be.datatypes.components.ResourceMetadataDataDefinition; -import org.openecomp.sdc.be.datatypes.components.ServiceMetadataDataDefinition; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; +import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields; import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; +import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.model.Component; import org.openecomp.sdc.be.model.Resource; @@ -55,10 +53,8 @@ import org.openecomp.sdc.be.model.category.SubCategoryDefinition; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.model.operations.impl.ElementOperation; -import org.openecomp.sdc.be.model.operations.impl.UniqueIdBuilder; -import org.openecomp.sdc.be.resources.data.ResourceMetadataData; -import org.openecomp.sdc.be.resources.data.ServiceMetadataData; import org.openecomp.sdc.be.resources.data.category.CategoryData; +import org.openecomp.sdc.be.resources.data.category.SubCategoryData; import org.openecomp.sdc.be.ui.model.UiCategories; import org.openecomp.sdc.be.user.Role; import org.openecomp.sdc.be.user.UserBusinessLogic; @@ -66,6 +62,7 @@ import org.openecomp.sdc.common.util.ValidationUtils; import org.openecomp.sdc.exception.ResponseFormat; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -82,15 +79,27 @@ import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) public class ElementBLTest { - private static final String CATAGORY_NAME = "categoryName"; + private static final String CATEGORY_NAME = "categoryName"; private static final String CATEGORY_UNIQUE_ID = "catUniqueId"; - private static final String SERVICE_NOT_DELETED_ID = "notDeletedId"; - private static final String DELETED_SERVICE_ID = "deletedId"; + private static final String SUBCATEGORY_UNIQUE_ID = "subCatUniqeId"; + private static final String PROPER_COMPONENT_ID = "properComponentId"; + private static final String DELETED_COMPONENT_ID = "deletedId"; + private static final String ARCHIVED_COMPONENT_ID = "archivedId"; + private static final String NOT_HIGHEST_VERSION_ID = "notHighestVersionId"; + + private GraphVertex categoryVertex = new GraphVertex(VertexTypeEnum.RESOURCE_CATEGORY); + private List<GraphVertex> deletedAndNotDeletedResourceVertices = new ArrayList<>(); + private List<GraphVertex> archivedAndNotArchivedResourceVertices = new ArrayList<>(); + private List<GraphVertex> notHighestVersionAndHighestVersionResourceVertices = new ArrayList<>(); + private List<GraphVertex> deletedAndNotDeletedServiceVertices = new ArrayList<>(); + + private Resource properResource = new Resource(); + + private Service properService = new Service(); + private List<CategoryData> categories = new ArrayList<>(); - private List<ImmutablePair<ServiceMetadataData, GraphEdge>> services = new ArrayList<>(); - private List<ImmutablePair<ResourceMetadataData, GraphEdge>> resources = new ArrayList<>(); - private Service notDeletedService = new Service(); - private Resource notDeletedResource = new Resource(); + private List<SubCategoryData> subCategories = new ArrayList<>(); + @Mock private JanusGraphGenericDao janusGraphGenericDao; @@ -122,13 +131,12 @@ public class ElementBLTest { @InjectMocks private ElementBusinessLogic elementBusinessLogic; + @Before public void setup() { - - initCategoriesList(); - initServicesList(); - initResourceslist(); - + initCategoriesAndSubCategories(); + initResourcesVerticesLists(); + initServiceVerticesLists(); elementBusinessLogic.setUserValidations(userValidations); elementBusinessLogic.setComponentsUtils(componentsUtils); elementBusinessLogic.setJanusGraphGenericDao(janusGraphGenericDao); @@ -136,106 +144,142 @@ public class ElementBLTest { elementBusinessLogic.setToscaOperationFacade(toscaOperationFacade); when(janusGraphDao.commit()).thenReturn(JanusGraphOperationStatus.OK); + } - private void initCategoriesList() { + private void initCategoriesAndSubCategories() { CategoryData categoryData = new CategoryData(NodeTypeEnum.ServiceNewCategory); categoryData.getCategoryDataDefinition().setUniqueId(CATEGORY_UNIQUE_ID); categories.add(categoryData); + + SubCategoryData subCategoryData = new SubCategoryData(NodeTypeEnum.ResourceNewCategory); + subCategoryData.getSubCategoryDataDefinition().setUniqueId(SUBCATEGORY_UNIQUE_ID); + subCategories.add(subCategoryData); } - private void initServicesList() { - ServiceMetadataData serviceNotDeleted = new ServiceMetadataData(); - ComponentMetadataDataDefinition componentMetadataDataDefinition1 = new ServiceMetadataDataDefinition(); - componentMetadataDataDefinition1.setIsDeleted(false); - componentMetadataDataDefinition1.setHighestVersion(true); - componentMetadataDataDefinition1.setUniqueId(SERVICE_NOT_DELETED_ID); - serviceNotDeleted.setMetadataDataDefinition(componentMetadataDataDefinition1); - services.add(new ImmutablePair<>(serviceNotDeleted, null)); - - ServiceMetadataData deletedService = new ServiceMetadataData(); - ComponentMetadataDataDefinition componentMetadataDataDefinition2 = new ServiceMetadataDataDefinition(); - componentMetadataDataDefinition2.setIsDeleted(true); - componentMetadataDataDefinition2.setHighestVersion(true); - componentMetadataDataDefinition2.setUniqueId(DELETED_SERVICE_ID); - deletedService.setMetadataDataDefinition(componentMetadataDataDefinition2); - services.add(new ImmutablePair<>(deletedService, null)); + private void initServiceVerticesLists() { + Map<String, Object> properServiceMetadataJson = new HashMap<>(); + properServiceMetadataJson.put(JsonPresentationFields.IS_DELETED.getPresentation(), false); + properServiceMetadataJson.put(JsonPresentationFields.HIGHEST_VERSION.getPresentation(), true); + properServiceMetadataJson.put(JsonPresentationFields.IS_ARCHIVED.getPresentation(), false); + GraphVertex properService = new GraphVertex(VertexTypeEnum.TOPOLOGY_TEMPLATE); + properService.setType(ComponentTypeEnum.SERVICE); + properService.setMetadataJson(properServiceMetadataJson); + properService.setUniqueId(PROPER_COMPONENT_ID); + deletedAndNotDeletedServiceVertices.add(properService); + + Map<String, Object> deletedServiceMetadataJson = new HashMap<>(); + deletedServiceMetadataJson.put(JsonPresentationFields.IS_DELETED.getPresentation(), true); + deletedServiceMetadataJson.put(JsonPresentationFields.HIGHEST_VERSION.getPresentation(), true); + deletedServiceMetadataJson.put(JsonPresentationFields.IS_ARCHIVED.getPresentation(), false); + GraphVertex deletedService = new GraphVertex(VertexTypeEnum.TOPOLOGY_TEMPLATE); + deletedService.setType(ComponentTypeEnum.SERVICE); + deletedService.setMetadataJson(deletedServiceMetadataJson); + deletedService.setUniqueId(DELETED_COMPONENT_ID); + deletedAndNotDeletedServiceVertices.add(deletedService); } - private void initResourceslist() { - ResourceMetadataData notDeletedResource = new ResourceMetadataData(); - ComponentMetadataDataDefinition componentMetadataDataDefinition3 = new ResourceMetadataDataDefinition(); - componentMetadataDataDefinition3.setIsDeleted(false); - componentMetadataDataDefinition3.setHighestVersion(true); - componentMetadataDataDefinition3.setUniqueId(SERVICE_NOT_DELETED_ID); - notDeletedResource.setMetadataDataDefinition(componentMetadataDataDefinition3); - resources.add(new ImmutablePair<>(notDeletedResource, null)); - - ResourceMetadataData deletedResource = new ResourceMetadataData(); - ComponentMetadataDataDefinition componentMetadataDataDefinition4 = new ResourceMetadataDataDefinition(); - componentMetadataDataDefinition4.setIsDeleted(true); - componentMetadataDataDefinition4.setHighestVersion(true); - componentMetadataDataDefinition4.setUniqueId(DELETED_SERVICE_ID); - deletedResource.setMetadataDataDefinition(componentMetadataDataDefinition4); - resources.add(new ImmutablePair<>(deletedResource, null)); + private void initResourcesVerticesLists() { + Map<String, Object> properResourceMetadataJson = new HashMap<>(); + properResourceMetadataJson.put(JsonPresentationFields.IS_DELETED.getPresentation(), false); + properResourceMetadataJson.put(JsonPresentationFields.HIGHEST_VERSION.getPresentation(), true); + properResourceMetadataJson.put(JsonPresentationFields.IS_ARCHIVED.getPresentation(), false); + properResourceMetadataJson.put(JsonPresentationFields.RESOURCE_TYPE.getPresentation(), ResourceTypeEnum.VFC.getValue()); + GraphVertex properResource = new GraphVertex(VertexTypeEnum.NODE_TYPE); + properResource.setType(ComponentTypeEnum.RESOURCE); + properResource.setMetadataJson(properResourceMetadataJson); + properResource.setUniqueId(PROPER_COMPONENT_ID); + deletedAndNotDeletedResourceVertices.add(properResource); + archivedAndNotArchivedResourceVertices.add(properResource); + notHighestVersionAndHighestVersionResourceVertices.add(properResource); + + Map<String, Object> deletedResourceMetadataJson = new HashMap<>(); + deletedResourceMetadataJson.put(JsonPresentationFields.IS_DELETED.getPresentation(), true); + deletedResourceMetadataJson.put(JsonPresentationFields.HIGHEST_VERSION.getPresentation(), true); + deletedResourceMetadataJson.put(JsonPresentationFields.IS_ARCHIVED.getPresentation(), false); + deletedResourceMetadataJson.put(JsonPresentationFields.RESOURCE_TYPE.getPresentation(), ResourceTypeEnum.VFC.getValue()); + GraphVertex deletedResource = new GraphVertex(VertexTypeEnum.NODE_TYPE); + deletedResource.setType(ComponentTypeEnum.RESOURCE); + deletedResource.setMetadataJson(deletedResourceMetadataJson); + deletedResource.setUniqueId(DELETED_COMPONENT_ID); + deletedAndNotDeletedResourceVertices.add(deletedResource); + + Map<String, Object> archivedResourceMetadataJson = new HashMap<>(); + archivedResourceMetadataJson.put(JsonPresentationFields.IS_DELETED.getPresentation(), false); + archivedResourceMetadataJson.put(JsonPresentationFields.HIGHEST_VERSION.getPresentation(), true); + archivedResourceMetadataJson.put(JsonPresentationFields.IS_ARCHIVED.getPresentation(), true); + archivedResourceMetadataJson.put(JsonPresentationFields.RESOURCE_TYPE.getPresentation(), ResourceTypeEnum.VFC.getValue()); + GraphVertex archivedResource = new GraphVertex(VertexTypeEnum.NODE_TYPE); + archivedResource.setType(ComponentTypeEnum.RESOURCE); + archivedResource.setMetadataJson(archivedResourceMetadataJson); + archivedResource.setUniqueId(ARCHIVED_COMPONENT_ID); + archivedAndNotArchivedResourceVertices.add(archivedResource); + + Map<String, Object> notHighestVersionResourceMetadataJson = new HashMap<>(); + notHighestVersionResourceMetadataJson.put(JsonPresentationFields.IS_DELETED.getPresentation(), false); + notHighestVersionResourceMetadataJson.put(JsonPresentationFields.HIGHEST_VERSION.getPresentation(), false); + notHighestVersionResourceMetadataJson.put(JsonPresentationFields.IS_ARCHIVED.getPresentation(), false); + notHighestVersionResourceMetadataJson.put(JsonPresentationFields.RESOURCE_TYPE.getPresentation(), ResourceTypeEnum.VFC.getValue()); + GraphVertex notHighestVersionResource = new GraphVertex(VertexTypeEnum.NODE_TYPE); + notHighestVersionResource.setType(ComponentTypeEnum.RESOURCE); + notHighestVersionResource.setMetadataJson(notHighestVersionResourceMetadataJson); + notHighestVersionResource.setUniqueId(NOT_HIGHEST_VERSION_ID); + notHighestVersionAndHighestVersionResourceVertices.add(notHighestVersionResource); } @Test - public void testFetchElementsByCategoryName_filterDeleted() { - ArgumentCaptor<Map> criteriaCapture = ArgumentCaptor.forClass(Map.class); - - when(janusGraphGenericDao - .getByCriteria(eq(NodeTypeEnum.ServiceNewCategory), criteriaCapture.capture(), eq(CategoryData.class))) - .thenReturn(Either.left(categories)); - when(janusGraphGenericDao.getParentNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ServiceNewCategory), - CATEGORY_UNIQUE_ID, GraphEdgeLabels.CATEGORY, NodeTypeEnum.Service, ServiceMetadataData.class)) - .thenReturn(Either.left(services)); - when(toscaOperationFacade.getToscaElement(SERVICE_NOT_DELETED_ID, JsonParseFlagEnum.ParseMetadata)) - .thenReturn(Either.left(notDeletedService)); - - Either<List<Object>, StorageOperationStatus> elementsByCategoryEither = - elementBusinessLogic.fetchByCategoryOrSubCategoryName(CATAGORY_NAME, NodeTypeEnum.ServiceNewCategory, - NodeTypeEnum.Service, false, ServiceMetadataData.class, null); - - List<Object> elementsByCategory = elementsByCategoryEither.left().value(); - assertThat(elementsByCategory.get(0)).isSameAs(notDeletedService); - assertThat(elementsByCategory.size()).isEqualTo(1); - verifyCriteriaProperties(criteriaCapture); + public void testFetchByCategoryOrSubCategoryUid_deletedResource() { + when(janusGraphDao.getVertexById(CATEGORY_UNIQUE_ID, JsonParseFlagEnum.NoParse)).thenReturn(Either.left(categoryVertex)); + when(janusGraphDao.getParentVertices(categoryVertex, EdgeLabelEnum.CATEGORY, JsonParseFlagEnum.ParseMetadata)).thenReturn(Either.left(deletedAndNotDeletedResourceVertices)); + when(toscaOperationFacade.getToscaElement(PROPER_COMPONENT_ID, JsonParseFlagEnum.ParseMetadata)) + .thenReturn(Either.left(properResource)); + Either<List<Component>, StorageOperationStatus> resourcesBySubCategoryUidEither = elementBusinessLogic.fetchByCategoryOrSubCategoryUid(CATEGORY_UNIQUE_ID, NodeTypeEnum.Resource, false, null); + List<Component> resourcesBySubCategoryUid = resourcesBySubCategoryUidEither.left().value(); + assertThat(resourcesBySubCategoryUid.size()).isEqualTo(1); + assertThat(resourcesBySubCategoryUid.get(0)).isSameAs(properResource); } - private void verifyCriteriaProperties(ArgumentCaptor<Map> propsCapture) { - Map<String, Object> props = propsCapture.getValue(); - assertThat(props.size()).isEqualTo(1); - assertThat(props.get(GraphPropertiesDictionary.NORMALIZED_NAME.getProperty())).isEqualTo(ValidationUtils.normalizeCategoryName4Uniqueness(CATAGORY_NAME)); + @Test + public void testFetchByCategoryOrSubCategoryUid_archivedResource() { + when(janusGraphDao.getVertexById(CATEGORY_UNIQUE_ID, JsonParseFlagEnum.NoParse)).thenReturn(Either.left(categoryVertex)); + when(janusGraphDao.getParentVertices(categoryVertex, EdgeLabelEnum.CATEGORY, JsonParseFlagEnum.ParseMetadata)).thenReturn(Either.left(archivedAndNotArchivedResourceVertices)); + when(toscaOperationFacade.getToscaElement(PROPER_COMPONENT_ID, JsonParseFlagEnum.ParseMetadata)) + .thenReturn(Either.left(properResource)); + Either<List<Component>, StorageOperationStatus> resourcesBySubCategoryUidEither = elementBusinessLogic.fetchByCategoryOrSubCategoryUid(CATEGORY_UNIQUE_ID, NodeTypeEnum.Resource, false, null); + List<Component> resourcesBySubCategoryUid = resourcesBySubCategoryUidEither.left().value(); + assertThat(resourcesBySubCategoryUid.size()).isEqualTo(1); + assertThat(resourcesBySubCategoryUid.get(0)).isSameAs(properResource); } @Test - public void testFetchResourcesBySubcategoryUid_filterDeleted() { - - when(janusGraphGenericDao.getParentNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ResourceSubcategory), - CATEGORY_UNIQUE_ID, GraphEdgeLabels.CATEGORY, NodeTypeEnum.Resource, ResourceMetadataData.class)) - .thenReturn(Either.left(resources)); - - when(toscaOperationFacade.getToscaElement(SERVICE_NOT_DELETED_ID, JsonParseFlagEnum.ParseMetadata)) - .thenReturn(Either.left(notDeletedResource)); - - Either<List<Object>, StorageOperationStatus> resourcesBySubCategoryUidEither = elementBusinessLogic.fetchByCategoryOrSubCategoryUid(CATEGORY_UNIQUE_ID, NodeTypeEnum.ResourceSubcategory, - NodeTypeEnum.Resource, false, ResourceMetadataData.class, null); - List<Object> resourcesBySubCategoryUid = resourcesBySubCategoryUidEither.left().value(); + public void testFetchByCategoryOrSubCategoryUid_notHighestResource() { + when(janusGraphDao.getVertexById(CATEGORY_UNIQUE_ID, JsonParseFlagEnum.NoParse)).thenReturn(Either.left(categoryVertex)); + when(janusGraphDao.getParentVertices(categoryVertex, EdgeLabelEnum.CATEGORY, JsonParseFlagEnum.ParseMetadata)).thenReturn(Either.left(notHighestVersionAndHighestVersionResourceVertices)); + when(toscaOperationFacade.getToscaElement(PROPER_COMPONENT_ID, JsonParseFlagEnum.ParseMetadata)) + .thenReturn(Either.left(properResource)); + Either<List<Component>, StorageOperationStatus> resourcesBySubCategoryUidEither = elementBusinessLogic.fetchByCategoryOrSubCategoryUid(CATEGORY_UNIQUE_ID, NodeTypeEnum.Resource, false, null); + List<Component> resourcesBySubCategoryUid = resourcesBySubCategoryUidEither.left().value(); assertThat(resourcesBySubCategoryUid.size()).isEqualTo(1); - assertThat(resourcesBySubCategoryUid.get(0)).isSameAs(notDeletedResource); + assertThat(resourcesBySubCategoryUid.get(0)).isSameAs(properResource); } + @Test - public void testDeleteCategory() { - Either<CategoryDefinition, ResponseFormat> result; - User user = new User(); - String userId = "userId"; - user.setUserId(userId); - when(elementBusinessLogic.validateUserExists(anyString(), anyString(), eq(false))).thenReturn(user); - when(elementOperation.deleteCategory(NodeTypeEnum.ResourceNewCategory, CATEGORY_UNIQUE_ID)).thenReturn(Either.left(categoryDef)); - result = elementBusinessLogic.deleteCategory(CATEGORY_UNIQUE_ID, ComponentTypeEnum.RESOURCE_PARAM_NAME, userId); - Assert.assertTrue(result.isLeft()); + public void testFetchByCategoryOrSubCategoryName_resource() { + Map<String, Object> props = new HashMap<>(); + props.put(GraphPropertiesDictionary.NORMALIZED_NAME.getProperty(), ValidationUtils.normalizeCategoryName4Uniqueness(CATEGORY_NAME)); + when(janusGraphGenericDao.getByCriteria(NodeTypeEnum.ResourceNewCategory, props, SubCategoryData.class)) + .thenReturn(Either.left(subCategories)); + when(janusGraphDao.getVertexById(SUBCATEGORY_UNIQUE_ID, JsonParseFlagEnum.NoParse)).thenReturn(Either.left(categoryVertex)); + when(janusGraphDao.getParentVertices(categoryVertex, EdgeLabelEnum.CATEGORY, JsonParseFlagEnum.ParseMetadata)).thenReturn(Either.left(deletedAndNotDeletedResourceVertices)); + when(toscaOperationFacade.getToscaElement(PROPER_COMPONENT_ID, JsonParseFlagEnum.ParseMetadata)) + .thenReturn(Either.left(properResource)); + Either<List<Component>, StorageOperationStatus> elementsByCategoryEither = + elementBusinessLogic.fetchByCategoryOrSubCategoryName(CATEGORY_NAME, NodeTypeEnum.ResourceNewCategory, + NodeTypeEnum.Resource, false, null); + List<Component> elementsByCategory = elementsByCategoryEither.left().value(); + assertThat(elementsByCategory.get(0)).isSameAs(properResource); + assertThat(elementsByCategory.size()).isEqualTo(1); } @Test @@ -244,7 +288,7 @@ public class ElementBLTest { User user = new User(); String userId = "userId"; user.setUserId(userId); - when(elementBusinessLogic.validateUserExists(anyString(), anyString(), eq(false))).thenReturn(user); + when(elementBusinessLogic.validateUserExists(anyString())).thenReturn(user); when(elementOperation.deleteSubCategory(NodeTypeEnum.ResourceSubcategory, CATEGORY_UNIQUE_ID)).thenReturn(Either.left(subCategoryDef)); result = elementBusinessLogic.deleteSubCategory(CATEGORY_UNIQUE_ID, ComponentTypeEnum.RESOURCE_PARAM_NAME, userId); Assert.assertTrue(result.isLeft()); @@ -269,7 +313,7 @@ public class ElementBLTest { String userId = "userId"; user.setUserId(userId); user.setRole(Role.ADMIN.name()); - when(userAdminManager.getUser(userId, false)).thenReturn(Either.left(user)); + when(userValidations.validateUserExists(eq(userId))).thenReturn(user); when(elementOperation.isCategoryUniqueForType(NodeTypeEnum.ResourceNewCategory, name)).thenReturn(Either.left(true)); when(elementOperation.createCategory(categoryDef, NodeTypeEnum.ResourceNewCategory)).thenReturn(Either.left(categoryDef)); result = elementBusinessLogic.createCategory(categoryDef, ComponentTypeEnum.RESOURCE_PARAM_NAME, userId); @@ -283,7 +327,6 @@ public class ElementBLTest { List<CategoryDefinition> categoryDefList = new ArrayList<>(); when(elementOperation.getAllCategories(NodeTypeEnum.ResourceNewCategory, false)).thenReturn(Either.left(categoryDefList)); when(elementOperation.getAllCategories(NodeTypeEnum.ServiceNewCategory, false)).thenReturn(Either.left(categoryDefList)); - when(elementOperation.getAllCategories(NodeTypeEnum.ProductCategory, false)).thenReturn(Either.left(categoryDefList)); result = elementBusinessLogic.getAllCategories(userId); Assert.assertTrue(result.isLeft()); } @@ -321,7 +364,7 @@ public class ElementBLTest { String userId = "userId"; user.setUserId(userId); user.setRole(Role.PRODUCT_STRATEGIST.name()); - when(elementBusinessLogic.validateUserExists(userId, "create Grouping", false)).thenReturn(user); + when(elementBusinessLogic.validateUserExists(userId)).thenReturn(user); when(elementOperation.getCategory(NodeTypeEnum.ProductCategory, grandParentCatId)).thenReturn(Either.left(categoryDef)); when(elementOperation.getSubCategory(NodeTypeEnum.ProductSubcategory, parentSubCatId)).thenReturn(Either.left(subCategoryDef)); when(elementOperation.isGroupingUniqueForSubCategory(NodeTypeEnum.ProductGrouping, name, parentSubCatId)).thenReturn(Either.left(true)); @@ -331,4 +374,24 @@ public class ElementBLTest { result = elementBusinessLogic.createGrouping(groupDef, componentTypeParamName, grandParentCatId, parentSubCatId, userId); Assert.assertTrue(result.isLeft()); } + + @Test + public void testFetchByCategoryOrSubCategoryName_service() { + Map<String, Object> props = new HashMap<>(); + props.put(GraphPropertiesDictionary.NORMALIZED_NAME.getProperty(), ValidationUtils.normalizeCategoryName4Uniqueness(CATEGORY_NAME)); + when(janusGraphGenericDao.getByCriteria(NodeTypeEnum.ServiceNewCategory, props, CategoryData.class)) + .thenReturn(Either.left(categories)); + when(janusGraphDao.getVertexById(CATEGORY_UNIQUE_ID, JsonParseFlagEnum.NoParse)).thenReturn(Either.left(categoryVertex)); + when(janusGraphDao.getParentVertices(categoryVertex, EdgeLabelEnum.CATEGORY, JsonParseFlagEnum.ParseMetadata)).thenReturn(Either.left(deletedAndNotDeletedServiceVertices)); + when(toscaOperationFacade.getToscaElement(PROPER_COMPONENT_ID, JsonParseFlagEnum.ParseMetadata)) + .thenReturn(Either.left(properService)); + Either<List<Component>, StorageOperationStatus> elementsByCategoryEither = + elementBusinessLogic.fetchByCategoryOrSubCategoryName(CATEGORY_NAME, NodeTypeEnum.ServiceNewCategory, + NodeTypeEnum.Service, false, null); + List<Component> elementsByCategory = elementsByCategoryEither.left().value(); + assertThat(elementsByCategory.get(0)).isSameAs(properService); + assertThat(elementsByCategory.size()).isEqualTo(1); + } + + } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ElementBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ElementBusinessLogicTest.java index f4f8a2a784..c87bb2481d 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ElementBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ElementBusinessLogicTest.java @@ -21,11 +21,7 @@ */ package org.openecomp.sdc.be.components.impl; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import fj.data.Either; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -50,18 +46,17 @@ import org.openecomp.sdc.be.model.Service; import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.category.CategoryDefinition; import org.openecomp.sdc.be.model.category.SubCategoryDefinition; -import org.openecomp.sdc.be.model.jsonjanusgraph.operations.InterfaceOperation; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; -import org.openecomp.sdc.be.model.operations.api.IElementOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupInstanceOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupTypeOperation; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; -import org.openecomp.sdc.be.model.operations.impl.InterfaceLifecycleOperation; import org.openecomp.sdc.be.user.Role; import org.openecomp.sdc.be.user.UserBusinessLogic; import org.openecomp.sdc.exception.ResponseFormat; -import fj.data.Either; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; @@ -131,47 +126,6 @@ public class ElementBusinessLogicTest extends BaseBusinessLogicMock { Assert.assertTrue(result.get("resources").size() == 1); } - @Test - public void testGetFollowed_givenUserWithTesterRoleErrorOccursGettingService_thenReturnsError () { - user.setUserId("tester1"); - user.setRole(Role.TESTER.name()); - - Set<Component> resources = new HashSet<>(); - - Resource resource = new Resource(); - resources.add(resource); - - Mockito.when(toscaOperationFacade.getFollowed(any(), Mockito.anySet(), any(), Mockito.eq(ComponentTypeEnum.RESOURCE))) - .thenReturn(Either.left(resources)); - Mockito.when(toscaOperationFacade.getFollowed(any(), anySet(), any(), eq(ComponentTypeEnum.SERVICE))) - .thenReturn(Either.right(StorageOperationStatus.GENERAL_ERROR)); - Assert.assertTrue(elementBusinessLogic.getFollowed(user).isRight()); - } - - @Test - public void testGetFollowed_givenUserWithGovernorRole_thenReturnsSuccessful(){ - user.setUserId("governor1"); - user.setRole(Role.GOVERNOR.name()); - - List<Service> services = new ArrayList<>(); - services.add(new Service()); - - when(toscaOperationFacade.getCertifiedServicesWithDistStatus(any())) - .thenReturn(Either.left(services)); - Assert.assertTrue(elementBusinessLogic.getFollowed(user).isLeft()); - } - - @Test - public void testGetFollowed_givenUserWithOPSRoleErrorOccursGettingServices_thenReturnsError(){ - user.setUserId("ops1"); - user.setRole(Role.OPS.name()); - - when(toscaOperationFacade.getCertifiedServicesWithDistStatus(any())) - .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND)); - - Assert.assertTrue(elementBusinessLogic.getFollowed(user).isRight()); - - } @Test public void testGetFollowed_givenUserWithProductStrategistRole_thenReturnsEmptyList(){ @@ -217,14 +171,13 @@ public class ElementBusinessLogicTest extends BaseBusinessLogicMock { @Test(expected = ComponentException.class) public void testGetAllCategories_givenValidationOfUserFails_thenReturnsError() { - doThrow(new ByResponseFormatComponentException(new ResponseFormat())).when(userValidations).validateUserExists(eq(user.getUserId()), - anyString(), anyBoolean()); + doThrow(new ByResponseFormatComponentException(new ResponseFormat())).when(userValidations).validateUserExists(eq(user.getUserId())); elementBusinessLogic.getAllCategories(null, user.getUserId()); } @Test public void testGetAllCategories_givenInvalidComponentType_thenReturnsError() { - when(userValidations.validateUserExists(eq(user.getUserId()), anyString(), anyBoolean())).thenReturn(user); + when(userValidations.validateUserExists(eq(user.getUserId()))).thenReturn(user); Assert.assertTrue(elementBusinessLogic.getAllCategories("NONE", user.getUserId()).isRight()); @@ -236,7 +189,7 @@ public class ElementBusinessLogicTest extends BaseBusinessLogicMock { List<CategoryDefinition> categoryDefinitionList = new ArrayList<>(); categoryDefinitionList.add(new CategoryDefinition()); - when(userValidations.validateUserExists(eq(user.getUserId()), anyString(), anyBoolean())).thenReturn(user); + when(userValidations.validateUserExists(eq(user.getUserId()))).thenReturn(user); when(elementDao.getAllCategories(NodeTypeEnum.ResourceNewCategory, false)) .thenReturn(Either.left(categoryDefinitionList)); Assert.assertTrue(elementBusinessLogic.getAllCategories(ComponentTypeEnum.RESOURCE_PARAM_NAME, user.getUserId()) @@ -249,7 +202,7 @@ public class ElementBusinessLogicTest extends BaseBusinessLogicMock { List<CategoryDefinition> dummyCategoryDefinitionList = new ArrayList<>(); dummyCategoryDefinitionList.add(new CategoryDefinition()); - when(userValidations.validateUserExists(eq(user.getUserId()), anyString(), anyBoolean())) + when(userValidations.validateUserExists(eq(user.getUserId()))) .thenReturn(user); when(elementDao.getAllCategories(any(NodeTypeEnum.class), anyBoolean())) .thenReturn(Either.left(dummyCategoryDefinitionList)); @@ -272,7 +225,7 @@ public class ElementBusinessLogicTest extends BaseBusinessLogicMock { SubCategoryDefinition subCatDef = new SubCategoryDefinition(); subCatDef.setName("subCat1"); - when(userValidations.validateUserExists(eq(user.getUserId()), anyString(), anyBoolean())) + when(userValidations.validateUserExists(eq(user.getUserId()))) .thenReturn(user); when(elementDao.getCategory(any(NodeTypeEnum.class), anyString())) .thenReturn(Either.left(new CategoryDefinition())); @@ -296,49 +249,31 @@ public class ElementBusinessLogicTest extends BaseBusinessLogicMock { @Test(expected = ComponentException.class) public void testCreateSubCategory_givenUserValidationFails_thenReturnsException() { SubCategoryDefinition subCategoryDefinition = new SubCategoryDefinition(); - doThrow(new ByResponseFormatComponentException(new ResponseFormat())).when(userValidations).validateUserExists(eq(user.getUserId()), - anyString(), anyBoolean()); + doThrow(new ByResponseFormatComponentException(new ResponseFormat())).when(userValidations).validateUserExists(eq(user.getUserId())); elementBusinessLogic.createSubCategory(subCategoryDefinition, "resources", "cat1", user.getUserId()); } - @Test - public void testcreateCategory_VALIDATION_OF_USER_FAILED() throws Exception { - - + @Test(expected=ComponentException.class) + public void testcreateCategory_VALIDATION_OF_USER_FAILED() { CategoryDefinition catdefinition = new CategoryDefinition(); - String userid=null; + String userid = ""; ResponseFormat responseFormat = new ResponseFormat(7); - when(componentsUtils.getResponseFormat(ActionStatus.MISSING_INFORMATION)).thenReturn(responseFormat); - Either<CategoryDefinition, ResponseFormat> response = elementBusinessLogic.createCategory(catdefinition,"Service", userid); - Assert.assertEquals(true,response.isRight()); - Assert.assertEquals((Integer) 7, response.right().value().getStatus()); + when(userValidations.validateUserExists("")).thenThrow(new ByResponseFormatComponentException(responseFormat)); + elementBusinessLogic.createCategory(catdefinition,"Service", userid); } @Test public void testcreateCategory_MISSING_INFORMATION() throws Exception { - CategoryDefinition catdefinition = new CategoryDefinition(); ResponseFormat responseFormat = new ResponseFormat(9); User user = new User(); - when(userAdminManager.getUser("USR", false)).thenReturn(Either.left(user)); + when(userValidations.validateUserExists("USR")).thenReturn(user); when(componentsUtils.getResponseFormat(ActionStatus.INVALID_CONTENT)).thenReturn(responseFormat); Either<CategoryDefinition, ResponseFormat> response = elementBusinessLogic.createCategory(catdefinition,"Service", "USR"); - Assert.assertEquals(true,response.isRight()); + Assert.assertTrue(response.isRight()); Assert.assertEquals((Integer) 9, response.right().value().getStatus()); } - @Test - public void testcreateCategory_RESTRICTED_OPERATION() throws Exception { - - CategoryDefinition catdefinition = new CategoryDefinition(); - ResponseFormat responseFormat = new ResponseFormat(9); - User user = new User(); - when(userAdminManager.getUser("USR", false)).thenReturn(Either.right(ActionStatus.USER_NOT_FOUND)); - when(componentsUtils.getResponseFormat(ActionStatus.RESTRICTED_OPERATION)).thenReturn(responseFormat); - Either<CategoryDefinition, ResponseFormat> response = elementBusinessLogic.createCategory(catdefinition,"Service", "USR"); - Assert.assertEquals(true,response.isRight()); - Assert.assertEquals((Integer) 9, response.right().value().getStatus()); - } @Test public void testcreateCategory_Invalid_componentType() throws Exception { @@ -348,10 +283,10 @@ public class ElementBusinessLogicTest extends BaseBusinessLogicMock { ResponseFormat responseFormat = new ResponseFormat(9); User user = new User(); - when(userAdminManager.getUser("USR", false)).thenReturn(Either.left(user)); + when(userValidations.validateUserExists("USR")).thenReturn(user); when(componentsUtils.getResponseFormat(ActionStatus.INVALID_CONTENT)).thenReturn(responseFormat); Either<CategoryDefinition, ResponseFormat> response = elementBusinessLogic.createCategory(catdefinition,"Service", "USR"); - Assert.assertEquals(true,response.isRight()); + Assert.assertTrue(response.isRight()); Assert.assertEquals((Integer) 9, response.right().value().getStatus()); } @@ -363,10 +298,10 @@ public class ElementBusinessLogicTest extends BaseBusinessLogicMock { ResponseFormat responseFormat = new ResponseFormat(9); User user = new User(); - when(userAdminManager.getUser("USR", false)).thenReturn(Either.left(user)); + when(userValidations.validateUserExists("USR")).thenReturn(user); when(componentsUtils.getResponseFormat(ActionStatus.INVALID_CONTENT)).thenReturn(responseFormat); Either<CategoryDefinition, ResponseFormat> response = elementBusinessLogic.createCategory(catdefinition,"SERVICE_PARAM_NAME", "USR"); - Assert.assertEquals(true,response.isRight()); + Assert.assertTrue(response.isRight()); Assert.assertEquals((Integer) 9, response.right().value().getStatus()); } }
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/GenericArtifactBrowserBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/GenericArtifactBrowserBusinessLogicTest.java index f817cdf11f..5686d5e672 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/GenericArtifactBrowserBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/GenericArtifactBrowserBusinessLogicTest.java @@ -22,19 +22,14 @@ package org.openecomp.sdc.be.components.impl; -import static org.junit.Assert.assertEquals; - import com.google.common.collect.ImmutableSet; -import java.io.IOException; import org.junit.Test; import org.onap.sdc.gab.model.GABQuery; import org.onap.sdc.gab.model.GABQuery.GABQueryType; -import org.openecomp.sdc.be.model.jsonjanusgraph.operations.InterfaceOperation; -import org.openecomp.sdc.be.model.operations.api.IElementOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupInstanceOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupTypeOperation; -import org.openecomp.sdc.be.model.operations.impl.InterfaceLifecycleOperation; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; public class GenericArtifactBrowserBusinessLogicTest extends BaseBusinessLogicMock { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/GroupBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/GroupBusinessLogicTest.java index c5078a251d..aee08af2a8 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/GroupBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/GroupBusinessLogicTest.java @@ -29,13 +29,13 @@ */ package org.openecomp.sdc.be.components.impl; +import fj.data.Either; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; import org.openecomp.sdc.be.components.impl.policy.PolicyTargetsUpdateHandler; @@ -49,13 +49,13 @@ import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.model.Component; -import org.openecomp.sdc.be.model.Resource; -import org.openecomp.sdc.be.model.GroupTypeDefinition; import org.openecomp.sdc.be.model.DataTypeDefinition; import org.openecomp.sdc.be.model.GroupDefinition; import org.openecomp.sdc.be.model.GroupInstance; import org.openecomp.sdc.be.model.GroupInstanceProperty; +import org.openecomp.sdc.be.model.GroupTypeDefinition; import org.openecomp.sdc.be.model.PropertyDefinition; +import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache; import org.openecomp.sdc.be.model.jsonjanusgraph.datamodel.ToscaElementTypeEnum; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.GroupsOperation; @@ -69,23 +69,21 @@ import org.openecomp.sdc.common.api.Constants; import org.openecomp.sdc.common.impl.ExternalConfiguration; import org.openecomp.sdc.common.impl.FSConfigurationSource; import org.openecomp.sdc.exception.ResponseFormat; -import fj.data.Either; -import javax.servlet.ServletContext; import java.util.ArrayList; -import java.util.List; -import java.util.Map; import java.util.HashMap; import java.util.LinkedList; +import java.util.List; +import java.util.Map; import java.util.Set; import static java.util.Arrays.asList; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyMap; -import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.anyList; +import static org.mockito.ArgumentMatchers.anyMap; import static org.mockito.ArgumentMatchers.anyObject; +import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.when; @@ -114,10 +112,9 @@ public class GroupBusinessLogicTest { @Mock PolicyTargetsUpdateHandler policyTargetsUpdateHandler; - private final static ServletContext servletContext = Mockito.mock(ServletContext.class); - private final static ConfigurationManager configurationManager = Mockito.mock(ConfigurationManager.class); - private final static Configuration configuration = Mockito.mock(Configuration.class); - static ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be"); + static ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), + "src/test/resources/config/catalog-be"); + static ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); @Before public void setUp() throws Exception { @@ -187,8 +184,11 @@ public class GroupBusinessLogicTest { List<PropertyDataDefinition> properties = new LinkedList<>(); properties.add(new PropertyDataDefinition()); oldGroupInstance.setProperties(properties); - result = test.validateAndUpdateGroupInstancePropertyValues(componentId, instanceId, oldGroupInstance, newProperties); - Assert.assertTrue(result.isRight()); + try { + result = test.validateAndUpdateGroupInstancePropertyValues(componentId, instanceId, oldGroupInstance, newProperties); + }catch (ComponentException e){ + assertThat(e.getActionStatus()).isEqualTo(ActionStatus.GENERAL_ERROR); + } } @Test @@ -293,18 +293,20 @@ public class GroupBusinessLogicTest { } @Test - public void testDeleteGroup() throws Exception { + public void testDeleteGroup(){ Component component= new Resource(); + List<GroupDefinition> groupDefList = new ArrayList<>(); GroupDefinition updatedGroup = new GroupDefinition(); - List<GroupDefinition> grpdefList = new ArrayList<>(); updatedGroup.setName("GRP~01"); updatedGroup.setUniqueId("GRP.01"); - grpdefList.add(updatedGroup); + groupDefList.add(updatedGroup); component.setUniqueId("GRP.01"); - component.setGroups(grpdefList); + component.setGroups(groupDefList); + List<GroupDefinition> groupDefListCopy = new ArrayList<>(); + groupDefListCopy.add(updatedGroup); when(accessValidations.validateUserCanWorkOnComponent("compid", ComponentTypeEnum.SERVICE, "USR01", "DeleteGroup")).thenReturn(component); - when(groupsOperation.deleteGroups(anyObject(),anyList())).thenReturn(Either.left(grpdefList)); + when(groupsOperation.deleteGroups(anyObject(),anyList())).thenReturn(Either.left(groupDefListCopy)); when(groupsOperation.deleteCalculatedCapabilitiesWithProperties(anyString(), anyObject())).thenReturn(StorageOperationStatus.OK); when(policyTargetsUpdateHandler.removePoliciesTargets(anyObject(),anyString(),anyObject())).thenReturn(ActionStatus.OK); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ImportUtilsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ImportUtilsTest.java index b23b8abd1e..681e9cda95 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ImportUtilsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ImportUtilsTest.java @@ -20,8 +20,8 @@ package org.openecomp.sdc.be.components.impl; +import com.google.common.collect.Lists; import fj.data.Either; -import mockit.Mock; import org.junit.Test; import org.mockito.Mockito; import org.openecomp.sdc.be.components.impl.ImportUtils.ResultStatusEnum; @@ -30,8 +30,10 @@ import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition; import org.openecomp.sdc.be.datatypes.elements.SchemaDefinition; import org.openecomp.sdc.be.model.HeatParameterDefinition; import org.openecomp.sdc.be.model.InputDefinition; +import org.openecomp.sdc.be.model.PropertyConstraint; import org.openecomp.sdc.be.model.PropertyDefinition; import org.openecomp.sdc.be.model.operations.impl.AnnotationTypeOperations; +import org.openecomp.sdc.be.model.tosca.constraints.ValidValuesConstraint; import org.openecomp.sdc.be.utils.TypeUtils; import org.openecomp.sdc.common.api.ArtifactTypeEnum; import org.yaml.snakeyaml.Yaml; @@ -39,10 +41,10 @@ import org.yaml.snakeyaml.Yaml; import java.io.IOException; import java.nio.file.FileSystems; import java.nio.file.Files; -import java.util.*; -import java.util.Map.Entry; - -import static org.junit.Assert.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -241,6 +243,26 @@ public class ImportUtilsTest { } + // @Test + // public void testCreateFullHeatParameterModuleWithInvalidType(){ + // + // String name = "fullParameter"; + // String description = "description_text"; + // + // Map<String, Object> parametersMap = new HashMap<String, Object>(); + // Map<String, Object> firstParam = createParameterMap("aaa", "aaa", + // name, description); + // parametersMap.put(ToscaTagNamesEnum.PARAMETERS.getElementName(), + // firstParam); + // + // Either<List<HeatParameterDefinition>,ResultStatusEnum> heatParameters = + // ImportUtils.getHeatParameters(parametersMap); + // assertTrue(heatParameters.isRight()); + // assertEquals(ResultStatusEnum.INVALID_PROPERTY_TYPE, + // heatParameters.right().value()); + // + // } + @Test public void testCreateFullHeatParameterModuleWithMissingType() { @@ -302,6 +324,32 @@ public class ImportUtilsTest { } @Test + public void testGetPropertiesWithConstraintsFromYml() throws IOException { + + Map<String, Object> toscaJson = (Map<String, Object>) loadJsonFromFile("propertyConstraintsTest.yml"); + Either<Map<String, PropertyDefinition>, ResultStatusEnum> actualProperties = ImportUtils.getProperties(toscaJson); + assertTrue(actualProperties.isLeft()); + Map<String, PropertyDefinition> properties = actualProperties.left().value(); + assertTrue(properties.containsKey("service_type")); + PropertyDefinition property = properties.get("service_type"); + assertTrue(property.getConstraints()!= null && property.getConstraints().size() == 1); + assertTrue(property.getConstraints().get(0) instanceof ValidValuesConstraint); + assertTrue(((ValidValuesConstraint) property.getConstraints().get(0)).getValidValues() != null); + List<String> validValues = ((ValidValuesConstraint) property.getConstraints().get(0)).getValidValues(); + assertTrue(validValues.containsAll(Lists.newArrayList("firewall", "analyzer", "source-nat", "loadbalancer"))); + + assertTrue(properties.containsKey("service_interface_type_list")); + property = properties.get("service_interface_type_list"); + assertTrue(property.getSchema()!= null && property.getSchema().getProperty() != null); + PropertyDefinition innerProperty = new PropertyDefinition(property.getSchema().getProperty()); + List<PropertyConstraint> innerConstraints = innerProperty.getConstraints(); + assertTrue(innerConstraints.get(0) instanceof ValidValuesConstraint); + assertTrue(((ValidValuesConstraint) innerConstraints.get(0)).getValidValues() != null); + validValues = ((ValidValuesConstraint) innerConstraints.get(0)).getValidValues(); + assertTrue(validValues.containsAll(Lists.newArrayList("management", "left", "right", "other"))); + } + + @Test public void testGetInputsFromYml() throws IOException { Map<String, Object> toscaJson = (Map<String, Object>) loadJsonFromFile("importToscaInputs.yml"); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/InputsBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/InputsBusinessLogicTest.java index ab8061a49b..21b85bcc4e 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/InputsBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/InputsBusinessLogicTest.java @@ -17,16 +17,6 @@ package org.openecomp.sdc.be.components.impl; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyMap; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - import fj.data.Either; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.tuple.ImmutablePair; @@ -37,9 +27,12 @@ import org.mockito.Captor; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; +import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; import org.openecomp.sdc.be.components.property.PropertyDeclarationOrchestrator; import org.openecomp.sdc.be.components.utils.PropertyDataDefinitionBuilder; import org.openecomp.sdc.be.components.validation.UserValidations; +import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; @@ -66,7 +59,10 @@ import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade import org.openecomp.sdc.be.model.operations.api.IGraphLockOperation; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.model.operations.impl.PropertyOperation; -import org.openecomp.sdc.be.user.IUserBusinessLogic; +import org.openecomp.sdc.be.user.UserBusinessLogic; +import org.openecomp.sdc.common.api.ConfigurationSource; +import org.openecomp.sdc.common.impl.ExternalConfiguration; +import org.openecomp.sdc.common.impl.FSConfigurationSource; import org.openecomp.sdc.exception.ResponseFormat; import java.util.ArrayList; @@ -78,24 +74,37 @@ import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyMap; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + + public class InputsBusinessLogicTest { private static final String COMPONENT_INSTANCE_ID = "instanceId"; private static final String COMPONENT_ID = "componentId"; private static final String USER_ID = "userId"; - private static final String INSTANCE_INPUT_ID = "inputId"; + public static final String INSTANCE_INPUT_ID = "inputId"; private static final String LISTINPUT_NAME = "listInput"; private static final String LISTINPUT_SCHEMA_TYPE = "org.onap.datatypes.listinput"; private static final String LISTINPUT_PROP1_NAME = "prop1"; private static final String LISTINPUT_PROP1_TYPE = "string"; private static final String LISTINPUT_PROP2_NAME = "prop2"; private static final String LISTINPUT_PROP2_TYPE = "integer"; + static ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be"); + static ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); @Mock private ComponentsUtils componentsUtilsMock; @Mock - private IUserBusinessLogic userAdminMock; + private UserBusinessLogic userAdminMock; @Mock private ToscaOperationFacade toscaOperationFacadeMock; @@ -136,7 +145,7 @@ public class InputsBusinessLogicTest { private List<ComponentInstanceInput> inputsList; @Before - public void setUp() throws Exception { + public void setUp() { MockitoAnnotations.initMocks(this); service = new Service(); service.setUniqueId(COMPONENT_ID); @@ -165,13 +174,12 @@ public class InputsBusinessLogicTest { instanceInputMap.put(COMPONENT_INSTANCE_ID, inputsList); instanceInputMap.put("someInputId", Collections.singletonList(new ComponentInstanceInput())); service.setComponentInstancesInputs(instanceInputMap); - - when(userValidations.validateUserExists(eq(USER_ID), anyString(), eq(false))).thenReturn(new User()); - when(userAdminMock.getUser(USER_ID, false)).thenReturn(Either.left(new User())); + when(userValidations.validateUserExists(eq(USER_ID))).thenReturn(new User()); + when(userAdminMock.getUser(USER_ID, false)).thenReturn(new User()); } @Test - public void getComponentInstanceInputs_ComponentInstanceNotExist() throws Exception { + public void getComponentInstanceInputs_ComponentInstanceNotExist() { when(toscaOperationFacadeMock.getToscaElement(eq(COMPONENT_ID), any(ComponentParametersView.class))).thenReturn(Either.left(service)); Either<List<ComponentInstanceInput>, ResponseFormat> componentInstanceInputs = testInstance.getComponentInstanceInputs(USER_ID, COMPONENT_ID, "nonExisting"); assertTrue(componentInstanceInputs.isRight()); @@ -179,25 +187,25 @@ public class InputsBusinessLogicTest { } @Test - public void getComponentInstanceInputs_emptyInputsMap() throws Exception { + public void getComponentInstanceInputs_emptyInputsMap() { service.setComponentInstancesInputs(Collections.emptyMap()); getComponents_emptyInputs(service); } @Test - public void getComponentInstanceInputs_nullInputsMap() throws Exception { + public void getComponentInstanceInputs_nullInputsMap() { service.setComponentInstancesInputs(null); getComponents_emptyInputs(service); } @Test - public void getComponentInstanceInputs_instanceHasNoInputs() throws Exception { + public void getComponentInstanceInputs_instanceHasNoInputs() { service.setComponentInstancesInputs(Collections.singletonMap("someInputId", new ArrayList<>())); getComponents_emptyInputs(service); } @Test - public void getComponentInstanceInputs() throws Exception { + public void getComponentInstanceInputs() { when(toscaOperationFacadeMock.getToscaElement(eq(COMPONENT_ID), any(ComponentParametersView.class))).thenReturn(Either.left(service)); Either<List<ComponentInstanceInput>, ResponseFormat> componentInstanceInputs = testInstance.getComponentInstanceInputs(USER_ID, COMPONENT_ID, COMPONENT_INSTANCE_ID); assertEquals("inputId", componentInstanceInputs.left().value().get(0).getInputId()); @@ -343,7 +351,7 @@ public class InputsBusinessLogicTest { component.setComponentInstances(compinstancelist); when(toscaOperationFacadeMock.getToscaElement(eq(COMPONENT_ID), any(ComponentParametersView.class))).thenReturn(Either.left(component)); when(componentInstanceBusinessLogic.getComponentInstancePropertiesByInputId(any(Component.class),eq("INPO1"))).thenReturn(compinstancelist); - //when(toscaOperationFacadeMock.getToscaElement(eq("RES0.1"), Mockito.any(ComponentParametersView.class))).thenReturn(Either.right(StorageOperationStatus.ARTIFACT_NOT_FOUND)); + //when(toscaOperationFacadeMock.getToscaElement(eq("RES0.1"), any(ComponentParametersView.class))).thenReturn(Either.right(StorageOperationStatus.ARTIFACT_NOT_FOUND)); when(toscaOperationFacadeMock.getToscaElement(eq("RES0.1"), any(ComponentParametersView.class))).thenReturn(Either.left(component)); Either<List<ComponentInstanceProperty>, ResponseFormat> responseFormatEither = testInstance.getComponentInstancePropertiesByInputId("USR01", COMPONENT_ID,"INST0.1", "INPO1"); assertEquals(compinstancelist,responseFormatEither.left().value()); @@ -492,20 +500,31 @@ public class InputsBusinessLogicTest { public void test_createListInput_fail_getComponent() throws Exception { ComponentInstListInput createListInputParams = setUpCreateListInputParams(); when(toscaOperationFacadeMock.getToscaElement(eq(COMPONENT_ID), any(ComponentParametersView.class))).thenReturn(Either.right(StorageOperationStatus.NOT_FOUND)); - Either<List<InputDefinition>, ResponseFormat> result = - testInstance.createListInput(USER_ID, COMPONENT_ID, ComponentTypeEnum.SERVICE, createListInputParams, true, false); - assertEquals(true, result.isRight()); + when(componentsUtilsMock.convertFromStorageResponse(StorageOperationStatus.NOT_FOUND, ComponentTypeEnum.SERVICE)).thenReturn(ActionStatus.SERVICE_NOT_FOUND); + try{ + testInstance.createListInput(USER_ID, COMPONENT_ID, ComponentTypeEnum.SERVICE, createListInputParams, true, false); + } catch (ByActionStatusComponentException e) { + assertEquals(ActionStatus.SERVICE_NOT_FOUND, e.getActionStatus()); + return; + } + fail(); } @Test public void test_createListInput_fail_lockComponent() throws Exception { ComponentInstListInput createListInputParams = setUpCreateListInputParams(); + when(componentsUtilsMock.convertFromStorageResponse(StorageOperationStatus.FAILED_TO_LOCK_ELEMENT, ComponentTypeEnum.SERVICE)).thenReturn(ActionStatus.COMPONENT_IN_USE); when(toscaOperationFacadeMock.getToscaElement(eq(COMPONENT_ID), any(ComponentParametersView.class))).thenReturn(Either.left(service)); when(graphLockOperation.lockComponent(COMPONENT_ID, NodeTypeEnum.Service)).thenReturn(StorageOperationStatus.FAILED_TO_LOCK_ELEMENT); - Either<List<InputDefinition>, ResponseFormat> result = - testInstance.createListInput(USER_ID, COMPONENT_ID, ComponentTypeEnum.SERVICE, createListInputParams, true, false); - assertEquals(true, result.isRight()); + try { + Either<List<InputDefinition>, ResponseFormat> result = + testInstance.createListInput(USER_ID, COMPONENT_ID, ComponentTypeEnum.SERVICE, createListInputParams, true, false); + } catch (ByActionStatusComponentException e) { + assertEquals(ActionStatus.COMPONENT_IN_USE, e.getActionStatus()); + return; + } + fail(); } @Test @@ -518,13 +537,16 @@ public class InputsBusinessLogicTest { when(toscaOperationFacadeMock.addDataTypesToComponent(dataTypesMapCaptor.capture(), eq(COMPONENT_ID))).thenReturn(Either.left(new ArrayList<>())); when(propertyDeclarationOrchestrator.getPropOwnerId(componentInstInputsMap)).thenReturn(COMPONENT_INSTANCE_ID); when(applicationDataTypeCache.getAll()).thenReturn(Either.right(JanusGraphOperationStatus.NOT_FOUND)); - when(componentsUtilsMock.getResponseFormat(ActionStatus.DATA_TYPE_CANNOT_BE_EMPTY)).thenReturn(new ResponseFormat()); - Either<List<InputDefinition>, ResponseFormat> result = - testInstance.createListInput(USER_ID, COMPONENT_ID, ComponentTypeEnum.SERVICE, createListInputParams, true, false); - assertEquals(true, result.isRight()); - verify(applicationDataTypeCache, times(1)).getAll(); - verify(componentsUtilsMock, times(1)).getResponseFormat(ActionStatus.DATA_TYPE_CANNOT_BE_EMPTY); + try { + Either<List<InputDefinition>, ResponseFormat> result = + testInstance.createListInput(USER_ID, COMPONENT_ID, ComponentTypeEnum.SERVICE, createListInputParams, true, false); + } catch (ByActionStatusComponentException e) { + assertEquals(ActionStatus.DATA_TYPE_CANNOT_BE_EMPTY, e.getActionStatus()); + verify(applicationDataTypeCache, times(1)).getAll(); + return; + } + fail(); } @Test @@ -575,11 +597,16 @@ public class InputsBusinessLogicTest { //ComponentInstListInput createListInputParams = setUpCreateListInputParams(); when(toscaOperationFacadeMock.getToscaElement(eq(COMPONENT_ID), any(ComponentParametersView.class))) .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND)); - when(componentsUtilsMock.getResponseFormat(any(ActionStatus.class))).thenReturn(new ResponseFormat()); + when(componentsUtilsMock.convertFromStorageResponse(StorageOperationStatus.NOT_FOUND)).thenReturn(ActionStatus.RESOURCE_NOT_FOUND); - Either<InputDefinition, ResponseFormat> result = testInstance.deleteInput(COMPONENT_ID, USER_ID, LISTINPUT_NAME); - assertEquals(true, result.isRight()); - verify(toscaOperationFacadeMock, times(1)).getToscaElement(eq(COMPONENT_ID), any(ComponentParametersView.class)); + try { + testInstance.deleteInput(COMPONENT_ID, USER_ID, LISTINPUT_NAME); + } catch (ComponentException e) { + assertEquals(ActionStatus.RESOURCE_NOT_FOUND, e.getActionStatus()); + verify(toscaOperationFacadeMock, times(1)).getToscaElement(eq(COMPONENT_ID), any(ComponentParametersView.class)); + return; + } + fail(); } @@ -594,11 +621,15 @@ public class InputsBusinessLogicTest { when(toscaOperationFacadeMock.getToscaElement(eq(COMPONENT_ID), any(ComponentParametersView.class))) .thenReturn(Either.left(service)); - when(componentsUtilsMock.getResponseFormat(any(ActionStatus.class))).thenReturn(new ResponseFormat()); - Either<InputDefinition, ResponseFormat> result = testInstance.deleteInput(COMPONENT_ID, USER_ID, NONEXIST_INPUT_NAME); - assertEquals(true, result.isRight()); - verify(toscaOperationFacadeMock, times(1)).getToscaElement(eq(COMPONENT_ID), any(ComponentParametersView.class)); + try { + testInstance.deleteInput(COMPONENT_ID, USER_ID, NONEXIST_INPUT_NAME); + } catch (ComponentException e) { + assertEquals(ActionStatus.INPUT_IS_NOT_CHILD_OF_COMPONENT, e.getActionStatus()); + verify(toscaOperationFacadeMock, times(1)).getToscaElement(eq(COMPONENT_ID), any(ComponentParametersView.class)); + return; + } + fail(); } @@ -611,13 +642,18 @@ public class InputsBusinessLogicTest { when(toscaOperationFacadeMock.getToscaElement(eq(COMPONENT_ID), any(ComponentParametersView.class))) .thenReturn(Either.left(service)); - //when(componentsUtilsMock.getResponseFormat(any())).thenReturn(new ResponseFormat()); when(graphLockOperation.lockComponent(COMPONENT_ID, NodeTypeEnum.Service)).thenReturn(StorageOperationStatus.NOT_FOUND); + when(componentsUtilsMock.convertFromStorageResponse(StorageOperationStatus.NOT_FOUND, ComponentTypeEnum.SERVICE)).thenReturn(ActionStatus.SERVICE_NOT_FOUND); - Either<InputDefinition, ResponseFormat> result = testInstance.deleteInput(COMPONENT_ID, USER_ID, inputId); - assertEquals(true, result.isRight()); - verify(toscaOperationFacadeMock, times(1)).getToscaElement(eq(COMPONENT_ID), any(ComponentParametersView.class)); - verify(graphLockOperation, times(1)).lockComponent(COMPONENT_ID, NodeTypeEnum.Service); + try { + testInstance.deleteInput(COMPONENT_ID, USER_ID, inputId); + } catch (ComponentException e) { + assertEquals(ActionStatus.SERVICE_NOT_FOUND, e.getActionStatus()); + verify(toscaOperationFacadeMock, times(1)).getToscaElement(eq(COMPONENT_ID), any(ComponentParametersView.class)); + verify(graphLockOperation, times(1)).lockComponent(COMPONENT_ID, NodeTypeEnum.Service); + return; + } + fail(); } @@ -632,13 +668,18 @@ public class InputsBusinessLogicTest { .thenReturn(Either.left(service)); when(graphLockOperation.lockComponent(COMPONENT_ID, NodeTypeEnum.Service)).thenReturn(StorageOperationStatus.OK); when(toscaOperationFacadeMock.deleteInputOfResource(service, listInput.getName())).thenReturn(StorageOperationStatus.BAD_REQUEST); - when(componentsUtilsMock.getResponseFormat(any(ActionStatus.class))).thenReturn(new ResponseFormat()); + when(componentsUtilsMock.convertFromStorageResponse(StorageOperationStatus.BAD_REQUEST)).thenReturn(ActionStatus.INVALID_CONTENT); - Either<InputDefinition, ResponseFormat> result = testInstance.deleteInput(COMPONENT_ID, USER_ID, inputId); - assertEquals(true, result.isRight()); - verify(toscaOperationFacadeMock, times(1)).getToscaElement(eq(COMPONENT_ID), any(ComponentParametersView.class)); - verify(graphLockOperation, times(1)).lockComponent(COMPONENT_ID, NodeTypeEnum.Service); - verify(toscaOperationFacadeMock, times(1)).deleteInputOfResource(service, listInput.getName()); + try { + testInstance.deleteInput(COMPONENT_ID, USER_ID, inputId); + } catch (ComponentException e) { + assertEquals(ActionStatus.INVALID_CONTENT, e.getActionStatus()); + verify(toscaOperationFacadeMock, times(1)).getToscaElement(eq(COMPONENT_ID), any(ComponentParametersView.class)); + verify(graphLockOperation, times(1)).lockComponent(COMPONENT_ID, NodeTypeEnum.Service); + verify(toscaOperationFacadeMock, times(1)).deleteInputOfResource(service, listInput.getName()); + return; + } + fail(); } @@ -655,14 +696,11 @@ public class InputsBusinessLogicTest { .thenReturn(Either.left(service)); when(graphLockOperation.lockComponent(COMPONENT_ID, NodeTypeEnum.Service)).thenReturn(StorageOperationStatus.OK); when(toscaOperationFacadeMock.deleteInputOfResource(service, listInput.getName())).thenReturn(StorageOperationStatus.OK); - //when(componentsUtilsMock.getResponseFormat(any())).thenReturn(new ResponseFormat()); when(propertyDeclarationOrchestrator.unDeclarePropertiesAsListInputs(service, listInput)).thenReturn(StorageOperationStatus.OK); when(dataTypeBusinessLogic.deletePrivateDataType(eq(service), schemaTypeCaptor.capture())) - .thenReturn(Either.left(new DataTypeDefinition())); // TODO: replace to return proper datatype - //when(propertyDeclarationOrchestrator.unDeclarePropertiesAsInputs(service, listInput)).thenReturn(StorageOperationStatus.OK); + .thenReturn(Either.left(new DataTypeDefinition())); - Either<InputDefinition, ResponseFormat> result = testInstance.deleteInput(COMPONENT_ID, USER_ID, inputId); - assertEquals(true, result.isLeft()); + testInstance.deleteInput(COMPONENT_ID, USER_ID, inputId); verify(propertyDeclarationOrchestrator, times(1)).unDeclarePropertiesAsListInputs(service, listInput); verify(dataTypeBusinessLogic, times(1)).deletePrivateDataType(service, listInput.getSchemaType()); assertEquals(listInput.getSchemaType(), schemaTypeCaptor.getValue()); @@ -681,12 +719,17 @@ public class InputsBusinessLogicTest { .thenReturn(Either.left(service)); when(graphLockOperation.lockComponent(COMPONENT_ID, NodeTypeEnum.Service)).thenReturn(StorageOperationStatus.OK); when(toscaOperationFacadeMock.deleteInputOfResource(service, listInput.getName())).thenReturn(StorageOperationStatus.OK); - //when(componentsUtilsMock.getResponseFormat(any())).thenReturn(new ResponseFormat()); when(propertyDeclarationOrchestrator.unDeclarePropertiesAsInputs(service, listInput)).thenReturn(StorageOperationStatus.BAD_REQUEST); + when(componentsUtilsMock.convertFromStorageResponse(StorageOperationStatus.BAD_REQUEST)).thenReturn(ActionStatus.INVALID_CONTENT); - Either<InputDefinition, ResponseFormat> result = testInstance.deleteInput(COMPONENT_ID, USER_ID, inputId); - assertEquals(true, result.isRight()); - verify(propertyDeclarationOrchestrator, times(1)).unDeclarePropertiesAsInputs(service, listInput); + try { + testInstance.deleteInput(COMPONENT_ID, USER_ID, inputId); + } catch (ComponentException e) { + assertEquals(ActionStatus.INVALID_CONTENT, e.getActionStatus()); + verify(propertyDeclarationOrchestrator, times(1)).unDeclarePropertiesAsInputs(service, listInput); + return; + } + fail(); } @@ -702,11 +745,9 @@ public class InputsBusinessLogicTest { .thenReturn(Either.left(service)); when(graphLockOperation.lockComponent(COMPONENT_ID, NodeTypeEnum.Service)).thenReturn(StorageOperationStatus.OK); when(toscaOperationFacadeMock.deleteInputOfResource(service, listInput.getName())).thenReturn(StorageOperationStatus.OK); - //when(componentsUtilsMock.getResponseFormat(any())).thenReturn(new ResponseFormat()); when(propertyDeclarationOrchestrator.unDeclarePropertiesAsInputs(service, listInput)).thenReturn(StorageOperationStatus.OK); - Either<InputDefinition, ResponseFormat> result = testInstance.deleteInput(COMPONENT_ID, USER_ID, inputId); - assertEquals(true, result.isLeft()); + testInstance.deleteInput(COMPONENT_ID, USER_ID, inputId); verify(propertyDeclarationOrchestrator, times(1)).unDeclarePropertiesAsInputs(service, listInput); } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/InterfaceOperationBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/InterfaceOperationBusinessLogicTest.java index ee40b0bdab..d03ebb205d 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/InterfaceOperationBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/InterfaceOperationBusinessLogicTest.java @@ -16,20 +16,6 @@ package org.openecomp.sdc.be.components.impl; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyBoolean; -import static org.mockito.ArgumentMatchers.anyMap; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.when; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import fj.data.Either; import org.junit.Assert; import org.junit.Before; @@ -39,13 +25,15 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; +import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException; import org.openecomp.sdc.be.components.utils.ResourceBuilder; import org.openecomp.sdc.be.components.validation.InterfaceOperationValidation; import org.openecomp.sdc.be.components.validation.UserValidations; +import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.cassandra.ArtifactCassandraDao; import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus; -import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.datatypes.elements.SchemaDefinition; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; @@ -66,6 +54,20 @@ import org.openecomp.sdc.be.model.operations.impl.InterfaceLifecycleOperation; import org.openecomp.sdc.exception.ResponseFormat; import org.openecomp.sdc.test.utils.InterfaceOperationTestUtils; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static org.junit.Assert.fail; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.ArgumentMatchers.anyMap; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.when; + @RunWith(MockitoJUnitRunner.class) public class InterfaceOperationBusinessLogicTest { @@ -117,7 +119,6 @@ public class InterfaceOperationBusinessLogicTest { resource.setInputs(createInputsForResource()); user = new User(); - when(userValidations.validateUserExists(eq(user.getUserId()), anyString(), eq(true))).thenReturn(user); when(toscaOperationFacade.getToscaElement(resourceId)).thenReturn(Either.left(resource)); when(graphLockOperation.lockComponent(Mockito.anyString(), eq(NodeTypeEnum.Resource))) .thenReturn(StorageOperationStatus.OK); @@ -373,6 +374,54 @@ public class InterfaceOperationBusinessLogicTest { } @Test + public void shouldFailOnDeleteInterfaceWhenLockComponentFailedTest() { + when(graphLockOperation.lockComponent(Mockito.anyString(), eq(NodeTypeEnum.Resource))) + .thenReturn(StorageOperationStatus.NOT_FOUND); + when(componentsUtils.convertFromStorageResponse(StorageOperationStatus.NOT_FOUND, ComponentTypeEnum.RESOURCE)).thenReturn(ActionStatus.RESOURCE_NOT_FOUND); + try{ + interfaceOperationBusinessLogic.deleteInterfaceOperation(resourceId, interfaceId, + Collections.singletonList(operationId), user, true); + } catch (ByActionStatusComponentException e){ + Assert.assertEquals(ActionStatus.RESOURCE_NOT_FOUND, e.getActionStatus()); + return; + } + fail(); + } + + @Test + public void shouldFailOnGetInterfaceWhenLockComponentFailedTest() { + when(graphLockOperation.lockComponent(Mockito.anyString(), eq(NodeTypeEnum.Resource))) + .thenReturn(StorageOperationStatus.NOT_FOUND); + when(componentsUtils.convertFromStorageResponse(StorageOperationStatus.NOT_FOUND, ComponentTypeEnum.RESOURCE)).thenReturn(ActionStatus.RESOURCE_NOT_FOUND); + try{ + interfaceOperationBusinessLogic.getInterfaceOperation(resourceId, interfaceId, + Collections.singletonList(operationId), user, true); + } catch (ByActionStatusComponentException e){ + Assert.assertEquals(ActionStatus.RESOURCE_NOT_FOUND, e.getActionStatus()); + return; + } + fail(); + } + + @Test + public void shouldFailOnCreateInterfaceWhenLockComponentFailedTest() { + when(graphLockOperation.lockComponent(Mockito.anyString(), eq(NodeTypeEnum.Resource))) + .thenReturn(StorageOperationStatus.NOT_FOUND); + when(componentsUtils.convertFromStorageResponse(StorageOperationStatus.NOT_FOUND, ComponentTypeEnum.RESOURCE)).thenReturn(ActionStatus.RESOURCE_NOT_FOUND); + try{ + interfaceOperationBusinessLogic.createInterfaceOperation(resourceId, + Collections.singletonList(InterfaceOperationTestUtils.createMockInterface(interfaceId, operationId, operationName)), + user, true); + } catch (ByActionStatusComponentException e){ + Assert.assertEquals(ActionStatus.RESOURCE_NOT_FOUND, e.getActionStatus()); + return; + } + fail(); + + } + + + @Test public void deleteInterfaceOperationTestFailOnArtifactDeletion() { when(artifactToscaOperation.getArtifactById(any(), any())).thenReturn(Either.left(new ArtifactDefinition())); when(artifactToscaOperation.removeArifactFromResource(any(), any(), any(), anyBoolean())) @@ -443,19 +492,6 @@ public class InterfaceOperationBusinessLogicTest { } @Test - public void shouldFailWhenLockComponentFailedTest() { - when(graphLockOperation.lockComponent(Mockito.anyString(), eq(NodeTypeEnum.Resource))) - .thenReturn(StorageOperationStatus.NOT_FOUND); - Assert.assertTrue(interfaceOperationBusinessLogic.deleteInterfaceOperation(resourceId, interfaceId, - Collections.singletonList(operationId), user, true).isRight()); - Assert.assertTrue(interfaceOperationBusinessLogic.getInterfaceOperation(resourceId, interfaceId, - Collections.singletonList(operationId), user, true).isRight()); - Assert.assertTrue(interfaceOperationBusinessLogic.createInterfaceOperation(resourceId, - Collections.singletonList(InterfaceOperationTestUtils.createMockInterface(interfaceId, operationId, operationName)), - user, true).isRight()); - } - - @Test public void shouldFailWhenGetComponentFailedTest() { when(toscaOperationFacade.getToscaElement(resourceId)) .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND)); @@ -490,4 +526,7 @@ public class InterfaceOperationBusinessLogicTest { interfaceOperationBusinessLogic.getAllInterfaceLifecycleTypes(); Assert.assertEquals(1, response.left().value().size()); } + + + }
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/MonitoringBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/MonitoringBusinessLogicTest.java deleted file mode 100644 index c2dacb6d7d..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/MonitoringBusinessLogicTest.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * - - * * ============LICENSE_START======================================================= - * * Copyright (C) 2019 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. - * * - * * SPDX-License-Identifier: Apache-2.0 - * * ============LICENSE_END========================================================= - * - */ - -package org.openecomp.sdc.be.components.impl; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.sdc.be.dao.api.ActionStatus; -import org.openecomp.sdc.be.dao.impl.MonitoringDao; -import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.common.monitoring.MonitoringEvent; -import org.openecomp.sdc.exception.ResponseFormat; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.when; - -public class MonitoringBusinessLogicTest { - - private MonitoringEvent event; - - @InjectMocks - MonitoringBusinessLogic monitoringBusinessLogic; - - @Mock - private MonitoringDao monitoringDao; - - @Mock - private ComponentsUtils componentsUtils; - - @Before - public void setUp() throws Exception { - monitoringBusinessLogic = new MonitoringBusinessLogic(); - MockitoAnnotations.initMocks(this); - event = new MonitoringEvent(); - } - - @Test - public void testLogMonitoringEvent_returnsSuccessful() { - Mockito.when(monitoringDao.addRecord(any(MonitoringEvent.class))).thenReturn(ActionStatus.OK); - assertTrue(monitoringBusinessLogic.logMonitoringEvent(event).isLeft()); - } - - @Test - public void testLogMonitoringEvent_returnsError() { - Mockito.when(monitoringDao.addRecord(any(MonitoringEvent.class))).thenReturn(ActionStatus.GENERAL_ERROR); - Mockito.when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(new ResponseFormat()); - assertTrue(monitoringBusinessLogic.logMonitoringEvent(event).isRight()); - } - - @Test - public void testGetEsPort(){ - when(monitoringDao.getEsPort()).thenReturn("10"); - String port = monitoringBusinessLogic.getEsPort(); - assertEquals("10", port); - } - - @Test - public void testGetHost(){ - Mockito.when(monitoringDao.getEsHost()).thenReturn("['127.0.0.1', '[::1]']"); - assertEquals("127.0.0.1", monitoringBusinessLogic.getEsHost()); - } -}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/NodeFilterUploadCreatorTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/NodeFilterUploadCreatorTest.java index 915139ee92..eed88af26f 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/NodeFilterUploadCreatorTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/NodeFilterUploadCreatorTest.java @@ -16,12 +16,6 @@ package org.openecomp.sdc.be.components.impl; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import java.util.List; -import java.util.Map; import org.apache.commons.collections4.MapUtils; import org.junit.Test; import org.onap.sdc.tosca.services.YamlUtil; @@ -29,6 +23,13 @@ import org.openecomp.sdc.be.model.UploadNodeFilterCapabilitiesInfo; import org.openecomp.sdc.be.model.UploadNodeFilterInfo; import org.openecomp.sdc.be.model.UploadNodeFilterPropertyInfo; +import java.util.List; +import java.util.Map; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + public class NodeFilterUploadCreatorTest { @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/PolicyBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/PolicyBusinessLogicTest.java index fcf4e643e9..82b49fffa7 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/PolicyBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/PolicyBusinessLogicTest.java @@ -17,24 +17,8 @@ package org.openecomp.sdc.be.components.impl; -import static org.assertj.core.api.Java6Assertions.assertThat; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyBoolean; -import static org.mockito.ArgumentMatchers.anyMap; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.when; - import fj.data.Either; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; import org.apache.commons.collections.CollectionUtils; -import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; @@ -44,6 +28,7 @@ import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; import org.openecomp.sdc.be.components.property.PropertyDeclarationOrchestrator; import org.openecomp.sdc.be.components.utils.ComponentInstanceBuilder; import org.openecomp.sdc.be.components.utils.GroupDefinitionBuilder; @@ -57,6 +42,7 @@ import org.openecomp.sdc.be.datatypes.elements.PolicyTargetType; import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; +import org.openecomp.sdc.be.datatypes.enums.PromoteVersionEnum; import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.model.Component; @@ -82,6 +68,22 @@ import org.openecomp.sdc.common.impl.ExternalConfiguration; import org.openecomp.sdc.common.impl.FSConfigurationSource; import org.openecomp.sdc.exception.ResponseFormat; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static org.assertj.core.api.Java6Assertions.assertThat; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.ArgumentMatchers.anyMap; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.when; + @RunWith(MockitoJUnitRunner.class) public class PolicyBusinessLogicTest { @@ -172,14 +174,14 @@ public class PolicyBusinessLogicTest { when(policyTypeOperation.getLatestPolicyTypeByType(eq(POLICY_TYPE_NAME))).thenReturn(getPolicyTypeSuccessEither); when(toscaOperationFacade.associatePolicyToComponent(eq(COMPONENT_ID), any(PolicyDefinition.class), eq(0))).thenReturn(policySuccessEither); stubUnlockAndCommit(); - Either<PolicyDefinition, ResponseFormat> response = businessLogic.createPolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_TYPE_NAME, USER_ID, true); - assertTrue(response.isLeft()); + PolicyDefinition response = businessLogic.createPolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_TYPE_NAME, USER_ID, true); + assertTrue(!response.isEmpty()); } @Test public void createPolicyUserFailureTest(){ ByActionStatusComponentException userNotFoundException = new ByActionStatusComponentException(ActionStatus.USER_NOT_FOUND); - when(userValidations.validateUserExists(eq(USER_ID), eq(CREATE_POLICY), eq(false))).thenThrow(userNotFoundException); + when(userValidations.validateUserExists(eq(USER_ID))).thenThrow(userNotFoundException); stubRollback(); try{ businessLogic.createPolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_TYPE_NAME, USER_ID, true); @@ -191,77 +193,67 @@ public class PolicyBusinessLogicTest { private void assertNotFound(Either<PolicyDefinition, ResponseFormat> response) { assertTrue(response.isRight() && response.right().value().getStatus().equals(404)); } - - @Test + + @Test(expected = ComponentException.class) public void createPolicyComponentFailureTest(){ - when(userValidations.validateUserExists(eq(USER_ID), eq(CREATE_POLICY), eq(false))).thenReturn(user); + when(userValidations.validateUserExists(eq(USER_ID))).thenReturn(user); Either<Component, StorageOperationStatus> componentNotFoundResponse = Either.right(StorageOperationStatus.NOT_FOUND); when(componentsUtils.convertFromStorageResponse(eq(StorageOperationStatus.NOT_FOUND), eq(ComponentTypeEnum.RESOURCE))).thenReturn(ActionStatus.RESOURCE_NOT_FOUND); - when(componentsUtils.getResponseFormat(eq(ActionStatus.RESOURCE_NOT_FOUND), anyString())).thenReturn(notFoundResponse); when(toscaOperationFacade.getToscaElement(eq(COMPONENT_ID), any(ComponentParametersView.class))).thenReturn(componentNotFoundResponse); - Either<PolicyDefinition, ResponseFormat> response = businessLogic.createPolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_TYPE_NAME, USER_ID, true); - assertNotFound(response); + businessLogic.createPolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_TYPE_NAME, USER_ID, true); } - @Test + @Test(expected = ComponentException.class) public void createPolicyPolicyTypeFailureTest(){ stubValidateAndLockSuccess(CREATE_POLICY); Either<PolicyTypeDefinition, StorageOperationStatus> getPolicyTypeFailed = Either.right(StorageOperationStatus.NOT_FOUND); when(policyTypeOperation.getLatestPolicyTypeByType(eq(POLICY_TYPE_NAME))).thenReturn(getPolicyTypeFailed); when(componentsUtils.convertFromStorageResponse(eq(getPolicyTypeFailed.right().value()))).thenReturn(ActionStatus.RESOURCE_NOT_FOUND); - when(componentsUtils.getResponseFormat(eq(ActionStatus.RESOURCE_NOT_FOUND))).thenReturn(notFoundResponse); stubUnlockAndRollback(); - Either<PolicyDefinition, ResponseFormat> response = businessLogic.createPolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_TYPE_NAME, USER_ID, true); - assertNotFound(response); + businessLogic.createPolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_TYPE_NAME, USER_ID, true); } - @Test + @Test(expected = ComponentException.class) public void createPolicyComponentTypeFailureTest(){ stubValidateAndLockSuccess(CREATE_POLICY); when(policyTypeOperation.getLatestPolicyTypeByType(eq(POLICY_TYPE_NAME))).thenReturn(getPolicyTypeSuccessEither); Either<PolicyDefinition, StorageOperationStatus> addPolicyRes = Either.right(StorageOperationStatus.BAD_REQUEST); when(toscaOperationFacade.associatePolicyToComponent(eq(COMPONENT_ID), any(PolicyDefinition.class), eq(0))).thenReturn(addPolicyRes); when(componentsUtils.convertFromStorageResponse(eq(addPolicyRes.right().value()))).thenReturn(ActionStatus.INVALID_CONTENT); - when(componentsUtils.getResponseFormat(eq(ActionStatus.INVALID_CONTENT))).thenReturn(invalidContentResponse); stubUnlockAndRollback(); - Either<PolicyDefinition, ResponseFormat> response = businessLogic.createPolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_TYPE_NAME, USER_ID, true); - assertTrue(response.isRight() && response.right().value().getStatus().equals(400)); + businessLogic.createPolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_TYPE_NAME, USER_ID, true); } @Test public void updatePolicySuccessTest(){ stubValidateAndLockSuccess(CREATE_POLICY); - when(toscaOperationFacade.updatePolicyOfComponent(eq(COMPONENT_ID), any(PolicyDefinition.class))).thenReturn(policySuccessEither); + when(toscaOperationFacade.updatePolicyOfComponent(eq(COMPONENT_ID), any(PolicyDefinition.class), any(PromoteVersionEnum.class))).thenReturn(policySuccessEither); stubUnlockAndCommit(); - Either<PolicyDefinition, ResponseFormat> response = businessLogic.updatePolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, otherPolicy, USER_ID, true); - assertTrue(response.isLeft()); + PolicyDefinition response = businessLogic.updatePolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, otherPolicy, USER_ID, true); + assertTrue(!response.isEmpty()); } - @Test + @Test(expected = ComponentException.class) public void updatePolicyNameFailureTest(){ stubValidateAndLockSuccess(CREATE_POLICY); - when(componentsUtils.getResponseFormat(eq(ActionStatus.POLICY_NAME_ALREADY_EXIST), eq(POLICY_NAME))).thenReturn(nameExistsResponse); stubUnlockAndRollback(); - Either<PolicyDefinition, ResponseFormat> response = businessLogic.updatePolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, policy, USER_ID, true); - assertTrue(response.isRight() && response.right().value().getStatus().equals(409)); + businessLogic.updatePolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, policy, USER_ID, true); } @Test public void getPolicySuccessTest(){ stubValidationSuccess(CREATE_POLICY); stubCommit(); - Either<PolicyDefinition, ResponseFormat> response = businessLogic.getPolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, USER_ID); - assertTrue(response.isLeft()); + PolicyDefinition response = businessLogic.getPolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, USER_ID); + assertTrue(!response.isEmpty()); } - @Test + @Test(expected = ComponentException.class) public void getPolicyFailureTest(){ stubValidationSuccess(CREATE_POLICY); stubRollback(); - when(componentsUtils.getResponseFormat(eq(ActionStatus.POLICY_NOT_FOUND_ON_CONTAINER), eq(INVALID_POLICY_ID), eq(COMPONENT_ID))).thenReturn(notFoundResponse); - Either<PolicyDefinition, ResponseFormat> response = businessLogic.getPolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, INVALID_POLICY_ID, USER_ID); - assertTrue(response.isRight() && response.right().value().getStatus().equals(404)); + businessLogic.getPolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, INVALID_POLICY_ID, USER_ID); } @Test @@ -269,23 +261,17 @@ public class PolicyBusinessLogicTest { stubValidateAndLockSuccess(CREATE_POLICY); stubCommit(); when(toscaOperationFacade.removePolicyFromComponent(eq(COMPONENT_ID),eq(POLICY_ID))).thenReturn(StorageOperationStatus.OK); - when(propertyDeclarationOrchestrator.unDeclarePropertiesAsPolicies(any(), any())).thenReturn(StorageOperationStatus.OK); - Either<PolicyDefinition, ResponseFormat> response = businessLogic.deletePolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, USER_ID, true); - assertTrue(response.isLeft()); + PolicyDefinition response = businessLogic.deletePolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, USER_ID, true); + assertTrue(!response.isEmpty()); } - @Test + @Test(expected = ComponentException.class) public void deletePolicyFailureTest(){ stubValidateAndLockSuccess(CREATE_POLICY); stubCommit(); - stubComponentUtilsGetResponsePOLICY_NOT_FOUND_ON_CONTAINER(); - Either<PolicyDefinition, ResponseFormat> response = businessLogic.deletePolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, INVALID_POLICY_ID, USER_ID, true); - assertNotFound(response); + businessLogic.deletePolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, INVALID_POLICY_ID, USER_ID, true); } - private void stubComponentUtilsGetResponsePOLICY_NOT_FOUND_ON_CONTAINER() { - when(componentsUtils.getResponseFormat(eq(ActionStatus.POLICY_NOT_FOUND_ON_CONTAINER), anyString(), anyString())).thenReturn(new ResponseFormat(404)); - } @Test public void updatePolicyPropertiesSuccessTest(){ @@ -295,13 +281,12 @@ public class PolicyBusinessLogicTest { String prop2 = "Type"; when(propertyOperation.validateAndUpdatePropertyValue(eq(null), eq(prop1), anyBoolean(), eq(null), anyMap())).thenReturn(Either.left(prop1)); when(propertyOperation.validateAndUpdatePropertyValue(eq(null), eq(prop2), anyBoolean(), eq(null), anyMap())).thenReturn(Either.left(prop2)); - when(toscaOperationFacade.updatePolicyOfComponent(eq(COMPONENT_ID), any(PolicyDefinition.class))).thenReturn(policySuccessEither); + when(toscaOperationFacade.updatePolicyOfComponent(eq(COMPONENT_ID), any(PolicyDefinition.class), any(PromoteVersionEnum.class))).thenReturn(policySuccessEither); stubUnlockAndCommit(); PropertyDataDefinition[] properties = getProperties(prop1, prop2); policy.setProperties(Arrays.asList(properties)); - Either<List<PropertyDataDefinition>, ResponseFormat> response = businessLogic.updatePolicyProperties(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, properties , USER_ID, true); - assertTrue(response.isLeft()); - List<PropertyDataDefinition> updatedProperties = response.left().value(); + List<PropertyDataDefinition> response = businessLogic.updatePolicyProperties(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, properties , USER_ID, true); + List<PropertyDataDefinition> updatedProperties = response; assertThat(updatedProperties.size()).isEqualTo(2); } @@ -311,65 +296,46 @@ public class PolicyBusinessLogicTest { stubGetToscaFullElementSuccess(); stubUpdatePolicyOfComponentSuccess(); stubGetToscaElementSuccess(); - Either<PolicyDefinition, ResponseFormat> result = businessLogic.updatePolicyTargets(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, getTargets(), USER_ID); - Assert.assertTrue(result.isLeft()); - PolicyDefinition policyResult = result.left().value(); + PolicyDefinition policyResult = businessLogic.updatePolicyTargets(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, getTargets(), USER_ID); Map<PolicyTargetType, List<String>> targets = getTargets(); assertThat(policyResult.getTargets().values()).usingFieldByFieldElementComparator().containsExactlyInAnyOrder(targets.get(PolicyTargetType.GROUPS), targets.get(PolicyTargetType.COMPONENT_INSTANCES)); } - @Test + @Test(expected = ComponentException.class) public void updatePolicyTargetsTargetIDFailureTest(){ stubValidateAndLockSuccess(CREATE_POLICY); stubGetToscaFullElementSuccess(); stubGetToscaElementSuccess(); stubUpdatePolicyOfComponentSuccess(); - stubComponentUtilsGetResponseTargetNotFound(); stubRollback(); - - Either<PolicyDefinition, ResponseFormat> result = businessLogic.updatePolicyTargets(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, getTargetListFakeId(), USER_ID); - - Assert.assertTrue(result.isRight()); - ResponseFormat responseResult = result.right().value(); - Assert.assertEquals(400L, responseResult.getStatus().longValue()); + businessLogic.updatePolicyTargets(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, getTargetListFakeId(), USER_ID); } - private void stubComponentUtilsGetResponseTargetNotFound() { - when(componentsUtils.getResponseFormat(eq(ActionStatus.POLICY_TARGET_DOES_NOT_EXIST), (anyString()))).thenReturn(new ResponseFormat(400)); - } - @Test + @Test(expected = ComponentException.class) public void updatePolicyTargetsTypeFailureTest(){ stubValidateAndLockSuccess(CREATE_POLICY); stubGetToscaFullElementSuccess(); stubGetToscaElementSuccess(); stubUpdatePolicyOfComponentSuccess(); - stubComponentUtilsGetResponseTargetNotFound(); stubRollback(); - - Either<PolicyDefinition, ResponseFormat> result = businessLogic.updatePolicyTargets(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, getTargetListFakeType(), USER_ID); - - Assert.assertTrue(result.isRight()); - ResponseFormat responseResult = result.right().value(); - Assert.assertEquals(400, (int) responseResult.getStatus()); + businessLogic.updatePolicyTargets(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, getTargetListFakeType(), USER_ID); } private void stubUpdatePolicyOfComponentSuccess() { - when(toscaOperationFacade.updatePolicyOfComponent(eq(COMPONENT_ID), eq(policy))).thenReturn(policySuccessEither); + when(toscaOperationFacade.updatePolicyOfComponent(eq(COMPONENT_ID), eq(policy), any(PromoteVersionEnum.class))).thenReturn(policySuccessEither); } - @Test + @Test(expected = ComponentException.class) public void updatePolicyPropertiesFailureTest(){ stubValidateAndLockSuccess(CREATE_POLICY); - when(componentsUtils.getResponseFormat(eq(ActionStatus.PROPERTY_NOT_FOUND))).thenReturn(notFoundResponse); stubUnlockAndRollback(); policy.setProperties(null); - Either<List<PropertyDataDefinition>, ResponseFormat> response = businessLogic.updatePolicyProperties(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, getProperties("Name", "Type") , USER_ID, true); - assertTrue(response.isRight() && response.right().value().getStatus().equals(404)); + businessLogic.updatePolicyProperties(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, getProperties("Name", "Type") , USER_ID, true); } @Test @@ -397,16 +363,17 @@ public class PolicyBusinessLogicTest { public void testDeclarePropertiesAsPoliciesFailure() { when(toscaOperationFacade.getToscaElement(eq(NON_EXIST_COMPONENT_ID), Mockito.any(ComponentParametersView.class))).thenReturn(Either.right(StorageOperationStatus.NOT_FOUND)); when(componentsUtils.convertFromStorageResponse(eq(StorageOperationStatus.NOT_FOUND), eq(ComponentTypeEnum.RESOURCE))).thenReturn(ActionStatus.RESOURCE_NOT_FOUND); - when(componentsUtils.getResponseFormat(eq(ActionStatus.RESOURCE_NOT_FOUND), eq(NON_EXIST_COMPONENT_ID))).thenReturn(notFoundResponse); - - Either<List<PolicyDefinition>, ResponseFormat> declaredPoliciesEither = businessLogic - .declareProperties(USER_ID, - NON_EXIST_COMPONENT_ID, - ComponentTypeEnum.RESOURCE, - getInputForPropertyToPolicyDeclaration()); - - assertTrue(declaredPoliciesEither.isRight()); - assertEquals(new Integer(404), declaredPoliciesEither.right().value().getStatus()); + try { + businessLogic + .declareProperties(USER_ID, + NON_EXIST_COMPONENT_ID, + ComponentTypeEnum.RESOURCE, + getInputForPropertyToPolicyDeclaration()); + } catch (ComponentException e) { + assertEquals(ActionStatus.RESOURCE_NOT_FOUND, e.getActionStatus()); + return; + } + fail(); } private ComponentInstInputsMap getInputForPropertyToPolicyDeclaration() { @@ -470,7 +437,7 @@ public class PolicyBusinessLogicTest { } private void stubValidationSuccess(String methodName) { - when(userValidations.validateUserExists(eq(USER_ID), eq(methodName), eq(false))).thenReturn(user); + when(userValidations.validateUserExists(eq(USER_ID))).thenReturn(user); when(toscaOperationFacade.getToscaElement(eq(COMPONENT_ID), any(ComponentParametersView.class))).thenReturn(componentSuccessEither); } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/PolicyPropertiesBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/PolicyPropertiesBusinessLogicTest.java index f717313a95..87a4fde421 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/PolicyPropertiesBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/PolicyPropertiesBusinessLogicTest.java @@ -21,15 +21,7 @@ */ package org.openecomp.sdc.be.components.impl; -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - import fj.data.Either; -import java.util.List; -import javax.ws.rs.core.Response; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -59,6 +51,14 @@ import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.exception.ResponseFormat; +import javax.ws.rs.core.Response; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + @RunWith(MockitoJUnitRunner.class) public class PolicyPropertiesBusinessLogicTest { @@ -128,7 +128,7 @@ public class PolicyPropertiesBusinessLogicTest { public void getPolicyProperties_userIdIsNull() { String userId = null; ComponentException forbiddenException = new ByActionStatusComponentException(ActionStatus.AUTH_FAILED); - when(userValidations.validateUserExists(eq(userId), anyString(), eq(false))).thenThrow(forbiddenException); + when(userValidations.validateUserExists(eq(userId))).thenThrow(forbiddenException); try{ testInstance.getPolicyProperties(ComponentTypeEnum.RESOURCE, RESOURCE_ID, POLICY_ID, null); } catch(ByActionStatusComponentException e){ @@ -136,45 +136,41 @@ public class PolicyPropertiesBusinessLogicTest { } } - @Test + @Test(expected = ComponentException.class) public void getPolicyProperties_componentNotFound() { - when(userValidations.validateUserExists(eq(USER_ID), anyString(), eq(false))).thenReturn(new User()); + when(userValidations.validateUserExists(eq(USER_ID))).thenReturn(new User()); ArgumentCaptor<ComponentParametersView> filterCaptor = ArgumentCaptor.forClass(ComponentParametersView.class); when(toscaOperationFacade.getToscaElement(eq(RESOURCE_ID), filterCaptor.capture())).thenReturn(Either.right(StorageOperationStatus.NOT_FOUND)); when(componentsUtils.convertFromStorageResponse(StorageOperationStatus.NOT_FOUND, ComponentTypeEnum.RESOURCE)).thenCallRealMethod(); ResponseFormat notFoundResponse = new ResponseFormat(Response.Status.NOT_FOUND.getStatusCode()); - when(componentsUtils.getResponseFormat(eq(ActionStatus.RESOURCE_NOT_FOUND), anyString())).thenReturn(notFoundResponse); - Either<List<PropertyDataDefinition>, ResponseFormat> policyProperties = testInstance.getPolicyProperties(ComponentTypeEnum.RESOURCE, RESOURCE_ID, POLICY_ID, USER_ID); - assertThat(policyProperties.right().value()).isSameAs(notFoundResponse); + testInstance.getPolicyProperties(ComponentTypeEnum.RESOURCE, RESOURCE_ID, POLICY_ID, USER_ID); } - @Test + @Test(expected = ComponentException.class) public void getPolicyProperties_policyNotExist() { doPolicyValidations(); ResponseFormat notFoundResponse = new ResponseFormat(Response.Status.NOT_FOUND.getStatusCode()); - when(componentsUtils.getResponseFormat(ActionStatus.POLICY_NOT_FOUND_ON_CONTAINER, "nonExistingPolicy", RESOURCE_ID)).thenReturn(notFoundResponse); - Either<List<PropertyDataDefinition>, ResponseFormat> policyProperties = testInstance.getPolicyProperties(ComponentTypeEnum.RESOURCE, RESOURCE_ID, "nonExistingPolicy", USER_ID); - assertThat(policyProperties.right().value()).isEqualTo(notFoundResponse); + testInstance.getPolicyProperties(ComponentTypeEnum.RESOURCE, RESOURCE_ID, "nonExistingPolicy", USER_ID); } @Test public void getPolicyProperties_noPropertiesOnPolicy() { doPolicyValidations(); - Either<List<PropertyDataDefinition>, ResponseFormat> policyProperties = testInstance.getPolicyProperties(ComponentTypeEnum.RESOURCE, RESOURCE_ID, NO_PROPS_POLICY, USER_ID); - assertThat(policyProperties.left().value()).isNull(); + List<PropertyDataDefinition> policyProperties = testInstance.getPolicyProperties(ComponentTypeEnum.RESOURCE, RESOURCE_ID, NO_PROPS_POLICY, USER_ID); + assertThat(policyProperties).isNull(); } @Test public void getPolicyProperties() { doPolicyValidations(); - Either<List<PropertyDataDefinition>, ResponseFormat> policyProperties = testInstance.getPolicyProperties(ComponentTypeEnum.RESOURCE, RESOURCE_ID, POLICY_ID, USER_ID); - assertThat(policyProperties.left().value()) + List<PropertyDataDefinition> policyProperties = testInstance.getPolicyProperties(ComponentTypeEnum.RESOURCE, RESOURCE_ID, POLICY_ID, USER_ID); + assertThat(policyProperties) .usingElementComparatorOnFields("uniqueId") .containsExactly(prop1, prop2); } private void doPolicyValidations() { - when(userValidations.validateUserExists(eq(USER_ID), anyString(), eq(false))).thenReturn(new User()); + when(userValidations.validateUserExists(eq(USER_ID))).thenReturn(new User()); ArgumentCaptor<ComponentParametersView> filterCaptor = ArgumentCaptor.forClass(ComponentParametersView.class); when(toscaOperationFacade.getToscaElement(eq(RESOURCE_ID), filterCaptor.capture())).thenReturn(Either.left(resource)); } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/PolicyTypeBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/PolicyTypeBusinessLogicTest.java index d9be41136d..44d1e06477 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/PolicyTypeBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/PolicyTypeBusinessLogicTest.java @@ -50,7 +50,8 @@ import java.util.Set; import static com.google.common.collect.Sets.newHashSet; import static java.util.Collections.emptyList; import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.*; +import static org.mockito.ArgumentMatchers.anySet; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) @@ -73,7 +74,7 @@ public class PolicyTypeBusinessLogicTest { @Before public void setUp() throws Exception { - when(userValidations.validateUserExists(eq(USER_ID), anyString(), eq(true))).thenReturn(new User()); + when(userValidations.validateUserExists(eq(USER_ID))).thenReturn(new User()); when(ConfigurationManager.getConfigurationManager().getConfiguration().getExcludedPolicyTypesMapping()).thenReturn(ImmutableMap.of(COMPONENT_TYPE, EXCLUDED_POLICY_TYPES)); } @@ -85,7 +86,7 @@ public class PolicyTypeBusinessLogicTest { @Test public void getAllPolicyTypes_userNotExist() { ResponseFormat userNotExistResponse = new ResponseFormat(); - when(userValidations.validateUserExists(eq(USER_ID), anyString(), eq(true))).thenThrow(new ByResponseFormatComponentException(userNotExistResponse)); + when(userValidations.validateUserExists(eq(USER_ID))).thenThrow(new ByResponseFormatComponentException(userNotExistResponse)); try{ testInstance.getAllPolicyTypes(USER_ID, COMPONENT_TYPE); }catch(ByResponseFormatComponentException e){ diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ProductBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ProductBusinessLogicTest.java index ff0e62f5e8..50e19c4338 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ProductBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ProductBusinessLogicTest.java @@ -21,50 +21,36 @@ */ package org.openecomp.sdc.be.components.impl; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import fj.data.Either; import org.junit.Before; import org.junit.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; -import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException; import org.openecomp.sdc.be.components.impl.exceptions.ByResponseFormatComponentException; import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; import org.openecomp.sdc.be.components.utils.ComponentBusinessLogicMock; import org.openecomp.sdc.be.components.validation.UserValidations; import org.openecomp.sdc.be.components.validation.ValidationUtils; -import org.openecomp.sdc.be.dao.api.ActionStatus; +import org.openecomp.sdc.be.components.validation.component.ComponentNameValidator; import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; -import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum; -import org.openecomp.sdc.be.datatypes.elements.ProductMetadataDataDefinition; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; -import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.model.ComponentMetadataDefinition; import org.openecomp.sdc.be.model.Product; import org.openecomp.sdc.be.model.User; -import org.openecomp.sdc.be.model.category.CategoryDefinition; -import org.openecomp.sdc.be.model.category.GroupingDefinition; -import org.openecomp.sdc.be.model.category.SubCategoryDefinition; -import org.openecomp.sdc.be.model.jsonjanusgraph.operations.InterfaceOperation; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; -import org.openecomp.sdc.be.model.operations.api.IElementOperation; import org.openecomp.sdc.be.model.operations.api.IGraphLockOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupInstanceOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupTypeOperation; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; -import fj.data.Either; -import org.openecomp.sdc.be.model.operations.impl.InterfaceLifecycleOperation; import org.openecomp.sdc.exception.ResponseFormat; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyList; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; @@ -110,11 +96,16 @@ public class ProductBusinessLogicTest extends ComponentBusinessLogicMock { @Mock private ComponentInstanceBusinessLogic componentInstanceBusinessLogic; + @Mock + ComponentNameValidator componentNameValidator; + @Before public void setUp() { productBusinessLogic = new ProductBusinessLogic(elementDao, groupOperation, groupInstanceOperation, groupTypeOperation, groupBusinessLogic, interfaceOperation, interfaceLifecycleTypeOperation, - artifactsBusinessLogic, componentInstanceBusinessLogic, artifactToscaOperation); + artifactsBusinessLogic, componentInstanceBusinessLogic, artifactToscaOperation, componentContactIdValidator, + componentNameValidator, componentTagsValidator, componentValidator, + componentIconValidator, componentProjectCodeValidator, componentDescriptionValidator ); MockitoAnnotations.initMocks(this); product = new Product(); user = new User(); @@ -133,34 +124,6 @@ public class ProductBusinessLogicTest extends ComponentBusinessLogicMock { user.setRole(role); } - @Test - public void testCreateProduct_givenValidProductAndUser_thenReturnsProduct() { - product.setName(pName); - product.setFullName("avengers"); - product.setInvariantUUID("ABCD1234"); - product.setContacts(getContacts()); - product.setTags(getTags()); - product.setIcon(pIcon); - product.setProjectCode(pCode); - product.setDescription(desc); - - when(userValidations.validateUserNotEmpty(Mockito.any(User.class), Mockito.anyString())) - .thenReturn(user); - when(userValidations.validateUserExists(Mockito.anyString(), Mockito.anyString(), Mockito.anyBoolean())) - .thenReturn(user); - when(toscaOperationFacade.validateComponentNameExists(Mockito.anyString(), Mockito.any(), Mockito.any(ComponentTypeEnum.class))) - .thenReturn(Either.left(Boolean.FALSE)); - when(iGraphLockOperation.lockComponentByName(Mockito.any(), Mockito.any(NodeTypeEnum.class))) - .thenReturn(StorageOperationStatus.OK); - when(toscaOperationFacade.createToscaComponent(any(org.openecomp.sdc.be.model.Product.class))) - .thenReturn(Either.left(product)); - Either result = productBusinessLogic.createProduct(product, user); - assertTrue(result.isLeft()); - Product returnedProduct = (Product) result.left().value(); - - assertEquals(product.getFullName(), returnedProduct.getFullName()); - - } @Test(expected = ComponentException.class) public void testCreateProduct_givenEmptyUserId_thenReturnsException() { @@ -169,15 +132,6 @@ public class ProductBusinessLogicTest extends ComponentBusinessLogicMock { productBusinessLogic.createProduct(product, user); } - @Test(expected = ComponentException.class) - public void testCreateProduct_givenUnknownUser_thenReturnsException() { - ComponentException componentException = new ByActionStatusComponentException(ActionStatus.USER_NOT_FOUND); - when(userValidations.validateUserNotEmpty(any(User.class), anyString())) - .thenReturn(user); - when(userValidations.validateUserExists(anyString(), anyString(), anyBoolean())) - .thenThrow(componentException); - productBusinessLogic.createProduct(product, user); - } @Test(expected = ComponentException.class) public void testCreateProduct_givenInvalidUserRole_thenReturnsException() { @@ -193,23 +147,8 @@ public class ProductBusinessLogicTest extends ComponentBusinessLogicMock { } @Test - public void testCreateProduct_givenInvalidProductFullNames_thenReturnsErrors() { - List<String> invalidProductNames = new ArrayList<>(); - invalidProductNames.add(null); - invalidProductNames.add("~~"); - invalidProductNames.add("yo"); - invalidProductNames.add("infinity"); - when(toscaOperationFacade.validateComponentNameExists(anyString(), any(), any(ComponentTypeEnum.class))) - .thenReturn(Either.left(Boolean.TRUE)); - for (String s : invalidProductNames) { - product.setName(s); - assertTrue(productBusinessLogic.createProduct(product, user).isRight()); - } - } - - @Test public void testValidateProductName_givenValidName_thenReturnsSuccessful() { - when(userValidations.validateUserExists(anyString(), anyString(), anyBoolean())) + when(userValidations.validateUserExists(anyString())) .thenReturn(user); when(toscaOperationFacade.validateComponentNameUniqueness(eq(pName), any(), any(ComponentTypeEnum.class))) .thenReturn(Either.left(Boolean.TRUE)); @@ -221,7 +160,7 @@ public class ProductBusinessLogicTest extends ComponentBusinessLogicMock { @Test public void testValidateProductName_givenInvalidName_thenReturnsError() { String invalidProductName = "~~"; - when(userValidations.validateUserExists(anyString(), anyString(), anyBoolean())) + when(userValidations.validateUserExists(anyString())) .thenReturn(user); when(toscaOperationFacade.validateComponentNameUniqueness(eq(invalidProductName), any(), any(ComponentTypeEnum.class))) .thenReturn(Either.left(Boolean.FALSE)); @@ -231,7 +170,7 @@ public class ProductBusinessLogicTest extends ComponentBusinessLogicMock { @Test public void testValidateProductName_givenNameUniquenessCheckFails_thenReturnsError() { - when(userValidations.validateUserExists(anyString(), anyString(), anyBoolean())) + when(userValidations.validateUserExists(anyString())) .thenReturn(user); when(toscaOperationFacade.validateComponentNameUniqueness(eq(pName), any(), any(ComponentTypeEnum.class))) .thenReturn(Either.right(StorageOperationStatus.ENTITY_ALREADY_EXISTS)); @@ -267,67 +206,6 @@ public class ProductBusinessLogicTest extends ComponentBusinessLogicMock { } @Test - public void testUpdateProductMetadata_givenValidProductAndUser_thenReturnsSuccessful() { - String componentId = "component1"; - String projectName = "Product1"; - String version = "2.0"; - String lifecycleState = "NOT_CERTIFIED_CHECKOUT"; - String uniqueId = "pUniqueId"; - - Product product = new Product(); - ProductMetadataDataDefinition productMetadataDataDefinition = new ProductMetadataDataDefinition(); - ComponentMetadataDefinition componentMetadataDefinition = new ComponentMetadataDefinition(productMetadataDataDefinition); - CategoryDefinition categoryDefinition = new CategoryDefinition(); - SubCategoryDefinition subCategoryDefinition = new SubCategoryDefinition(); - GroupingDefinition groupingDefinition = new GroupingDefinition(); - - List<CategoryDefinition> categoryDefinitionList = new ArrayList<>(); - List<SubCategoryDefinition> subCategoryDefinitionList = new ArrayList<>(); - List<GroupingDefinition> groupingDefinitionsList = new ArrayList<>(); - - categoryDefinition.setName("cat1"); - subCategoryDefinition.setName("subCat1"); - groupingDefinition.setName("subCatGroup1"); - - groupingDefinitionsList.add(groupingDefinition); - subCategoryDefinition.setGroupings(groupingDefinitionsList); - subCategoryDefinitionList.add(subCategoryDefinition); - categoryDefinition.setSubcategories(subCategoryDefinitionList); - categoryDefinitionList.add(categoryDefinition); - - productMetadataDataDefinition.setFullName(projectName); - productMetadataDataDefinition.setName(projectName); - productMetadataDataDefinition.setState(lifecycleState); - productMetadataDataDefinition.setUniqueId(uniqueId); - productMetadataDataDefinition.setComponentType(ComponentTypeEnum.PRODUCT); - - product.setMetadataDefinition(componentMetadataDefinition); - product.setLastUpdaterUserId(uId); - product.setDescription(desc); - product.setVersion(version); - product.setProjectCode(pCode); - product.setIcon(pIcon); - product.setCategories(categoryDefinitionList); - product.setContacts(contacts); - product.setTags(tags); - - when(userValidations.validateUserExists(eq(uId), anyString(), anyBoolean())) - .thenReturn(user); - when(toscaOperationFacade.getToscaElement(eq(componentId))) - .thenReturn(Either.left(product)); - when(toscaOperationFacade.getToscaElement(eq(componentId), any(JsonParseFlagEnum.class))) - .thenReturn(Either.left(product)); - when(elementDao.getAllProductCategories()) - .thenReturn(Either.left(categoryDefinitionList)); - when(iGraphLockOperation.lockComponent(anyString(), any(NodeTypeEnum.class))) - .thenReturn(StorageOperationStatus.OK); - when(toscaOperationFacade.updateToscaElement(any(Product.class))) - .thenReturn(Either.left(product)); - - assertTrue(productBusinessLogic.updateProductMetadata(componentId, product, user).isLeft()); - } - - @Test public void testUpdateProductMetadata_givenUpdateProductNull_thenReturnsError() { Product updateProduct = null; String productId = null; @@ -343,25 +221,6 @@ public class ProductBusinessLogicTest extends ComponentBusinessLogicMock { } @Test - public void testUpdateProductMetada_givenUserRestricted_thenReturnsError() { - - ProductMetadataDataDefinition productMetadataDataDefinition = new ProductMetadataDataDefinition(); - productMetadataDataDefinition.setLifecycleState("CERTIFIED"); - ComponentMetadataDefinition componentMetadataDefinition = new ComponentMetadataDefinition(productMetadataDataDefinition); - product.setMetadataDefinition(componentMetadataDefinition); - - - when(userValidations.validateUserExists(eq(uId), anyString(), anyBoolean())) - .thenReturn(user); - when(toscaOperationFacade.getToscaElement(eq(pId))) - .thenReturn(Either.left(product)); - when(toscaOperationFacade.getToscaElement(eq(pId), eq(JsonParseFlagEnum.ParseMetadata))) - .thenReturn(Either.left(product)); - assertTrue(productBusinessLogic.updateProductMetadata(pId, product, user).isRight()); - } - - - @Test public void testGetProductByNameAndVersion_givenValidNameAndVersion_thenReturnsSuccessful() { String productVersion = "2.0"; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/RequirementBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/RequirementBusinessLogicTest.java index 091d6f9a58..3670e74268 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/RequirementBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/RequirementBusinessLogicTest.java @@ -30,9 +30,8 @@ import org.openecomp.sdc.be.auditing.impl.AuditingManager; import org.openecomp.sdc.be.components.validation.RequirementValidation; import org.openecomp.sdc.be.components.validation.UserValidations; import org.openecomp.sdc.be.config.ConfigurationManager; -import org.openecomp.sdc.be.dao.api.ActionStatus; -import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; import org.openecomp.sdc.be.impl.ComponentsUtils; @@ -45,16 +44,10 @@ import org.openecomp.sdc.be.model.RequirementDefinition; import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.model.Service; import org.openecomp.sdc.be.model.User; -import org.openecomp.sdc.be.model.jsonjanusgraph.operations.InterfaceOperation; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.RequirementOperation; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; -import org.openecomp.sdc.be.model.operations.api.IElementOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupInstanceOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupTypeOperation; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.model.operations.impl.GraphLockOperation; -import org.openecomp.sdc.be.model.operations.impl.InterfaceLifecycleOperation; import org.openecomp.sdc.be.user.Role; import org.openecomp.sdc.be.user.UserBusinessLogic; import org.openecomp.sdc.common.api.ConfigurationSource; @@ -116,8 +109,7 @@ public class RequirementBusinessLogicTest extends BaseBusinessLogicMock { user.setLastName("Hendrix"); user.setRole(Role.ADMIN.name()); - Either<User, ActionStatus> eitherGetUser = Either.left(user); - when(mockUserAdmin.getUser("jh0003", false)).thenReturn(eitherGetUser); + when(mockUserAdmin.getUser("jh0003", false)).thenReturn(user); when(graphLockOperation.lockComponent(Mockito.anyString(), eq(NodeTypeEnum.Resource))) .thenReturn(StorageOperationStatus.OK); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogicMockitoTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogicMockitoTest.java index 65559d4b28..6920555697 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogicMockitoTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogicMockitoTest.java @@ -19,335 +19,332 @@ */ package org.openecomp.sdc.be.components.impl; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +// +//import fj.data.Either; +//import java.util.ArrayList; +//import java.util.Collections; +//import java.util.HashMap; +//import java.util.List; +//import java.util.Map; +//import org.junit.Before; +//import org.junit.Test; +//import org.junit.runner.RunWith; +//import org.mockito.Mock; +//import org.mockito.Mockito; +//import org.mockito.junit.MockitoJUnitRunner; +//import org.openecomp.sdc.be.components.csar.CsarArtifactsAndGroupsBusinessLogic; +//import org.openecomp.sdc.be.components.csar.CsarBusinessLogic; +//import org.openecomp.sdc.be.components.csar.CsarInfo; +//import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException; +//import org.openecomp.sdc.be.components.impl.exceptions.ByResponseFormatComponentException; +//import org.openecomp.sdc.be.components.impl.generic.GenericTypeBusinessLogic; +//import org.openecomp.sdc.be.components.lifecycle.LifecycleBusinessLogic; +//import org.openecomp.sdc.be.components.merge.resource.ResourceDataMergeBusinessLogic; +//import org.openecomp.sdc.be.components.merge.utils.MergeInstanceUtils; +//import org.openecomp.sdc.be.components.validation.UserValidations; +//import org.openecomp.sdc.be.dao.api.ActionStatus; +//import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; +//import org.openecomp.sdc.be.datamodel.utils.UiComponentDataConverter; +//import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; +//import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; +//import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; +//import org.openecomp.sdc.be.impl.ComponentsUtils; +//import org.openecomp.sdc.be.model.NodeTypeInfo; +//import org.openecomp.sdc.be.model.ParsedToscaYamlInfo; +//import org.openecomp.sdc.be.model.Resource; +//import org.openecomp.sdc.be.model.UploadComponentInstanceInfo; +//import org.openecomp.sdc.be.model.User; +//import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache; +//import org.openecomp.sdc.be.model.category.CategoryDefinition; +//import org.openecomp.sdc.be.model.category.SubCategoryDefinition; +//import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ArtifactsOperations; +//import org.openecomp.sdc.be.model.jsonjanusgraph.operations.InterfaceOperation; +//import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; +//import org.openecomp.sdc.be.model.operations.api.ICapabilityTypeOperation; +//import org.openecomp.sdc.be.model.operations.api.IElementOperation; +//import org.openecomp.sdc.be.model.operations.api.IGraphLockOperation; +//import org.openecomp.sdc.be.model.operations.api.IGroupInstanceOperation; +//import org.openecomp.sdc.be.model.operations.api.IGroupOperation; +//import org.openecomp.sdc.be.model.operations.api.IGroupTypeOperation; +//import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; +//import org.openecomp.sdc.be.model.operations.impl.GroupInstanceOperation; +//import org.openecomp.sdc.be.model.operations.impl.GroupOperation; +//import org.openecomp.sdc.be.model.operations.impl.GroupTypeOperation; +//import org.openecomp.sdc.be.model.operations.impl.InterfaceLifecycleOperation; +//import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; +//import org.openecomp.sdc.exception.ResponseFormat; -import fj.data.Either; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; -import org.openecomp.sdc.be.components.csar.CsarArtifactsAndGroupsBusinessLogic; -import org.openecomp.sdc.be.components.csar.CsarBusinessLogic; -import org.openecomp.sdc.be.components.csar.CsarInfo; -import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException; -import org.openecomp.sdc.be.components.impl.exceptions.ByResponseFormatComponentException; -import org.openecomp.sdc.be.components.impl.generic.GenericTypeBusinessLogic; -import org.openecomp.sdc.be.components.lifecycle.LifecycleBusinessLogic; -import org.openecomp.sdc.be.components.merge.resource.ResourceDataMergeBusinessLogic; -import org.openecomp.sdc.be.components.merge.utils.MergeInstanceUtils; -import org.openecomp.sdc.be.components.validation.UserValidations; -import org.openecomp.sdc.be.dao.api.ActionStatus; -import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; -import org.openecomp.sdc.be.datamodel.utils.UiComponentDataConverter; -import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; -import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; -import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; -import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.model.NodeTypeInfo; -import org.openecomp.sdc.be.model.ParsedToscaYamlInfo; -import org.openecomp.sdc.be.model.Resource; -import org.openecomp.sdc.be.model.UploadComponentInstanceInfo; -import org.openecomp.sdc.be.model.User; -import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache; -import org.openecomp.sdc.be.model.category.CategoryDefinition; -import org.openecomp.sdc.be.model.category.SubCategoryDefinition; -import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ArtifactsOperations; -import org.openecomp.sdc.be.model.jsonjanusgraph.operations.InterfaceOperation; -import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; -import org.openecomp.sdc.be.model.operations.api.ICapabilityTypeOperation; -import org.openecomp.sdc.be.model.operations.api.IElementOperation; -import org.openecomp.sdc.be.model.operations.api.IGraphLockOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupInstanceOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupOperation; -import org.openecomp.sdc.be.model.operations.api.IGroupTypeOperation; -import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; -import org.openecomp.sdc.be.model.operations.impl.InterfaceLifecycleOperation; -import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; -import org.openecomp.sdc.exception.ResponseFormat; - -@RunWith(MockitoJUnitRunner.class) +//@RunWith(MockitoJUnitRunner.class) public class ResourceBusinessLogicMockitoTest { - private static final String RESOURCE_NAME = "resourceName"; - private static final String USER_ID = "userId"; - private static final String VALIDATE_RESOURCE_NAME_EXISTS = "validate Resource Name Exists"; - private static final String CSAR_UUID = "CsarUUID"; - private static final String PAYLOAD = "PAYLOAD"; - private static final String ANY = "ANY"; - - @Mock - private IElementOperation elementDao; - @Mock - private IGroupOperation groupOperation; - @Mock - private IGroupInstanceOperation groupInstanceOperation; - @Mock - private IGroupTypeOperation groupTypeOperation; - @Mock - private GroupBusinessLogic groupBusinessLogic; - @Mock - private InterfaceOperation interfaceOperation; - @Mock - private InterfaceLifecycleOperation interfaceLifecycleTypeOperation; - @Mock - private ArtifactsBusinessLogic artifactsBusinessLogic; - @Mock - private ComponentInstanceBusinessLogic componentInstanceBusinessLogic; - @Mock - private ResourceImportManager resourceImportManager; - @Mock - private InputsBusinessLogic inputsBusinessLogic; - @Mock - private CompositionBusinessLogic compositionBusinessLogic; - @Mock - private ResourceDataMergeBusinessLogic resourceDataMergeBusinessLogic; - @Mock - private CsarArtifactsAndGroupsBusinessLogic csarArtifactsAndGroupsBusinessLogic; - @Mock - private MergeInstanceUtils mergeInstanceUtils; - @Mock - private UiComponentDataConverter uiComponentDataConverter; - @Mock - private CsarBusinessLogic csarBusinessLogic; - @Mock - private ArtifactsOperations artifactToscaOperation; - @Mock - private LifecycleBusinessLogic lifecycleManager; - @Mock - private ApplicationDataTypeCache applicationDataTypeCache; - @Mock - private ComponentsUtils componentUtils; - @Mock - private ICapabilityTypeOperation capabilityTypeOperation; - @Mock - private UserValidations userValidations; - @Mock - private User user; - @Mock - private ToscaOperationFacade toscaOperationFacade; - @Mock - private JanusGraphDao janusGraphDao; - @Mock - private CsarInfo csarInfo; - @Mock - private Map<String, NodeTypeInfo> nodeTypeInfo; - @Mock - private ParsedToscaYamlInfo parsedToscaYamlInfo; - @Mock - private IGraphLockOperation graphLockOperation; - @Mock - private GenericTypeBusinessLogic genericTypeBusinessLogic; - @Mock - private PropertyBusinessLogic propertyBusinessLogic; - @Mock - private SoftwareInformationBusinessLogic softwareInformationBusinessLogic; - - private ResourceBusinessLogic resourceBusinessLogic; - - @Before - public void setUp() throws Exception { - resourceBusinessLogic = new ResourceBusinessLogic(elementDao, - groupOperation, - groupInstanceOperation, - groupTypeOperation, - groupBusinessLogic, - interfaceOperation, - interfaceLifecycleTypeOperation, - artifactsBusinessLogic, - componentInstanceBusinessLogic, - resourceImportManager, - inputsBusinessLogic, - compositionBusinessLogic, - resourceDataMergeBusinessLogic, - csarArtifactsAndGroupsBusinessLogic, - mergeInstanceUtils, - uiComponentDataConverter, - csarBusinessLogic, - artifactToscaOperation, - propertyBusinessLogic, - softwareInformationBusinessLogic); - - resourceBusinessLogic.setLifecycleManager(lifecycleManager); - resourceBusinessLogic.setApplicationDataTypeCache(applicationDataTypeCache); - resourceBusinessLogic.setComponentsUtils(componentUtils); - resourceBusinessLogic.setCapabilityTypeOperation(capabilityTypeOperation); - resourceBusinessLogic.setUserValidations(userValidations); - resourceBusinessLogic.setToscaOperationFacade(toscaOperationFacade); - resourceBusinessLogic.setJanusGraphDao(janusGraphDao); - resourceBusinessLogic.setGraphLockOperation(graphLockOperation); - resourceBusinessLogic.setGenericTypeBusinessLogic(genericTypeBusinessLogic); - } - - @Test - public void testGetters() { - assertEquals(resourceBusinessLogic.getComponentInstanceBL(), componentInstanceBusinessLogic); - assertEquals(resourceBusinessLogic.getElementDao(), elementDao); - assertEquals(resourceBusinessLogic.getLifecycleBusinessLogic(), lifecycleManager); - assertEquals(resourceBusinessLogic.getApplicationDataTypeCache(), applicationDataTypeCache); - assertEquals(resourceBusinessLogic.getComponentsUtils(), componentUtils); - assertEquals(resourceBusinessLogic.getCapabilityTypeOperation(), capabilityTypeOperation); - } - - @Test - public void shouldValidateResourceNameExistsIfDataModelResponseIsRight() { - Mockito.when(userValidations.validateUserExists(USER_ID, VALIDATE_RESOURCE_NAME_EXISTS, false)).thenReturn(user); - Mockito.when(toscaOperationFacade.validateComponentNameUniqueness(RESOURCE_NAME, ResourceTypeEnum.ABSTRACT, ComponentTypeEnum.RESOURCE)).thenReturn(Either.right(StorageOperationStatus.DECLARED_INPUT_USED_BY_OPERATION)); - Mockito.when(componentUtils.convertFromStorageResponse(StorageOperationStatus.DECLARED_INPUT_USED_BY_OPERATION)).thenReturn(ActionStatus.DECLARED_INPUT_USED_BY_OPERATION); - Either<Map<String, Boolean>, ResponseFormat> response = resourceBusinessLogic - .validateResourceNameExists(RESOURCE_NAME, ResourceTypeEnum.ABSTRACT, USER_ID); - assertTrue(response.isRight()); - } - - @Test(expected = ByResponseFormatComponentException.class) - public void shouldThrowExceptionOnCreateResourceIfCsarUUIDIsNotEmptyIfAlreadyExist() { - Mockito.when(elementDao - .getAllCategories(NodeTypeEnum.ResourceNewCategory, false)).thenReturn(Either.left(getCategoryDefinitions())); - Mockito.when(toscaOperationFacade.validateToscaResourceNameExists(Mockito.any())).thenReturn(Either.left(true)); - Resource resource = getResource(); - Map<String, byte[]> csarUIPayload = Collections.emptyMap(); - Mockito.when(csarBusinessLogic.getCsarInfo(resource, null, user, csarUIPayload, PAYLOAD)).thenReturn(csarInfo); - Mockito.when(csarInfo.extractNodeTypesInfo()).thenReturn(nodeTypeInfo); - Map<String, UploadComponentInstanceInfo> nonEmptyMap = new HashMap<>(); - nonEmptyMap.put(ANY, new UploadComponentInstanceInfo()); - resource.setResourceType(ResourceTypeEnum.ABSTRACT); - Mockito.when(graphLockOperation.lockComponentByName(Mockito.any(), Mockito.any())).thenReturn(StorageOperationStatus.OK); - Mockito.when(parsedToscaYamlInfo.getInstances()).thenReturn(nonEmptyMap); - Mockito.when(csarBusinessLogic.getParsedToscaYamlInfo(null, null, nodeTypeInfo, csarInfo, null)).thenReturn( - parsedToscaYamlInfo); - Mockito.when(toscaOperationFacade.validateComponentNameExists( - resource.getName(), resource.getResourceType(), resource.getComponentType())).thenReturn(Either.left(true)); - Mockito.when(genericTypeBusinessLogic.fetchDerivedFromGenericType(Mockito.any())).thenReturn(Either.left(resource)); - resourceBusinessLogic.createResource(resource, AuditingActionEnum.ADD_USER, user, csarUIPayload, PAYLOAD); - } - - @Test(expected = ByResponseFormatComponentException.class) - public void shouldThrowExceptionOnCreateResourceIfCsarUUIDIsNotEmptyButComponentNameNotExists() { - Mockito.when(elementDao - .getAllCategories(NodeTypeEnum.ResourceNewCategory, false)).thenReturn(Either.left(getCategoryDefinitions())); - Mockito.when(toscaOperationFacade.validateToscaResourceNameExists(Mockito.any())).thenReturn(Either.left(true)); - Resource resource = getResource(); - Map<String, byte[]> csarUIPayload = Collections.emptyMap(); - Mockito.when(csarBusinessLogic.getCsarInfo(resource, null, user, csarUIPayload, PAYLOAD)).thenReturn(csarInfo); - Mockito.when(csarInfo.extractNodeTypesInfo()).thenReturn(nodeTypeInfo); - Map<String, UploadComponentInstanceInfo> nonEmptyMap = new HashMap<>(); - nonEmptyMap.put(ANY, new UploadComponentInstanceInfo()); - resource.setResourceType(ResourceTypeEnum.ABSTRACT); - Mockito.when(graphLockOperation.lockComponentByName(Mockito.any(), Mockito.any())).thenReturn(StorageOperationStatus.OK); - Mockito.when(parsedToscaYamlInfo.getInstances()).thenReturn(nonEmptyMap); - Mockito.when(csarBusinessLogic.getParsedToscaYamlInfo(null, null, nodeTypeInfo, csarInfo, null)).thenReturn( - parsedToscaYamlInfo); - Mockito.when(toscaOperationFacade.validateComponentNameExists( - resource.getName(), resource.getResourceType(), resource.getComponentType())).thenReturn(Either.right(StorageOperationStatus.ARTIFACT_NOT_FOUND)); - Mockito.when(genericTypeBusinessLogic.fetchDerivedFromGenericType(Mockito.any())).thenReturn(Either.left(resource)); - resourceBusinessLogic.createResource(resource, AuditingActionEnum.ADD_USER, user, csarUIPayload, PAYLOAD); - } - - @Test(expected = ByActionStatusComponentException.class) - public void shouldThrowExceptionOnCreateResourceIfCsarUUIDIsNotEmptyButEmptyDerivedFromGenericType() { - Mockito.when(elementDao - .getAllCategories(NodeTypeEnum.ResourceNewCategory, false)).thenReturn(Either.left(getCategoryDefinitions())); - Mockito.when(toscaOperationFacade.validateToscaResourceNameExists(Mockito.any())).thenReturn(Either.left(true)); - Resource resource = getResource(); - Map<String, byte[]> csarUIPayload = Collections.emptyMap(); - Mockito.when(csarBusinessLogic.getCsarInfo(resource, null, user, csarUIPayload, PAYLOAD)).thenReturn(csarInfo); - Mockito.when(csarInfo.extractNodeTypesInfo()).thenReturn(nodeTypeInfo); - Map<String, UploadComponentInstanceInfo> nonEmptyMap = new HashMap<>(); - nonEmptyMap.put(ANY, new UploadComponentInstanceInfo()); - resource.setResourceType(ResourceTypeEnum.ABSTRACT); - Mockito.when(graphLockOperation.lockComponentByName(Mockito.any(), Mockito.any())).thenReturn(StorageOperationStatus.OK); - Mockito.when(parsedToscaYamlInfo.getInstances()).thenReturn(nonEmptyMap); - Mockito.when(genericTypeBusinessLogic.fetchDerivedFromGenericType(Mockito.any())).thenReturn(Either.right(new ResponseFormat())); - Mockito.when(csarBusinessLogic.getParsedToscaYamlInfo(null, null, nodeTypeInfo, csarInfo, null)).thenReturn( - parsedToscaYamlInfo); - resourceBusinessLogic.createResource(resource, AuditingActionEnum.ADD_USER, user, csarUIPayload, PAYLOAD); - } - - @Test(expected = ByResponseFormatComponentException.class) - public void shouldThrowExceptionOnCreateResourceIfCsarUUIDIsNotEmptyButInvalidLockResponse() { - Mockito.when(elementDao - .getAllCategories(NodeTypeEnum.ResourceNewCategory, false)).thenReturn(Either.left(getCategoryDefinitions())); - Mockito.when(toscaOperationFacade.validateToscaResourceNameExists(Mockito.any())).thenReturn(Either.left(true)); - Resource resource = getResource(); - Map<String, byte[]> csarUIPayload = Collections.emptyMap(); - Mockito.when(csarBusinessLogic.getCsarInfo(resource, null, user, csarUIPayload, PAYLOAD)).thenReturn(csarInfo); - Mockito.when(csarInfo.extractNodeTypesInfo()).thenReturn(nodeTypeInfo); - Map<String, UploadComponentInstanceInfo> nonEmptyMap = new HashMap<>(); - nonEmptyMap.put(ANY, new UploadComponentInstanceInfo()); - resource.setResourceType(ResourceTypeEnum.ABSTRACT); - Mockito.when(parsedToscaYamlInfo.getInstances()).thenReturn(nonEmptyMap); - Mockito.when(graphLockOperation.lockComponentByName(Mockito.any(), Mockito.any())).thenReturn(StorageOperationStatus.BAD_REQUEST); - Mockito.when(csarBusinessLogic.getParsedToscaYamlInfo(null, null, nodeTypeInfo, csarInfo, null)).thenReturn( - parsedToscaYamlInfo); - resourceBusinessLogic.createResource(resource, AuditingActionEnum.ADD_USER, user, csarUIPayload, PAYLOAD); - } - - - @Test(expected = ByActionStatusComponentException.class) - public void shouldThrowExceptionOnNonPnfResource() { - Mockito.when(elementDao - .getAllCategories(NodeTypeEnum.ResourceNewCategory, false)).thenReturn(Either.left(getCategoryDefinitions())); - Mockito.when(toscaOperationFacade.validateToscaResourceNameExists(Mockito.any())).thenReturn(Either.left(true)); - Resource resource = getResource(); - Map<String, byte[]> csarUIPayload = Collections.emptyMap(); - Mockito.when(csarBusinessLogic.getCsarInfo(resource, null, user, csarUIPayload, PAYLOAD)).thenReturn(csarInfo); - Mockito.when(csarInfo.extractNodeTypesInfo()).thenReturn(nodeTypeInfo); - Mockito.when(csarBusinessLogic.getParsedToscaYamlInfo(null, null, nodeTypeInfo, csarInfo, null)).thenReturn( - parsedToscaYamlInfo); - resourceBusinessLogic.createResource(resource, AuditingActionEnum.ADD_USER, user, csarUIPayload, PAYLOAD); - } - - @Test(expected = ByActionStatusComponentException.class) - public void shouldThrowExceptionOnFailedToRetrieveResourceCategoriesFromJanusGraph() { - Mockito.when(elementDao - .getAllCategories(NodeTypeEnum.ResourceNewCategory, false)).thenReturn(Either.right(ActionStatus.ARTIFACT_NOT_FOUND)); - Resource resource = getResource(); - resourceBusinessLogic.createResource(resource, AuditingActionEnum.ADD_USER, user, Collections.emptyMap(), PAYLOAD); - } - - @Test(expected = ByActionStatusComponentException.class) - public void shouldThrowExceptionOnRightDataModelResponse() { - Mockito.when(elementDao - .getAllCategories(NodeTypeEnum.ResourceNewCategory, false)).thenReturn(Either.left(getCategoryDefinitions())); - Mockito.when(toscaOperationFacade.validateToscaResourceNameExists(Mockito.any())).thenReturn(Either.right(StorageOperationStatus.ARTIFACT_NOT_FOUND)); - Resource resource = getResource(); - resourceBusinessLogic.createResource(resource, AuditingActionEnum.ADD_USER, user, Collections.emptyMap(), PAYLOAD); - } - - private Resource getResource() { - Resource resource = new Resource(); - resource.setCsarUUID(CSAR_UUID); - resource.setName(ANY); - resource.setDescription(ANY); - resource.setCategories(getCategoryDefinitions()); - resource.setVendorName(ANY); - resource.setVendorRelease(ANY); - List<String> tags = new ArrayList<>(); - tags.add(ANY); - resource.setTags(tags); - resource.setContactId(ANY); - resource.setIcon(ANY); - List<String> derivedFrom = new ArrayList<>(); - derivedFrom.add(ANY); - resource.setDerivedFrom(derivedFrom); - return resource; - } - - private List<CategoryDefinition> getCategoryDefinitions() { - List<CategoryDefinition> categories = new ArrayList<>(); - CategoryDefinition categoryDefinition = new CategoryDefinition(); - categoryDefinition.setName(ANY); - SubCategoryDefinition subcategory = new SubCategoryDefinition(); - subcategory.setName(ANY); - categoryDefinition.addSubCategory(subcategory); - categories.add(categoryDefinition); - return categories; - } +// private static final String RESOURCE_NAME = "resourceName"; +// private static final String USER_ID = "userId"; +// private static final String VALIDATE_RESOURCE_NAME_EXISTS = "validate Resource Name Exists"; +// private static final String CSAR_UUID = "CsarUUID"; +// private static final String PAYLOAD = "PAYLOAD"; +// private static final String ANY = "ANY"; +// +// @Mock +// private IElementOperation elementDao; +// @Mock +// private GroupOperation groupOperation; +// @Mock +// private GroupInstanceOperation groupInstanceOperation; +// @Mock +// private GroupTypeOperation groupTypeOperation; +// @Mock +// private GroupBusinessLogic groupBusinessLogic; +// @Mock +// private InterfaceOperation interfaceOperation; +// @Mock +// private InterfaceLifecycleOperation interfaceLifecycleTypeOperation; +// @Mock +// private ArtifactsBusinessLogic artifactsBusinessLogic; +// @Mock +// private ComponentInstanceBusinessLogic componentInstanceBusinessLogic; +// @Mock +// private ResourceImportManager resourceImportManager; +// @Mock +// private InputsBusinessLogic inputsBusinessLogic; +// @Mock +// private CompositionBusinessLogic compositionBusinessLogic; +// @Mock +// private ResourceDataMergeBusinessLogic resourceDataMergeBusinessLogic; +// @Mock +// private CsarArtifactsAndGroupsBusinessLogic csarArtifactsAndGroupsBusinessLogic; +// @Mock +// private MergeInstanceUtils mergeInstanceUtils; +// @Mock +// private UiComponentDataConverter uiComponentDataConverter; +// @Mock +// private CsarBusinessLogic csarBusinessLogic; +// @Mock +// private ArtifactsOperations artifactToscaOperation; +// @Mock +// private LifecycleBusinessLogic lifecycleManager; +// @Mock +// private ApplicationDataTypeCache applicationDataTypeCache; +// @Mock +// private ComponentsUtils componentUtils; +// @Mock +// private ICapabilityTypeOperation capabilityTypeOperation; +// @Mock +// private UserValidations userValidations; +// @Mock +// private User user; +// @Mock +// private ToscaOperationFacade toscaOperationFacade; +// @Mock +// private JanusGraphDao janusGraphDao; +// @Mock +// private CsarInfo csarInfo; +// @Mock +// private Map<String, NodeTypeInfo> nodeTypeInfo; +// @Mock +// private ParsedToscaYamlInfo parsedToscaYamlInfo; +// @Mock +// private IGraphLockOperation graphLockOperation; +// @Mock +// private GenericTypeBusinessLogic genericTypeBusinessLogic; +// +// private ResourceBusinessLogic resourceBusinessLogic; +// +// @Before +// public void setUp() throws Exception { +// resourceBusinessLogic = new ResourceBusinessLogic(elementDao, +// groupOperation, +// groupInstanceOperation, +// groupTypeOperation, +// groupBusinessLogic, +// interfaceOperation, +// interfaceLifecycleTypeOperation, +// artifactsBusinessLogic, +// componentInstanceBusinessLogic, +// resourceImportManager, +// inputsBusinessLogic, +// compositionBusinessLogic, +// resourceDataMergeBusinessLogic, +// csarArtifactsAndGroupsBusinessLogic, +// mergeInstanceUtils, +// uiComponentDataConverter, +// csarBusinessLogic, +// artifactToscaOperation); +// +// resourceBusinessLogic.setLifecycleManager(lifecycleManager); +// resourceBusinessLogic.setApplicationDataTypeCache(applicationDataTypeCache); +// resourceBusinessLogic.setComponentsUtils(componentUtils); +// resourceBusinessLogic.setCapabilityTypeOperation(capabilityTypeOperation); +// resourceBusinessLogic.setUserValidations(userValidations); +// resourceBusinessLogic.setToscaOperationFacade(toscaOperationFacade); +// resourceBusinessLogic.setJanusGraphDao(janusGraphDao); +// resourceBusinessLogic.setGraphLockOperation(graphLockOperation); +// resourceBusinessLogic.setGenericTypeBusinessLogic(genericTypeBusinessLogic); +// } +// +// @Test +// public void testGetters() { +// assertEquals(resourceBusinessLogic.getComponentInstanceBL(), componentInstanceBusinessLogic); +// assertEquals(resourceBusinessLogic.getElementDao(), elementDao); +// assertEquals(resourceBusinessLogic.getLifecycleBusinessLogic(), lifecycleManager); +// assertEquals(resourceBusinessLogic.getApplicationDataTypeCache(), applicationDataTypeCache); +// assertEquals(resourceBusinessLogic.getComponentsUtils(), componentUtils); +// assertEquals(resourceBusinessLogic.getCapabilityTypeOperation(), capabilityTypeOperation); +// } +// +// @Test +// public void shouldValidateResourceNameExistsIfDataModelResponseIsRight() { +// Mockito.when(userValidations.validateUserExists(USER_ID, false)).thenReturn(user); +// Mockito.when(toscaOperationFacade.validateComponentNameUniqueness(RESOURCE_NAME, ResourceTypeEnum.ABSTRACT, ComponentTypeEnum.RESOURCE)).thenReturn(Either.right(StorageOperationStatus.DECLARED_INPUT_USED_BY_OPERATION)); +// Mockito.when(componentUtils.convertFromStorageResponse(StorageOperationStatus.DECLARED_INPUT_USED_BY_OPERATION)).thenReturn(ActionStatus.DECLARED_INPUT_USED_BY_OPERATION); +// Either<Map<String, Boolean>, ResponseFormat> response = resourceBusinessLogic +// .validateResourceNameExists(RESOURCE_NAME, ResourceTypeEnum.ABSTRACT, USER_ID); +// assertTrue(response.isRight()); +// } +// +// @Test(expected = ByResponseFormatComponentException.class) +// public void shouldThrowExceptionOnCreateResourceIfCsarUUIDIsNotEmptyIfAlreadyExist() { +// Mockito.when(elementDao +// .getAllCategories(NodeTypeEnum.ResourceNewCategory, false)).thenReturn(Either.left(getCategoryDefinitions())); +// Mockito.when(toscaOperationFacade.validateToscaResourceNameExists(Mockito.any())).thenReturn(Either.left(true)); +// Resource resource = getResource(); +// Map<String, byte[]> csarUIPayload = Collections.emptyMap(); +// Mockito.when(csarBusinessLogic.getCsarInfo(resource, null, user, csarUIPayload, PAYLOAD)).thenReturn(csarInfo); +// Mockito.when(csarInfo.extractNodeTypesInfo()).thenReturn(nodeTypeInfo); +// Map<String, UploadComponentInstanceInfo> nonEmptyMap = new HashMap<>(); +// nonEmptyMap.put(ANY, new UploadComponentInstanceInfo()); +// resource.setResourceType(ResourceTypeEnum.ABSTRACT); +// Mockito.when(graphLockOperation.lockComponentByName(Mockito.any(), Mockito.any())).thenReturn(StorageOperationStatus.OK); +// Mockito.when(parsedToscaYamlInfo.getInstances()).thenReturn(nonEmptyMap); +// Mockito.when(csarBusinessLogic.getParsedToscaYamlInfo(null, null, nodeTypeInfo, csarInfo, null)).thenReturn( +// parsedToscaYamlInfo); +// Mockito.when(toscaOperationFacade.validateComponentNameExists( +// resource.getName(), resource.getResourceType(), resource.getComponentType())).thenReturn(Either.left(true)); +// Mockito.when(genericTypeBusinessLogic.fetchDerivedFromGenericType(Mockito.any())).thenReturn(Either.left(resource)); +// resourceBusinessLogic.createResource(resource, AuditingActionEnum.ADD_USER, user, csarUIPayload, PAYLOAD); +// } +// +// @Test(expected = ByResponseFormatComponentException.class) +// public void shouldThrowExceptionOnCreateResourceIfCsarUUIDIsNotEmptyButComponentNameNotExists() { +// Mockito.when(elementDao +// .getAllCategories(NodeTypeEnum.ResourceNewCategory, false)).thenReturn(Either.left(getCategoryDefinitions())); +// Mockito.when(toscaOperationFacade.validateToscaResourceNameExists(Mockito.any())).thenReturn(Either.left(true)); +// Resource resource = getResource(); +// Map<String, byte[]> csarUIPayload = Collections.emptyMap(); +// Mockito.when(csarBusinessLogic.getCsarInfo(resource, null, user, csarUIPayload, PAYLOAD)).thenReturn(csarInfo); +// Mockito.when(csarInfo.extractNodeTypesInfo()).thenReturn(nodeTypeInfo); +// Map<String, UploadComponentInstanceInfo> nonEmptyMap = new HashMap<>(); +// nonEmptyMap.put(ANY, new UploadComponentInstanceInfo()); +// resource.setResourceType(ResourceTypeEnum.ABSTRACT); +// Mockito.when(graphLockOperation.lockComponentByName(Mockito.any(), Mockito.any())).thenReturn(StorageOperationStatus.OK); +// Mockito.when(parsedToscaYamlInfo.getInstances()).thenReturn(nonEmptyMap); +// Mockito.when(csarBusinessLogic.getParsedToscaYamlInfo(null, null, nodeTypeInfo, csarInfo, null)).thenReturn( +// parsedToscaYamlInfo); +// Mockito.when(toscaOperationFacade.validateComponentNameExists( +// resource.getName(), resource.getResourceType(), resource.getComponentType())).thenReturn(Either.right(StorageOperationStatus.ARTIFACT_NOT_FOUND)); +// Mockito.when(genericTypeBusinessLogic.fetchDerivedFromGenericType(Mockito.any())).thenReturn(Either.left(resource)); +// resourceBusinessLogic.createResource(resource, AuditingActionEnum.ADD_USER, user, csarUIPayload, PAYLOAD); +// } +// +// @Test(expected = ByActionStatusComponentException.class) +// public void shouldThrowExceptionOnCreateResourceIfCsarUUIDIsNotEmptyButEmptyDerivedFromGenericType() { +// Mockito.when(elementDao +// .getAllCategories(NodeTypeEnum.ResourceNewCategory, false)).thenReturn(Either.left(getCategoryDefinitions())); +// Mockito.when(toscaOperationFacade.validateToscaResourceNameExists(Mockito.any())).thenReturn(Either.left(true)); +// Resource resource = getResource(); +// Map<String, byte[]> csarUIPayload = Collections.emptyMap(); +// Mockito.when(csarBusinessLogic.getCsarInfo(resource, null, user, csarUIPayload, PAYLOAD)).thenReturn(csarInfo); +// Mockito.when(csarInfo.extractNodeTypesInfo()).thenReturn(nodeTypeInfo); +// Map<String, UploadComponentInstanceInfo> nonEmptyMap = new HashMap<>(); +// nonEmptyMap.put(ANY, new UploadComponentInstanceInfo()); +// resource.setResourceType(ResourceTypeEnum.ABSTRACT); +// Mockito.when(graphLockOperation.lockComponentByName(Mockito.any(), Mockito.any())).thenReturn(StorageOperationStatus.OK); +// Mockito.when(parsedToscaYamlInfo.getInstances()).thenReturn(nonEmptyMap); +// Mockito.when(genericTypeBusinessLogic.fetchDerivedFromGenericType(Mockito.any())).thenReturn(Either.right(new ResponseFormat())); +// Mockito.when(csarBusinessLogic.getParsedToscaYamlInfo(null, null, nodeTypeInfo, csarInfo, null)).thenReturn( +// parsedToscaYamlInfo); +// resourceBusinessLogic.createResource(resource, AuditingActionEnum.ADD_USER, user, csarUIPayload, PAYLOAD); +// } +// +// @Test(expected = ByResponseFormatComponentException.class) +// public void shouldThrowExceptionOnCreateResourceIfCsarUUIDIsNotEmptyButInvalidLockResponse() { +// Mockito.when(elementDao +// .getAllCategories(NodeTypeEnum.ResourceNewCategory, false)).thenReturn(Either.left(getCategoryDefinitions())); +// Mockito.when(toscaOperationFacade.validateToscaResourceNameExists(Mockito.any())).thenReturn(Either.left(true)); +// Resource resource = getResource(); +// Map<String, byte[]> csarUIPayload = Collections.emptyMap(); +// Mockito.when(csarBusinessLogic.getCsarInfo(resource, null, user, csarUIPayload, PAYLOAD)).thenReturn(csarInfo); +// Mockito.when(csarInfo.extractNodeTypesInfo()).thenReturn(nodeTypeInfo); +// Map<String, UploadComponentInstanceInfo> nonEmptyMap = new HashMap<>(); +// nonEmptyMap.put(ANY, new UploadComponentInstanceInfo()); +// resource.setResourceType(ResourceTypeEnum.ABSTRACT); +// Mockito.when(parsedToscaYamlInfo.getInstances()).thenReturn(nonEmptyMap); +// Mockito.when(graphLockOperation.lockComponentByName(Mockito.any(), Mockito.any())).thenReturn(StorageOperationStatus.BAD_REQUEST); +// Mockito.when(csarBusinessLogic.getParsedToscaYamlInfo(null, null, nodeTypeInfo, csarInfo, null)).thenReturn( +// parsedToscaYamlInfo); +// resourceBusinessLogic.createResource(resource, AuditingActionEnum.ADD_USER, user, csarUIPayload, PAYLOAD); +// } +// +// +// @Test(expected = ByActionStatusComponentException.class) +// public void shouldThrowExceptionOnNonPnfResource() { +// Mockito.when(elementDao +// .getAllCategories(NodeTypeEnum.ResourceNewCategory, false)).thenReturn(Either.left(getCategoryDefinitions())); +// Mockito.when(toscaOperationFacade.validateToscaResourceNameExists(Mockito.any())).thenReturn(Either.left(true)); +// Resource resource = getResource(); +// Map<String, byte[]> csarUIPayload = Collections.emptyMap(); +// Mockito.when(csarBusinessLogic.getCsarInfo(resource, null, user, csarUIPayload, PAYLOAD)).thenReturn(csarInfo); +// Mockito.when(csarInfo.extractNodeTypesInfo()).thenReturn(nodeTypeInfo); +// Mockito.when(csarBusinessLogic.getParsedToscaYamlInfo(null, null, nodeTypeInfo, csarInfo, null)).thenReturn( +// parsedToscaYamlInfo); +// resourceBusinessLogic.createResource(resource, AuditingActionEnum.ADD_USER, user, csarUIPayload, PAYLOAD); +// } +// +// @Test(expected = ByActionStatusComponentException.class) +// public void shouldThrowExceptionOnFailedToRetrieveResourceCategoriesFromJanusGraph() { +// Mockito.when(elementDao +// .getAllCategories(NodeTypeEnum.ResourceNewCategory, false)).thenReturn(Either.right(ActionStatus.ARTIFACT_NOT_FOUND)); +// Resource resource = getResource(); +// resourceBusinessLogic.createResource(resource, AuditingActionEnum.ADD_USER, user, Collections.emptyMap(), PAYLOAD); +// } +// +// @Test(expected = ByActionStatusComponentException.class) +// public void shouldThrowExceptionOnRightDataModelResponse() { +// Mockito.when(elementDao +// .getAllCategories(NodeTypeEnum.ResourceNewCategory, false)).thenReturn(Either.left(getCategoryDefinitions())); +// Mockito.when(toscaOperationFacade.validateToscaResourceNameExists(Mockito.any())).thenReturn(Either.right(StorageOperationStatus.ARTIFACT_NOT_FOUND)); +// Resource resource = getResource(); +// resourceBusinessLogic.createResource(resource, AuditingActionEnum.ADD_USER, user, Collections.emptyMap(), PAYLOAD); +// } +// +// private Resource getResource() { +// Resource resource = new Resource(); +// resource.setCsarUUID(CSAR_UUID); +// resource.setName(ANY); +// resource.setDescription(ANY); +// resource.setCategories(getCategoryDefinitions()); +// resource.setVendorName(ANY); +// resource.setVendorRelease(ANY); +// List<String> tags = new ArrayList<>(); +// tags.add(ANY); +// resource.setTags(tags); +// resource.setContactId(ANY); +// resource.setIcon(ANY); +// List<String> derivedFrom = new ArrayList<>(); +// derivedFrom.add(ANY); +// resource.setDerivedFrom(derivedFrom); +// return resource; +// } +// +// private List<CategoryDefinition> getCategoryDefinitions() { +// List<CategoryDefinition> categories = new ArrayList<>(); +// CategoryDefinition categoryDefinition = new CategoryDefinition(); +// categoryDefinition.setName(ANY); +// SubCategoryDefinition subcategory = new SubCategoryDefinition(); +// subcategory.setName(ANY); +// categoryDefinition.addSubCategory(subcategory); +// categories.add(categoryDefinition); +// return categories; +// } }
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogicTest.java index f5b42e1dde..da3955e560 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogicTest.java @@ -16,8 +16,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - * Modifications copyright (c) 2019 Nokia - * ================================================================================ */ package org.openecomp.sdc.be.components.impl; @@ -34,36 +32,42 @@ import org.openecomp.sdc.ElementOperationMock; import org.openecomp.sdc.be.auditing.impl.AuditingManager; import org.openecomp.sdc.be.components.ArtifactsResolver; import org.openecomp.sdc.be.components.csar.CsarArtifactsAndGroupsBusinessLogic; -import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException; -import org.openecomp.sdc.be.components.impl.exceptions.ByResponseFormatComponentException; -import org.openecomp.sdc.be.components.merge.resource.ResourceDataMergeBusinessLogic; -import org.openecomp.sdc.be.components.merge.utils.MergeInstanceUtils; -import org.openecomp.sdc.be.components.utils.ComponentBusinessLogicMock; -import org.openecomp.sdc.be.dao.cassandra.ArtifactCassandraDao; -import org.openecomp.sdc.be.datamodel.api.HighestFilterEnum; -import org.openecomp.sdc.be.datamodel.utils.UiComponentDataConverter; -import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ArtifactsOperations; -import org.openecomp.sdc.be.model.jsonjanusgraph.operations.InterfaceOperation; -import org.openecomp.sdc.be.model.operations.StorageException; import org.openecomp.sdc.be.components.csar.CsarBusinessLogic; import org.openecomp.sdc.be.components.csar.CsarInfo; import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic.ArtifactOperationEnum; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; import org.openecomp.sdc.be.components.impl.generic.GenericTypeBusinessLogic; import org.openecomp.sdc.be.components.lifecycle.LifecycleBusinessLogic; import org.openecomp.sdc.be.components.lifecycle.LifecycleChangeInfoWithAction; +import org.openecomp.sdc.be.components.merge.resource.ResourceDataMergeBusinessLogic; +import org.openecomp.sdc.be.components.merge.utils.MergeInstanceUtils; import org.openecomp.sdc.be.components.validation.UserValidations; +import org.openecomp.sdc.be.components.validation.component.ComponentContactIdValidator; +import org.openecomp.sdc.be.components.validation.component.ComponentDescriptionValidator; +import org.openecomp.sdc.be.components.validation.component.ComponentFieldValidator; +import org.openecomp.sdc.be.components.validation.component.ComponentIconValidator; +import org.openecomp.sdc.be.components.validation.component.ComponentNameValidator; +import org.openecomp.sdc.be.components.validation.component.ComponentProjectCodeValidator; +import org.openecomp.sdc.be.components.validation.component.ComponentTagsValidator; +import org.openecomp.sdc.be.components.validation.component.ComponentValidator; import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.dao.api.ActionStatus; -import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; +import org.openecomp.sdc.be.dao.cassandra.ArtifactCassandraDao; import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; +import org.openecomp.sdc.be.datamodel.api.HighestFilterEnum; +import org.openecomp.sdc.be.datamodel.utils.UiComponentDataConverter; +import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; +import org.openecomp.sdc.be.facade.operations.CatalogOperation; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.impl.WebAppContextWrapper; import org.openecomp.sdc.be.model.ArtifactDefinition; import org.openecomp.sdc.be.model.Component; import org.openecomp.sdc.be.model.DataTypeDefinition; +import org.openecomp.sdc.be.model.GroupDefinition; import org.openecomp.sdc.be.model.InputDefinition; import org.openecomp.sdc.be.model.LifeCycleTransitionEnum; import org.openecomp.sdc.be.model.LifecycleStateEnum; @@ -71,10 +75,13 @@ import org.openecomp.sdc.be.model.PropertyDefinition; import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ArtifactsOperations; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.InterfaceOperation; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.NodeTemplateOperation; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.NodeTypeOperation; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.TopologyTemplateOperation; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; +import org.openecomp.sdc.be.model.operations.StorageException; import org.openecomp.sdc.be.model.operations.api.ICapabilityTypeOperation; import org.openecomp.sdc.be.model.operations.api.IElementOperation; import org.openecomp.sdc.be.model.operations.api.IGroupInstanceOperation; @@ -91,7 +98,6 @@ import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; import org.openecomp.sdc.be.tosca.CsarUtils; import org.openecomp.sdc.be.tosca.CsarUtils.NonMetaArtifactInfo; import org.openecomp.sdc.be.tosca.ToscaExportHandler; -import org.openecomp.sdc.be.user.IUserBusinessLogic; import org.openecomp.sdc.be.user.Role; import org.openecomp.sdc.be.user.UserBusinessLogic; import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum; @@ -111,6 +117,7 @@ import javax.servlet.ServletContext; import java.io.IOException; import java.lang.reflect.Method; import java.util.ArrayList; +import java.util.Arrays; import java.util.EnumMap; import java.util.HashMap; import java.util.List; @@ -118,193 +125,231 @@ import java.util.Map; import java.util.stream.Collectors; import java.util.stream.Stream; +import static org.assertj.core.api.Java6Assertions.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.when; - -import static org.assertj.core.api.Java6Assertions.assertThat; -import static org.junit.Assert.assertNotEquals; import static org.mockito.Mockito.times; +import static org.mockito.Mockito.when; -public class ResourceBusinessLogicTest extends ComponentBusinessLogicMock { +public class ResourceBusinessLogicTest { - private static final Logger log = LoggerFactory.getLogger(ResourceBusinessLogicTest.class); - private static final String RESOURCE_CATEGORY1 = "Network Layer 2-3"; - private static final String RESOURCE_SUBCATEGORY = "Router"; + ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be"); + ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); + private static final Logger log = LoggerFactory.getLogger(ResourceBusinessLogicTest.class); + private static final String RESOURCE_CATEGORY1 = "Network Layer 2-3"; + private static final String RESOURCE_SUBCATEGORY = "Router"; - private static final String UPDATED_SUBCATEGORY = "Gateway"; + private static final String UPDATED_SUBCATEGORY = "Gateway"; private String resourceId = "resourceId1"; private String operationId = "uniqueId1"; Resource resourceUpdate; - private static final String RESOURCE_NAME = "My-Resource_Name with space"; - private static final String RESOURCE_TOSCA_NAME = "My-Resource_Tosca_Name"; - private static final String GENERIC_VF_NAME = "org.openecomp.resource.abstract.nodes.VF"; - private static final String GENERIC_CR_NAME = "org.openecomp.resource.abstract.nodes.CR"; - private static final String GENERIC_PNF_NAME = "org.openecomp.resource.abstract.nodes.PNF"; + private static final String RESOURCE_NAME = "My-Resource_Name with space"; + private static final String RESOURCE_TOSCA_NAME = "My-Resource_Tosca_Name"; + private static final String GENERIC_ROOT_NAME = "tosca.nodes.Root"; + private static final String GENERIC_VF_NAME = "org.openecomp.resource.abstract.nodes.VF"; + private static final String GENERIC_CR_NAME = "org.openecomp.resource.abstract.nodes.CR"; + private static final String GENERIC_PNF_NAME = "org.openecomp.resource.abstract.nodes.PNF"; - final ServletContext servletContext = Mockito.mock(ServletContext.class); - IElementOperation mockElementDao = new ElementOperationMock(); + final ServletContext servletContext = Mockito.mock(ServletContext.class); + IElementOperation mockElementDao; JanusGraphDao mockJanusGraphDao = Mockito.mock(JanusGraphDao.class); - UserBusinessLogic mockUserAdmin = Mockito.mock(UserBusinessLogic.class); - ToscaOperationFacade toscaOperationFacade = Mockito.mock(ToscaOperationFacade.class); - NodeTypeOperation nodeTypeOperation = Mockito.mock(NodeTypeOperation.class); - NodeTemplateOperation nodeTemplateOperation = Mockito.mock(NodeTemplateOperation.class); - TopologyTemplateOperation topologyTemplateOperation = Mockito.mock(TopologyTemplateOperation.class); - final LifecycleBusinessLogic lifecycleBl = Mockito.mock(LifecycleBusinessLogic.class); - final ICapabilityTypeOperation capabilityTypeOperation = Mockito.mock(ICapabilityTypeOperation.class); - final PropertyOperation propertyOperation = Mockito.mock(PropertyOperation.class); - final ApplicationDataTypeCache applicationDataTypeCache = Mockito.mock(ApplicationDataTypeCache.class); - WebAppContextWrapper webAppContextWrapper = Mockito.mock(WebAppContextWrapper.class); - UserValidations userValidations = Mockito.mock(UserValidations.class); - WebApplicationContext webAppContext = Mockito.mock(WebApplicationContext.class); + UserBusinessLogic mockUserAdmin = Mockito.mock(UserBusinessLogic.class); + ToscaOperationFacade toscaOperationFacade = Mockito.mock(ToscaOperationFacade.class); + NodeTypeOperation nodeTypeOperation = Mockito.mock(NodeTypeOperation.class); + NodeTemplateOperation nodeTemplateOperation = Mockito.mock(NodeTemplateOperation.class); + TopologyTemplateOperation topologyTemplateOperation = Mockito.mock(TopologyTemplateOperation.class); + final LifecycleBusinessLogic lifecycleBl = Mockito.mock(LifecycleBusinessLogic.class); + final CatalogOperation catalogOperation = Mockito.mock(CatalogOperation.class); + final ICapabilityTypeOperation capabilityTypeOperation = Mockito.mock(ICapabilityTypeOperation.class); + final PropertyOperation propertyOperation = Mockito.mock(PropertyOperation.class); + final ApplicationDataTypeCache applicationDataTypeCache = Mockito.mock(ApplicationDataTypeCache.class); + WebAppContextWrapper webAppContextWrapper = Mockito.mock(WebAppContextWrapper.class); + UserValidations userValidations = Mockito.mock(UserValidations.class); + WebApplicationContext webAppContext = Mockito.mock(WebApplicationContext.class); IInterfaceLifecycleOperation interfaceTypeOperation = Mockito.mock(IInterfaceLifecycleOperation.class); ArtifactCassandraDao artifactCassandraDao = Mockito.mock(ArtifactCassandraDao.class); - - CsarUtils csarUtils = Mockito.mock(CsarUtils.class); - IUserBusinessLogic userBusinessLogic = Mockito.mock(IUserBusinessLogic.class); - IGroupOperation groupOperation = Mockito.mock(IGroupOperation.class); - IGroupInstanceOperation groupInstanceOperation = Mockito.mock(IGroupInstanceOperation.class); - IGroupTypeOperation groupTypeOperation = Mockito.mock(IGroupTypeOperation.class); - GroupBusinessLogic groupBusinessLogic = Mockito.mock(GroupBusinessLogic.class); - InterfaceOperation interfaceOperation = Mockito.mock(InterfaceOperation.class); - ArtifactsOperations artifactToscaOperation = Mockito.mock(ArtifactsOperations.class); - private PropertyBusinessLogic propertyBusinessLogic = Mockito.mock(PropertyBusinessLogic.class); - ArtifactsResolver artifactsResolver = Mockito.mock(ArtifactsResolver.class); - InterfaceLifecycleOperation interfaceLifecycleTypeOperation = Mockito.mock(InterfaceLifecycleOperation.class); - ComponentInstanceBusinessLogic componentInstanceBusinessLogic = Mockito.mock(ComponentInstanceBusinessLogic.class); - ResourceImportManager resourceImportManager = Mockito.mock(ResourceImportManager.class); - InputsBusinessLogic inputsBusinessLogic = Mockito.mock(InputsBusinessLogic.class); - CompositionBusinessLogic compositionBusinessLogic = Mockito.mock(CompositionBusinessLogic.class); - ResourceDataMergeBusinessLogic resourceDataMergeBusinessLogic = Mockito.mock(ResourceDataMergeBusinessLogic.class); - CsarArtifactsAndGroupsBusinessLogic csarArtifactsAndGroupsBusinessLogic = Mockito.mock(CsarArtifactsAndGroupsBusinessLogic.class); - MergeInstanceUtils mergeInstanceUtils = Mockito.mock(MergeInstanceUtils.class); - UiComponentDataConverter uiComponentDataConverter = Mockito.mock(UiComponentDataConverter.class); + IElementOperation elementDao = new ElementOperationMock(); + + CsarUtils csarUtils = Mockito.mock(CsarUtils.class); + UserBusinessLogic userBusinessLogic = Mockito.mock(UserBusinessLogic.class); + IGroupOperation groupOperation = Mockito.mock(IGroupOperation.class); + IGroupInstanceOperation groupInstanceOperation = Mockito.mock(IGroupInstanceOperation.class); + IGroupTypeOperation groupTypeOperation = Mockito.mock(IGroupTypeOperation.class); + GroupBusinessLogic groupBusinessLogic = Mockito.mock(GroupBusinessLogic.class); + InterfaceOperation interfaceOperation = Mockito.mock(InterfaceOperation.class); + ArtifactsOperations artifactToscaOperation = Mockito.mock(ArtifactsOperations.class); + private PropertyBusinessLogic propertyBusinessLogic = Mockito.mock(PropertyBusinessLogic.class); + ArtifactsResolver artifactsResolver = Mockito.mock(ArtifactsResolver.class); + InterfaceLifecycleOperation interfaceLifecycleTypeOperation = Mockito.mock(InterfaceLifecycleOperation.class); + ComponentInstanceBusinessLogic componentInstanceBusinessLogic = Mockito.mock(ComponentInstanceBusinessLogic.class); + ResourceImportManager resourceImportManager = Mockito.mock(ResourceImportManager.class); + InputsBusinessLogic inputsBusinessLogic = Mockito.mock(InputsBusinessLogic.class); + CompositionBusinessLogic compositionBusinessLogic = Mockito.mock(CompositionBusinessLogic.class); + ResourceDataMergeBusinessLogic resourceDataMergeBusinessLogic = Mockito.mock(ResourceDataMergeBusinessLogic.class); + CsarArtifactsAndGroupsBusinessLogic csarArtifactsAndGroupsBusinessLogic = Mockito.mock(CsarArtifactsAndGroupsBusinessLogic.class); + MergeInstanceUtils mergeInstanceUtils = Mockito.mock(MergeInstanceUtils.class); + UiComponentDataConverter uiComponentDataConverter = Mockito.mock(UiComponentDataConverter.class); + ToscaExportHandler toscaExportHandler = Mockito.mock(ToscaExportHandler.class); + + + + @InjectMocks + ResponseFormatManager responseManager = null; + GraphLockOperation graphLockOperation = Mockito.mock(GraphLockOperation.class); + User user = null; + Resource resourceResponse = null; + Resource genericVF = null; + Resource genericCR = null; + Resource genericVFC = null; + Resource genericPNF = null; + Resource rootType = null; + ComponentsUtils componentsUtils = new ComponentsUtils(Mockito.mock(AuditingManager.class)); + ArtifactsBusinessLogic artifactManager = new ArtifactsBusinessLogic(artifactCassandraDao, toscaExportHandler, csarUtils, lifecycleBl, + userBusinessLogic, artifactsResolver, elementDao, groupOperation, groupInstanceOperation, groupTypeOperation, + interfaceOperation, interfaceLifecycleTypeOperation, artifactToscaOperation); + CsarOperation csarOperation = Mockito.mock(CsarOperation.class); + @InjectMocks + CsarBusinessLogic csarBusinessLogic ; + Map<String, DataTypeDefinition> emptyDataTypes = new HashMap<>(); + List<Resource> reslist; + private GenericTypeBusinessLogic genericTypeBusinessLogic = Mockito.mock(GenericTypeBusinessLogic.class); + protected ComponentDescriptionValidator componentDescriptionValidator = new ComponentDescriptionValidator(componentsUtils); + protected ComponentProjectCodeValidator componentProjectCodeValidator = new ComponentProjectCodeValidator(componentsUtils); + protected ComponentIconValidator componentIconValidator = new ComponentIconValidator(componentsUtils); + protected ComponentContactIdValidator componentContactIdValidator = new ComponentContactIdValidator(componentsUtils); + protected ComponentTagsValidator componentTagsValidator = new ComponentTagsValidator(componentsUtils); + protected ComponentNameValidator componentNameValidator = new ComponentNameValidator(componentsUtils, toscaOperationFacade); + private ComponentValidator componentValidator = createComponentValidator(); private SoftwareInformationBusinessLogic softwareInformationBusinessLogic = Mockito.mock(SoftwareInformationBusinessLogic.class); - ResponseFormatManager responseManager = null; - GraphLockOperation graphLockOperation = Mockito.mock(GraphLockOperation.class); - User user = null; - Resource resourceResponse = null; - Resource genericVF = null; - Resource genericCR = null; - Resource genericVFC = null; - Resource genericPNF = null; - ComponentsUtils componentsUtils; - ArtifactsBusinessLogic artifactManager; - CsarOperation csarOperation = Mockito.mock(CsarOperation.class); - @InjectMocks - CsarBusinessLogic csarBusinessLogic; - Map<String, DataTypeDefinition> emptyDataTypes = new HashMap<>(); - private GenericTypeBusinessLogic genericTypeBusinessLogic = Mockito.mock(GenericTypeBusinessLogic.class); - List<Resource> reslist; - ResourceBusinessLogic bl; - - public ResourceBusinessLogicTest() { - } - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - Mockito.reset(propertyOperation); - - ExternalConfiguration.setAppName("catalog-be"); - - // init Configuration - String appConfigDir = "src/test/resources/config/catalog-be"; - ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir); - ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); - componentsUtils = new ComponentsUtils(Mockito.mock(AuditingManager.class)); - - ToscaExportHandler toscaExportHandler = Mockito.mock(ToscaExportHandler.class); - - // User data and management - user = new User(); - user.setUserId("jh0003"); - user.setFirstName("Jimmi"); - user.setLastName("Hendrix"); - user.setRole(Role.ADMIN.name()); - - Either<User, ActionStatus> eitherGetUser = Either.left(user); - when(mockUserAdmin.getUser("jh0003", false)).thenReturn(eitherGetUser); - when(userValidations.validateUserExists(eq(user.getUserId()), anyString(), eq(false))).thenReturn(user); - when(userValidations.validateUserNotEmpty(eq(user), anyString())).thenReturn(user); - // Servlet Context attributes - when(servletContext.getAttribute(Constants.CONFIGURATION_MANAGER_ATTR)).thenReturn(configurationManager); - when(servletContext.getAttribute(Constants.WEB_APPLICATION_CONTEXT_WRAPPER_ATTR)).thenReturn(webAppContextWrapper); - when(webAppContextWrapper.getWebAppContext(servletContext)).thenReturn(webAppContext); - when(webAppContext.getBean(IElementOperation.class)).thenReturn(mockElementDao); - - Either<Integer, StorageOperationStatus> eitherCountRoot = Either.left(1); - Either<Boolean, StorageOperationStatus> eitherFalse = Either.left(true); - when(toscaOperationFacade.validateComponentNameExists("Root", ResourceTypeEnum.VFC, ComponentTypeEnum.RESOURCE)).thenReturn(eitherFalse); - - - Either<Boolean, StorageOperationStatus> eitherCountExist = Either.left(true); - when(toscaOperationFacade.validateComponentNameExists("alreadyExists", ResourceTypeEnum.VFC, ComponentTypeEnum.RESOURCE)).thenReturn(eitherCountExist); - - Either<Boolean, StorageOperationStatus> eitherCount = Either.left(false); - when(toscaOperationFacade.validateComponentNameExists(eq(RESOURCE_NAME), any(ResourceTypeEnum.class), eq(ComponentTypeEnum.RESOURCE))).thenReturn(eitherCount); - /*when(toscaOperationFacade.validateComponentNameExists(RESOURCE_NAME, ResourceTypeEnum.VF, ComponentTypeEnum.RESOURCE)).thenReturn(eitherCount); - when(toscaOperationFacade.validateComponentNameExists(RESOURCE_NAME, ResourceTypeEnum.PNF, ComponentTypeEnum.RESOURCE)).thenReturn(eitherCount); - when(toscaOperationFacade.validateComponentNameExists(RESOURCE_NAME, ResourceTypeEnum.CR, ComponentTypeEnum.RESOURCE)).thenReturn(eitherCount);*/ - Either<Boolean, StorageOperationStatus> validateDerivedExists = Either.left(true); - when(toscaOperationFacade.validateToscaResourceNameExists("Root")).thenReturn(validateDerivedExists); - - Either<Boolean, StorageOperationStatus> validateDerivedNotExists = Either.left(false); - when(toscaOperationFacade.validateToscaResourceNameExists("kuku")).thenReturn(validateDerivedNotExists); - when(graphLockOperation.lockComponent(Mockito.anyString(), eq(NodeTypeEnum.Resource))).thenReturn(StorageOperationStatus.OK); - when(graphLockOperation.lockComponentByName(Mockito.anyString(), eq(NodeTypeEnum.Resource))).thenReturn(StorageOperationStatus.OK); - - // createResource - resourceResponse = createResourceObject(true); - Either<Resource, StorageOperationStatus> eitherCreate = Either.left(resourceResponse); - Either<Integer, StorageOperationStatus> eitherValidate = Either.left(null); - when(toscaOperationFacade.createToscaComponent(any(Resource.class))).thenReturn(eitherCreate); - Map<String, DataTypeDefinition> emptyDataTypes = new HashMap<>(); - when(applicationDataTypeCache.getAll()).thenReturn(Either.left(emptyDataTypes)); + private ComponentValidator createComponentValidator() { + List<ComponentFieldValidator> componentFieldValidators = Arrays.asList(componentNameValidator, + componentDescriptionValidator, componentProjectCodeValidator, + componentIconValidator, componentContactIdValidator, + componentTagsValidator); + return new ComponentValidator(componentsUtils,componentFieldValidators); + } + + ResourceBusinessLogic bl; + public ResourceBusinessLogicTest() { + } + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + Mockito.reset(propertyOperation); + + // Elements + mockElementDao = new ElementOperationMock(); + + + // User data and management + user = new User(); + user.setUserId("jh0003"); + user.setFirstName("Jimmi"); + user.setLastName("Hendrix"); + user.setRole(Role.ADMIN.name()); + + when(mockUserAdmin.getUser("jh0003", false)).thenReturn(user); + when(userValidations.validateUserExists(eq(user.getUserId()))).thenReturn(user); + when(userValidations.validateUserNotEmpty(eq(user), anyString())).thenReturn(user); + // Servlet Context attributes + when(servletContext.getAttribute(Constants.CONFIGURATION_MANAGER_ATTR)).thenReturn(configurationManager); + when(servletContext.getAttribute(Constants.WEB_APPLICATION_CONTEXT_WRAPPER_ATTR)) + .thenReturn(webAppContextWrapper); + when(webAppContextWrapper.getWebAppContext(servletContext)).thenReturn(webAppContext); + when(webAppContext.getBean(IElementOperation.class)).thenReturn(mockElementDao); + + Either<Boolean, StorageOperationStatus> eitherFalse = Either.left(true); + when(toscaOperationFacade.validateComponentNameExists("tosca.nodes.Root", ResourceTypeEnum.VFC, ComponentTypeEnum.RESOURCE)) + .thenReturn(eitherFalse); + + + Either<Boolean, StorageOperationStatus> eitherCountExist = Either.left(true); + when(toscaOperationFacade.validateComponentNameExists("alreadyExists", ResourceTypeEnum.VFC, + ComponentTypeEnum.RESOURCE)).thenReturn(eitherCountExist); + + Either<Boolean, StorageOperationStatus> eitherCount = Either.left(false); + when(toscaOperationFacade.validateComponentNameExists(eq(RESOURCE_NAME), any(ResourceTypeEnum.class), + eq(ComponentTypeEnum.RESOURCE))).thenReturn(eitherCount); + /* + * when(toscaOperationFacade.validateComponentNameExists(RESOURCE_NAME, + * ResourceTypeEnum.VF, + when(interfaceOperation.updateInterface(anyString(), anyObject())).thenReturn(Either.left(InterfaceOperationTestUtils.mockInterfaceDefinitionToReturn(RESOURCE_NAME))); + * ComponentTypeEnum.RESOURCE)).thenReturn(eitherCount); + * when(toscaOperationFacade.validateComponentNameExists(RESOURCE_NAME, + * ResourceTypeEnum.PNF, + * ComponentTypeEnum.RESOURCE)).thenReturn(eitherCount); + * when(toscaOperationFacade.validateComponentNameExists(RESOURCE_NAME, + * ResourceTypeEnum.CR, + * ComponentTypeEnum.RESOURCE)).thenReturn(eitherCount); + */ + Either<Boolean, StorageOperationStatus> validateDerivedExists = Either.left(true); + when(toscaOperationFacade.validateToscaResourceNameExists("tosca.nodes.Root")).thenReturn(validateDerivedExists); + + Either<Boolean, StorageOperationStatus> validateDerivedNotExists = Either.left(false); + when(toscaOperationFacade.validateToscaResourceNameExists("kuku")).thenReturn(validateDerivedNotExists); + when(graphLockOperation.lockComponent(anyString(), eq(NodeTypeEnum.Resource))) + .thenReturn(StorageOperationStatus.OK); + when(graphLockOperation.lockComponentByName(anyString(), eq(NodeTypeEnum.Resource))) + .thenReturn(StorageOperationStatus.OK); + + // createResource + resourceResponse = createResourceObject(true); + Either<Resource, StorageOperationStatus> eitherCreate = Either.left(resourceResponse); + when(toscaOperationFacade.createToscaComponent(any(Resource.class))).thenReturn(eitherCreate); + when(catalogOperation.updateCatalog(Mockito.any(), Mockito.any())).thenReturn(ActionStatus.OK); + Map<String, DataTypeDefinition> emptyDataTypes = new HashMap<>(); + when(applicationDataTypeCache.getAll()).thenReturn(Either.left(emptyDataTypes)); when(mockJanusGraphDao.commit()).thenReturn(JanusGraphOperationStatus.OK); - // BL object - artifactManager = new ArtifactsBusinessLogic(artifactCassandraDao, toscaExportHandler, csarUtils, lifecycleBl, userBusinessLogic, - artifactsResolver, mockElementDao, groupOperation, groupInstanceOperation, groupTypeOperation, interfaceOperation, - interfaceLifecycleTypeOperation, artifactToscaOperation); - - bl = new ResourceBusinessLogic(mockElementDao, groupOperation, groupInstanceOperation, groupTypeOperation, groupBusinessLogic, - interfaceOperation, interfaceLifecycleTypeOperation, artifactManager, componentInstanceBusinessLogic, - resourceImportManager, inputsBusinessLogic, compositionBusinessLogic, resourceDataMergeBusinessLogic, - csarArtifactsAndGroupsBusinessLogic, mergeInstanceUtils, uiComponentDataConverter, csarBusinessLogic, - artifactToscaOperation, propertyBusinessLogic, softwareInformationBusinessLogic); - - artifactManager.setNodeTemplateOperation(nodeTemplateOperation); - bl.setUserAdmin(mockUserAdmin); - bl.setCapabilityTypeOperation(capabilityTypeOperation); - bl.setComponentsUtils(componentsUtils); - bl.setLifecycleManager(lifecycleBl); - bl.setGraphLockOperation(graphLockOperation); - bl.setPropertyOperation(propertyOperation); + // BL object + artifactManager.setNodeTemplateOperation(nodeTemplateOperation); + bl = new ResourceBusinessLogic(mockElementDao, groupOperation, groupInstanceOperation, groupTypeOperation, groupBusinessLogic, + interfaceOperation, interfaceLifecycleTypeOperation, artifactManager, componentInstanceBusinessLogic, + resourceImportManager, inputsBusinessLogic, compositionBusinessLogic, resourceDataMergeBusinessLogic, + csarArtifactsAndGroupsBusinessLogic, mergeInstanceUtils, uiComponentDataConverter, csarBusinessLogic, + artifactToscaOperation, propertyBusinessLogic, componentContactIdValidator, componentNameValidator, + componentTagsValidator, componentValidator, componentIconValidator, componentProjectCodeValidator, componentDescriptionValidator); + bl.setElementDao(mockElementDao); + bl.setUserAdmin(mockUserAdmin); + bl.setCapabilityTypeOperation(capabilityTypeOperation); + bl.setComponentsUtils(componentsUtils); + bl.setLifecycleManager(lifecycleBl); + bl.setGraphLockOperation(graphLockOperation); + bl.setArtifactsManager(artifactManager); + bl.setPropertyOperation(propertyOperation); bl.setJanusGraphDao(mockJanusGraphDao); - bl.setApplicationDataTypeCache(applicationDataTypeCache); - bl.setGenericTypeBusinessLogic(genericTypeBusinessLogic); - toscaOperationFacade.setNodeTypeOperation(nodeTypeOperation); - toscaOperationFacade.setTopologyTemplateOperation(topologyTemplateOperation); - bl.setToscaOperationFacade(toscaOperationFacade); - bl.setUserValidations(userValidations); + bl.setApplicationDataTypeCache(applicationDataTypeCache); + bl.setGenericTypeBusinessLogic(genericTypeBusinessLogic); + bl.setCatalogOperations(catalogOperation); + toscaOperationFacade.setNodeTypeOperation(nodeTypeOperation); + toscaOperationFacade.setTopologyTemplateOperation(topologyTemplateOperation); + bl.setToscaOperationFacade(toscaOperationFacade); + bl.setUserValidations(userValidations); bl.setInterfaceTypeOperation(interfaceTypeOperation); - csarBusinessLogic.setCsarOperation(csarOperation); - Resource resourceCsar = createResourceObjectCsar(true); - setCanWorkOnResource(resourceCsar); - Either<Component, StorageOperationStatus> oldResourceRes = Either.left(resourceCsar); - when(toscaOperationFacade.getToscaFullElement(resourceCsar.getUniqueId())).thenReturn(oldResourceRes); - responseManager = ResponseFormatManager.getInstance(); - + csarBusinessLogic.setCsarOperation(csarOperation); + Resource resourceCsar = createResourceObjectCsar(true); + setCanWorkOnResource(resourceCsar); + Either<Component, StorageOperationStatus> oldResourceRes = Either.left(resourceCsar); + when(toscaOperationFacade.getToscaFullElement(resourceCsar.getUniqueId())).thenReturn(oldResourceRes); + responseManager = ResponseFormatManager.getInstance(); + bl.setComponentIconValidator(componentIconValidator); + bl.setComponentNameValidator(componentNameValidator); + bl.setComponentDescriptionValidator(componentDescriptionValidator); + bl.setComponentTagsValidator(componentTagsValidator); + bl.setComponentContactIdValidator(componentContactIdValidator); + bl.setComponentProjectCodeValidator(componentProjectCodeValidator); + bl.setComponentValidator(componentValidator); reslist = new ArrayList<Resource>(); reslist.add(resourceResponse); reslist.add(genericVF); @@ -317,667 +362,687 @@ public class ResourceBusinessLogicTest extends ComponentBusinessLogicMock { Either<List<Resource>, StorageOperationStatus> returnevalexception= Either.right(StorageOperationStatus.BAD_REQUEST); when(toscaOperationFacade.getAllCertifiedResources(false, false)).thenReturn(returnevalexception); - } - - private Resource createResourceObject(boolean afterCreate) { - Resource resource = new Resource(); - resource.setName(RESOURCE_NAME); - resource.setToscaResourceName(RESOURCE_TOSCA_NAME); - resource.addCategory(RESOURCE_CATEGORY1, RESOURCE_SUBCATEGORY); - resource.setDescription("My short description"); - List<String> tgs = new ArrayList<>(); - tgs.add("test"); - tgs.add(resource.getName()); - resource.setTags(tgs); - List<String> template = new ArrayList<>(); - template.add("Root"); - resource.setDerivedFrom(template); - resource.setVendorName("Motorola"); - resource.setVendorRelease("1.0.0"); - resource.setContactId("ya5467"); - resource.setIcon("MyIcon"); - - if (afterCreate) { - resource.setName(resource.getName()); - resource.setVersion("0.1"); - resource.setUniqueId(resource.getName().toLowerCase() + ":" + resource.getVersion()); - resource.setCreatorUserId(user.getUserId()); - resource.setCreatorFullName(user.getFirstName() + " " + user.getLastName()); - resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); - } - return resource; - } - - private Resource createResourceObjectCsar(boolean afterCreate) { - Resource resource = new Resource(); - resource.setName(RESOURCE_NAME); - resource.addCategory(RESOURCE_CATEGORY1, RESOURCE_SUBCATEGORY); - resource.setDescription("My short description"); - List<String> tgs = new ArrayList<>(); - tgs.add("test"); - tgs.add(resource.getName()); - resource.setTags(tgs); - List<String> template = new ArrayList<>(); - template.add("Root"); - resource.setDerivedFrom(template); - resource.setVendorName("Motorola"); - resource.setVendorRelease("1.0.0"); - resource.setResourceVendorModelNumber(""); - resource.setContactId("ya5467"); - resource.setIcon("MyIcon"); - resource.setCsarUUID("valid_vf.csar"); - resource.setCsarVersion("1"); - - if (afterCreate) { - resource.setName(resource.getName()); - resource.setVersion("0.1"); - - resource.setUniqueId(resource.getName().toLowerCase() + ":" + resource.getVersion()); - resource.setCreatorUserId(user.getUserId()); - resource.setCreatorFullName(user.getFirstName() + " " + user.getLastName()); - resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); - } - return resource; - } - - private Resource setCanWorkOnResource(Resource resource) { - resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); - resource.setLastUpdaterUserId(user.getUserId()); - return resource; - } - - @Test - public void testHappyScenario() { - validateUserRoles(Role.ADMIN, Role.DESIGNER); - Resource resource = createResourceObject(false); - Resource createdResource = null; - try{ - createdResource= bl.createResource(resource, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - assertThat(createResourceObject(true)).isEqualTo(createdResource); - } catch(ByResponseFormatComponentException e){ - assertThat(new Integer(200)).isEqualTo(e.getResponseFormat().getStatus()); - } - } - - @Test - public void testUpdateHappyScenario() { - Resource resource = createResourceObjectCsar(true); - setCanWorkOnResource(resource); - validateUserRoles(Role.ADMIN, Role.DESIGNER); - Either<Resource, StorageOperationStatus> resourceLinkedToCsarRes = Either.left(resource); - when(toscaOperationFacade.getLatestComponentByCsarOrName(ComponentTypeEnum.RESOURCE, resource.getCsarUUID(), resource.getSystemName())).thenReturn(resourceLinkedToCsarRes); - Either<Boolean, StorageOperationStatus> validateDerivedExists = Either.left(true); - when(toscaOperationFacade.validateToscaResourceNameExists("Root")).thenReturn(validateDerivedExists); + } + + private Resource createResourceObject(boolean afterCreate) { + Resource resource = new Resource(); + resource.setName(RESOURCE_NAME); + resource.setToscaResourceName(RESOURCE_TOSCA_NAME); + resource.addCategory(RESOURCE_CATEGORY1, RESOURCE_SUBCATEGORY); + resource.setDescription("My short description"); + List<String> tgs = new ArrayList<>(); + tgs.add("test"); + tgs.add(resource.getName()); + resource.setTags(tgs); + List<String> template = new ArrayList<>(); + template.add("tosca.nodes.Root"); + resource.setDerivedFrom(template); + resource.setVendorName("Motorola"); + resource.setVendorRelease("1.0.0"); + resource.setContactId("ya5467"); + resource.setIcon("defaulticon"); + + if (afterCreate) { + resource.setName(resource.getName()); + resource.setVersion("0.1"); + resource.setUniqueId(resource.getName() + .toLowerCase() + ":" + resource.getVersion()); + resource.setCreatorUserId(user.getUserId()); + resource.setCreatorFullName(user.getFirstName() + " " + user.getLastName()); + resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); + } + return resource; + } + + private Resource createResourceObjectCsar(boolean afterCreate) { + Resource resource = new Resource(); + resource.setName(RESOURCE_NAME); + resource.addCategory(RESOURCE_CATEGORY1, RESOURCE_SUBCATEGORY); + resource.setDescription("My short description"); + List<String> tgs = new ArrayList<>(); + tgs.add("test"); + tgs.add(resource.getName()); + resource.setTags(tgs); + List<String> template = new ArrayList<>(); + template.add("tosca.nodes.Root"); + resource.setDerivedFrom(template); + resource.setVendorName("Motorola"); + resource.setVendorRelease("1.0.0"); + resource.setResourceVendorModelNumber(""); + resource.setContactId("ya5467"); + resource.setIcon("MyIcon"); + resource.setCsarUUID("valid_vf.csar"); + resource.setCsarVersion("1"); + + if (afterCreate) { + resource.setName(resource.getName()); + resource.setVersion("0.1"); + + resource.setUniqueId(resource.getName() + .toLowerCase() + ":" + resource.getVersion()); + resource.setCreatorUserId(user.getUserId()); + resource.setCreatorFullName(user.getFirstName() + " " + user.getLastName()); + resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); + } + return resource; + } + + private Resource setCanWorkOnResource(Resource resource) { + resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); + resource.setLastUpdaterUserId(user.getUserId()); + return resource; + } + + @Test + public void testHappyScenario() { + validateUserRoles(Role.ADMIN, Role.DESIGNER); + Resource resource = createResourceObject(false); + Resource createdResource = null; + try { + createdResource = bl.createResource(resource, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + assertThat(createResourceObject(true)).isEqualTo(createdResource); + } catch (ComponentException e) { + assertThat(new Integer(200)).isEqualTo(e.getResponseFormat() + .getStatus()); + } + } + + @Test + public void testUpdateHappyScenario() { + Resource resource = createResourceObjectCsar(true); + setCanWorkOnResource(resource); + validateUserRoles(Role.ADMIN, Role.DESIGNER); + Either<Resource, StorageOperationStatus> resourceLinkedToCsarRes = Either.left(resource); + when(toscaOperationFacade.getLatestComponentByCsarOrName(ComponentTypeEnum.RESOURCE, resource.getCsarUUID(), + resource.getSystemName())).thenReturn(resourceLinkedToCsarRes); + Either<Boolean, StorageOperationStatus> validateDerivedExists = Either.left(true); + when(toscaOperationFacade.validateToscaResourceNameExists("tosca.nodes.Root")).thenReturn(validateDerivedExists); Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); - Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); - when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); - Resource createdResource = null; - try{ - createdResource= bl.validateAndUpdateResourceFromCsar(resource, user, null, null, resource.getUniqueId()); - assertThat(resource.getUniqueId()).isEqualTo(createdResource.getUniqueId()); - } catch(ByResponseFormatComponentException e){ - assertThat(new Integer(200)).isEqualTo(e.getResponseFormat().getStatus()); - } - } - - - @Test - public void testFailedResourceValidations() { - testResourceNameExist(); - testResourceNameEmpty(); - // testResourceNameExceedsLimit(); - testResourceNameWrongFormat(); - testResourceDescExceedsLimitCreate(); - testResourceDescNotEnglish(); - testResourceDescriptionEmpty(); - testResourceDescriptionMissing(); - testResourceIconMissing(); - testResourceIconInvalid(); - testResourceIconExceedsLimit(); - testResourceTagNotExist(); - testResourceTagEmpty(); - testTagsExceedsLimitCreate(); - testTagsNoServiceName(); - testInvalidTag(); - - testContactIdTooLong(); - testContactIdWrongFormatCreate(); - testResourceContactIdEmpty(); - testResourceContactIdMissing(); - testVendorNameExceedsLimit(); - testVendorNameWrongFormatCreate(); - testVendorReleaseWrongFormat(); - testVendorReleaseExceedsLimitCreate(); - testResourceVendorModelNumberExceedsLimit(); - testResourceVendorNameMissing(); - testResourceVendorReleaseMissing(); - testResourceCategoryExist(); - testResourceBadCategoryCreate(); - testHappyScenarioCostLicenseType(); - testCostWrongFormatCreate(); - testLicenseTypeWrongFormatCreate(); - testResourceTemplateNotExist(); - testResourceTemplateEmpty(); - testResourceTemplateInvalid(); - } - - private void testResourceNameExist() { - String resourceName = "alreadyExists"; - Resource resourceExist = createResourceObject(false); - resourceExist.setName(resourceName); - resourceExist.getTags().add(resourceName); - validateUserRoles(Role.ADMIN, Role.DESIGNER); - try { - bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByResponseFormatComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_NAME_ALREADY_EXIST, ComponentTypeEnum.RESOURCE.getValue(), resourceName); - } - } - - private void testResourceNameEmpty() { - Resource resourceExist = createResourceObject(false); - resourceExist.setName(null); - - try { - bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.MISSING_COMPONENT_NAME, ComponentTypeEnum.RESOURCE.getValue()); - } - } - - private void testResourceNameExceedsLimit() { - Resource resourceExccedsNameLimit = createResourceObject(false); - // 51 chars, the limit is 50 - String tooLongResourceName = "zCRCAWjqte0DtgcAAMmcJcXeNubeX1p1vOZNTShAHOYNAHvV3iK"; - resourceExccedsNameLimit.setName(tooLongResourceName); - - try { - bl.createResource(resourceExccedsNameLimit, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_NAME_EXCEEDS_LIMIT, ComponentTypeEnum.RESOURCE.getValue(), "" + ValidationUtils.COMPONENT_NAME_MAX_LENGTH); - } - } - - private void testResourceNameWrongFormat() { - Resource resource = createResourceObject(false); - // contains : - String nameWrongFormat = "ljg?fd"; - resource.setName(nameWrongFormat); - - try { - bl.createResource(resource, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.INVALID_COMPONENT_NAME, ComponentTypeEnum.RESOURCE.getValue()); - } - } - - // Resource name - end - // Resource description - start - private void testResourceDescExceedsLimitCreate() { - Resource resourceExccedsDescLimit = createResourceObject(false); - // 1025 chars, the limit is 1024 - String tooLongResourceDesc = "1GUODojQ0sGzKR4NP7e5j82ADQ3KHTVOaezL95qcbuaqDtjZhAQGQ3iFwKAy580K4WiiXs3u3zq7RzXcSASl5fm0RsWtCMOIDP" - + "AOf9Tf2xtXxPCuCIMCR5wOGnNTaFxgnJEHAGxilBhZDgeMNHmCN1rMK5B5IRJOnZxcpcL1NeG3APTCIMP1lNAxngYulDm9heFSBc8TfXAADq7703AvkJT0QPpGq2z2P" - + "tlikcAnIjmWgfC5Tm7UH462BAlTyHg4ExnPPL4AO8c92VrD7kZSgSqiy73cN3gLT8uigkKrUgXQFGVUFrXVyyQXYtVM6bLBeuCGQf4C2j8lkNg6M0J3PC0PzMRoinOxk" - + "Ae2teeCtVcIj4A1KQo3210j8q2v7qQU69Mabsa6DT9FgE4rcrbiFWrg0Zto4SXWD3o1eJA9o29lTg6kxtklH3TuZTmpi5KVp1NFhS1RpnqF83tzv4mZLKsx7Zh1fEgYvRFwx1" - + "ar3RolyDfNoZiGBGTMsZzz7RPFBf2hTnLmNqVGQnHKhhGj0Y5s8t2cbqbO2nmHiJb9uaUVrCGypgbAcJL3KPOBfAVW8PcpmNj4yVjI3L4x5zHjmGZbp9vKshEQODcrmcgsYAoKqe" - + "uu5u7jk8XVxEfQ0m5qL8UOErXPlJovSmKUmP5B5T0w299zIWDYCzSoNasHpHjOMDLAiDDeHbozUOn9t3Qou00e9POq4RMM0VnIx1H38nJoJZz2XH8CI5YMQe7oTagaxgQTF2aa0qaq2" - + "V6nJsfRGRklGjNhFFYP2cS4Xv2IJO9DSX6LTXOmENrGVJJvMOZcvnBaZPfoAHN0LU4i1SoepLzulIxnZBfkUWFJgZ5wQ0Bco2GC1HMqzW21rwy4XHRxXpXbmW8LVyoA1KbnmVmROycU4" - + "scTZ62IxIcIWCVeMjBIcTviXULbPUyqlfEPXWr8IMJtpAaELWgyquPClAREMDs2b9ztKmUeXlMccFES1XWbFTrhBHhmmDyVReEgCwfokrUFR13LTUK1k8I6OEHOs"; - - resourceExccedsDescLimit.setDescription(tooLongResourceDesc); - try { - bl.createResource(resourceExccedsDescLimit, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_DESCRIPTION_EXCEEDS_LIMIT, ComponentTypeEnum.RESOURCE.getValue(), "" + ValidationUtils.COMPONENT_DESCRIPTION_MAX_LENGTH); - } - } - - private void testResourceDescNotEnglish() { - Resource notEnglish = createResourceObject(false); - // Not english - String notEnglishDesc = "\uC2B5"; - notEnglish.setDescription(notEnglishDesc); - - try { - bl.createResource(notEnglish, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_INVALID_DESCRIPTION, ComponentTypeEnum.RESOURCE.getValue()); - } - } - - private void testResourceDescriptionEmpty() { - Resource resourceExist = createResourceObject(false); - resourceExist.setDescription(""); - - try { - bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_MISSING_DESCRIPTION, ComponentTypeEnum.RESOURCE.getValue()); - } - } - - private void testResourceDescriptionMissing() { - Resource resourceExist = createResourceObject(false); - resourceExist.setDescription(null); - - try { - bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_MISSING_DESCRIPTION, ComponentTypeEnum.RESOURCE.getValue()); - } - } - // Resource description - end - // Resource icon start - - private void testResourceIconMissing() { - Resource resourceExist = createResourceObject(false); - resourceExist.setIcon(null); - - try { - bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_MISSING_ICON, ComponentTypeEnum.RESOURCE.getValue()); - } - } - - private void testResourceIconInvalid() { - Resource resourceExist = createResourceObject(false); - resourceExist.setIcon("kjk3453^&"); - - try { - bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_INVALID_ICON, ComponentTypeEnum.RESOURCE.getValue()); - } - } - - private void testResourceIconExceedsLimit() { - Resource resourceExist = createResourceObject(false); - resourceExist.setIcon("dsjfhskdfhskjdhfskjdhkjdhfkshdfksjsdkfhsdfsdfsdfsfsdfsf"); - try { - bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_ICON_EXCEEDS_LIMIT, ComponentTypeEnum.RESOURCE.getValue(), "" + ValidationUtils.ICON_MAX_LENGTH); - } - } - - // Resource icon end - // Resource tags - start - private void testResourceTagNotExist() { - Resource resourceExist = createResourceObject(false); - resourceExist.setTags(null); - try { - bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_MISSING_TAGS); - } - } - - private void testResourceTagEmpty() { - Resource resourceExist = createResourceObject(false); - resourceExist.setTags(new ArrayList<>()); - try { - bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_MISSING_TAGS); - } - } - - private void testTagsExceedsLimitCreate() { - Resource resourceExccedsNameLimit = createResourceObject(false); - String tag1 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjQ"; - String tag2 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjW"; - String tag3 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjE"; - String tag4 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjb"; - String tag5 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjr"; - String tag6 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjf"; - String tag7 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjg"; - String tag8 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjd"; - String tag9 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjf"; - String tag10 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjg"; - String tag11 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjh"; - String tag12 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjj"; - String tag13 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjk"; - String tag14 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjs"; - String tag15 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjz"; - String tag16 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjx"; - String tag17 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBj2"; - String tag18 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBj3"; - String tag19 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBj4"; - String tag20 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBj5"; - String tag21 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBj0"; - - List<String> tagsList = new ArrayList<>(); - tagsList.add(tag1); - tagsList.add(tag2); - tagsList.add(tag3); - tagsList.add(tag4); - tagsList.add(tag5); - tagsList.add(tag6); - tagsList.add(tag7); - tagsList.add(tag8); - tagsList.add(tag9); - tagsList.add(tag10); - tagsList.add(tag11); - tagsList.add(tag12); - tagsList.add(tag13); - tagsList.add(tag14); - tagsList.add(tag15); - tagsList.add(tag16); - tagsList.add(tag17); - tagsList.add(tag18); - tagsList.add(tag19); - tagsList.add(tag20); - tagsList.add(tag21); - tagsList.add(resourceExccedsNameLimit.getName()); - - resourceExccedsNameLimit.setTags(tagsList); - try { - bl.createResource(resourceExccedsNameLimit, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_TAGS_EXCEED_LIMIT, "" + ValidationUtils.TAG_LIST_MAX_LENGTH); - } - } - - private void testTagsSingleExceedsLimit() { - Resource resourceExccedsNameLimit = createResourceObject(false); - String tag1 = "afzs2qLBb5X6tZhiunkcEwiFX1qRQY8YZl3y3Du5M5xeQY5Nq9afcFHDZ9HaURw43gH27nAUWM36bMbMylwTFSzzNV8NO4v4ripe6Q15Vc2nPOFI"; - String tag2 = resourceExccedsNameLimit.getName(); - List<String> tagsList = new ArrayList<>(); - tagsList.add(tag1); - tagsList.add(tag2); - - resourceExccedsNameLimit.setTags(tagsList); - try { - bl.createResource(resourceExccedsNameLimit, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_SINGLE_TAG_EXCEED_LIMIT, "" + ValidationUtils.TAG_MAX_LENGTH); - } - } - - private void testTagsNoServiceName() { - Resource serviceExccedsNameLimit = createResourceObject(false); - String tag1 = "afzs2qLBb"; - List<String> tagsList = new ArrayList<>(); - tagsList.add(tag1); - serviceExccedsNameLimit.setTags(tagsList); - try { - bl.createResource(serviceExccedsNameLimit, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_INVALID_TAGS_NO_COMP_NAME); - } - } - - private void testInvalidTag() { - Resource serviceExccedsNameLimit = createResourceObject(false); - String tag1 = "afzs2qLBb%#%"; - List<String> tagsList = new ArrayList<>(); - tagsList.add(tag1); - serviceExccedsNameLimit.setTags(tagsList); - try { - bl.createResource(serviceExccedsNameLimit, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.INVALID_FIELD_FORMAT, new String[]{"Resource", "tag"}); - } - } - - // Resource tags - stop - // Resource contact start - - private void testContactIdTooLong() { - Resource resourceContactId = createResourceObject(false); - // 59 chars instead of 50 - String contactIdTooLong = "thisNameIsVeryLongAndExeccedsTheNormalLengthForContactId"; - resourceContactId.setContactId(contactIdTooLong); - - try { - bl.createResource(resourceContactId, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_INVALID_CONTACT, ComponentTypeEnum.RESOURCE.getValue()); - } - } - - private void testContactIdWrongFormatCreate() { - Resource resourceContactId = createResourceObject(false); - // 3 letters and 3 digits and special characters - String contactIdFormatWrong = "yrt134!!!"; - resourceContactId.setContactId(contactIdFormatWrong); - try { - bl.createResource(resourceContactId, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_INVALID_CONTACT, ComponentTypeEnum.RESOURCE.getValue()); - } - } - - private void testResourceContactIdEmpty() { - Resource resourceExist = createResourceObject(false); - resourceExist.setContactId(""); - try { - bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_MISSING_CONTACT, ComponentTypeEnum.RESOURCE.getValue()); - } - } - - private void testResourceContactIdMissing() { - Resource resourceExist = createResourceObject(false); - resourceExist.setContactId(null); - try { - bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_MISSING_CONTACT, ComponentTypeEnum.RESOURCE.getValue()); - } - } - - private void testVendorNameExceedsLimit() { - Resource resourceExccedsVendorNameLimit = createResourceObject(false); - String tooLongVendorName = "h1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9E"; - resourceExccedsVendorNameLimit.setVendorName(tooLongVendorName); - try { - bl.createResource(resourceExccedsVendorNameLimit, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.VENDOR_NAME_EXCEEDS_LIMIT, "" + ValidationUtils.VENDOR_NAME_MAX_LENGTH); - } - } - - private void testResourceVendorModelNumberExceedsLimit() { - Resource resourceExccedsVendorModelNumberLimit = createResourceObject(false); - String tooLongVendorModelNumber = "h1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9E"; - resourceExccedsVendorModelNumberLimit.setResourceVendorModelNumber(tooLongVendorModelNumber); - try { - bl.createResource(resourceExccedsVendorModelNumberLimit, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.RESOURCE_VENDOR_MODEL_NUMBER_EXCEEDS_LIMIT, "" + ValidationUtils.RESOURCE_VENDOR_MODEL_NUMBER_MAX_LENGTH); - } - } - - private void testVendorNameWrongFormatCreate() { - Resource resource = createResourceObject(false); - // contains * - String nameWrongFormat = "ljg*fd"; - resource.setVendorName(nameWrongFormat); - try { - bl.createResource(resource, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { + Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); + when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); + Resource createdResource = null; + try { + createdResource = bl.validateAndUpdateResourceFromCsar(resource, user, null, null, resource.getUniqueId()); + assertThat(resource.getUniqueId()).isEqualTo(createdResource.getUniqueId()); + } catch (ComponentException e) { + assertThat(new Integer(200)).isEqualTo(e.getResponseFormat() + .getStatus()); + } + } + + /* CREATE validations - start ***********************/ + // Resource name - start + + @Test + public void testFailedResourceValidations() { + testResourceNameExist(); + testResourceNameEmpty(); + // testResourceNameExceedsLimit(); + testResourceNameWrongFormat(); + testResourceDescExceedsLimitCreate(); + testResourceDescNotEnglish(); + testResourceDescriptionEmpty(); + testResourceDescriptionMissing(); + testResourceIconMissing(); + testResourceIconInvalid(); + testResourceIconExceedsLimit(); + testResourceTagNotExist(); + testResourceTagEmpty(); + testTagsExceedsLimitCreate(); + testTagsNoServiceName(); + testInvalidTag(); + + testContactIdTooLong(); + testContactIdWrongFormatCreate(); + testResourceContactIdEmpty(); + testResourceContactIdMissing(); + testVendorNameExceedsLimit(); + testVendorNameWrongFormatCreate(); + testVendorReleaseWrongFormat(); + testVendorReleaseExceedsLimitCreate(); + testResourceVendorModelNumberExceedsLimit(); + testResourceVendorNameMissing(); + testResourceVendorReleaseMissing(); + testResourceCategoryExist(); + testResourceBadCategoryCreate(); + testHappyScenarioCostLicenseType(); + testCostWrongFormatCreate(); + testLicenseTypeWrongFormatCreate(); + testResourceTemplateNotExist(); + testResourceTemplateEmpty(); + testResourceTemplateInvalid(); + } + + private void testResourceNameExist() { + String resourceName = "alreadyExists"; + Resource resourceExist = createResourceObject(false); + resourceExist.setName(resourceName); + resourceExist.getTags() + .add(resourceName); + validateUserRoles(Role.ADMIN, Role.DESIGNER); + try { + bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_NAME_ALREADY_EXIST, + ComponentTypeEnum.RESOURCE.getValue(), resourceName); + } + } + + private void testResourceNameEmpty() { + Resource resourceExist = createResourceObject(false); + resourceExist.setName(null); + + try { + bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.MISSING_COMPONENT_NAME, ComponentTypeEnum.RESOURCE.getValue()); + } + } + + private void testResourceNameExceedsLimit() { + Resource resourceExccedsNameLimit = createResourceObject(false); + // 51 chars, the limit is 50 + String tooLongResourceName = "zCRCAWjqte0DtgcAAMmcJcXeNubeX1p1vOZNTShAHOYNAHvV3iK"; + resourceExccedsNameLimit.setName(tooLongResourceName); + + try { + bl.createResource(resourceExccedsNameLimit, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_NAME_EXCEEDS_LIMIT, + ComponentTypeEnum.RESOURCE.getValue(), "" + ValidationUtils.COMPONENT_NAME_MAX_LENGTH); + } + } + + private void testResourceNameWrongFormat() { + Resource resource = createResourceObject(false); + // contains : + String nameWrongFormat = "ljg?fd"; + resource.setName(nameWrongFormat); + + try { + bl.createResource(resource, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.INVALID_COMPONENT_NAME, ComponentTypeEnum.RESOURCE.getValue()); + } + } + + // Resource name - end + // Resource description - start + private void testResourceDescExceedsLimitCreate() { + Resource resourceExccedsDescLimit = createResourceObject(false); + // 1025 chars, the limit is 1024 + String tooLongResourceDesc = "1GUODojQ0sGzKR4NP7e5j82ADQ3KHTVOaezL95qcbuaqDtjZhAQGQ3iFwKAy580K4WiiXs3u3zq7RzXcSASl5fm0RsWtCMOIDP" + + "AOf9Tf2xtXxPCuCIMCR5wOGnNTaFxgnJEHAGxilBhZDgeMNHmCN1rMK5B5IRJOnZxcpcL1NeG3APTCIMP1lNAxngYulDm9heFSBc8TfXAADq7703AvkJT0QPpGq2z2P" + + "tlikcAnIjmWgfC5Tm7UH462BAlTyHg4ExnPPL4AO8c92VrD7kZSgSqiy73cN3gLT8uigkKrUgXQFGVUFrXVyyQXYtVM6bLBeuCGQf4C2j8lkNg6M0J3PC0PzMRoinOxk" + + "Ae2teeCtVcIj4A1KQo3210j8q2v7qQU69Mabsa6DT9FgE4rcrbiFWrg0Zto4SXWD3o1eJA9o29lTg6kxtklH3TuZTmpi5KVp1NFhS1RpnqF83tzv4mZLKsx7Zh1fEgYvRFwx1" + + "ar3RolyDfNoZiGBGTMsZzz7RPFBf2hTnLmNqVGQnHKhhGj0Y5s8t2cbqbO2nmHiJb9uaUVrCGypgbAcJL3KPOBfAVW8PcpmNj4yVjI3L4x5zHjmGZbp9vKshEQODcrmcgsYAoKqe" + + "uu5u7jk8XVxEfQ0m5qL8UOErXPlJovSmKUmP5B5T0w299zIWDYCzSoNasHpHjOMDLAiDDeHbozUOn9t3Qou00e9POq4RMM0VnIx1H38nJoJZz2XH8CI5YMQe7oTagaxgQTF2aa0qaq2" + + "V6nJsfRGRklGjNhFFYP2cS4Xv2IJO9DSX6LTXOmENrGVJJvMOZcvnBaZPfoAHN0LU4i1SoepLzulIxnZBfkUWFJgZ5wQ0Bco2GC1HMqzW21rwy4XHRxXpXbmW8LVyoA1KbnmVmROycU4" + + "scTZ62IxIcIWCVeMjBIcTviXULbPUyqlfEPXWr8IMJtpAaELWgyquPClAREMDs2b9ztKmUeXlMccFES1XWbFTrhBHhmmDyVReEgCwfokrUFR13LTUK1k8I6OEHOs"; + + resourceExccedsDescLimit.setDescription(tooLongResourceDesc); + try { + bl.createResource(resourceExccedsDescLimit, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_DESCRIPTION_EXCEEDS_LIMIT, + ComponentTypeEnum.RESOURCE.getValue(), "" + ValidationUtils.COMPONENT_DESCRIPTION_MAX_LENGTH); + } + } + + private void testResourceDescNotEnglish() { + Resource notEnglish = createResourceObject(false); + // Not english + String notEnglishDesc = "\uC2B5"; + notEnglish.setDescription(notEnglishDesc); + + try { + bl.createResource(notEnglish, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_INVALID_DESCRIPTION, + ComponentTypeEnum.RESOURCE.getValue()); + } + } + + private void testResourceDescriptionEmpty() { + Resource resourceExist = createResourceObject(false); + resourceExist.setDescription(""); + + try { + bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_MISSING_DESCRIPTION, + ComponentTypeEnum.RESOURCE.getValue()); + } + } + + private void testResourceDescriptionMissing() { + Resource resourceExist = createResourceObject(false); + resourceExist.setDescription(null); + + try { + bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_MISSING_DESCRIPTION, + ComponentTypeEnum.RESOURCE.getValue()); + } + } + // Resource description - end + // Resource icon start + + private void testResourceIconMissing() { + Resource resourceExist = createResourceObject(false); + resourceExist.setIcon(null); + + try { + bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_MISSING_ICON, ComponentTypeEnum.RESOURCE.getValue()); + } + } + + private void testResourceIconInvalid() { + Resource resourceExist = createResourceObject(false); + resourceExist.setIcon("kjk3453^&"); + + try { + bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_INVALID_ICON, ComponentTypeEnum.RESOURCE.getValue()); + } + } + + private void testResourceIconExceedsLimit() { + Resource resourceExist = createResourceObject(false); + resourceExist.setIcon("dsjfhskdfhskjdhfskjdhkjdhfkshdfksjsdkfhsdfsdfsdfsfsdfsf"); + try { + bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_ICON_EXCEEDS_LIMIT, + ComponentTypeEnum.RESOURCE.getValue(), "" + ValidationUtils.ICON_MAX_LENGTH); + } + } + + // Resource icon end + // Resource tags - start + private void testResourceTagNotExist() { + Resource resourceExist = createResourceObject(false); + resourceExist.setTags(null); + try { + bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_MISSING_TAGS); + } + } + + private void testResourceTagEmpty() { + Resource resourceExist = createResourceObject(false); + resourceExist.setTags(new ArrayList<>()); + try { + bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_MISSING_TAGS); + } + } + + private void testTagsExceedsLimitCreate() { + Resource resourceExccedsNameLimit = createResourceObject(false); + String tag1 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjQ"; + String tag2 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjW"; + String tag3 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjE"; + String tag4 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjb"; + String tag5 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjr"; + String tag6 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjf"; + String tag7 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjg"; + String tag8 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjd"; + String tag9 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjf"; + String tag10 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjg"; + String tag11 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjh"; + String tag12 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjj"; + String tag13 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjk"; + String tag14 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjs"; + String tag15 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjz"; + String tag16 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjx"; + String tag17 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBj2"; + String tag18 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBj3"; + String tag19 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBj4"; + String tag20 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBj5"; + String tag21 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBj0"; + + List<String> tagsList = new ArrayList<>(); + tagsList.add(tag1); + tagsList.add(tag2); + tagsList.add(tag3); + tagsList.add(tag4); + tagsList.add(tag5); + tagsList.add(tag6); + tagsList.add(tag7); + tagsList.add(tag8); + tagsList.add(tag9); + tagsList.add(tag10); + tagsList.add(tag11); + tagsList.add(tag12); + tagsList.add(tag13); + tagsList.add(tag14); + tagsList.add(tag15); + tagsList.add(tag16); + tagsList.add(tag17); + tagsList.add(tag18); + tagsList.add(tag19); + tagsList.add(tag20); + tagsList.add(tag21); + tagsList.add(resourceExccedsNameLimit.getName()); + + resourceExccedsNameLimit.setTags(tagsList); + try { + bl.createResource(resourceExccedsNameLimit, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_TAGS_EXCEED_LIMIT, + "" + ValidationUtils.TAG_LIST_MAX_LENGTH); + } + } + + private void testTagsSingleExceedsLimit() { + Resource resourceExccedsNameLimit = createResourceObject(false); + String tag1 = "afzs2qLBb5X6tZhiunkcEwiFX1qRQY8YZl3y3Du5M5xeQY5Nq9afcFHDZ9HaURw43gH27nAUWM36bMbMylwTFSzzNV8NO4v4ripe6Q15Vc2nPOFI"; + String tag2 = resourceExccedsNameLimit.getName(); + List<String> tagsList = new ArrayList<>(); + tagsList.add(tag1); + tagsList.add(tag2); + + resourceExccedsNameLimit.setTags(tagsList); + try { + bl.createResource(resourceExccedsNameLimit, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_SINGLE_TAG_EXCEED_LIMIT, + "" + ValidationUtils.TAG_MAX_LENGTH); + } + } + + private void testTagsNoServiceName() { + Resource serviceExccedsNameLimit = createResourceObject(false); + String tag1 = "afzs2qLBb"; + List<String> tagsList = new ArrayList<>(); + tagsList.add(tag1); + serviceExccedsNameLimit.setTags(tagsList); + try { + bl.createResource(serviceExccedsNameLimit, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_INVALID_TAGS_NO_COMP_NAME); + } + } + + private void testInvalidTag() { + Resource serviceExccedsNameLimit = createResourceObject(false); + String tag1 = "afzs2qLBb%#%"; + List<String> tagsList = new ArrayList<>(); + tagsList.add(tag1); + serviceExccedsNameLimit.setTags(tagsList); + try { + bl.createResource(serviceExccedsNameLimit, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.INVALID_FIELD_FORMAT, new String[] { "Resource", "tag" }); + } + } + + // Resource tags - stop + // Resource contact start + + private void testContactIdTooLong() { + Resource resourceContactId = createResourceObject(false); + // 59 chars instead of 50 + String contactIdTooLong = "thisNameIsVeryLongAndExeccedsTheNormalLengthForContactId"; + resourceContactId.setContactId(contactIdTooLong); + + try { + bl.createResource(resourceContactId, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_INVALID_CONTACT, ComponentTypeEnum.RESOURCE.getValue()); + } + } + + private void testContactIdWrongFormatCreate() { + Resource resourceContactId = createResourceObject(false); + // 3 letters and 3 digits and special characters + String contactIdFormatWrong = "yrt134!!!"; + resourceContactId.setContactId(contactIdFormatWrong); + try { + bl.createResource(resourceContactId, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_INVALID_CONTACT, ComponentTypeEnum.RESOURCE.getValue()); + } + } + + private void testResourceContactIdEmpty() { + Resource resourceExist = createResourceObject(false); + resourceExist.setContactId(""); + try { + bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_MISSING_CONTACT, ComponentTypeEnum.RESOURCE.getValue()); + } + } + + private void testResourceContactIdMissing() { + Resource resourceExist = createResourceObject(false); + resourceExist.setContactId(null); + try { + bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_MISSING_CONTACT, ComponentTypeEnum.RESOURCE.getValue()); + } + } + + private void testVendorNameExceedsLimit() { + Resource resourceExccedsVendorNameLimit = createResourceObject(false); + String tooLongVendorName = "h1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9E"; + resourceExccedsVendorNameLimit.setVendorName(tooLongVendorName); + try { + bl.createResource(resourceExccedsVendorNameLimit, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.VENDOR_NAME_EXCEEDS_LIMIT, + "" + ValidationUtils.VENDOR_NAME_MAX_LENGTH); + } + } + + private void testResourceVendorModelNumberExceedsLimit() { + Resource resourceExccedsVendorModelNumberLimit = createResourceObject(false); + String tooLongVendorModelNumber = "h1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9E"; + resourceExccedsVendorModelNumberLimit.setResourceVendorModelNumber(tooLongVendorModelNumber); + try { + bl.createResource(resourceExccedsVendorModelNumberLimit, AuditingActionEnum.CREATE_RESOURCE, user, null, + null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.RESOURCE_VENDOR_MODEL_NUMBER_EXCEEDS_LIMIT, + "" + ValidationUtils.RESOURCE_VENDOR_MODEL_NUMBER_MAX_LENGTH); + } + } + + private void testVendorNameWrongFormatCreate() { + Resource resource = createResourceObject(false); + // contains * + String nameWrongFormat = "ljg*fd"; + resource.setVendorName(nameWrongFormat); + try { + bl.createResource(resource, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { assertComponentException(e, ActionStatus.INVALID_VENDOR_NAME, nameWrongFormat); - } - } + } + } - private void testVendorReleaseWrongFormat() { - Resource resource = createResourceObject(false); - // contains > + private void testVendorReleaseWrongFormat() { + Resource resource = createResourceObject(false); + // contains > String vendorReleaseWrongFormat = "1>2"; resource.setVendorRelease(vendorReleaseWrongFormat); - try { - bl.createResource(resource, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { + try { + bl.createResource(resource, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { assertComponentException(e, ActionStatus.INVALID_VENDOR_RELEASE, vendorReleaseWrongFormat); - } - } - - private void testVendorReleaseExceedsLimitCreate() { - Resource resourceExccedsNameLimit = createResourceObject(false); - String tooLongVendorRelease = "h1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9E"; - resourceExccedsNameLimit.setVendorRelease(tooLongVendorRelease); - try { - bl.createResource(resourceExccedsNameLimit, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.VENDOR_RELEASE_EXCEEDS_LIMIT, "" + ValidationUtils.VENDOR_RELEASE_MAX_LENGTH); - } - } - - private void testResourceVendorNameMissing() { - Resource resourceExist = createResourceObject(false); - resourceExist.setVendorName(null); - try { - bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.MISSING_VENDOR_NAME); - } - } - - private void testResourceVendorReleaseMissing() { - Resource resourceExist = createResourceObject(false); - resourceExist.setVendorRelease(null); - try { - bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.MISSING_VENDOR_RELEASE); - } - } - - // Resource vendor name/release stop - // Category start - private void testResourceCategoryExist() { - Resource resourceExist = createResourceObject(false); - resourceExist.setCategories(null); - try { - bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_MISSING_CATEGORY, ComponentTypeEnum.RESOURCE.getValue()); - } - } - - private void testResourceBadCategoryCreate() { - - Resource resourceExist = createResourceObject(false); - resourceExist.setCategories(null); - resourceExist.addCategory("koko", "koko"); - try { - bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_INVALID_CATEGORY, ComponentTypeEnum.RESOURCE.getValue()); - } - } - - // Category stop - // Cost start - private void testHappyScenarioCostLicenseType() { - Resource createResourceObject = createResourceObject(false); - Resource createResourceObjectAfterCreate = createResourceObject(true); - // Adding cost and licenseType to basic mock - Either<Resource, StorageOperationStatus> eitherCreate = Either.left(createResourceObjectAfterCreate); - when(toscaOperationFacade.createToscaComponent(any(Resource.class))).thenReturn(eitherCreate); - - String cost = "123.456"; - String licenseType = "User"; - createResourceObject.setCost(cost); - createResourceObject.setLicenseType(licenseType); - Resource createdResource; - try{ - createdResource = bl.createResource(createResourceObject, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - createResourceObjectAfterCreate.setCost(cost); - createResourceObjectAfterCreate.setLicenseType(licenseType); - assertThat(createResourceObjectAfterCreate).isEqualTo(createdResource); - }catch(ByResponseFormatComponentException e){ - assertThat(new Integer(200)).isEqualTo(e.getResponseFormat().getStatus()); - } - } - - private void testCostWrongFormatCreate() { - Resource resourceCost = createResourceObject(false); - // Comma instead of fullstop - String cost = "12356,464"; - resourceCost.setCost(cost); - try { - bl.createResource(resourceCost, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.INVALID_CONTENT); - } - } - - // Cost stop - // License type start - private void testLicenseTypeWrongFormatCreate() { - Resource resourceLicenseType = createResourceObject(false); - // lowcase - String licenseType = "cpu"; - resourceLicenseType.setLicenseType(licenseType); - try { - bl.createResource(resourceLicenseType, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.INVALID_CONTENT); - } - } - - // License type stop - // Derived from start - private void testResourceTemplateNotExist() { - Resource resourceExist = createResourceObject(false); - List<String> list = null; - resourceExist.setDerivedFrom(list); - try { - bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.MISSING_DERIVED_FROM_TEMPLATE); - } - } - - private void testResourceTemplateEmpty() { - Resource resourceExist = createResourceObject(false); - resourceExist.setDerivedFrom(new ArrayList<>()); - try { - bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.MISSING_DERIVED_FROM_TEMPLATE); - } - } - - private void testResourceTemplateInvalid() { - Resource resourceExist = createResourceObject(false); - ArrayList<String> derivedFrom = new ArrayList<>(); - derivedFrom.add("kuku"); - resourceExist.setDerivedFrom(derivedFrom); - try { - bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - } catch (ByResponseFormatComponentException e) { - assertComponentException(e, ActionStatus.PARENT_RESOURCE_NOT_FOUND); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.PARENT_RESOURCE_NOT_FOUND); - } - } - // Derived from stop - private void assertComponentException(ByResponseFormatComponentException e, ActionStatus expectedStatus, String... variables) { - ResponseFormat actualResponse = e.getResponseFormat(); - assertResponse(actualResponse, expectedStatus, variables); - } - - private void assertComponentException(ByActionStatusComponentException e, ActionStatus expectedStatus, String... variables) { - ResponseFormat actualResponse = componentsUtils.getResponseFormat(e.getActionStatus(), e.getParams()); - assertResponse(actualResponse, expectedStatus, variables); - } - - private void assertResponse(ResponseFormat actualResponse, ActionStatus expectedStatus, String... variables) { - ResponseFormat expectedResponse = responseManager.getResponseFormat(expectedStatus, variables); - assertThat(expectedResponse.getStatus()).isEqualTo(actualResponse.getStatus()); - assertThat(expectedResponse.getFormattedMessage()).isEqualTo(actualResponse.getFormattedMessage()); - } - - private void assertResponse(Either<Resource, ResponseFormat> createResponse, ActionStatus expectedStatus, String... variables) { - assertResponse(createResponse.right().value(), expectedStatus, variables); - } + } + } + + private void testVendorReleaseExceedsLimitCreate() { + Resource resourceExccedsNameLimit = createResourceObject(false); + String tooLongVendorRelease = "h1KSyJh9Eh1KSyJh9Eh1KSyJh9Eh1KSyJh9E"; + resourceExccedsNameLimit.setVendorRelease(tooLongVendorRelease); + try { + bl.createResource(resourceExccedsNameLimit, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.VENDOR_RELEASE_EXCEEDS_LIMIT, + "" + ValidationUtils.VENDOR_RELEASE_MAX_LENGTH); + } + } + + private void testResourceVendorNameMissing() { + Resource resourceExist = createResourceObject(false); + resourceExist.setVendorName(null); + try { + bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.MISSING_VENDOR_NAME); + } + } + + private void testResourceVendorReleaseMissing() { + Resource resourceExist = createResourceObject(false); + resourceExist.setVendorRelease(null); + try { + bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.MISSING_VENDOR_RELEASE); + } + } + + // Resource vendor name/release stop + // Category start + private void testResourceCategoryExist() { + Resource resourceExist = createResourceObject(false); + resourceExist.setCategories(null); + try { + bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_MISSING_CATEGORY, ComponentTypeEnum.RESOURCE.getValue()); + } + } + + private void testResourceBadCategoryCreate() { + + Resource resourceExist = createResourceObject(false); + resourceExist.setCategories(null); + resourceExist.addCategory("koko", "koko"); + try { + bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_INVALID_CATEGORY, ComponentTypeEnum.RESOURCE.getValue()); + } + } + + // Category stop + // Cost start + private void testHappyScenarioCostLicenseType() { + Resource createResourceObject = createResourceObject(false); + Resource createResourceObjectAfterCreate = createResourceObject(true); + // Adding cost and licenseType to basic mock + Either<Resource, StorageOperationStatus> eitherCreate = Either.left(createResourceObjectAfterCreate); + when(toscaOperationFacade.createToscaComponent(any(Resource.class))).thenReturn(eitherCreate); + + String cost = "123.456"; + String licenseType = "User"; + createResourceObject.setCost(cost); + createResourceObject.setLicenseType(licenseType); + Resource createdResource; + try { + createdResource = bl.createResource(createResourceObject, AuditingActionEnum.CREATE_RESOURCE, user, null, + null); + createResourceObjectAfterCreate.setCost(cost); + createResourceObjectAfterCreate.setLicenseType(licenseType); + assertThat(createResourceObjectAfterCreate).isEqualTo(createdResource); + } catch (ComponentException e) { + assertThat(new Integer(200)).isEqualTo(e.getResponseFormat() + .getStatus()); + } + } + + private void testCostWrongFormatCreate() { + Resource resourceCost = createResourceObject(false); + // Comma instead of fullstop + String cost = "12356,464"; + resourceCost.setCost(cost); + try { + bl.createResource(resourceCost, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.INVALID_CONTENT); + } + } + + // Cost stop + // License type start + private void testLicenseTypeWrongFormatCreate() { + Resource resourceLicenseType = createResourceObject(false); + // lowcase + String licenseType = "cpu"; + resourceLicenseType.setLicenseType(licenseType); + try { + bl.createResource(resourceLicenseType, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.INVALID_CONTENT); + } + } + + // License type stop + // Derived from start + private void testResourceTemplateNotExist() { + Resource resourceExist = createResourceObject(false); + List<String> list = null; + resourceExist.setDerivedFrom(list); + try { + bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.MISSING_DERIVED_FROM_TEMPLATE); + } + } + + private void testResourceTemplateEmpty() { + Resource resourceExist = createResourceObject(false); + resourceExist.setDerivedFrom(new ArrayList<>()); + try { + bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.MISSING_DERIVED_FROM_TEMPLATE); + } + } + + private void testResourceTemplateInvalid() { + Resource resourceExist = createResourceObject(false); + ArrayList<String> derivedFrom = new ArrayList<>(); + derivedFrom.add("kuku"); + resourceExist.setDerivedFrom(derivedFrom); + try { + bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.PARENT_RESOURCE_NOT_FOUND); + } + } + + // Derived from stop + private void assertComponentException(ComponentException e, ActionStatus expectedStatus, String... variables) { + ResponseFormat actualResponse = e.getResponseFormat() != null ? e.getResponseFormat() + : componentsUtils.getResponseFormat(e.getActionStatus(), e.getParams()); + assertResponse(actualResponse, expectedStatus, variables); + } + + private void assertResponse(ResponseFormat actualResponse, ActionStatus expectedStatus, String... variables) { + ResponseFormat expectedResponse = responseManager.getResponseFormat(expectedStatus, variables); + assertThat(expectedResponse.getStatus()).isEqualTo(actualResponse.getStatus()); + assertThat(expectedResponse.getFormattedMessage()).isEqualTo(actualResponse.getFormattedMessage()); + } + + private void assertResponse(Either<Resource, ResponseFormat> createResponse, ActionStatus expectedStatus, + String... variables) { + assertResponse(createResponse.right() + .value(), expectedStatus, variables); + } // UPDATE tests - start // Resource name @@ -986,930 +1051,1144 @@ public class ResourceBusinessLogicTest extends ComponentBusinessLogicMock { Resource resource = createResourceObject(true); Resource updatedResource = createResourceObject(true); - // this is in order to prevent failing with 403 earlier - Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); - when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); - // contains * - String nameWrongFormat = "ljg*fd"; - updatedResource.setName(nameWrongFormat); - - Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); - when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); - try { - bl.updateResourceMetadata(resource.getUniqueId(), updatedResource, null, user, false); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.INVALID_COMPONENT_NAME, ComponentTypeEnum.RESOURCE.getValue()); - } - } + // this is in order to prevent failing with 403 earlier + Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); + when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); + // contains * + String nameWrongFormat = "ljg*fd"; + updatedResource.setName(nameWrongFormat); + + Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); + when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); + try { + bl.updateResourceMetadata(resource.getUniqueId(), updatedResource, null, user, false); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.INVALID_COMPONENT_NAME, ComponentTypeEnum.RESOURCE.getValue()); + } + } @Test public void testResourceNameAfterCertify_UPDATE() { Resource resource = createResourceObject(true); Resource updatedResource = createResourceObject(true); - // this is in order to prevent failing with 403 earlier - Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); - // when(resourceOperation.getResource_tx(resource.getUniqueId(),false)).thenReturn(eitherUpdate); - when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); - - String name = "ljg"; - updatedResource.setName(name); - resource.setVersion("1.0"); - - Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); - when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); - try { - bl.updateResourceMetadata(resource.getUniqueId(), updatedResource, null, user, false); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.RESOURCE_NAME_CANNOT_BE_CHANGED); - } - } - - @Test - public void testResourceNameAlreadyExist_UPDATE() { - Resource resource = createResourceObject(true); - Resource updatedResource = createResourceObject(true); - - // this is in order to prevent failing with 403 earlier - Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); - when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); + // this is in order to prevent failing with 403 earlier + Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); + // when(resourceOperation.getResource_tx(resource.getUniqueId(),false)).thenReturn(eitherUpdate); + when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); - String resourceName = "alreadyExists"; - updatedResource.setName(resourceName); - Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(updatedResource); - when(toscaOperationFacade.updateToscaElement(updatedResource)).thenReturn(dataModelResponse); - try { - bl.updateResourceMetadata(resource.getUniqueId(), updatedResource, null, user, false); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_NAME_ALREADY_EXIST, ComponentTypeEnum.RESOURCE.getValue(), resourceName); - } - } + String name = "ljg"; + updatedResource.setName(name); + resource.setVersion("1.0"); - // + Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); + when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); + try { + bl.updateResourceMetadata(resource.getUniqueId(), updatedResource, null, user, false); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.RESOURCE_NAME_CANNOT_BE_CHANGED); + } + } @Test - public void testResourceDescExceedsLimit_UPDATE() { - Resource resource = createResourceObject(true); - Resource updatedResource = createResourceObject(true); - - // this is in order to prevent failing with 403 earlier - Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); - when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); - - // 1025 chars, the limit is 1024 - String tooLongResourceDesc = "1GUODojQ0sGzKR4NP7e5j82ADQ3KHTVOaezL95qcbuaqDtjZhAQGQ3iFwKAy580K4WiiXs3u3zq7RzXcSASl5fm0RsWtCMOIDP" - + "AOf9Tf2xtXxPCuCIMCR5wOGnNTaFxgnJEHAGxilBhZDgeMNHmCN1rMK5B5IRJOnZxcpcL1NeG3APTCIMP1lNAxngYulDm9heFSBc8TfXAADq7703AvkJT0QPpGq2z2P" - + "tlikcAnIjmWgfC5Tm7UH462BAlTyHg4ExnPPL4AO8c92VrD7kZSgSqiy73cN3gLT8uigkKrUgXQFGVUFrXVyyQXYtVM6bLBeuCGQf4C2j8lkNg6M0J3PC0PzMRoinOxk" - + "Ae2teeCtVcIj4A1KQo3210j8q2v7qQU69Mabsa6DT9FgE4rcrbiFWrg0Zto4SXWD3o1eJA9o29lTg6kxtklH3TuZTmpi5KVp1NFhS1RpnqF83tzv4mZLKsx7Zh1fEgYvRFwx1" - + "ar3RolyDfNoZiGBGTMsZzz7RPFBf2hTnLmNqVGQnHKhhGj0Y5s8t2cbqbO2nmHiJb9uaUVrCGypgbAcJL3KPOBfAVW8PcpmNj4yVjI3L4x5zHjmGZbp9vKshEQODcrmcgsYAoKqe" - + "uu5u7jk8XVxEfQ0m5qL8UOErXPlJovSmKUmP5B5T0w299zIWDYCzSoNasHpHjOMDLAiDDeHbozUOn9t3Qou00e9POq4RMM0VnIx1H38nJoJZz2XH8CI5YMQe7oTagaxgQTF2aa0qaq2" - + "V6nJsfRGRklGjNhFFYP2cS4Xv2IJO9DSX6LTXOmENrGVJJvMOZcvnBaZPfoAHN0LU4i1SoepLzulIxnZBfkUWFJgZ5wQ0Bco2GC1HMqzW21rwy4XHRxXpXbmW8LVyoA1KbnmVmROycU4" - + "scTZ62IxIcIWCVeMjBIcTviXULbPUyqlfEPXWr8IMJtpAaELWgyquPClAREMDs2b9ztKmUeXlMccFES1XWbFTrhBHhmmDyVReEgCwfokrUFR13LTUK1k8I6OEHOs"; - updatedResource.setDescription(tooLongResourceDesc); - Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); - when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); - try { - bl.updateResourceMetadata(resource.getUniqueId(), updatedResource, null, user, false); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_DESCRIPTION_EXCEEDS_LIMIT, ComponentTypeEnum.RESOURCE.getValue(), "" + ValidationUtils.COMPONENT_DESCRIPTION_MAX_LENGTH); - } - } - - @Test - public void testIconWrongFormat_UPDATE() { - Resource resource = createResourceObject(true); - Resource updatedResource = createResourceObject(true); - - // this is in order to prevent failing with 403 earlier - Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); - when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); - - // contains . - String icon = "icon.jpg"; - updatedResource.setIcon(icon); - Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); - when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); - try { - bl.updateResourceMetadata(resource.getUniqueId(), updatedResource, null, user, false); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_INVALID_ICON, ComponentTypeEnum.RESOURCE.getValue()); - } - } - - @Test - public void testIconAfterCertify_UPDATE() { - Resource resource = createResourceObject(true); - Resource updatedResource = createResourceObject(true); - - // this is in order to prevent failing with 403 earlier - Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); - when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); - - // contains - String icon = "icon"; - updatedResource.setIcon(icon); - - resource.setVersion("1.0"); - ; - Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); - when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); - try { - bl.updateResourceMetadata(resource.getUniqueId(), updatedResource, null, user, false); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.RESOURCE_ICON_CANNOT_BE_CHANGED); - } - } - - @Test - public void testTagsExceedsLimit_UPDATE() { - Resource resource = createResourceObject(true); - Resource updatedResource = createResourceObject(true); - - // this is in order to prevent failing with 403 earlier - Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); - when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); - - String tag1 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjQ"; - String tag2 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjW"; - String tag3 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjE"; - String tag4 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjb"; - String tag5 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjr"; - String tag6 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjf"; - String tag7 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjg"; - String tag8 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjd"; - String tag9 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjf"; - String tag10 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjg"; - String tag11 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjh"; - String tag12 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjj"; - String tag13 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjk"; - String tag14 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjs"; - String tag15 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjz"; - String tag16 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjx"; - String tag17 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBj2"; - String tag18 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBj3"; - String tag19 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBj4"; - String tag20 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBj5"; - String tag21 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBj0"; - - List<String> tagsList = new ArrayList<>(); - tagsList.add(tag1); - tagsList.add(tag2); - tagsList.add(tag3); - tagsList.add(tag4); - tagsList.add(tag5); - tagsList.add(tag6); - tagsList.add(tag7); - tagsList.add(tag8); - tagsList.add(tag9); - tagsList.add(tag10); - tagsList.add(tag11); - tagsList.add(tag12); - tagsList.add(tag13); - tagsList.add(tag14); - tagsList.add(tag15); - tagsList.add(tag16); - tagsList.add(tag17); - tagsList.add(tag18); - tagsList.add(tag19); - tagsList.add(tag20); - tagsList.add(tag21); - tagsList.add(resource.getName()); - - updatedResource.setTags(tagsList); - Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); - when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); - try { - bl.updateResourceMetadata(resource.getUniqueId(), updatedResource, null, user, false); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_TAGS_EXCEED_LIMIT, "" + ValidationUtils.TAG_LIST_MAX_LENGTH); - } - } - - @Test - public void testVendorNameWrongFormat_UPDATE() { + public void testResourceNameAlreadyExist_UPDATE() { Resource resource = createResourceObject(true); Resource updatedResource = createResourceObject(true); - // this is in order to prevent failing with 403 earlier - Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); - when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); - - // contains * - String nameWrongFormat = "ljg*fd"; - updatedResource.setVendorName(nameWrongFormat); - Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); - when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); - try { - bl.updateResourceMetadata(resource.getUniqueId(), updatedResource, null, user, false); - } catch (ByActionStatusComponentException e) { + // this is in order to prevent failing with 403 earlier + Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); + when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); + + String resourceName = "alreadyExists"; + updatedResource.setName(resourceName); + Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(updatedResource); + when(toscaOperationFacade.updateToscaElement(updatedResource)).thenReturn(dataModelResponse); + try { + bl.updateResourceMetadata(resource.getUniqueId(), updatedResource, null, user, false); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_NAME_ALREADY_EXIST, + ComponentTypeEnum.RESOURCE.getValue(), resourceName); + } + } + + // + + @Test + public void testResourceDescExceedsLimit_UPDATE() { + Resource resource = createResourceObject(true); + Resource updatedResource = createResourceObject(true); + + // this is in order to prevent failing with 403 earlier + Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); + when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); + + // 1025 chars, the limit is 1024 + String tooLongResourceDesc = "1GUODojQ0sGzKR4NP7e5j82ADQ3KHTVOaezL95qcbuaqDtjZhAQGQ3iFwKAy580K4WiiXs3u3zq7RzXcSASl5fm0RsWtCMOIDP" + + "AOf9Tf2xtXxPCuCIMCR5wOGnNTaFxgnJEHAGxilBhZDgeMNHmCN1rMK5B5IRJOnZxcpcL1NeG3APTCIMP1lNAxngYulDm9heFSBc8TfXAADq7703AvkJT0QPpGq2z2P" + + "tlikcAnIjmWgfC5Tm7UH462BAlTyHg4ExnPPL4AO8c92VrD7kZSgSqiy73cN3gLT8uigkKrUgXQFGVUFrXVyyQXYtVM6bLBeuCGQf4C2j8lkNg6M0J3PC0PzMRoinOxk" + + "Ae2teeCtVcIj4A1KQo3210j8q2v7qQU69Mabsa6DT9FgE4rcrbiFWrg0Zto4SXWD3o1eJA9o29lTg6kxtklH3TuZTmpi5KVp1NFhS1RpnqF83tzv4mZLKsx7Zh1fEgYvRFwx1" + + "ar3RolyDfNoZiGBGTMsZzz7RPFBf2hTnLmNqVGQnHKhhGj0Y5s8t2cbqbO2nmHiJb9uaUVrCGypgbAcJL3KPOBfAVW8PcpmNj4yVjI3L4x5zHjmGZbp9vKshEQODcrmcgsYAoKqe" + + "uu5u7jk8XVxEfQ0m5qL8UOErXPlJovSmKUmP5B5T0w299zIWDYCzSoNasHpHjOMDLAiDDeHbozUOn9t3Qou00e9POq4RMM0VnIx1H38nJoJZz2XH8CI5YMQe7oTagaxgQTF2aa0qaq2" + + "V6nJsfRGRklGjNhFFYP2cS4Xv2IJO9DSX6LTXOmENrGVJJvMOZcvnBaZPfoAHN0LU4i1SoepLzulIxnZBfkUWFJgZ5wQ0Bco2GC1HMqzW21rwy4XHRxXpXbmW8LVyoA1KbnmVmROycU4" + + "scTZ62IxIcIWCVeMjBIcTviXULbPUyqlfEPXWr8IMJtpAaELWgyquPClAREMDs2b9ztKmUeXlMccFES1XWbFTrhBHhmmDyVReEgCwfokrUFR13LTUK1k8I6OEHOs"; + updatedResource.setDescription(tooLongResourceDesc); + Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); + when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); + try { + bl.updateResourceMetadata(resource.getUniqueId(), updatedResource, null, user, false); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_DESCRIPTION_EXCEEDS_LIMIT, + ComponentTypeEnum.RESOURCE.getValue(), "" + ValidationUtils.COMPONENT_DESCRIPTION_MAX_LENGTH); + } + } + + @Test + public void testIconWrongFormat_UPDATE() { + Resource resource = createResourceObject(true); + Resource updatedResource = createResourceObject(true); + + // this is in order to prevent failing with 403 earlier + Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); + when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); + + // contains . + String icon = "icon.jpg"; + updatedResource.setIcon(icon); + Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); + when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); + try { + bl.updateResourceMetadata(resource.getUniqueId(), updatedResource, null, user, false); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_INVALID_ICON, ComponentTypeEnum.RESOURCE.getValue()); + } + } + + @Test + public void testIconAfterCertify_UPDATE() { + Resource resource = createResourceObject(true); + Resource updatedResource = createResourceObject(true); + + // this is in order to prevent failing with 403 earlier + Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); + when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); + + // contains + String icon = "icon"; + updatedResource.setIcon(icon); + + resource.setVersion("1.0"); + ; + Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); + when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); + try { + bl.updateResourceMetadata(resource.getUniqueId(), updatedResource, null, user, false); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.RESOURCE_ICON_CANNOT_BE_CHANGED); + } + } + + @Test + public void testTagsExceedsLimit_UPDATE() { + Resource resource = createResourceObject(true); + Resource updatedResource = createResourceObject(true); + + // this is in order to prevent failing with 403 earlier + Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); + when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); + + String tag1 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjQ"; + String tag2 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjW"; + String tag3 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjE"; + String tag4 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjb"; + String tag5 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjr"; + String tag6 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjf"; + String tag7 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjg"; + String tag8 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjd"; + String tag9 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjf"; + String tag10 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjg"; + String tag11 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjh"; + String tag12 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjj"; + String tag13 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjk"; + String tag14 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjs"; + String tag15 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjz"; + String tag16 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBjx"; + String tag17 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBj2"; + String tag18 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBj3"; + String tag19 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBj4"; + String tag20 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBj5"; + String tag21 = "I63llMSEF12FntTwpMt64JhopkjQZzv5KS7mBoRku42PYLrBj0"; + + List<String> tagsList = new ArrayList<>(); + tagsList.add(tag1); + tagsList.add(tag2); + tagsList.add(tag3); + tagsList.add(tag4); + tagsList.add(tag5); + tagsList.add(tag6); + tagsList.add(tag7); + tagsList.add(tag8); + tagsList.add(tag9); + tagsList.add(tag10); + tagsList.add(tag11); + tagsList.add(tag12); + tagsList.add(tag13); + tagsList.add(tag14); + tagsList.add(tag15); + tagsList.add(tag16); + tagsList.add(tag17); + tagsList.add(tag18); + tagsList.add(tag19); + tagsList.add(tag20); + tagsList.add(tag21); + tagsList.add(resource.getName()); + + updatedResource.setTags(tagsList); + Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); + when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); + try { + bl.updateResourceMetadata(resource.getUniqueId(), updatedResource, null, user, false); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_TAGS_EXCEED_LIMIT, + "" + ValidationUtils.TAG_LIST_MAX_LENGTH); + } + } + + @Test + public void testVendorNameWrongFormat_UPDATE() { + Resource resource = createResourceObject(true); + Resource updatedResource = createResourceObject(true); + + // this is in order to prevent failing with 403 earlier + Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); + when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); + + // contains * + String nameWrongFormat = "ljg*fd"; + updatedResource.setVendorName(nameWrongFormat); + Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); + when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); + try { + bl.updateResourceMetadata(resource.getUniqueId(), updatedResource, null, user, false); + } catch (ComponentException e) { assertComponentException(e, ActionStatus.INVALID_VENDOR_NAME, nameWrongFormat); - } - } - - @Test - public void testVendorNameWrongFormat() { - Resource resource = createResourceObject(true); - Resource updatedResource = createResourceObject(true); - - // this is in order to prevent failing with 403 earlier - Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); - when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); - - // contains * - String nameWrongFormat = "ljg*fd"; - updatedResource.setVendorName(nameWrongFormat); - resource.setVersion("1.0"); - ; - Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); - when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); - try { - bl.updateResourceMetadata(resource.getUniqueId(), updatedResource, null, user, false); - } catch (ByActionStatusComponentException e) { + } + } + + @Test + public void testVendorNameWrongFormat() { + Resource resource = createResourceObject(true); + Resource updatedResource = createResourceObject(true); + + // this is in order to prevent failing with 403 earlier + Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); + when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); + + // contains * + String nameWrongFormat = "ljg*fd"; + updatedResource.setVendorName(nameWrongFormat); + resource.setVersion("1.0"); + ; + Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); + when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); + try { + bl.updateResourceMetadata(resource.getUniqueId(), updatedResource, null, user, false); + } catch (ComponentException e) { assertComponentException(e, ActionStatus.INVALID_VENDOR_NAME, nameWrongFormat); - } - } - - @Test - public void testVendorReleaseExceedsLimit_UPDATE() { - Resource resource = createResourceObject(true); - Resource updatedResource = createResourceObject(true); - - // this is in order to prevent failing with 403 earlier - Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); - when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); - // 129 chars, the limit is 128 - String tooLongVendorRelease = "h1KSyJh9EspI8SPwAGu4VETfqWejeanuB1PCJBxJmJncYnrW0lnsEFFVRIukRJkwlOVnZCy8p38tjhANeZq3BGMHIawWR6ICl8Wi9mikRYALWgvJug00JrlQ0iPVKPLxy"; - updatedResource.setVendorRelease(tooLongVendorRelease); - Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); - when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); - try { - bl.updateResourceMetadata(resource.getUniqueId(), updatedResource, null, user, false); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.VENDOR_RELEASE_EXCEEDS_LIMIT, "" + ValidationUtils.VENDOR_RELEASE_MAX_LENGTH); - } - } - - @Test - public void testResourceBadCategory_UPDATE() { - Resource resource = createResourceObject(true); - Resource updatedResource = createResourceObject(true); - - // this is in order to prevent failing with 403 earlier - Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); - when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); - - String resourceId = resource.getUniqueId(); - String badCategory = "ddfds"; - updatedResource.setCategories(null); - updatedResource.addCategory(badCategory, "fikt"); - Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); - when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); - try { - bl.updateResourceMetadata(resourceId, updatedResource, null, user, false); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_INVALID_CATEGORY, ComponentTypeEnum.RESOURCE.getValue()); - } - } - - @Test - public void testResourceCategoryAfterCertify_UPDATE() { - Resource resource = createResourceObject(true); - Resource updatedResource = createResourceObject(true); - - // this is in order to prevent failing with 403 earlier - Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); - when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); - - String resourceId = resource.getUniqueId(); - updatedResource.setCategories(null); - updatedResource.addCategory(RESOURCE_CATEGORY1, UPDATED_SUBCATEGORY); - resource.setVersion("1.0"); - ; - Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); - when(toscaOperationFacade.updateToscaElement(updatedResource)).thenReturn(dataModelResponse); - try { - bl.updateResourceMetadata(resourceId, updatedResource, null, user, false); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.RESOURCE_CATEGORY_CANNOT_BE_CHANGED); - } - } - - // Derived from start - @Test - public void testResourceTemplateNotExist_UPDATE() { - Resource resource = createResourceObject(true); - Resource updatedResource = createResourceObject(true); - - // this is in order to prevent failing with 403 earlier - Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); - when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); - String resourceId = resource.getUniqueId(); - - List<String> list = null; - updatedResource.setDerivedFrom(list); - Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); - when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); - try { - bl.updateResourceMetadata(resourceId, updatedResource, null, user, false); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.MISSING_DERIVED_FROM_TEMPLATE); - } - } - - @Test - public void testResourceTemplateEmpty_UPDATE() { - Resource resource = createResourceObject(true); - Resource updatedResource = createResourceObject(true); - String resourceId = resource.getUniqueId(); - - // this is in order to prevent failing with 403 earlier - Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); - when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); - - updatedResource.setDerivedFrom(new ArrayList<>()); - Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); - when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); - try { - bl.updateResourceMetadata(resourceId, updatedResource, null, user, false); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.MISSING_DERIVED_FROM_TEMPLATE); - } - } - - @Test - public void testResourceTemplateInvalid_UPDATE() { - Resource resource = createResourceObject(true); - Resource updatedResource = createResourceObject(true); - String resourceId = resource.getUniqueId(); - - // this is in order to prevent failing with 403 earlier - Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); - when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); - - ArrayList<String> derivedFrom = new ArrayList<>(); - derivedFrom.add("kuku"); - updatedResource.setDerivedFrom(derivedFrom); - Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); - when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); - try { - bl.updateResourceMetadata(resourceId, updatedResource, null, user, false); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.PARENT_RESOURCE_NOT_FOUND); - } - } - - @Test - public void testResourceTemplateCertify_UPDATE_HAPPY() { - Resource resource = createResourceObject(true); - Resource updatedResource = createResourceObject(true); - String resourceId = resource.getUniqueId(); - - // this is in order to prevent failing with 403 earlier - Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); - when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); - - Either<Boolean, StorageOperationStatus> isToscaNameExtending = Either.left(true); - when(toscaOperationFacade.validateToscaResourceNameExtends(Mockito.anyString(), Mockito.anyString())).thenReturn(isToscaNameExtending); - - Either<Map<String, PropertyDefinition>, StorageOperationStatus> findPropertiesOfNode = Either.left(new HashMap<>()); - when(propertyOperation.deleteAllPropertiesAssociatedToNode(any(NodeTypeEnum.class), Mockito.anyString())).thenReturn(findPropertiesOfNode); - - resource.setVersion("1.0"); - - ArrayList<String> derivedFrom = new ArrayList<>(); - derivedFrom.add("tosca.nodes.Root"); - updatedResource.setDerivedFrom(derivedFrom); - Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(updatedResource); - when(toscaOperationFacade.updateToscaElement(updatedResource)).thenReturn(dataModelResponse); - Resource createdResource = bl.updateResourceMetadata(resourceId, updatedResource, null, user, false); - assertThat(createdResource).isNotNull(); - } - - @Test - public void testResourceTemplateCertify_UPDATE_SAD() { - Resource resource = createResourceObject(true); - Resource updatedResource = createResourceObject(true); - String resourceId = resource.getUniqueId(); - - // this is in order to prevent failing with 403 earlier - Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); - when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); - - Either<Boolean, StorageOperationStatus> isToscaNameExtending = Either.left(false); - when(toscaOperationFacade.validateToscaResourceNameExtends(Mockito.anyString(), Mockito.anyString())) - .thenReturn(isToscaNameExtending); - - resource.setVersion("1.0"); - - ArrayList<String> derivedFrom = new ArrayList<>(); - derivedFrom.add("tosca.nodes.Root"); - updatedResource.setDerivedFrom(derivedFrom); - Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); - when(toscaOperationFacade.updateToscaElement(updatedResource)).thenReturn(dataModelResponse); - Either<Map<String, PropertyDefinition>, StorageOperationStatus> findPropertiesOfNode = Either.left(new HashMap<>()); - when(propertyOperation.deleteAllPropertiesAssociatedToNode(any(NodeTypeEnum.class), Mockito.anyString())).thenReturn(findPropertiesOfNode); - - try { - bl.updateResourceMetadata(resourceId, updatedResource, null, user, false); - } catch (ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.PARENT_RESOURCE_DOES_NOT_EXTEND); - } - } - // Derived from stop - - @Test - public void createOrUpdateResourceAlreadyCheckout() { - Resource resourceExist = createResourceObject(false); - validateUserRoles(Role.ADMIN, Role.DESIGNER); - Resource createdResource = bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - createdResource.setLastUpdaterUserId(user.getUserId()); - assertThat(createdResource).isNotNull(); - Either<Resource, StorageOperationStatus> getLatestResult = Either.left(createdResource); - Either<Component, StorageOperationStatus> getCompLatestResult = Either.left(createdResource); - when(toscaOperationFacade.getLatestByToscaResourceName(resourceExist.getToscaResourceName())).thenReturn(getCompLatestResult); - when(toscaOperationFacade.overrideComponent(any(Resource.class), any(Resource.class))).thenReturn(getLatestResult); - - Resource resourceToUpdtae = createResourceObject(false); - - ImmutablePair<Resource, ActionStatus> createOrUpdateResource = bl.createOrUpdateResourceByImport(resourceToUpdtae, user, false, false, false, null, null, false); - assertNotNull(createOrUpdateResource); - - Mockito.verify(toscaOperationFacade, Mockito.times(1)).overrideComponent(any(Resource.class), any(Resource.class)); - Mockito.verify(lifecycleBl, Mockito.times(0)).changeState(Mockito.anyString(), eq(user), eq(LifeCycleTransitionEnum.CHECKOUT), any(LifecycleChangeInfoWithAction.class), Mockito.anyBoolean(), Mockito.anyBoolean()); - - } - - @Test - public void createOrUpdateResourceCertified() { - Resource resourceExist = createResourceObject(false); - validateUserRoles(Role.ADMIN, Role.DESIGNER); - Resource createdResource = bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - - assertThat(createdResource).isNotNull(); - createdResource.setLifecycleState(LifecycleStateEnum.CERTIFIED); - createdResource.setVersion("1.0"); - - Either<Resource, StorageOperationStatus> getLatestResult = Either.left(createdResource); - Either<Component, StorageOperationStatus> getCompLatestResult = Either.left(createdResource); - when(toscaOperationFacade.getLatestByToscaResourceName(resourceExist.getToscaResourceName())).thenReturn(getCompLatestResult); when(toscaOperationFacade.overrideComponent(any(Resource.class), any(Resource.class))).thenReturn(getLatestResult); - - when(lifecycleBl.changeState(Mockito.anyString(), eq(user), eq(LifeCycleTransitionEnum.CHECKOUT), any(LifecycleChangeInfoWithAction.class), Mockito.anyBoolean(), Mockito.anyBoolean())).thenReturn(Either.left(createdResource)); - - Resource resourceToUpdtae = createResourceObject(false); - - ImmutablePair<Resource, ActionStatus> createOrUpdateResource = bl.createOrUpdateResourceByImport(resourceToUpdtae, user, false, false, false, null, null, false); - assertNotNull(createOrUpdateResource); - - Mockito.verify(toscaOperationFacade, Mockito.times(1)).overrideComponent(any(Resource.class), any(Resource.class)); - Mockito.verify(lifecycleBl, Mockito.times(1)).changeState(Mockito.anyString(), eq(user), eq(LifeCycleTransitionEnum.CHECKOUT), any(LifecycleChangeInfoWithAction.class), Mockito.anyBoolean(), Mockito.anyBoolean()); - - } - - @Test - public void createOrUpdateResourceNotExist() { - Resource resourceToUpdtae = createResourceObject(false); - - Either<Component, StorageOperationStatus> getLatestResult = Either.right(StorageOperationStatus.NOT_FOUND); - when(toscaOperationFacade.getLatestByName(resourceToUpdtae.getName())).thenReturn(getLatestResult); - - Either<Component, StorageOperationStatus> getLatestToscaNameResult = Either.right(StorageOperationStatus.NOT_FOUND); - when(toscaOperationFacade.getLatestByToscaResourceName(resourceToUpdtae.getToscaResourceName())).thenReturn(getLatestToscaNameResult); - - ImmutablePair<Resource, ActionStatus> createOrUpdateResource = bl.createOrUpdateResourceByImport(resourceToUpdtae, user, false, false, false, null, null, false); - assertThat(createOrUpdateResource).isNotNull(); - - Mockito.verify(toscaOperationFacade, times(1)).createToscaComponent(eq(resourceToUpdtae)); - Mockito.verify(toscaOperationFacade, Mockito.times(0)).overrideComponent(any(Resource.class), any(Resource.class)); - Mockito.verify(lifecycleBl, Mockito.times(0)).changeState(Mockito.anyString(), eq(user), eq(LifeCycleTransitionEnum.CHECKOUT), any(LifecycleChangeInfoWithAction.class), Mockito.anyBoolean(), Mockito.anyBoolean()); - - } - - @Test - public void updateNestedResource_typeIsNew() throws IOException { - Resource resourceToUpdate = createResourceObject(false); - String nodeName = Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX + "." + "abc"; - String jsonContent = ImportUtilsTest.loadFileNameToJsonString("normative-types-new-webServer.yml"); - CsarInfo csarInfo = new CsarInfo(user, "abcd1234", new HashMap<>(), - RESOURCE_NAME, "template name", jsonContent, true); - String nestedResourceName = bl.buildNestedToscaResourceName(resourceToUpdate.getResourceType().name(), csarInfo.getVfResourceName(), nodeName).getRight(); - when(toscaOperationFacade.getLatestByName(resourceToUpdate.getName())).thenReturn(Either.right(StorageOperationStatus.NOT_FOUND)); - when(toscaOperationFacade.getLatestByToscaResourceName(resourceToUpdate.getToscaResourceName())).thenReturn(Either.right(StorageOperationStatus.NOT_FOUND)); - when(toscaOperationFacade.getLatestByToscaResourceName(nestedResourceName)).thenReturn(Either.right(StorageOperationStatus.NOT_FOUND)); - - ImmutablePair<Resource, ActionStatus> createOrUpdateResource = bl.createOrUpdateResourceByImport(resourceToUpdate, user, false, false, false, csarInfo, - nodeName, false); - assertThat(createOrUpdateResource).isNotNull(); - - Mockito.verify(toscaOperationFacade, times(1)).createToscaComponent(eq(resourceToUpdate)); - Mockito.verify(toscaOperationFacade, times(0)).overrideComponent(any(Resource.class), any(Resource.class)); - Mockito.verify(lifecycleBl, times(0)).changeState(Mockito.anyString(), eq(user), eq(LifeCycleTransitionEnum.CHECKOUT), any(LifecycleChangeInfoWithAction.class), Mockito.anyBoolean(), Mockito.anyBoolean()); - } - - @Test - public void updateNestedResource_typeExists() throws IOException { - Resource resourceToUpdate = createResourceObject(false); - setCanWorkOnResource(resourceResponse); - String nodeName = Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX + "." + "abc"; - String jsonContent = ImportUtilsTest.loadFileNameToJsonString("normative-types-new-webServer.yml"); - CsarInfo csarInfo = new CsarInfo(user, "abcd1234", new HashMap<>(), - RESOURCE_NAME, "template name", jsonContent, true); - String nestedResourceName = bl.buildNestedToscaResourceName(resourceToUpdate.getResourceType().name(), csarInfo.getVfResourceName(), nodeName).getRight(); - when(toscaOperationFacade.getLatestByName(resourceToUpdate.getName())).thenReturn(Either.right(StorageOperationStatus.NOT_FOUND)); - when(toscaOperationFacade.getLatestByToscaResourceName(resourceToUpdate.getToscaResourceName())).thenReturn(Either.right(StorageOperationStatus.NOT_FOUND)); - when(toscaOperationFacade.getLatestByToscaResourceName(nestedResourceName)).thenReturn(Either.left(resourceResponse)); - when(toscaOperationFacade.overrideComponent(any(Resource.class), any(Resource.class))).thenReturn(Either.left(resourceResponse)); - - ImmutablePair<Resource, ActionStatus> createOrUpdateResource = bl.createOrUpdateResourceByImport(resourceToUpdate, user, false, false, false, csarInfo, - nodeName, false); - assertThat(createOrUpdateResource).isNotNull(); - Mockito.verify(toscaOperationFacade, times(1)).overrideComponent(any(Resource.class), any(Resource.class)); - Mockito.verify(lifecycleBl, times(0)).changeState(Mockito.anyString(), eq(user), eq(LifeCycleTransitionEnum.CHECKOUT), any(LifecycleChangeInfoWithAction.class), Mockito.anyBoolean(), Mockito.anyBoolean()); - } - - @Test - public void testValidatePropertiesDefaultValues_SuccessfullWithoutProperties() { - Resource basic = createResourceObject(true); - - Either<Boolean, ResponseFormat> validatePropertiesDefaultValues = bl.validatePropertiesDefaultValues(basic); - assertTrue(validatePropertiesDefaultValues.isLeft()); - } - - @Test - public void testValidatePropertiesDefaultValues_SuccessfullWithProperties() { - Resource basic = createResourceObject(true); - PropertyDefinition property = new PropertyDefinition(); - property.setName("myProperty"); - property.setType(ToscaPropertyType.INTEGER.getType()); - property.setDefaultValue("1"); - List<PropertyDefinition> properties = new ArrayList<>(); - properties.add(property); - basic.setProperties(properties); - when(propertyOperation.isPropertyTypeValid(property)).thenReturn(true); - when(propertyOperation.isPropertyDefaultValueValid(property, emptyDataTypes)).thenReturn(true); - Either<Boolean, ResponseFormat> validatePropertiesDefaultValues = bl.validatePropertiesDefaultValues(basic); - assertTrue(validatePropertiesDefaultValues.isLeft()); - } - - @Test - public void testValidatePropertiesDefaultValues_FailedWithProperties() { - Resource basic = createResourceObject(true); - PropertyDefinition property = new PropertyDefinition(); - property.setName("myProperty"); - property.setType(ToscaPropertyType.INTEGER.getType()); - property.setDefaultValue("1.5"); - List<PropertyDefinition> properties = new ArrayList<>(); - properties.add(property); - basic.setProperties(properties); - - when(propertyOperation.isPropertyDefaultValueValid(property, emptyDataTypes)).thenReturn(false); - Either<Boolean, ResponseFormat> validatePropertiesDefaultValues = bl.validatePropertiesDefaultValues(basic); - assertTrue(validatePropertiesDefaultValues.isRight()); - } - - - @SuppressWarnings("unchecked") - @Test - public void testFindVfCsarArtifactsToHandle() { - - Class<ResourceBusinessLogic> targetClass = ResourceBusinessLogic.class; - String methodName = "findVfCsarArtifactsToHandle"; - Resource resource = new Resource(); - String deploymentArtifactToUpdateFileName = "deploymentArtifactToUpdate.yaml"; - String deploymentArtifactToDeleteFileName = "deploymentArtifactToDelete.yaml"; - String deploymentArtifactToCreateFileName = "deploymentArtifactToCreate.yaml"; - - String artifactInfoToUpdateFileName = "infoArtifactToUpdate.yaml"; - String artifactInfoToDeleteFileName = "infoArtifactToDelete.yaml"; - String artifactInfoToNotDeleteFileName = "infoArtifactNotToDelete.yaml"; - String artifactInfoToCreateFileName = "infoArtifactToCreate.yaml"; - - byte[] oldPayloadData = "oldPayloadData".getBytes(); - byte[] newPayloadData = "newPayloadData".getBytes(); - Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>(); - - ArtifactDefinition deploymentArtifactToUpdate = new ArtifactDefinition(); - deploymentArtifactToUpdate.setMandatory(false); - deploymentArtifactToUpdate.setArtifactName(deploymentArtifactToUpdateFileName); - deploymentArtifactToUpdate.setArtifactType("SNMP_POLL"); - deploymentArtifactToUpdate.setPayload(oldPayloadData); - deploymentArtifactToUpdate.setArtifactChecksum(GeneralUtility.calculateMD5Base64EncodedByByteArray(oldPayloadData)); - - ArtifactDefinition deploymentArtifactToDelete = new ArtifactDefinition(); - deploymentArtifactToDelete.setMandatory(false); - deploymentArtifactToDelete.setArtifactName(deploymentArtifactToDeleteFileName); - deploymentArtifactToDelete.setArtifactType("SNMP_TRAP"); - deploymentArtifactToDelete.setPayload(oldPayloadData); - deploymentArtifactToDelete.setArtifactChecksum(GeneralUtility.calculateMD5Base64EncodedByByteArray(oldPayloadData)); - - ArtifactDefinition deploymentArtifactToIgnore = new ArtifactDefinition(); - - deploymentArtifacts.put(ValidationUtils.normalizeArtifactLabel(deploymentArtifactToUpdate.getArtifactName()), deploymentArtifactToUpdate); - deploymentArtifacts.put(ValidationUtils.normalizeArtifactLabel(deploymentArtifactToDelete.getArtifactName()), deploymentArtifactToDelete); - deploymentArtifacts.put("ignore", deploymentArtifactToIgnore); - - Map<String, ArtifactDefinition> artifacts = new HashMap<>(); - - ArtifactDefinition artifactToUpdate = new ArtifactDefinition(); - artifactToUpdate.setMandatory(false); - artifactToUpdate.setArtifactName(artifactInfoToUpdateFileName); - artifactToUpdate.setArtifactType("SNMP_POLL"); - artifactToUpdate.setPayload(oldPayloadData); - artifactToUpdate.setArtifactChecksum(GeneralUtility.calculateMD5Base64EncodedByByteArray(oldPayloadData)); - - ArtifactDefinition artifactToDelete = new ArtifactDefinition(); - artifactToDelete.setMandatory(false); - artifactToDelete.setArtifactName(artifactInfoToDeleteFileName); - artifactToDelete.setArtifactType("SNMP_TRAP"); - artifactToDelete.setPayload(oldPayloadData); - artifactToDelete.setArtifactChecksum(GeneralUtility.calculateMD5Base64EncodedByByteArray(oldPayloadData)); - artifactToDelete.setIsFromCsar(true); - - ArtifactDefinition artifactToNotDelete = new ArtifactDefinition(); - artifactToNotDelete.setMandatory(false); - artifactToNotDelete.setArtifactName(artifactInfoToNotDeleteFileName); - artifactToNotDelete.setArtifactType("SNMP_TRAP"); - artifactToNotDelete.setPayload(oldPayloadData); - artifactToNotDelete.setArtifactChecksum(GeneralUtility.calculateMD5Base64EncodedByByteArray(oldPayloadData)); - artifactToNotDelete.setIsFromCsar(false); - - ArtifactDefinition artifactToIgnore = new ArtifactDefinition(); - - artifacts.put(ValidationUtils.normalizeArtifactLabel(artifactToUpdate.getArtifactName()), artifactToUpdate); - artifacts.put(ValidationUtils.normalizeArtifactLabel(artifactToDelete.getArtifactName()), artifactToDelete); - artifacts.put(ValidationUtils.normalizeArtifactLabel(artifactToNotDelete.getArtifactName()), artifactToNotDelete); - artifacts.put("ignore", artifactToIgnore); - - resource.setDeploymentArtifacts(deploymentArtifacts); - resource.setArtifacts(artifacts); - - List<NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>(); - NonMetaArtifactInfo deploymentArtifactInfoToUpdate = new NonMetaArtifactInfo(deploymentArtifactToUpdate.getArtifactName(), null, - ArtifactTypeEnum.findType(deploymentArtifactToUpdate.getArtifactType()), ArtifactGroupTypeEnum.DEPLOYMENT, - newPayloadData, deploymentArtifactToUpdate.getArtifactName(), false); - - NonMetaArtifactInfo informationalArtifactInfoToUpdate = new NonMetaArtifactInfo(artifactToUpdate.getArtifactName(), null, - ArtifactTypeEnum.findType(artifactToUpdate.getArtifactType()), ArtifactGroupTypeEnum.DEPLOYMENT, - newPayloadData, artifactToUpdate.getArtifactName(), false); - - NonMetaArtifactInfo informationalArtifactInfoToUpdateFromCsar = new NonMetaArtifactInfo(artifactToUpdate.getArtifactName(), null, - ArtifactTypeEnum.findType(artifactToUpdate.getArtifactType()), ArtifactGroupTypeEnum.INFORMATIONAL, - newPayloadData, artifactToUpdate.getArtifactName(), true); - - NonMetaArtifactInfo deploymentArtifactInfoToUpdateFromCsar = new NonMetaArtifactInfo(artifactToUpdate.getArtifactName(), null, - ArtifactTypeEnum.findType(artifactToUpdate.getArtifactType()), ArtifactGroupTypeEnum.DEPLOYMENT, - newPayloadData, artifactToUpdate.getArtifactName(), true); - - NonMetaArtifactInfo deploymentArtifactInfoToCreate = new NonMetaArtifactInfo(deploymentArtifactToCreateFileName, null, - ArtifactTypeEnum.OTHER, ArtifactGroupTypeEnum.DEPLOYMENT, newPayloadData, deploymentArtifactToCreateFileName, false); - - NonMetaArtifactInfo informationalArtifactInfoToCreate = new NonMetaArtifactInfo(artifactInfoToCreateFileName, null, - ArtifactTypeEnum.OTHER, ArtifactGroupTypeEnum.INFORMATIONAL, - newPayloadData, artifactInfoToCreateFileName, false); - - artifactPathAndNameList.add(deploymentArtifactInfoToUpdate); - artifactPathAndNameList.add(informationalArtifactInfoToUpdate); - artifactPathAndNameList.add(deploymentArtifactInfoToCreate); - artifactPathAndNameList.add(informationalArtifactInfoToCreate); - artifactPathAndNameList.add(informationalArtifactInfoToUpdateFromCsar); - artifactPathAndNameList.add(deploymentArtifactInfoToUpdateFromCsar); - - Object[] argObjects = {resource, artifactPathAndNameList, user}; - Class[] argClasses = {Resource.class, List.class, User.class}; - try { - Method method = targetClass.getDeclaredMethod(methodName, argClasses); - method.setAccessible(true); - Either<EnumMap<ArtifactOperationEnum, List<NonMetaArtifactInfo>>, ResponseFormat> findVfCsarArtifactsToHandleRes = - (Either<EnumMap<ArtifactOperationEnum, List<NonMetaArtifactInfo>>, ResponseFormat>) method.invoke(bl, argObjects); - assertTrue(findVfCsarArtifactsToHandleRes.isLeft()); - EnumMap<ArtifactOperationEnum, List<NonMetaArtifactInfo>> foundVfArtifacts = findVfCsarArtifactsToHandleRes.left().value(); - assertEquals(4, foundVfArtifacts.get(ArtifactOperationEnum.CREATE).size()); - assertEquals(4, foundVfArtifacts.get(ArtifactOperationEnum.UPDATE).size()); - assertEquals(1, foundVfArtifacts.get(ArtifactOperationEnum.DELETE).size()); - - } catch (Exception e) { - e.printStackTrace(); - } - } - - @Test - public void testVFGeneratedInputs() { - validateUserRoles(Role.ADMIN, Role.DESIGNER); - Resource resource = createVF(); - List<InputDefinition> inputs = resource.getInputs(); - assertEquals(6, inputs.size()); - for (InputDefinition input : inputs) { - assertThat(input.getOwnerId()).isNotNull(); - } - assertEquals(resource.getDerivedFromGenericType(), genericVF.getToscaResourceName()); - assertEquals(resource.getDerivedFromGenericVersion(), genericVF.getVersion()); - } - - @Test - public void testCRGeneratedInputs() { - validateUserRoles(Role.ADMIN, Role.DESIGNER); - Resource resource = createCR(); - List<InputDefinition> inputs = resource.getInputs(); - assertEquals(3, inputs.size()); - for (InputDefinition input : inputs) { - assertThat(input.getOwnerId()).isNotNull(); - } - assertEquals(resource.getDerivedFromGenericType(), genericCR.getToscaResourceName()); - assertEquals(resource.getDerivedFromGenericVersion(), genericCR.getVersion()); - } - - @Test - public void testVFUpdateGenericInputsToLatestOnCheckout() { - validateUserRoles(Role.ADMIN, Role.DESIGNER); - //create a VF that is derived from generic version 1.0 - Resource resource = createVF(); - // create a new generic version without properties - genericVF.setVersion("2.0"); - genericVF.setProperties(null); - String currentDerivedFromVersion = resource.getDerivedFromGenericVersion(); - List<InputDefinition> currentInputs = resource.getInputs(); - //verify previous inputs ownerId fields exist - user may not delete generated inputs - assertEquals(6, currentInputs.stream().filter(p -> null != p.getOwnerId()).collect(Collectors.toList()).size()); - Either<Boolean, ResponseFormat> upgradeToLatestGeneric = bl.shouldUpgradeToLatestGeneric(resource); - //verify success - assertTrue(upgradeToLatestGeneric.isLeft()); - //verify update required and valid - assertTrue(upgradeToLatestGeneric.left().value()); - //verify version was upgraded - assertNotEquals(resource.getDerivedFromGenericVersion(), currentDerivedFromVersion); - //verify inputs were not deleted - assertEquals(6, resource.getInputs().size()); - //verify inputs ownerId fields were removed - user may delete/edit inputs - assertEquals(6, resource.getInputs() - .stream() - .filter(p -> null == p.getOwnerId()) - .collect(Collectors.toList()) - .size()); - } - - - @Test - public void testVFUpdateGenericInputsToLatestOnCheckoutNotPerformed() { - - //create a VF that is derived from generic version 1.0 - validateUserRoles(Role.ADMIN, Role.DESIGNER); - Resource resource = createVF(); - - //add an input to the VF - PropertyDefinition newProp = new PropertyDefinition(); - newProp.setType("integer"); - newProp.setName("newProp"); - resource.getInputs().add(new InputDefinition(newProp)); - - //create a new generic version with a new property which has the same name as a user defined input on the VF with a different type - genericVF.setVersion("2.0"); - newProp.setType("string"); - genericVF.setProperties(new ArrayList<>()); - genericVF.getProperties().add(newProp); - when(genericTypeBusinessLogic.fetchDerivedFromGenericType(resource)).thenReturn(Either.left(genericVF)); - when(genericTypeBusinessLogic.convertGenericTypePropertiesToInputsDefintion(genericVF.getProperties(), genericVF.getUniqueId())).thenCallRealMethod(); - String currentDerivedFromVersion = resource.getDerivedFromGenericVersion(); - assertEquals(6, resource.getInputs() - .stream() - .filter(p -> null != p.getOwnerId()) - .collect(Collectors.toList()) - .size()); - Either<Boolean, ResponseFormat> upgradeToLatestGeneric = bl.shouldUpgradeToLatestGeneric(resource); - //verify success - assertTrue(upgradeToLatestGeneric.isLeft()); - //verify update is invalid an void - assertFalse(upgradeToLatestGeneric.left().value()); - //verify version was not upgraded - assertEquals(resource.getDerivedFromGenericVersion(), currentDerivedFromVersion); - //verify inputs were not removed - assertEquals(7, resource.getInputs().size()); - //verify user defined input exists - assertEquals(1, resource.getInputs() - .stream() - .filter(p -> null == p.getOwnerId()) - .collect(Collectors.toList()) - .size()); - assertEquals("integer", resource.getInputs() - .stream() - .filter(p -> null == p.getOwnerId()) - .findAny() - .get() - .getType()); - } - - @Test - public void testPNFGeneratedInputsNoGeneratedInformationalArtifacts() { - validateUserRoles(Role.ADMIN, Role.DESIGNER); - Resource resource = createPNF(); - List<InputDefinition> inputs = resource.getInputs(); - assertEquals(3, inputs.size()); - for (InputDefinition input : inputs) { - assertThat(input.getOwnerId()).isNotNull(); - } - assertEquals(resource.getDerivedFromGenericType(), genericPNF.getToscaResourceName()); - assertEquals(resource.getDerivedFromGenericVersion(), genericPNF.getVersion()); - assertEquals(0, resource.getArtifacts().size()); - } - - - private Resource createVF() { - - genericVF = setupGenericTypeMock(GENERIC_VF_NAME); - when(toscaOperationFacade.getLatestCertifiedNodeTypeByToscaResourceName(GENERIC_VF_NAME)).thenReturn(Either.left(genericVF)); - Resource resource = createResourceObject(true); - resource.setDerivedFrom(null); - resource.setResourceType(ResourceTypeEnum.VF); - when(toscaOperationFacade.createToscaComponent(resource)).thenReturn(Either.left(resource)); - when(genericTypeBusinessLogic.fetchDerivedFromGenericType(resource)).thenReturn(Either.left(genericVF)); - when(genericTypeBusinessLogic.generateInputsFromGenericTypeProperties(genericVF)).thenCallRealMethod(); - when(genericTypeBusinessLogic.convertGenericTypePropertiesToInputsDefintion(genericVF.getProperties(), resource.getUniqueId())).thenCallRealMethod(); - Resource createdResource = bl.createResource(resource, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - assertThat(createdResource).isNotNull(); - return createdResource; - } - - - private Resource createCR() { - - genericCR = setupGenericTypeMock(GENERIC_CR_NAME); - when(toscaOperationFacade.getLatestCertifiedNodeTypeByToscaResourceName(GENERIC_CR_NAME)).thenReturn(Either.left(genericCR)); - Resource resource = createResourceObject(true); - resource.setDerivedFrom(null); - resource.setResourceType(ResourceTypeEnum.CR); - when(toscaOperationFacade.createToscaComponent(resource)).thenReturn(Either.left(resource)); - when(genericTypeBusinessLogic.fetchDerivedFromGenericType(resource)).thenReturn(Either.left(genericCR)); - when(genericTypeBusinessLogic.generateInputsFromGenericTypeProperties(genericCR)).thenCallRealMethod(); - when(genericTypeBusinessLogic.convertGenericTypePropertiesToInputsDefintion(genericCR.getProperties(), resource.getUniqueId())).thenCallRealMethod(); - Resource createdResource = bl.createResource(resource, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - assertThat(createdResource).isNotNull(); - return createdResource; - } - - private Resource createPNF() { - - genericPNF = setupGenericTypeMock(GENERIC_PNF_NAME); - when(toscaOperationFacade.getLatestCertifiedNodeTypeByToscaResourceName(GENERIC_PNF_NAME)).thenReturn(Either.left(genericPNF)); - Resource resource = createResourceObject(true); - resource.setDerivedFrom(null); - resource.setResourceType(ResourceTypeEnum.PNF); - when(toscaOperationFacade.createToscaComponent(resource)).thenReturn(Either.left(resource)); - when(genericTypeBusinessLogic.fetchDerivedFromGenericType(resource)).thenReturn(Either.left(genericPNF)); - when(genericTypeBusinessLogic.generateInputsFromGenericTypeProperties(genericPNF)).thenCallRealMethod(); - when(genericTypeBusinessLogic.convertGenericTypePropertiesToInputsDefintion(genericPNF.getProperties(), resource.getUniqueId())).thenCallRealMethod(); - Resource createdResource = bl.createResource(resource, AuditingActionEnum.CREATE_RESOURCE, user, null, null); - assertThat(createdResource).isNotNull(); - return createdResource; - } - - - private Map<String, String> getGenericPropertiesByToscaName(String toscaName) { - HashMap<String, String> PNFProps = new HashMap<String, String>() {{ - put("nf_function", "string"); - put("nf_role", "string"); - put("nf_type", "string"); - }}; - - HashMap<String, String> CRProps = new HashMap<String, String>() {{ - put("cr_function", "string"); - put("cr_role", "string"); - put("cr_type", "string"); - }}; - - HashMap<String, String> VFProps = new HashMap<String, String>() {{ - putAll(CRProps); - put("availability_zone_max_count", "integer"); - put("min_instances", "integer"); - put("max_instances", "integer"); - }}; - - if (toscaName.contains("PNF")) return PNFProps; - if (toscaName.contains("CR")) return CRProps; - if (toscaName.contains("VF")) return VFProps; - - return new HashMap<>(); - } - - - private Resource setupGenericTypeMock(String toscaName) { - - Resource genericType = createResourceObject(true); - genericType.setVersion("1.0"); - genericType.setToscaResourceName(toscaName); - List<PropertyDefinition> genericProps = new ArrayList<>(); - Map<String, String> genericPropsMap = getGenericPropertiesByToscaName(toscaName); - genericPropsMap.forEach((name, type) -> { - PropertyDefinition prop = new PropertyDefinition(); - prop.setName(name); - prop.setType(type); - genericProps.add(prop); - }); - - genericType.setProperties(genericProps); - return genericType; - } - - private void validateUserRoles(Role... roles) { - List<Role> listOfRoles = Stream.of(roles).collect(Collectors.toList()); - } + } + } + + @Test + public void testVendorReleaseExceedsLimit_UPDATE() { + Resource resource = createResourceObject(true); + Resource updatedResource = createResourceObject(true); + + // this is in order to prevent failing with 403 earlier + Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); + when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); + // 129 chars, the limit is 128 + String tooLongVendorRelease = "h1KSyJh9EspI8SPwAGu4VETfqWejeanuB1PCJBxJmJncYnrW0lnsEFFVRIukRJkwlOVnZCy8p38tjhANeZq3BGMHIawWR6ICl8Wi9mikRYALWgvJug00JrlQ0iPVKPLxy"; + updatedResource.setVendorRelease(tooLongVendorRelease); + Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); + when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); + try { + bl.updateResourceMetadata(resource.getUniqueId(), updatedResource, null, user, false); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.VENDOR_RELEASE_EXCEEDS_LIMIT, + "" + ValidationUtils.VENDOR_RELEASE_MAX_LENGTH); + } + } + + @Test + public void testResourceBadCategory_UPDATE() { + Resource resource = createResourceObject(true); + Resource updatedResource = createResourceObject(true); + + // this is in order to prevent failing with 403 earlier + Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); + when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); + + String resourceId = resource.getUniqueId(); + String badCategory = "ddfds"; + updatedResource.setCategories(null); + updatedResource.addCategory(badCategory, "fikt"); + Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); + when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); + try { + bl.updateResourceMetadata(resourceId, updatedResource, null, user, false); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_INVALID_CATEGORY, ComponentTypeEnum.RESOURCE.getValue()); + } + } + + @Test + public void testResourceCategoryAfterCertify_UPDATE() { + Resource resource = createResourceObject(true); + Resource updatedResource = createResourceObject(true); + + // this is in order to prevent failing with 403 earlier + Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); + when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); + + String resourceId = resource.getUniqueId(); + updatedResource.setCategories(null); + updatedResource.addCategory(RESOURCE_CATEGORY1, UPDATED_SUBCATEGORY); + resource.setVersion("1.0"); + ; + Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); + when(toscaOperationFacade.updateToscaElement(updatedResource)).thenReturn(dataModelResponse); + try { + bl.updateResourceMetadata(resourceId, updatedResource, null, user, false); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.RESOURCE_CATEGORY_CANNOT_BE_CHANGED); + } + } + + // Derived from start + @Test + public void testResourceTemplateNotExist_UPDATE() { + Resource resource = createResourceObject(true); + Resource updatedResource = createResourceObject(true); + + // this is in order to prevent failing with 403 earlier + Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); + when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); + String resourceId = resource.getUniqueId(); + + List<String> list = null; + updatedResource.setDerivedFrom(list); + Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); + when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); + try { + bl.updateResourceMetadata(resourceId, updatedResource, null, user, false); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.MISSING_DERIVED_FROM_TEMPLATE); + } + } + + @Test + public void testResourceTemplateEmpty_UPDATE() { + Resource resource = createResourceObject(true); + Resource updatedResource = createResourceObject(true); + String resourceId = resource.getUniqueId(); + + // this is in order to prevent failing with 403 earlier + Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); + when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); + + updatedResource.setDerivedFrom(new ArrayList<>()); + Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); + when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); + try { + bl.updateResourceMetadata(resourceId, updatedResource, null, user, false); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.MISSING_DERIVED_FROM_TEMPLATE); + } + } + + @Test + public void testResourceTemplateInvalid_UPDATE() { + Resource resource = createResourceObject(true); + Resource updatedResource = createResourceObject(true); + String resourceId = resource.getUniqueId(); + + // this is in order to prevent failing with 403 earlier + Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); + when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); + + ArrayList<String> derivedFrom = new ArrayList<>(); + derivedFrom.add("kuku"); + updatedResource.setDerivedFrom(derivedFrom); + Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); + when(toscaOperationFacade.updateToscaElement(resource)).thenReturn(dataModelResponse); + try { + bl.updateResourceMetadata(resourceId, updatedResource, null, user, false); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.PARENT_RESOURCE_NOT_FOUND); + } + } + + @Test + public void testResourceTemplateCertify_UPDATE_HAPPY() { + Resource resource = createResourceObject(true); + Resource updatedResource = createResourceObject(true); + String resourceId = resource.getUniqueId(); + + // this is in order to prevent failing with 403 earlier + Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); + when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); + + Either<Boolean, StorageOperationStatus> isToscaNameExtending = Either.left(true); + when(toscaOperationFacade.validateToscaResourceNameExtends(anyString(), anyString())) + .thenReturn(isToscaNameExtending); + + Either<Map<String, PropertyDefinition>, StorageOperationStatus> findPropertiesOfNode = Either + .left(new HashMap<>()); + when(propertyOperation.deleteAllPropertiesAssociatedToNode(any(NodeTypeEnum.class), anyString())) + .thenReturn(findPropertiesOfNode); + + resource.setVersion("1.0"); + + ArrayList<String> derivedFrom = new ArrayList<>(); + derivedFrom.add("tosca.nodes.Root"); + updatedResource.setDerivedFrom(derivedFrom); + Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(updatedResource); + when(toscaOperationFacade.updateToscaElement(updatedResource)).thenReturn(dataModelResponse); + Resource createdResource = bl.updateResourceMetadata(resourceId, updatedResource, null, user, false); + assertThat(createdResource).isNotNull(); + } + + @Test + public void testResourceTemplateCertify_UPDATE_SAD() { + Resource resource = createResourceObject(true); + Resource updatedResource = createResourceObject(true); + String resourceId = resource.getUniqueId(); + + // this is in order to prevent failing with 403 earlier + Either<Component, StorageOperationStatus> eitherUpdate = Either.left(setCanWorkOnResource(resource)); + when(toscaOperationFacade.getToscaElement(resource.getUniqueId())).thenReturn(eitherUpdate); + + Either<Boolean, StorageOperationStatus> isToscaNameExtending = Either.left(false); + when(toscaOperationFacade.validateToscaResourceNameExtends(anyString(), anyString())) + .thenReturn(isToscaNameExtending); + + resource.setVersion("1.0"); + + ArrayList<String> derivedFrom = new ArrayList<>(); + derivedFrom.add("tosca.nodes.Root"); + updatedResource.setDerivedFrom(derivedFrom); + Either<Resource, StorageOperationStatus> dataModelResponse = Either.left(resource); + when(toscaOperationFacade.updateToscaElement(updatedResource)).thenReturn(dataModelResponse); + Either<Map<String, PropertyDefinition>, StorageOperationStatus> findPropertiesOfNode = Either + .left(new HashMap<>()); + when(propertyOperation.deleteAllPropertiesAssociatedToNode(any(NodeTypeEnum.class), anyString())) + .thenReturn(findPropertiesOfNode); + + try { + bl.updateResourceMetadata(resourceId, updatedResource, null, user, false); + } catch (ComponentException e) { + assertComponentException(e, ActionStatus.PARENT_RESOURCE_DOES_NOT_EXTEND); + } + } + // Derived from stop + + @Test + public void createOrUpdateResourceAlreadyCheckout() { + createRoot(); + Resource resourceExist = createResourceObject(false); + validateUserRoles(Role.ADMIN, Role.DESIGNER); + Resource createdResource = bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, + null); + createdResource.setLastUpdaterUserId(user.getUserId()); + assertThat(createdResource).isNotNull(); + Either<Resource, StorageOperationStatus> getLatestResult = Either.left(createdResource); + Either<Component, StorageOperationStatus> getCompLatestResult = Either.left(createdResource); + when(toscaOperationFacade.getLatestByToscaResourceName(resourceExist.getToscaResourceName())) + .thenReturn(getCompLatestResult); + when(toscaOperationFacade.overrideComponent(any(Resource.class), any(Resource.class))) + .thenReturn(getLatestResult); + + Resource resourceToUpdtae = createResourceObject(false); + + ImmutablePair<Resource, ActionStatus> createOrUpdateResource = bl + .createOrUpdateResourceByImport(resourceToUpdtae, user, false, false, false, null, null, false); + assertNotNull(createOrUpdateResource); + + Mockito.verify(toscaOperationFacade, Mockito.times(1)) + .overrideComponent(any(Resource.class), any(Resource.class)); + Mockito.verify(lifecycleBl, Mockito.times(0)) + .changeState(anyString(), eq(user), eq(LifeCycleTransitionEnum.CHECKOUT), + any(LifecycleChangeInfoWithAction.class), Mockito.anyBoolean(), Mockito.anyBoolean()); + + } + + @Test + public void createOrUpdateResourceCertified() { + createRoot(); + Resource resourceExist = createResourceObject(false); + validateUserRoles(Role.ADMIN, Role.DESIGNER); + Resource createdResource = bl.createResource(resourceExist, AuditingActionEnum.CREATE_RESOURCE, user, null, + null); + + assertThat(createdResource).isNotNull(); + createdResource.setLifecycleState(LifecycleStateEnum.CERTIFIED); + createdResource.setVersion("1.0"); + + Either<Resource, StorageOperationStatus> getLatestResult = Either.left(createdResource); + Either<Component, StorageOperationStatus> getCompLatestResult = Either.left(createdResource); + when(toscaOperationFacade.getLatestByToscaResourceName(resourceExist.getToscaResourceName())) + .thenReturn(getCompLatestResult); + when(toscaOperationFacade.overrideComponent(any(Resource.class), any(Resource.class))) + .thenReturn(getLatestResult); + + when(lifecycleBl.changeState(anyString(), eq(user), eq(LifeCycleTransitionEnum.CHECKOUT), + any(LifecycleChangeInfoWithAction.class), Mockito.anyBoolean(), Mockito.anyBoolean())) + .thenReturn(Either.left(createdResource)); + + Resource resourceToUpdtae = createResourceObject(false); + + ImmutablePair<Resource, ActionStatus> createOrUpdateResource = bl + .createOrUpdateResourceByImport(resourceToUpdtae, user, false, false, false, null, null, false); + assertNotNull(createOrUpdateResource); + + Mockito.verify(toscaOperationFacade, Mockito.times(1)) + .overrideComponent(any(Resource.class), any(Resource.class)); + Mockito.verify(lifecycleBl, Mockito.times(1)) + .changeState(anyString(), eq(user), eq(LifeCycleTransitionEnum.CHECKOUT), + any(LifecycleChangeInfoWithAction.class), Mockito.anyBoolean(), Mockito.anyBoolean()); + + } + + @Test + public void createOrUpdateResourceNotExist() { + Resource resourceToUpdtae = createResourceObject(false); + + Either<Component, StorageOperationStatus> getLatestResult = Either.right(StorageOperationStatus.NOT_FOUND); + when(toscaOperationFacade.getLatestByName(resourceToUpdtae.getName())).thenReturn(getLatestResult); + + Either<Component, StorageOperationStatus> getLatestToscaNameResult = Either + .right(StorageOperationStatus.NOT_FOUND); + when(toscaOperationFacade.getLatestByToscaResourceName(resourceToUpdtae.getToscaResourceName())) + .thenReturn(getLatestToscaNameResult); + + ImmutablePair<Resource, ActionStatus> createOrUpdateResource = bl + .createOrUpdateResourceByImport(resourceToUpdtae, user, false, false, false, null, null, false); + assertThat(createOrUpdateResource).isNotNull(); + + Mockito.verify(toscaOperationFacade, times(1)) + .createToscaComponent(eq(resourceToUpdtae)); + Mockito.verify(toscaOperationFacade, Mockito.times(0)) + .overrideComponent(any(Resource.class), any(Resource.class)); + Mockito.verify(lifecycleBl, Mockito.times(0)) + .changeState(anyString(), eq(user), eq(LifeCycleTransitionEnum.CHECKOUT), + any(LifecycleChangeInfoWithAction.class), Mockito.anyBoolean(), Mockito.anyBoolean()); + + } + + @Test + public void updateNestedResource_typeIsNew() throws IOException { + Resource resourceToUpdate = createResourceObject(false); + String nodeName = Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX + "." + "abc"; + String jsonContent = ImportUtilsTest.loadFileNameToJsonString("normative-types-new-webServer.yml"); + CsarInfo csarInfo = new CsarInfo(user, "abcd1234", new HashMap<>(), RESOURCE_NAME, "template name", jsonContent, + true); + String nestedResourceName = bl.buildNestedToscaResourceName(resourceToUpdate.getResourceType() + .name(), csarInfo.getVfResourceName(), nodeName) + .getRight(); + when(toscaOperationFacade.getLatestByName(resourceToUpdate.getName())) + .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND)); + when(toscaOperationFacade.getLatestByToscaResourceName(resourceToUpdate.getToscaResourceName())) + .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND)); + when(toscaOperationFacade.getLatestByToscaResourceName(nestedResourceName)) + .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND)); + + ImmutablePair<Resource, ActionStatus> createOrUpdateResource = bl + .createOrUpdateResourceByImport(resourceToUpdate, user, false, false, false, csarInfo, nodeName, false); + assertThat(createOrUpdateResource).isNotNull(); + + Mockito.verify(toscaOperationFacade, times(1)) + .createToscaComponent(eq(resourceToUpdate)); + Mockito.verify(toscaOperationFacade, times(0)) + .overrideComponent(any(Resource.class), any(Resource.class)); + Mockito.verify(lifecycleBl, times(0)) + .changeState(anyString(), eq(user), eq(LifeCycleTransitionEnum.CHECKOUT), + any(LifecycleChangeInfoWithAction.class), Mockito.anyBoolean(), Mockito.anyBoolean()); + } + + @Test + public void updateNestedResource_typeExists() throws IOException { + createRoot(); + Resource resourceToUpdate = createResourceObject(false); + setCanWorkOnResource(resourceResponse); + String nodeName = Constants.USER_DEFINED_RESOURCE_NAMESPACE_PREFIX + "." + "abc"; + String jsonContent = ImportUtilsTest.loadFileNameToJsonString("normative-types-new-webServer.yml"); + CsarInfo csarInfo = new CsarInfo(user, "abcd1234", new HashMap<>(), RESOURCE_NAME, "template name", jsonContent, + true); + String nestedResourceName = bl.buildNestedToscaResourceName(resourceToUpdate.getResourceType() + .name(), csarInfo.getVfResourceName(), nodeName) + .getRight(); + when(toscaOperationFacade.getLatestByName(resourceToUpdate.getName())) + .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND)); + when(toscaOperationFacade.getLatestByToscaResourceName(resourceToUpdate.getToscaResourceName())) + .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND)); + when(toscaOperationFacade.getLatestByToscaResourceName(nestedResourceName)) + .thenReturn(Either.left(resourceResponse)); + when(toscaOperationFacade.overrideComponent(any(Resource.class), any(Resource.class))) + .thenReturn(Either.left(resourceResponse)); + + ImmutablePair<Resource, ActionStatus> createOrUpdateResource = bl + .createOrUpdateResourceByImport(resourceToUpdate, user, false, false, false, csarInfo, nodeName, false); + assertThat(createOrUpdateResource).isNotNull(); + Mockito.verify(toscaOperationFacade, times(1)) + .overrideComponent(any(Resource.class), any(Resource.class)); + Mockito.verify(lifecycleBl, times(0)) + .changeState(anyString(), eq(user), eq(LifeCycleTransitionEnum.CHECKOUT), + any(LifecycleChangeInfoWithAction.class), Mockito.anyBoolean(), Mockito.anyBoolean()); + } + + @Test + public void testValidatePropertiesDefaultValues_SuccessfullWithoutProperties() { + Resource basic = createResourceObject(true); + + Boolean validatePropertiesDefaultValues = bl.validatePropertiesDefaultValues(basic); + assertTrue(validatePropertiesDefaultValues); + } + + @Test + public void testValidatePropertiesDefaultValues_SuccessfullWithProperties() { + Resource basic = createResourceObject(true); + PropertyDefinition property = new PropertyDefinition(); + property.setName("myProperty"); + property.setType(ToscaPropertyType.INTEGER.getType()); + property.setDefaultValue("1"); + List<PropertyDefinition> properties = new ArrayList<>(); + properties.add(property); + basic.setProperties(properties); + when(propertyOperation.isPropertyTypeValid(property)).thenReturn(true); + when(propertyOperation.isPropertyDefaultValueValid(property, emptyDataTypes)).thenReturn(true); + Boolean validatePropertiesDefaultValues = bl.validatePropertiesDefaultValues(basic); + assertTrue(validatePropertiesDefaultValues); + } + + @Test(expected = ComponentException.class) + public void testValidatePropertiesDefaultValues_FailedWithProperties() { + Resource basic = createResourceObject(true); + PropertyDefinition property = new PropertyDefinition(); + property.setName("myProperty"); + property.setType(ToscaPropertyType.INTEGER.getType()); + property.setDefaultValue("1.5"); + List<PropertyDefinition> properties = new ArrayList<>(); + properties.add(property); + basic.setProperties(properties); + + when(propertyOperation.isPropertyDefaultValueValid(property, emptyDataTypes)).thenReturn(false); + bl.validatePropertiesDefaultValues(basic); + } + + // @Test + // public void testDeleteMarkedResourcesNoResources() { + // List<GraphVertex> ids = new ArrayList<>(); + // Either<List<GraphVertex>, StorageOperationStatus> eitherNoResources = + // Either.left(ids); + // when(topologyTemplateOperation.getAllComponentsMarkedForDeletion(ComponentTypeEnum.RESOURCE)).thenReturn(eitherNoResources); + // + // Either<List<String>, ResponseFormat> deleteMarkedResources = + // bl.deleteMarkedComponents(); + // assertTrue(deleteMarkedResources.isLeft()); + // assertTrue(deleteMarkedResources.left().value().isEmpty()); + // + // Mockito.verify(artifactManager, + // Mockito.times(0)).deleteAllComponentArtifactsIfNotOnGraph(Mockito.anyList()); + // + // } + // + // @Test + // public void testDeleteMarkedResources() { + // List<String> ids = new ArrayList<String>(); + // String resourceInUse = "123"; + // ids.add(resourceInUse); + // String resourceFree = "456"; + // ids.add(resourceFree); + // Either<List<String>, StorageOperationStatus> eitherNoResources = + // Either.left(ids); + // when(toscaOperationFacade.getAllComponentsMarkedForDeletion()).thenReturn(eitherNoResources); + // + // Either<Boolean, StorageOperationStatus> resourceInUseResponse = + // Either.left(true); + // Either<Boolean, StorageOperationStatus> resourceFreeResponse = + // Either.left(false); + // + // List<ArtifactDefinition> artifacts = new ArrayList<ArtifactDefinition>(); + // Either<List<ArtifactDefinition>, StorageOperationStatus> + // getArtifactsResponse = Either.left(artifacts); + // when(toscaOperationFacade.getComponentArtifactsForDelete(resourceFree, + // NodeTypeEnum.Resource, true)).thenReturn(getArtifactsResponse); + // + // when(toscaOperationFacade.isComponentInUse(resourceFree)).thenReturn(resourceFreeResponse); + // when(toscaOperationFacade.isComponentInUse(resourceInUse)).thenReturn(resourceInUseResponse); + // + // Either<Component, StorageOperationStatus> eitherDelete = Either.left(new + // Resource()); + // when(toscaOperationFacade.deleteToscaComponent(resourceFree)).thenReturn(eitherDelete); + // + // when(artifactManager.deleteAllComponentArtifactsIfNotOnGraph(artifacts)).thenReturn(StorageOperationStatus.OK); + // List<String> deletedComponents = new ArrayList<>(); + // deletedComponents.add(resourceFree); + // when(toscaOperationFacade.deleteMarkedElements(ComponentTypeEnum.RESOURCE)).thenReturn(Either.left(deletedComponents)); + // + // Either<List<String>, ResponseFormat> deleteMarkedResources = + // bl.deleteMarkedComponents(); + // assertTrue(deleteMarkedResources.isLeft()); + // List<String> resourceIdList = deleteMarkedResources.left().value(); + // assertFalse(resourceIdList.isEmpty()); + // assertTrue(resourceIdList.contains(resourceFree)); + // assertFalse(resourceIdList.contains(resourceInUse)); + // + // Mockito.verify(artifactManager, + // Mockito.times(1)).deleteAllComponentArtifactsIfNotOnGraph(artifacts); + // } + + @SuppressWarnings("unchecked") + @Test + public void testFindVfCsarArtifactsToHandle() { + + Class<ResourceBusinessLogic> targetClass = ResourceBusinessLogic.class; + String methodName = "findVfCsarArtifactsToHandle"; + Resource resource = new Resource(); + String deploymentArtifactToUpdateFileName = "deploymentArtifactToUpdate.yaml"; + String deploymentArtifactToDeleteFileName = "deploymentArtifactToDelete.yaml"; + String deploymentArtifactToCreateFileName = "deploymentArtifactToCreate.yaml"; + + String artifactInfoToUpdateFileName = "infoArtifactToUpdate.yaml"; + String artifactInfoToDeleteFileName = "infoArtifactToDelete.yaml"; + String artifactInfoToNotDeleteFileName = "infoArtifactNotToDelete.yaml"; + String artifactInfoToCreateFileName = "infoArtifactToCreate.yaml"; + + byte[] oldPayloadData = "oldPayloadData".getBytes(); + byte[] newPayloadData = "newPayloadData".getBytes(); + Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>(); + + ArtifactDefinition deploymentArtifactToUpdate = new ArtifactDefinition(); + deploymentArtifactToUpdate.setMandatory(false); + deploymentArtifactToUpdate.setArtifactName(deploymentArtifactToUpdateFileName); + deploymentArtifactToUpdate.setArtifactType("SNMP_POLL"); + deploymentArtifactToUpdate.setPayload(oldPayloadData); + deploymentArtifactToUpdate + .setArtifactChecksum(GeneralUtility.calculateMD5Base64EncodedByByteArray(oldPayloadData)); + + ArtifactDefinition deploymentArtifactToDelete = new ArtifactDefinition(); + deploymentArtifactToDelete.setMandatory(false); + deploymentArtifactToDelete.setArtifactName(deploymentArtifactToDeleteFileName); + deploymentArtifactToDelete.setArtifactType("SNMP_TRAP"); + deploymentArtifactToDelete.setPayload(oldPayloadData); + deploymentArtifactToDelete + .setArtifactChecksum(GeneralUtility.calculateMD5Base64EncodedByByteArray(oldPayloadData)); + + ArtifactDefinition deploymentArtifactToIgnore = new ArtifactDefinition(); + + deploymentArtifacts.put(ValidationUtils.normalizeArtifactLabel(deploymentArtifactToUpdate.getArtifactName()), + deploymentArtifactToUpdate); + deploymentArtifacts.put(ValidationUtils.normalizeArtifactLabel(deploymentArtifactToDelete.getArtifactName()), + deploymentArtifactToDelete); + deploymentArtifacts.put("ignore", deploymentArtifactToIgnore); + + Map<String, ArtifactDefinition> artifacts = new HashMap<>(); + + ArtifactDefinition artifactToUpdate = new ArtifactDefinition(); + artifactToUpdate.setMandatory(false); + artifactToUpdate.setArtifactName(artifactInfoToUpdateFileName); + artifactToUpdate.setArtifactType("SNMP_POLL"); + artifactToUpdate.setPayload(oldPayloadData); + artifactToUpdate.setArtifactChecksum(GeneralUtility.calculateMD5Base64EncodedByByteArray(oldPayloadData)); + + ArtifactDefinition artifactToDelete = new ArtifactDefinition(); + artifactToDelete.setMandatory(false); + artifactToDelete.setArtifactName(artifactInfoToDeleteFileName); + artifactToDelete.setArtifactType("SNMP_TRAP"); + artifactToDelete.setPayload(oldPayloadData); + artifactToDelete.setArtifactChecksum(GeneralUtility.calculateMD5Base64EncodedByByteArray(oldPayloadData)); + artifactToDelete.setIsFromCsar(true); + + ArtifactDefinition artifactToNotDelete = new ArtifactDefinition(); + artifactToNotDelete.setMandatory(false); + artifactToNotDelete.setArtifactName(artifactInfoToNotDeleteFileName); + artifactToNotDelete.setArtifactType("SNMP_TRAP"); + artifactToNotDelete.setPayload(oldPayloadData); + artifactToNotDelete.setArtifactChecksum(GeneralUtility.calculateMD5Base64EncodedByByteArray(oldPayloadData)); + artifactToNotDelete.setIsFromCsar(false); + + ArtifactDefinition artifactToIgnore = new ArtifactDefinition(); + + artifacts.put(ValidationUtils.normalizeArtifactLabel(artifactToUpdate.getArtifactName()), artifactToUpdate); + artifacts.put(ValidationUtils.normalizeArtifactLabel(artifactToDelete.getArtifactName()), artifactToDelete); + artifacts.put(ValidationUtils.normalizeArtifactLabel(artifactToNotDelete.getArtifactName()), + artifactToNotDelete); + artifacts.put("ignore", artifactToIgnore); + + resource.setDeploymentArtifacts(deploymentArtifacts); + resource.setArtifacts(artifacts); + + List<NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>(); + NonMetaArtifactInfo deploymentArtifactInfoToUpdate = new NonMetaArtifactInfo( + deploymentArtifactToUpdate.getArtifactName(), null, + ArtifactTypeEnum.findType(deploymentArtifactToUpdate.getArtifactType()), + ArtifactGroupTypeEnum.DEPLOYMENT, newPayloadData, deploymentArtifactToUpdate.getArtifactName(), false); + + NonMetaArtifactInfo informationalArtifactInfoToUpdate = new NonMetaArtifactInfo( + artifactToUpdate.getArtifactName(), null, ArtifactTypeEnum.findType(artifactToUpdate.getArtifactType()), + ArtifactGroupTypeEnum.DEPLOYMENT, newPayloadData, artifactToUpdate.getArtifactName(), false); + + NonMetaArtifactInfo informationalArtifactInfoToUpdateFromCsar = new NonMetaArtifactInfo( + artifactToUpdate.getArtifactName(), null, ArtifactTypeEnum.findType(artifactToUpdate.getArtifactType()), + ArtifactGroupTypeEnum.INFORMATIONAL, newPayloadData, artifactToUpdate.getArtifactName(), true); + + NonMetaArtifactInfo deploymentArtifactInfoToUpdateFromCsar = new NonMetaArtifactInfo( + artifactToUpdate.getArtifactName(), null, ArtifactTypeEnum.findType(artifactToUpdate.getArtifactType()), + ArtifactGroupTypeEnum.DEPLOYMENT, newPayloadData, artifactToUpdate.getArtifactName(), true); + + NonMetaArtifactInfo deploymentArtifactInfoToCreate = new NonMetaArtifactInfo(deploymentArtifactToCreateFileName, + null, ArtifactTypeEnum.OTHER, ArtifactGroupTypeEnum.DEPLOYMENT, newPayloadData, + deploymentArtifactToCreateFileName, false); + + NonMetaArtifactInfo informationalArtifactInfoToCreate = new NonMetaArtifactInfo(artifactInfoToCreateFileName, + null, ArtifactTypeEnum.OTHER, ArtifactGroupTypeEnum.INFORMATIONAL, newPayloadData, + artifactInfoToCreateFileName, false); + + artifactPathAndNameList.add(deploymentArtifactInfoToUpdate); + artifactPathAndNameList.add(informationalArtifactInfoToUpdate); + artifactPathAndNameList.add(deploymentArtifactInfoToCreate); + artifactPathAndNameList.add(informationalArtifactInfoToCreate); + artifactPathAndNameList.add(informationalArtifactInfoToUpdateFromCsar); + artifactPathAndNameList.add(deploymentArtifactInfoToUpdateFromCsar); + + Object[] argObjects = { resource, artifactPathAndNameList, user }; + Class[] argClasses = { Resource.class, List.class, User.class }; + try { + Method method = targetClass.getDeclaredMethod(methodName, argClasses); + method.setAccessible(true); + Either<EnumMap<ArtifactOperationEnum, List<NonMetaArtifactInfo>>, ResponseFormat> findVfCsarArtifactsToHandleRes = (Either<EnumMap<ArtifactOperationEnum, List<NonMetaArtifactInfo>>, ResponseFormat>) method + .invoke(bl, argObjects); + assertTrue(findVfCsarArtifactsToHandleRes.isLeft()); + EnumMap<ArtifactOperationEnum, List<NonMetaArtifactInfo>> foundVfArtifacts = findVfCsarArtifactsToHandleRes + .left() + .value(); + assertEquals(4, foundVfArtifacts.get(ArtifactOperationEnum.CREATE) + .size()); + assertEquals(4, foundVfArtifacts.get(ArtifactOperationEnum.UPDATE) + .size()); + assertEquals(1, foundVfArtifacts.get(ArtifactOperationEnum.DELETE) + .size()); + + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Test + public void testVFGeneratedInputs() { + validateUserRoles(Role.ADMIN, Role.DESIGNER); + Resource resource = createVF(); + List<InputDefinition> inputs = resource.getInputs(); + assertEquals(6, inputs.size()); + for (InputDefinition input : inputs) { + assertThat(input.getOwnerId()).isNotNull(); + } + assertEquals(resource.getDerivedFromGenericType(), genericVF.getToscaResourceName()); + assertEquals(resource.getDerivedFromGenericVersion(), genericVF.getVersion()); + } + + @Test + public void testCRGeneratedInputs() { + validateUserRoles(Role.ADMIN, Role.DESIGNER); + Resource resource = createCR(); + List<InputDefinition> inputs = resource.getInputs(); + assertEquals(3, inputs.size()); + for (InputDefinition input : inputs) { + assertThat(input.getOwnerId()).isNotNull(); + } + assertEquals(resource.getDerivedFromGenericType(), genericCR.getToscaResourceName()); + assertEquals(resource.getDerivedFromGenericVersion(), genericCR.getVersion()); + } + + @Test + public void testVFUpdateGenericInputsToLatestOnCheckout() { + validateUserRoles(Role.ADMIN, Role.DESIGNER); + // create a VF that is derived from generic version 1.0 + Resource resource = createVF(); + // create a new generic version without properties + genericVF.setVersion("2.0"); + genericVF.setProperties(null); + String currentDerivedFromVersion = resource.getDerivedFromGenericVersion(); + List<InputDefinition> currentInputs = resource.getInputs(); + // verify previous inputs ownerId fields exist - user may not delete + // generated inputs + assertEquals(6, currentInputs.stream() + .filter(p -> null != p.getOwnerId()) + .collect(Collectors.toList()) + .size()); + Either<Boolean, ResponseFormat> upgradeToLatestGeneric = bl.shouldUpgradeToLatestGeneric(resource); + // verify success + assertTrue(upgradeToLatestGeneric.isLeft()); + // verify update required and valid + assertTrue(upgradeToLatestGeneric.left() + .value()); + // verify version was upgraded + assertNotEquals(resource.getDerivedFromGenericVersion(), currentDerivedFromVersion); + // verify inputs were not deleted + assertEquals(6, resource.getInputs() + .size()); + // verify inputs ownerId fields were removed - user may delete/edit + // inputs + assertEquals(6, resource.getInputs() + .stream() + .filter(p -> null == p.getOwnerId()) + .collect(Collectors.toList()) + .size()); + } + + @Test + public void testVFUpdateGenericInputsToLatestOnCheckoutNotPerformed() { + + // create a VF that is derived from generic version 1.0 + validateUserRoles(Role.ADMIN, Role.DESIGNER); + Resource resource = createVF(); + + // add an input to the VF + PropertyDefinition newProp = new PropertyDefinition(); + newProp.setType("integer"); + newProp.setName("newProp"); + resource.getInputs() + .add(new InputDefinition(newProp)); + + // create a new generic version with a new property which has the same + // name as a user defined input on the VF with a different type + genericVF.setVersion("2.0"); + newProp.setType("string"); + genericVF.setProperties(new ArrayList<>()); + genericVF.getProperties() + .add(newProp); + when(genericTypeBusinessLogic.fetchDerivedFromGenericType(resource)).thenReturn(Either.left(genericVF)); + when(genericTypeBusinessLogic.convertGenericTypePropertiesToInputsDefintion(genericVF.getProperties(), + genericVF.getUniqueId())).thenCallRealMethod(); + String currentDerivedFromVersion = resource.getDerivedFromGenericVersion(); + assertEquals(6, resource.getInputs() + .stream() + .filter(p -> null != p.getOwnerId()) + .collect(Collectors.toList()) + .size()); + Either<Boolean, ResponseFormat> upgradeToLatestGeneric = bl.shouldUpgradeToLatestGeneric(resource); + // verify success + assertTrue(upgradeToLatestGeneric.isLeft()); + // verify update is invalid an void + assertFalse(upgradeToLatestGeneric.left() + .value()); + // verify version was not upgraded + assertEquals(resource.getDerivedFromGenericVersion(), currentDerivedFromVersion); + // verify inputs were not removed + assertEquals(7, resource.getInputs() + .size()); + // verify user defined input exists + assertEquals(1, resource.getInputs() + .stream() + .filter(p -> null == p.getOwnerId()) + .collect(Collectors.toList()) + .size()); + assertEquals("integer", resource.getInputs() + .stream() + .filter(p -> null == p.getOwnerId()) + .findAny() + .get() + .getType()); + } + + @Test + public void testPNFGeneratedInputsNoGeneratedInformationalArtifacts() { + validateUserRoles(Role.ADMIN, Role.DESIGNER); + Resource resource = createPNF(); + List<InputDefinition> inputs = resource.getInputs(); + assertEquals(3, inputs.size()); + for (InputDefinition input : inputs) { + assertThat(input.getOwnerId()).isNotNull(); + } + assertEquals(resource.getDerivedFromGenericType(), genericPNF.getToscaResourceName()); + assertEquals(resource.getDerivedFromGenericVersion(), genericPNF.getVersion()); + assertEquals(0, resource.getArtifacts() + .size()); + } + + private Resource createVF() { + + genericVF = setupGenericTypeMock(GENERIC_VF_NAME); + when(toscaOperationFacade.getLatestCertifiedNodeTypeByToscaResourceName(GENERIC_VF_NAME)) + .thenReturn(Either.left(genericVF)); + Resource resource = createResourceObject(true); + resource.setDerivedFrom(null); + resource.setResourceType(ResourceTypeEnum.VF); + when(toscaOperationFacade.createToscaComponent(resource)).thenReturn(Either.left(resource)); + when(genericTypeBusinessLogic.fetchDerivedFromGenericType(resource)).thenReturn(Either.left(genericVF)); + when(genericTypeBusinessLogic.generateInputsFromGenericTypeProperties(genericVF)).thenCallRealMethod(); + when(genericTypeBusinessLogic.convertGenericTypePropertiesToInputsDefintion(genericVF.getProperties(), + resource.getUniqueId())).thenCallRealMethod(); + Resource createdResource = bl.createResource(resource, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + assertThat(createdResource).isNotNull(); + return createdResource; + } + + private Resource createRoot() { + rootType = setupGenericTypeMock(GENERIC_ROOT_NAME); + when(toscaOperationFacade.getLatestByToscaResourceName(GENERIC_ROOT_NAME)) + .thenReturn(Either.left(rootType)); + return rootType; + } + + private Resource createCR() { + + genericCR = setupGenericTypeMock(GENERIC_CR_NAME); + when(toscaOperationFacade.getLatestCertifiedNodeTypeByToscaResourceName(GENERIC_CR_NAME)) + .thenReturn(Either.left(genericCR)); + Resource resource = createResourceObject(true); + resource.setDerivedFrom(null); + resource.setResourceType(ResourceTypeEnum.CR); + when(toscaOperationFacade.createToscaComponent(resource)).thenReturn(Either.left(resource)); + when(genericTypeBusinessLogic.fetchDerivedFromGenericType(resource)).thenReturn(Either.left(genericCR)); + when(genericTypeBusinessLogic.generateInputsFromGenericTypeProperties(genericCR)).thenCallRealMethod(); + when(genericTypeBusinessLogic.convertGenericTypePropertiesToInputsDefintion(genericCR.getProperties(), + resource.getUniqueId())).thenCallRealMethod(); + Resource createdResource = bl.createResource(resource, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + assertThat(createdResource).isNotNull(); + return createdResource; + } + + private Resource createPNF() { + + genericPNF = setupGenericTypeMock(GENERIC_PNF_NAME); + when(toscaOperationFacade.getLatestCertifiedNodeTypeByToscaResourceName(GENERIC_PNF_NAME)) + .thenReturn(Either.left(genericPNF)); + Resource resource = createResourceObject(true); + resource.setDerivedFrom(null); + resource.setResourceType(ResourceTypeEnum.PNF); + when(toscaOperationFacade.createToscaComponent(resource)).thenReturn(Either.left(resource)); + when(genericTypeBusinessLogic.fetchDerivedFromGenericType(resource)).thenReturn(Either.left(genericPNF)); + when(genericTypeBusinessLogic.generateInputsFromGenericTypeProperties(genericPNF)).thenCallRealMethod(); + when(genericTypeBusinessLogic.convertGenericTypePropertiesToInputsDefintion(genericPNF.getProperties(), + resource.getUniqueId())).thenCallRealMethod(); + Resource createdResource = bl.createResource(resource, AuditingActionEnum.CREATE_RESOURCE, user, null, null); + assertThat(createdResource).isNotNull(); + return createdResource; + } + + private Map<String, String> getGenericPropertiesByToscaName(String toscaName) { + HashMap<String, String> PNFProps = new HashMap<String, String>() { + { + put("nf_function", "string"); + put("nf_role", "string"); + put("nf_type", "string"); + } + }; + + HashMap<String, String> CRProps = new HashMap<String, String>() { + { + put("cr_function", "string"); + put("cr_role", "string"); + put("cr_type", "string"); + } + }; + + HashMap<String, String> VFProps = new HashMap<String, String>() { + { + putAll(CRProps); + put("availability_zone_max_count", "integer"); + put("min_instances", "integer"); + put("max_instances", "integer"); + } + }; + + if (toscaName.contains("PNF")) + return PNFProps; + if (toscaName.contains("CR")) + return CRProps; + if (toscaName.contains("VF")) + return VFProps; + + return new HashMap<>(); + } + + private Resource setupGenericTypeMock(String toscaName) { + + Resource genericType = createResourceObject(true); + genericType.setVersion("1.0"); + genericType.setToscaResourceName(toscaName); + genericType.setAbstract(true); + List<PropertyDefinition> genericProps = new ArrayList<>(); + Map<String, String> genericPropsMap = getGenericPropertiesByToscaName(toscaName); + genericPropsMap.forEach((name, type) -> { + PropertyDefinition prop = new PropertyDefinition(); + prop.setName(name); + prop.setType(type); + genericProps.add(prop); + }); + + genericType.setProperties(genericProps); + return genericType; + } + + private void validateUserRoles(Role... roles) { + List<Role> listOfRoles = Stream.of(roles) + .collect(Collectors.toList()); + } + + @Test + public void testUpdateVolumeGroup() { + Resource resource = getResourceWithType("HEAT_VOL", "org.openecomp.groups.VfModule"); + bl.updateVolumeGroup(resource); + assertThat(resource.getGroups().get(0).getProperties().get(0).getValue()).isEqualTo(Boolean.toString(true)); + } + + @Test + public void testUpdateVolumeGroupNull() { + Resource resource = getResourceWithType("HEAT_VOL", "org.openecomp.groups.VfModule"); + resource.setGroups(null); + bl.updateVolumeGroup(resource); + } + + @Test + public void testUpdateVolumeGroupFail() { + Resource resource = getResourceWithType("NON_EXIST_HEAT", "org.openecomp.groups.VfModule"); + bl.updateVolumeGroup(resource); + assertThat(resource.getGroups().get(0).getProperties().get(0).getValue()).isEqualTo(Boolean.toString(false)); + } + + private Resource getResourceWithType(String artifactType, String groupDefinitionType) { + ArtifactDefinition artifactToUpdate = new ArtifactDefinition(); + List<GroupDefinition> groups = new ArrayList<>(); + GroupDefinition gd = new GroupDefinition(); + List<PropertyDataDefinition> properties = new ArrayList<>(); + PropertyDataDefinition pdd = new PropertyDataDefinition(); + Map<String, ArtifactDefinition> artifacts = new HashMap<>(); + List<String> artifactsList = new ArrayList<>(); + + artifactToUpdate.setArtifactType(artifactType); + artifactToUpdate.setArtifactName(artifactType); + artifactToUpdate.setUniqueId(artifactType); + Resource resource = createResourceObjectCsar(true); + artifactsList.add(artifactToUpdate.getArtifactName()); + + + pdd.setName("volume_group"); + pdd.setValue("true"); + pdd.setType(ToscaPropertyType.BOOLEAN.getType()); + + artifacts.put(artifactToUpdate.getArtifactName(), artifactToUpdate); + + properties.add(pdd); + gd.setType(groupDefinitionType); + gd.setProperties(properties); + gd.setArtifacts(artifactsList); + groups.add(gd); + + resource.setGroups(groups); + resource.setDeploymentArtifacts(artifacts); + return resource; + } @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ResourceInstanceBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ResourceInstanceBusinessLogicTest.java index a89212afca..6a47044c22 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ResourceInstanceBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ResourceInstanceBusinessLogicTest.java @@ -33,13 +33,20 @@ import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.ArtifactDefinition; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.ComponentInstance; +import org.openecomp.sdc.be.model.GroupInstance; +import org.openecomp.sdc.be.model.HeatParameterDefinition; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.Service; +import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ForwardingPathOperation; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.NodeFilterOperation; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; -import org.openecomp.sdc.be.model.operations.api.IComponentInstanceOperation; import org.openecomp.sdc.be.model.operations.api.IGroupInstanceOperation; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; +import org.openecomp.sdc.be.model.operations.impl.ComponentInstanceOperation; import org.openecomp.sdc.be.model.operations.impl.UniqueIdBuilder; import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; import org.openecomp.sdc.be.resources.data.auditing.model.ResourceCommonInfo; @@ -56,10 +63,12 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import static org.junit.Assert.*; 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 static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.when; public class ResourceInstanceBusinessLogicTest extends BaseBusinessLogicMock { @@ -73,7 +82,7 @@ public class ResourceInstanceBusinessLogicTest extends BaseBusinessLogicMock { private static final String USER_ID = "jh0003"; private static final long ARTIFACT_CREATION_TIME = System.currentTimeMillis(); - private final IComponentInstanceOperation componentInstanceOperation = Mockito.mock(IComponentInstanceOperation.class); + private final ComponentInstanceOperation componentInstanceOperation = Mockito.mock(ComponentInstanceOperation.class); private final ArtifactsBusinessLogic artifactBusinessLogic = Mockito.mock(ArtifactsBusinessLogic.class); private final ComponentInstanceMergeDataBusinessLogic compInstMergeDataBL = Mockito.mock(ComponentInstanceMergeDataBusinessLogic.class); private final ComponentInstanceChangeOperationOrchestrator onChangeInstanceOperationOrchestrator = Mockito.mock(ComponentInstanceChangeOperationOrchestrator.class); @@ -93,8 +102,6 @@ public class ResourceInstanceBusinessLogicTest extends BaseBusinessLogicMock { forwardingPathOperation, serviceFilterOperation, artifactToscaOperation); static ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be"); - static ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); - @Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); @@ -105,44 +112,37 @@ public class ResourceInstanceBusinessLogicTest extends BaseBusinessLogicMock { Map<String, ArtifactDefinition> artifacts = new HashMap<>(); artifacts.put(HEAT_LABEL.toLowerCase(), heatArtifact); Either<Map<String, ArtifactDefinition>, StorageOperationStatus> eitherGetResourceArtifact = Either.left(artifacts); - Mockito.when(artifactBusinessLogic.getArtifacts(RESOURCE_ID_WITH_HEAT_PARAMS, NodeTypeEnum.Resource, ArtifactGroupTypeEnum.DEPLOYMENT, null)).thenReturn(eitherGetResourceArtifact); + when(artifactBusinessLogic.getArtifacts(RESOURCE_ID_WITH_HEAT_PARAMS, NodeTypeEnum.Resource, ArtifactGroupTypeEnum.DEPLOYMENT, null)).thenReturn(eitherGetResourceArtifact); ArtifactDefinition heatArtifactNoPayload = getHeatArtifactDefinition(USER_ID, RESOURCE_ID_NO_PAYLOAD, HEAT_LABEL, ARTIFACT_CREATION_TIME, true, false); Map<String, ArtifactDefinition> artifactsNoPayload = new HashMap<>(); artifactsNoPayload.put(HEAT_LABEL.toLowerCase(), heatArtifactNoPayload); Either<Map<String, ArtifactDefinition>, StorageOperationStatus> eitherGetResourceArtifactNoPayload = Either.left(artifactsNoPayload); - Mockito.when(artifactBusinessLogic.getArtifacts(RESOURCE_ID_NO_PAYLOAD, NodeTypeEnum.Resource, ArtifactGroupTypeEnum.DEPLOYMENT, null)).thenReturn(eitherGetResourceArtifactNoPayload); + when(artifactBusinessLogic.getArtifacts(RESOURCE_ID_NO_PAYLOAD, NodeTypeEnum.Resource, ArtifactGroupTypeEnum.DEPLOYMENT, null)).thenReturn(eitherGetResourceArtifactNoPayload); ArtifactDefinition heatArtifactNoParams = getHeatArtifactDefinition(USER_ID, RESOURCE_ID_NO_HEAT_PARAMS, HEAT_LABEL, ARTIFACT_CREATION_TIME, false, false); Map<String, ArtifactDefinition> artifactsNoParams = new HashMap<>(); artifactsNoParams.put(HEAT_LABEL.toLowerCase(), heatArtifactNoParams); Either<Map<String, ArtifactDefinition>, StorageOperationStatus> eitherGetResourceArtifactNoParams = Either.left(artifactsNoParams); - Mockito.when(artifactBusinessLogic.getArtifacts(RESOURCE_ID_NO_HEAT_PARAMS, NodeTypeEnum.Resource, ArtifactGroupTypeEnum.DEPLOYMENT, null)).thenReturn(eitherGetResourceArtifactNoParams); + when(artifactBusinessLogic.getArtifacts(RESOURCE_ID_NO_HEAT_PARAMS, NodeTypeEnum.Resource, ArtifactGroupTypeEnum.DEPLOYMENT, null)).thenReturn(eitherGetResourceArtifactNoParams); - Either<ArtifactDefinition, ResponseFormat> eitherPlaceHolder = Either.left(getArtifactPlaceHolder(RESOURCE_INSTANCE_ID, HEAT_ENV_LABEL)); - Mockito.when(artifactBusinessLogic.createArtifactPlaceHolderInfo(RESOURCE_INSTANCE_ID, HEAT_ENV_LABEL.toLowerCase(), placeHolderData, USER_ID, ArtifactGroupTypeEnum.DEPLOYMENT, false)).thenReturn(eitherPlaceHolder); + ArtifactDefinition eitherPlaceHolder = getArtifactPlaceHolder(RESOURCE_INSTANCE_ID, HEAT_ENV_LABEL); + when(artifactBusinessLogic.createArtifactPlaceHolderInfo(RESOURCE_INSTANCE_ID, HEAT_ENV_LABEL.toLowerCase(), placeHolderData, USER_ID, ArtifactGroupTypeEnum.DEPLOYMENT, false)).thenReturn(eitherPlaceHolder); // Mockito.when(artifactBusinessLogic.createArtifactAuditingFields(Mockito.any(ArtifactDefinition.class), Mockito.anyString(), Mockito.anyString())).thenReturn(new EnumMap<AuditingFieldsKey, Object>(AuditingFieldsKey.class)); - Either<ArtifactDefinition, StorageOperationStatus> eitherArtifact = Either.left(getHeatArtifactDefinition(USER_ID, RESOURCE_INSTANCE_ID, HEAT_ENV_LABEL, ARTIFACT_CREATION_TIME, true, false)); - Mockito.when(artifactBusinessLogic.addHeatEnvArtifact(Mockito.any(ArtifactDefinition.class), Mockito.any(ArtifactDefinition.class), Mockito.anyString(), Mockito.any(NodeTypeEnum.class), Mockito.anyString())).thenReturn(eitherArtifact); - - Either<User, ActionStatus> eitherUser = Either.left(adminUser); - Mockito.when(userAdminManager.getUser(USER_ID, false)).thenReturn(eitherUser); - - Object lightService = new Service(); - Either<Object, StorageOperationStatus> eitherLightService = Either.left(lightService); + when(userAdminManager.getUser(USER_ID, false)).thenReturn(adminUser); - Mockito.doNothing().when(componentsUtils).auditComponent(Mockito.any(ResponseFormat.class), Mockito.any(User.class), Mockito.any(Component.class), Mockito.any(AuditingActionEnum.class), - Mockito.any(ResourceCommonInfo.class), Mockito.any(ResourceVersionInfo.class)); + Mockito.doNothing().when(componentsUtils).auditComponent(any(ResponseFormat.class), any(User.class), any(Component.class), any(AuditingActionEnum.class), + any(ResourceCommonInfo.class), any(ResourceVersionInfo.class)); - Either<ArtifactDefinition, ResponseFormat> heatEnvEither = Either.left(getHeatArtifactDefinition(USER_ID, RESOURCE_INSTANCE_ID, HEAT_ENV_LABEL, ARTIFACT_CREATION_TIME, true, false)); + ArtifactDefinition heatEnvEither = getHeatArtifactDefinition(USER_ID, RESOURCE_INSTANCE_ID, HEAT_ENV_LABEL, ARTIFACT_CREATION_TIME, true, false); - Mockito.when(artifactBusinessLogic.createHeatEnvPlaceHolder(Mockito.any(ArtifactDefinition.class), Mockito.anyString(), Mockito.anyString(), Mockito.any(NodeTypeEnum.class), Mockito.anyString(), Mockito.any(User.class), - Mockito.any(Component.class), Mockito.any())).thenReturn(heatEnvEither); + when(artifactBusinessLogic.createHeatEnvPlaceHolder(any(ArrayList.class),any(ArtifactDefinition.class), Mockito.anyString(), Mockito.anyString(), any(NodeTypeEnum.class), Mockito.anyString(), any(User.class), + any(Component.class), any())).thenReturn(heatEnvEither); Either<List<GroupInstance>, StorageOperationStatus> groupInstanceEitherLeft = Either.left(new ArrayList<>()); - Mockito.when(groupInstanceOperation.getAllGroupInstances(Mockito.anyString(), Mockito.any(NodeTypeEnum.class))).thenReturn(groupInstanceEitherLeft); + when(groupInstanceOperation.getAllGroupInstances(Mockito.anyString(), any(NodeTypeEnum.class))).thenReturn(groupInstanceEitherLeft); bl.setToscaOperationFacade(toscaOperationFacade); @@ -164,11 +164,12 @@ public class ResourceInstanceBusinessLogicTest extends BaseBusinessLogicMock { Map<String, String> existingEnvVersions = new HashMap<>(); Resource originResource = new Resource(); originResource.setUniqueId(RESOURCE_ID_NO_PAYLOAD); - Either<ActionStatus, ResponseFormat> addArtifactsRes = bl.addComponentInstanceArtifacts(service, resourceInstance, originResource, adminUser, existingEnvVersions); - assertTrue(addArtifactsRes.isLeft()); + ActionStatus addArtifactsRes = bl.addComponentInstanceArtifacts(service, resourceInstance, originResource, adminUser, existingEnvVersions); + assertTrue(addArtifactsRes.equals(ActionStatus.OK)); Map<String, ArtifactDefinition> deploymentArtifacts = resourceInstance.getDeploymentArtifacts(); assertNotNull(deploymentArtifacts); +// assertTrue(deploymentArtifacts.size() == 2); ArtifactDefinition heatDefinition = deploymentArtifacts.get(HEAT_LABEL.toLowerCase()); assertNotNull(heatDefinition); @@ -185,18 +186,26 @@ public class ResourceInstanceBusinessLogicTest extends BaseBusinessLogicMock { Map<String, String> existingEnvVersions = new HashMap<>(); Resource originResource = new Resource(); originResource.setUniqueId(RESOURCE_ID_NO_PAYLOAD); - Either<ActionStatus, ResponseFormat> addArtifactsRes = bl.addComponentInstanceArtifacts(service, resourceInstance, originResource, adminUser, existingEnvVersions); - assertTrue(addArtifactsRes.isLeft()); + ActionStatus addArtifactsRes = bl.addComponentInstanceArtifacts(service, resourceInstance, originResource, adminUser, existingEnvVersions); + assertTrue(addArtifactsRes.equals(ActionStatus.OK)); Map<String, ArtifactDefinition> deploymentArtifacts = resourceInstance.getDeploymentArtifacts(); assertNotNull(deploymentArtifacts); +// assertTrue(deploymentArtifacts.size() == 2); ArtifactDefinition heatDefinition = deploymentArtifacts.get(HEAT_LABEL.toLowerCase()); assertNotNull(heatDefinition); +// assertEquals(getHeatArtifactDefinition(USER_ID, RESOURCE_ID_NO_HEAT_PARAMS, HEAT_LABEL, ARTIFACT_CREATION_TIME, false, false), heatDefinition); + +// ArtifactDefinition heatEnvDefinition = deploymentArtifacts.get(HEAT_ENV_LABEL.toLowerCase()); +// assertNotNull(heatEnvDefinition); List<HeatParameterDefinition> heatParameters = heatDefinition.getListHeatParameters(); assertNull(heatParameters); +// List<HeatParameterDefinition> heatEnvParameters = heatEnvDefinition.getListHeatParameters(); +// assertNull(heatEnvParameters); + } @SuppressWarnings("unchecked") @@ -212,14 +221,14 @@ public class ResourceInstanceBusinessLogicTest extends BaseBusinessLogicMock { Resource originResource = new Resource(); originResource.setUniqueId(RESOURCE_ID_NO_PAYLOAD); - Either<ActionStatus, ResponseFormat> addArtifactsRes = bl.addComponentInstanceArtifacts(service, resourceInstance, originResource, adminUser, existingEnvVersions); - assertTrue(addArtifactsRes.isLeft()); + ActionStatus addArtifactsRes = bl.addComponentInstanceArtifacts(service, resourceInstance, originResource, adminUser, existingEnvVersions); + assertTrue(addArtifactsRes.equals(ActionStatus.OK)); Map<String, ArtifactDefinition> deploymentArtifacts = resourceInstance.getDeploymentArtifacts(); assertNotNull(deploymentArtifacts); assertEquals(0, deploymentArtifacts.size()); - Mockito.verify(artifactBusinessLogic, Mockito.times(0)).addHeatEnvArtifact(Mockito.any(ArtifactDefinition.class), Mockito.any(ArtifactDefinition.class), Mockito.anyString(), Mockito.any(NodeTypeEnum.class), Mockito.anyString()); + Mockito.verify(artifactBusinessLogic, Mockito.times(0)).addHeatEnvArtifact(any(ArtifactDefinition.class), any(ArtifactDefinition.class), any(Service.class), any(NodeTypeEnum.class), Mockito.anyString()); } private static ArtifactDefinition getHeatArtifactDefinition(String userId, String resourceId, String artifactName, long time, boolean placeholderOnly, boolean withHeatParams) { @@ -233,6 +242,7 @@ public class ResourceInstanceBusinessLogicTest extends BaseBusinessLogicMock { artifactInfo.setUserIdCreator(userId); String fullName = "Jim H"; artifactInfo.setUpdaterFullName(fullName); + // long time = System.currentTimeMillis(); artifactInfo.setCreatorFullName(fullName); artifactInfo.setCreationDate(time); artifactInfo.setLastUpdateDate(time); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ServiceBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ServiceBusinessLogicTest.java index d534cdf79e..88ab995be9 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ServiceBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ServiceBusinessLogicTest.java @@ -7,17 +7,15 @@ * 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.openecomp.sdc.be.components.impl; @@ -27,176 +25,56 @@ import com.google.common.collect.Maps; import fj.data.Either; import org.apache.commons.lang3.tuple.ImmutablePair; import org.junit.Assert; -import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; -import org.openecomp.sdc.ElementOperationMock; -import org.openecomp.sdc.be.auditing.impl.AuditingManager; -import org.openecomp.sdc.be.components.distribution.engine.IDistributionEngine; -import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException; -import org.openecomp.sdc.be.components.impl.exceptions.ByResponseFormatComponentException; -import org.openecomp.sdc.be.components.impl.generic.GenericTypeBusinessLogic; -import org.openecomp.sdc.be.components.path.ForwardingPathValidator; -import org.openecomp.sdc.be.components.utils.ComponentBusinessLogicMock; -import org.openecomp.sdc.be.components.validation.NodeFilterValidator; -import org.openecomp.sdc.be.components.validation.ServiceDistributionValidation; -import org.openecomp.sdc.be.components.validation.UserValidations; -import org.openecomp.sdc.be.config.ConfigurationManager; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; import org.openecomp.sdc.be.dao.api.ActionStatus; -import org.openecomp.sdc.be.dao.cassandra.AuditCassandraDao; -import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; -import org.openecomp.sdc.be.datamodel.utils.UiComponentDataConverter; import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition; import org.openecomp.sdc.be.datatypes.elements.InterfaceInstanceDataDefinition; import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; -import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; -import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.impl.WebAppContextWrapper; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.ArtifactDefinition; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.ComponentInstance; +import org.openecomp.sdc.be.model.ComponentInstanceInterface; +import org.openecomp.sdc.be.model.GroupInstance; +import org.openecomp.sdc.be.model.Operation; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.Service; import org.openecomp.sdc.be.model.category.CategoryDefinition; -import org.openecomp.sdc.be.model.jsonjanusgraph.operations.NodeFilterOperation; -import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; -import org.openecomp.sdc.be.model.operations.api.IElementOperation; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; -import org.openecomp.sdc.be.model.operations.impl.GraphLockOperation; +import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; import org.openecomp.sdc.be.resources.data.auditing.DistributionDeployEvent; -import org.openecomp.sdc.be.resources.data.auditing.DistributionNotificationEvent; import org.openecomp.sdc.be.resources.data.auditing.ResourceAdminEvent; import org.openecomp.sdc.be.types.ServiceConsumptionData; import org.openecomp.sdc.be.user.Role; -import org.openecomp.sdc.be.user.UserBusinessLogic; -import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum; -import org.openecomp.sdc.common.api.ConfigurationSource; -import org.openecomp.sdc.common.api.Constants; -import org.openecomp.sdc.common.impl.ExternalConfiguration; -import org.openecomp.sdc.common.impl.FSConfigurationSource; import org.openecomp.sdc.common.util.ValidationUtils; import org.openecomp.sdc.exception.ResponseFormat; import org.springframework.http.HttpStatus; -import org.springframework.web.context.WebApplicationContext; -import javax.servlet.ServletContext; import java.lang.reflect.Method; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; import java.util.stream.Collectors; import java.util.stream.Stream; import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.ArgumentMatchers.eq; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import static org.mockito.Mockito.when; -public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { +public class ServiceBusinessLogicTest extends ServiceBussinessLogicBaseTestSetup { - private static final String SERVICE_CATEGORY = "Mobility"; - private static final String INSTANTIATION_TYPE = "A-la-carte"; + private final static String DEFAULT_ICON = "defaulticon"; private static final String ALREADY_EXIST = "alreadyExist"; private static final String DOES_NOT_EXIST = "doesNotExist"; - private final ServletContext servletContext = Mockito.mock(ServletContext.class); - private UserBusinessLogic mockUserAdmin = Mockito.mock(UserBusinessLogic.class); - private WebAppContextWrapper webAppContextWrapper = Mockito.mock(WebAppContextWrapper.class); - private WebApplicationContext webAppContext = Mockito.mock(WebApplicationContext.class); - private ServiceBusinessLogic bl; - private ResponseFormatManager responseManager = null; - private ComponentsUtils componentsUtils; - private AuditCassandraDao auditingDao = Mockito.mock(AuditCassandraDao.class); - private ArtifactsBusinessLogic artifactBl = Mockito.mock(ArtifactsBusinessLogic.class); - private GraphLockOperation graphLockOperation = Mockito.mock(GraphLockOperation.class); - private JanusGraphDao mockJanusGraphDao = Mockito.mock(JanusGraphDao.class); - private ToscaOperationFacade toscaOperationFacade = Mockito.mock(ToscaOperationFacade.class); - private GenericTypeBusinessLogic genericTypeBusinessLogic = Mockito.mock(GenericTypeBusinessLogic.class); - private UserValidations userValidations = Mockito.mock(UserValidations.class); - private ResourceAdminEvent auditArchive1 = Mockito.mock(ResourceAdminEvent.class); - private ResourceAdminEvent auditArchive2 = Mockito.mock(ResourceAdminEvent.class); - private ResourceAdminEvent auditRestore = Mockito.mock(ResourceAdminEvent.class); - - private final IDistributionEngine distributionEngine = Mockito.mock(IDistributionEngine.class); - private final ComponentInstanceBusinessLogic componentInstanceBusinessLogic = Mockito.mock(ComponentInstanceBusinessLogic.class); - private final ServiceDistributionValidation serviceDistributionValidation = Mockito.mock(ServiceDistributionValidation.class); - private final ForwardingPathValidator forwardingPathValidator = Mockito.mock(ForwardingPathValidator.class); - private final UiComponentDataConverter uiComponentDataConverter = Mockito.mock(UiComponentDataConverter.class); - private final NodeFilterOperation serviceFilterOperation = Mockito.mock(NodeFilterOperation.class); - private final NodeFilterValidator serviceFilterValidator = Mockito.mock(NodeFilterValidator.class); - - private User user = null; - private Resource genericService = null; - - private static final String CERTIFIED_VERSION = "1.0"; - private static final String UNCERTIFIED_VERSION = "0.2"; - private static final String COMPONNET_ID = "myUniqueId"; - private static final String GENERIC_SERVICE_NAME = "org.openecomp.resource.abstract.nodes.service"; - - @Before - public void setup() { - - ExternalConfiguration.setAppName("catalog-be"); - // init Configuration - String appConfigDir = "src/test/resources/config/catalog-be"; - ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir); - ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); - componentsUtils = new ComponentsUtils(Mockito.mock(AuditingManager.class)); - - // Elements - IElementOperation mockElementDao = new ElementOperationMock(); - - // User data and management - user = new User(); - user.setUserId("jh0003"); - user.setFirstName("Jimmi"); - user.setLastName("Hendrix"); - user.setRole(Role.ADMIN.name()); - - Either<User, ActionStatus> eitherGetUser = Either.left(user); - when(mockUserAdmin.getUser("jh0003", false)).thenReturn(eitherGetUser); - when(userValidations.validateUserExists(eq("jh0003"), anyString(), eq(false))).thenReturn(user); - when(userValidations.validateUserNotEmpty(eq(user), anyString())).thenReturn(user); - when(servletContext.getAttribute(Constants.CONFIGURATION_MANAGER_ATTR)).thenReturn(configurationManager); - when(servletContext.getAttribute(Constants.WEB_APPLICATION_CONTEXT_WRAPPER_ATTR)).thenReturn(webAppContextWrapper); - when(webAppContextWrapper.getWebAppContext(servletContext)).thenReturn(webAppContext); - when(webAppContext.getBean(IElementOperation.class)).thenReturn(mockElementDao); - when(graphLockOperation.lockComponent(Mockito.anyString(), Mockito.eq(NodeTypeEnum.Service))).thenReturn(StorageOperationStatus.OK); - when(graphLockOperation.lockComponentByName(Mockito.anyString(), Mockito.eq(NodeTypeEnum.Service))).thenReturn(StorageOperationStatus.OK); - - // artifact bussinesslogic - ArtifactDefinition artifactDef = new ArtifactDefinition(); - when(artifactBl.createArtifactPlaceHolderInfo(Mockito.any(), Mockito.anyString(), Mockito.anyMap(), Mockito.any(User.class), Mockito.any(ArtifactGroupTypeEnum.class))).thenReturn(artifactDef); - - // createService - Service serviceResponse = createServiceObject(true); - Either<Component, StorageOperationStatus> eitherCreate = Either.left(serviceResponse); - when(toscaOperationFacade.createToscaComponent(Mockito.any(Component.class))).thenReturn(eitherCreate); - Either<Boolean, StorageOperationStatus> eitherCount = Either.left(false); - when(toscaOperationFacade.validateComponentNameExists("Service", null, ComponentTypeEnum.SERVICE)).thenReturn(eitherCount); - Either<Boolean, StorageOperationStatus> eitherCountExist = Either.left(true); - when(toscaOperationFacade.validateComponentNameExists(ALREADY_EXIST, null, ComponentTypeEnum.SERVICE)).thenReturn(eitherCountExist); - - genericService = setupGenericServiceMock(); - Either<Resource, StorageOperationStatus> findLatestGeneric = Either.left(genericService); - when(toscaOperationFacade.getLatestCertifiedNodeTypeByToscaResourceName(GENERIC_SERVICE_NAME)).thenReturn(findLatestGeneric); - - - bl = new ServiceBusinessLogic(mockElementDao, groupOperation, groupInstanceOperation, groupTypeOperation, groupBusinessLogic, - interfaceOperation, interfaceLifecycleTypeOperation, artifactBl, distributionEngine, - componentInstanceBusinessLogic, serviceDistributionValidation, forwardingPathValidator, uiComponentDataConverter, - serviceFilterOperation, serviceFilterValidator, artifactToscaOperation); - - bl.setUserAdmin(mockUserAdmin); - bl.setGraphLockOperation(graphLockOperation); - bl.setJanusGraphDao(mockJanusGraphDao); - bl.setToscaOperationFacade(toscaOperationFacade); - bl.setGenericTypeBusinessLogic(genericTypeBusinessLogic); - bl.setComponentsUtils(componentsUtils); - bl.setCassandraAuditingDao(auditingDao); - bl.setUserValidations(userValidations); - - mockAuditingDaoLogic(); - - responseManager = ResponseFormatManager.getInstance(); - - } @Test public void testGetComponentAuditRecordsCertifiedVersion() { @@ -224,6 +102,33 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { } assertEqualsServiceObject(createServiceObject(true), createResponse.left().value()); } + @Test + public void testHappyScenarioCRNullProjectCode() { + Service service = createServiceObject(false); + service.setProjectCode(null); + validateUserRoles(Role.ADMIN, Role.DESIGNER); + when(genericTypeBusinessLogic.fetchDerivedFromGenericType(service)).thenReturn(Either.left(genericService)); + Either<Service, ResponseFormat> createResponse = bl.createService(service, user); + + if (createResponse.isRight()) { + assertEquals(new Integer(200), createResponse.right().value().getStatus()); + } + assertEqualsServiceObject(createServiceObject(true), createResponse.left().value()); + } + @Test + public void testHappyScenarioCREmptyStringProjectCode() { + createServiceValidator(); + Service service = createServiceObject(false); + service.setProjectCode(""); + validateUserRoles(Role.ADMIN, Role.DESIGNER); + when(genericTypeBusinessLogic.fetchDerivedFromGenericType(service)).thenReturn(Either.left(genericService)); + Either<Service, ResponseFormat> createResponse = bl.createService(service, user); + + if (createResponse.isRight()) { + assertEquals(new Integer(200), createResponse.right().value().getStatus()); + } + assertEqualsServiceObject(createServiceObject(true), createResponse.left().value()); + } private void validateUserRoles(Role ... roles) { List<Role> listOfRoles = Stream.of(roles).collect(Collectors.toList()); @@ -249,29 +154,14 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { assertEquals(origService.getTags(), newService.getTags()); } - private void assertResponse(Either<Service, ResponseFormat> createResponse, ActionStatus expectedStatus, String... variables) { - assertResponse(createResponse.right().value(), expectedStatus, variables); - } - - private void assertComponentException(ByActionStatusComponentException e, ActionStatus expectedStatus, String... variables) { - ResponseFormat actualResponse = componentsUtils.getResponseFormat(e.getActionStatus(), e.getParams()); - assertResponse(actualResponse, expectedStatus, variables); - } - private void assertComponentException(ByResponseFormatComponentException e, ActionStatus expectedStatus, String... variables) { - ResponseFormat actualResponse = e.getResponseFormat(); - assertResponse(actualResponse, expectedStatus, variables); - } - - private void assertResponse(ResponseFormat actualResponse, ActionStatus expectedStatus, String... variables) { - ResponseFormat expectedResponse = responseManager.getResponseFormat(expectedStatus, variables); - assertEquals(expectedResponse.getStatus(), actualResponse.getStatus()); - assertEquals("assert error description", expectedResponse.getFormattedMessage(), actualResponse.getFormattedMessage()); - } + /* CREATE validations - start ***********************/ + // Service name - start @Test public void testFailedServiceValidations() { + testServiceNameAlreadyExists(); testServiceNameEmpty(); testServiceNameWrongFormat(); @@ -282,7 +172,6 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { testServiceIconEmpty(); testServiceIconMissing(); testResourceIconInvalid(); - testResourceIconExceedsLimit(); testTagsNoServiceName(); testInvalidTag(); testServiceTagNotExist(); @@ -297,7 +186,6 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { testResourceContactIdMissing(); testServiceCategoryExist(); testServiceBadCategoryCreate(); - testMissingProjectCode(); } private void testServiceNameAlreadyExists() { @@ -309,9 +197,13 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { tgs.add(serviceName); serviceExccedsNameLimit.setTags(tgs); validateUserRoles(Role.ADMIN, Role.DESIGNER); - Either<Service, ResponseFormat> createResponse = bl.createService(serviceExccedsNameLimit, user); - assertTrue(createResponse.isRight()); - assertResponse(createResponse, ActionStatus.COMPONENT_NAME_ALREADY_EXIST, ComponentTypeEnum.SERVICE.getValue(), serviceName); + try { + bl.createService(serviceExccedsNameLimit, user); + } catch (ComponentException exp) { + assertResponse(exp.getResponseFormat(), ActionStatus.COMPONENT_NAME_ALREADY_EXIST, ComponentTypeEnum.SERVICE.getValue(), serviceName); + return; + } + fail(); } private void testServiceNameEmpty() { @@ -319,31 +211,39 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { serviceExccedsNameLimit.setName(null); try{ bl.createService(serviceExccedsNameLimit, user); - } catch(ByActionStatusComponentException e){ + } catch(ComponentException e){ assertComponentException(e, ActionStatus.MISSING_COMPONENT_NAME, ComponentTypeEnum.SERVICE.getValue()); + return; } + fail(); } private void testServiceNameWrongFormat() { Service service = createServiceObject(false); // contains : - String nameWrongFormat = "ljg\fd"; + String nameWrongFormat = "ljg\\fd"; service.setName(nameWrongFormat); try{ bl.createService(service, user); - } catch(ByActionStatusComponentException e){ + } catch(ComponentException e){ assertComponentException(e, ActionStatus.INVALID_COMPONENT_NAME, ComponentTypeEnum.SERVICE.getValue()); + return; } + fail(); } + // Service name - end + // Service description - start private void testServiceDescriptionEmpty() { Service serviceExist = createServiceObject(false); serviceExist.setDescription(""); try{ bl.createService(serviceExist, user); - } catch(ByActionStatusComponentException e){ + } catch(ComponentException e){ assertComponentException(e, ActionStatus.COMPONENT_MISSING_DESCRIPTION, ComponentTypeEnum.SERVICE.getValue()); + return; } + fail(); } private void testServiceDescriptionMissing() { @@ -351,9 +251,11 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { serviceExist.setDescription(null); try{ bl.createService(serviceExist, user); - } catch(ByActionStatusComponentException e){ + } catch(ComponentException e){ assertComponentException(e, ActionStatus.COMPONENT_MISSING_DESCRIPTION, ComponentTypeEnum.SERVICE.getValue()); + return; } + fail(); } private void testServiceDescExceedsLimitCreate() { @@ -371,9 +273,11 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { serviceExccedsDescLimit.setDescription(tooLongServiceDesc); try{ bl.createService(serviceExccedsDescLimit, user); - } catch(ByActionStatusComponentException e){ + } catch(ComponentException e){ assertComponentException(e, ActionStatus.COMPONENT_DESCRIPTION_EXCEEDS_LIMIT, ComponentTypeEnum.SERVICE.getValue(), "" + ValidationUtils.COMPONENT_DESCRIPTION_MAX_LENGTH); + return; } + fail(); } private void testServiceDescNotEnglish() { @@ -383,9 +287,11 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { notEnglish.setDescription(tooLongServiceDesc); try{ bl.createService(notEnglish, user); - } catch(ByActionStatusComponentException e){ + } catch(ComponentException e){ assertComponentException(e, ActionStatus.COMPONENT_INVALID_DESCRIPTION, ComponentTypeEnum.SERVICE.getValue()); + return; } + fail(); } // Service description - stop @@ -393,41 +299,25 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { private void testServiceIconEmpty() { Service serviceExist = createServiceObject(false); serviceExist.setIcon(""); - try{ - bl.createService(serviceExist, user); - } catch(ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_MISSING_ICON, ComponentTypeEnum.SERVICE.getValue()); - } + Either<Service, ResponseFormat> service = bl.validateServiceBeforeCreate(serviceExist,user,AuditingActionEnum.CREATE_SERVICE); + assertThat(service.left().value().getIcon()).isEqualTo(DEFAULT_ICON); + } private void testServiceIconMissing() { Service serviceExist = createServiceObject(false); serviceExist.setIcon(null); - try{ - bl.createService(serviceExist, user); - } catch(ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_MISSING_ICON, ComponentTypeEnum.SERVICE.getValue()); - } + Either<Service, ResponseFormat> service = bl.validateServiceBeforeCreate(serviceExist,user,AuditingActionEnum.CREATE_SERVICE); + assertThat(service.left().value().getIcon()).isEqualTo(DEFAULT_ICON); } private void testResourceIconInvalid() { Service resourceExist = createServiceObject(false); resourceExist.setIcon("kjk3453^&"); - try{ - bl.createService(resourceExist, user); - } catch(ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_INVALID_ICON, ComponentTypeEnum.SERVICE.getValue()); - } - } - private void testResourceIconExceedsLimit() { - Service resourceExist = createServiceObject(false); - resourceExist.setIcon("dsjfhskdfhskjdhfskjdhkjdhfkshdfksjsdkfhsdfsdfsdfsfsdfsf"); - try{ - bl.createService(resourceExist, user); - } catch(ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_ICON_EXCEEDS_LIMIT, "Service", "25"); - } + Either<Service, ResponseFormat> service = bl.validateServiceBeforeCreate(resourceExist, user, AuditingActionEnum.CREATE_RESOURCE); + assertThat(service.left().value().getIcon()).isEqualTo(DEFAULT_ICON); + } private void testTagsNoServiceName() { @@ -438,9 +328,11 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { serviceExccedsNameLimit.setTags(tagsList); try{ bl.createService(serviceExccedsNameLimit, user); - } catch(ByActionStatusComponentException e) { + } catch(ComponentException e) { assertComponentException(e, ActionStatus.COMPONENT_INVALID_TAGS_NO_COMP_NAME); + return; } + fail(); } private void testInvalidTag() { @@ -451,29 +343,27 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { serviceExccedsNameLimit.setTags(tagsList); try{ bl.createService(serviceExccedsNameLimit, user); - } catch(ByActionStatusComponentException e) { + } catch(ComponentException e) { assertComponentException(e, ActionStatus.INVALID_FIELD_FORMAT, "Service", "tag"); + return; } + fail(); } private void testServiceTagNotExist() { Service serviceExist = createServiceObject(false); serviceExist.setTags(null); - try{ - bl.createService(serviceExist, user); - } catch(ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_MISSING_TAGS); - } + + Either<Service, ResponseFormat> service = bl.validateServiceBeforeCreate(serviceExist, user, AuditingActionEnum.CREATE_RESOURCE); + assertThat(service.left().value().getTags().get(0)).isEqualTo(serviceExist.getName()); } private void testServiceTagEmpty() { Service serviceExist = createServiceObject(false); serviceExist.setTags(new ArrayList<>()); - try{ - bl.createService(serviceExist, user); - } catch(ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_MISSING_TAGS); - } + + Either<Service, ResponseFormat> service = bl.validateServiceBeforeCreate(serviceExist, user, AuditingActionEnum.CREATE_RESOURCE); + assertThat(service.left().value().getTags().get(0)).isEqualTo(serviceExist.getName()); } // Service tags - stop @@ -485,9 +375,11 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { serviceContactId.setContactId(contactIdTooLong); try{ bl.createService(serviceContactId, user); - } catch(ByActionStatusComponentException e) { + } catch(ComponentException e) { assertComponentException(e, ActionStatus.COMPONENT_INVALID_CONTACT, ComponentTypeEnum.SERVICE.getValue()); + return; } + fail(); } private void testContactIdWrongFormatCreate() { @@ -497,9 +389,11 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { serviceContactId.setContactId(contactIdTooLong); try{ bl.createService(serviceContactId, user); - } catch(ByActionStatusComponentException e) { + } catch(ComponentException e) { assertComponentException(e, ActionStatus.COMPONENT_INVALID_CONTACT, ComponentTypeEnum.SERVICE.getValue()); + return; } + fail(); } private void testResourceContactIdMissing() { @@ -507,9 +401,11 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { resourceExist.setContactId(null); try{ bl.createService(resourceExist, user); - } catch(ByActionStatusComponentException e) { + } catch(ComponentException e) { assertComponentException(e, ActionStatus.COMPONENT_MISSING_CONTACT, ComponentTypeEnum.SERVICE.getValue()); + return; } + fail(); } // Service contactId - stop @@ -519,9 +415,11 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { serviceExist.setCategories(null); try{ bl.createService(serviceExist, user); - } catch(ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.COMPONENT_INVALID_CONTACT, ComponentTypeEnum.SERVICE.getValue()); + } catch(ComponentException e) { + assertComponentException(e, ActionStatus.COMPONENT_MISSING_CATEGORY, ComponentTypeEnum.SERVICE.getValue()); + return; } + fail(); } @Test @@ -562,7 +460,7 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { setupBeforeDeploy(notifyAction, requestAction, did); List<Role> roles = new ArrayList<>(); roles.add(Role.ADMIN); - roles.add(Role.OPS); + roles.add(Role.DESIGNER); Either<Service, ResponseFormat> markDeployed = bl.markDistributionAsDeployed(did, did, user); assertTrue(markDeployed.isLeft()); } @@ -592,14 +490,17 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { Service serviceExist = createServiceObject(false); CategoryDefinition category = new CategoryDefinition(); category.setName("koko"); + category.setIcons(Arrays.asList(DEFAULT_ICON)); List<CategoryDefinition> categories = new ArrayList<>(); categories.add(category); serviceExist.setCategories(categories); try{ bl.createService(serviceExist, user); - } catch(ByActionStatusComponentException e) { + } catch(ComponentException e) { assertComponentException(e, ActionStatus.COMPONENT_INVALID_CATEGORY, ComponentTypeEnum.SERVICE.getValue()); + return; } + fail(); } // Service category - stop @@ -609,44 +510,44 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { Service serviceExist = createServiceObject(false); serviceExist.setProjectCode("koko!!"); - Either<Service, ResponseFormat> createResponse = bl.createService(serviceExist, user); - assertTrue(createResponse.isRight()); - - assertResponse(createResponse, ActionStatus.INVALID_PROJECT_CODE); + try { + bl.createService(serviceExist, user); + } catch(ComponentException exp) { + assertComponentException(exp, ActionStatus.INVALID_PROJECT_CODE); + return; + } + fail(); } + private void testProjectCodeTooLong() { Service serviceExist = createServiceObject(false); String tooLongProjectCode = "thisNameIsVeryLongAndExeccedsTheNormalLengthForProjectCode"; serviceExist.setProjectCode(tooLongProjectCode); - Either<Service, ResponseFormat> createResponse = bl.createService(serviceExist, user); - assertTrue(createResponse.isRight()); - - assertResponse(createResponse, ActionStatus.INVALID_PROJECT_CODE); + try { + bl.createService(serviceExist, user); + } catch(ComponentException exp) { + assertComponentException(exp, ActionStatus.INVALID_PROJECT_CODE); + return; + } + fail(); } + private void testProjectCodeTooShort() { Service serviceExist = createServiceObject(false); serviceExist.setProjectCode("333"); - Either<Service, ResponseFormat> createResponse = bl.createService(serviceExist, user); - assertTrue(createResponse.isRight()); - - assertResponse(createResponse, ActionStatus.INVALID_PROJECT_CODE); - } - - private void testMissingProjectCode() { - - Service serviceExist = createServiceObject(false); - serviceExist.setProjectCode(null); - try{ + try { bl.createService(serviceExist, user); - } catch(ByActionStatusComponentException e) { - assertComponentException(e, ActionStatus.MISSING_PROJECT_CODE); + } catch(ComponentException exp) { + assertComponentException(exp, ActionStatus.INVALID_PROJECT_CODE); + return; } + fail(); } @Test @@ -679,139 +580,6 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { } - private Service createServiceObject(boolean afterCreate) { - Service service = new Service(); - service.setUniqueId("sid"); - service.setName("Service"); - CategoryDefinition category = new CategoryDefinition(); - category.setName(SERVICE_CATEGORY); - List<CategoryDefinition> categories = new ArrayList<>(); - categories.add(category); - service.setCategories(categories); - service.setInstantiationType(INSTANTIATION_TYPE); - - service.setDescription("description"); - List<String> tgs = new ArrayList<>(); - tgs.add(service.getName()); - service.setTags(tgs); - service.setIcon("MyIcon"); - service.setContactId("aa1234"); - service.setProjectCode("12345"); - - if (afterCreate) { - service.setVersion("0.1"); - service.setUniqueId(service.getName() + ":" + service.getVersion()); - service.setCreatorUserId(user.getUserId()); - service.setCreatorFullName(user.getFirstName() + " " + user.getLastName()); - } - return service; - } - - private void mockAuditingDaoLogic() { - final ResourceAdminEvent createResourceAudit = new ResourceAdminEvent(); - createResourceAudit.setModifier("Carlos Santana(cs0008)"); - createResourceAudit.setCurrState("NOT_CERTIFIED_CHECKOUT"); - createResourceAudit.setCurrVersion("0.1"); - createResourceAudit.setServiceInstanceId("82eddd99-0bd9-4742-ab0a-1bdb5e262a05"); - createResourceAudit.setRequestId("3e65cea1-7403-4bc7-b461-e2544d83799f"); - createResourceAudit.setDesc("OK"); - createResourceAudit.setResourceType("Resource"); - createResourceAudit.setStatus("201"); - createResourceAudit.setPrevVersion(""); - createResourceAudit.setAction("Create"); - // fields.put("TIMESTAMP", "2015-11-22 09:19:12.977"); - createResourceAudit.setPrevState(""); - createResourceAudit.setResourceName("MyTestResource"); - // createResourceAudit.setFields(fields); - - final ResourceAdminEvent checkInResourceAudit = new ResourceAdminEvent(); - checkInResourceAudit.setModifier("Carlos Santana(cs0008)"); - checkInResourceAudit.setCurrState("NOT_CERTIFIED_CHECKIN"); - checkInResourceAudit.setCurrVersion("0.1"); - checkInResourceAudit.setServiceInstanceId("82eddd99-0bd9-4742-ab0a-1bdb5e262a05"); - checkInResourceAudit.setRequestId("ffacbf5d-eeb1-43c6-a310-37fe7e1cc091"); - checkInResourceAudit.setDesc("OK"); - checkInResourceAudit.setComment("Stam"); - checkInResourceAudit.setResourceType("Resource"); - checkInResourceAudit.setStatus("200"); - checkInResourceAudit.setPrevVersion("0.1"); - checkInResourceAudit.setAction("Checkin"); - // fields.put("TIMESTAMP", "2015-11-22 09:25:03.797"); - checkInResourceAudit.setPrevState("NOT_CERTIFIED_CHECKOUT"); - checkInResourceAudit.setResourceName("MyTestResource"); - - final ResourceAdminEvent checkOutResourceAudit = new ResourceAdminEvent(); - checkOutResourceAudit.setModifier("Carlos Santana(cs0008)"); - checkOutResourceAudit.setCurrState("NOT_CERTIFIED_CHECKOUT"); - checkOutResourceAudit.setCurrVersion("0.2"); - checkOutResourceAudit.setServiceInstanceId("82eddd99-0bd9-4742-ab0a-1bdb5e262a05"); - checkOutResourceAudit.setRequestId("7add5078-4c16-4d74-9691-cc150e3c96b8"); - checkOutResourceAudit.setDesc("OK"); - checkOutResourceAudit.setComment(""); - checkOutResourceAudit.setResourceType("Resource"); - checkOutResourceAudit.setStatus("200"); - checkOutResourceAudit.setPrevVersion("0.1"); - checkOutResourceAudit.setAction("Checkout"); - // fields.put("TIMESTAMP", "2015-11-22 09:39:41.024"); - checkOutResourceAudit.setPrevState("NOT_CERTIFIED_CHECKIN"); - checkOutResourceAudit.setResourceName("MyTestResource"); - List<ResourceAdminEvent> list = new ArrayList<ResourceAdminEvent>() { - { - add(createResourceAudit); - add(checkInResourceAudit); - add(checkOutResourceAudit); - } - }; - Either<List<ResourceAdminEvent>, ActionStatus> result = Either.left(list); - Mockito.when(auditingDao.getByServiceInstanceId(Mockito.anyString())).thenReturn(result); - - List<ResourceAdminEvent> listPrev = new ArrayList<>(); - Either<List<ResourceAdminEvent>, ActionStatus> resultPrev = Either.left(listPrev); - Mockito.when(auditingDao.getAuditByServiceIdAndPrevVersion(Mockito.anyString(), Mockito.anyString())).thenReturn(resultPrev); - - List<ResourceAdminEvent> listCurr = new ArrayList<ResourceAdminEvent>() { - { - add(checkOutResourceAudit); - } - }; - Either<List<ResourceAdminEvent>, ActionStatus> resultCurr = Either.left(listCurr); - Mockito.when(auditingDao.getAuditByServiceIdAndCurrVersion(Mockito.anyString(), Mockito.anyString())).thenReturn(resultCurr); - - Either<List<ResourceAdminEvent>, ActionStatus> archiveAuditList = Either.left(Arrays.asList(auditArchive1, auditArchive2)); - when(auditingDao.getArchiveAuditByServiceInstanceId(anyString())).thenReturn(archiveAuditList); - - Either<List<ResourceAdminEvent>, ActionStatus> restoreAuditList = Either.left(Arrays.asList(auditRestore)); - when(auditingDao.getRestoreAuditByServiceInstanceId(anyString())).thenReturn(restoreAuditList); - - } - - private void setupBeforeDeploy(String notifyAction, String requestAction, String did) { - - DistributionNotificationEvent notifyEvent = new DistributionNotificationEvent(); - notifyEvent.setAction(notifyAction); - notifyEvent.setDid(did); - notifyEvent.setStatus("200"); - - ResourceAdminEvent requestEvent = new ResourceAdminEvent(); - requestEvent.setAction(requestAction); - requestEvent.setDid(did); - requestEvent.setStatus("200"); - - List<DistributionNotificationEvent> notifyResults = Collections.singletonList(notifyEvent); - Either<List<DistributionNotificationEvent>, ActionStatus> eitherNotify = Either.left(notifyResults); - - Mockito.when(auditingDao.getDistributionNotify(Mockito.anyString(), Mockito.eq(notifyAction))).thenReturn(eitherNotify); - - List<ResourceAdminEvent> requestResults = Collections.singletonList(requestEvent); - Either<List<ResourceAdminEvent>, ActionStatus> eitherRequest = Either.left(requestResults); - Mockito.when(auditingDao.getDistributionRequest(Mockito.anyString(), Mockito.eq(requestAction))).thenReturn(eitherRequest); - - Either<Component, StorageOperationStatus> eitherService = Either.left(createServiceObject(true)); - Mockito.when(toscaOperationFacade.getToscaElement(Mockito.anyString())).thenReturn(eitherService); - - Either<List<DistributionDeployEvent>, ActionStatus> emptyEventList = Either.left(Collections.emptyList()); - Mockito.when(auditingDao.getDistributionDeployByStatus(Mockito.anyString(), Mockito.eq("DResult"), Mockito.anyString())).thenReturn(emptyEventList); - } @SuppressWarnings({ "unchecked", "rawtypes" }) @Test @@ -886,7 +654,7 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { return service; } - private Service createNewService() { + protected Service createNewService() { return (Service)createNewComponent(); } @@ -919,6 +687,42 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { } @Test + public void testUpdateMetadataToEmptyProjectCode() { + Service currentService = createServiceObject(true); + Service newService = createServiceObject(false); + currentService.setProjectCode("12345"); + newService.setProjectCode(""); + Either<Service, ResponseFormat> resultOfUpdate = bl.validateAndUpdateServiceMetadata(user, currentService, newService); + assertThat(resultOfUpdate.isLeft()).isTrue(); + Service updatedService = resultOfUpdate.left().value(); + assertThat(updatedService.getProjectCode()).isEmpty(); + } + + @Test + public void testUpdateMetadataFromEmptyProjectCode() { + Service currentService = createServiceObject(true); + Service newService = createServiceObject(false); + currentService.setProjectCode(""); + newService.setProjectCode("12345"); + Either<Service, ResponseFormat> resultOfUpdate = bl.validateAndUpdateServiceMetadata(user, currentService, newService); + assertThat(resultOfUpdate.isLeft()).isTrue(); + Service updatedService = resultOfUpdate.left().value(); + assertThat(updatedService.getProjectCode()).isEqualTo("12345"); + } + + @Test + public void testUpdateMetadataProjectCode() { + Service currentService = createServiceObject(true); + Service newService = createServiceObject(false); + currentService.setProjectCode("33333"); + newService.setProjectCode("12345"); + Either<Service, ResponseFormat> resultOfUpdate = bl.validateAndUpdateServiceMetadata(user, currentService, newService); + assertThat(resultOfUpdate.isLeft()).isTrue(); + Service updatedService = resultOfUpdate.left().value(); + assertThat(updatedService.getProjectCode()).isEqualTo("12345"); + } + + @Test public void testUpdateMetadataServiceType() { Service currentService = createServiceObject(true); Service newService = createServiceObject(false); @@ -939,33 +743,76 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { assertThat(resultOfUpdate.isRight()).isTrue(); } - private Resource setupGenericServiceMock(){ - Resource genericService = new Resource(); - genericService.setVersion("1.0"); - genericService.setToscaResourceName(GENERIC_SERVICE_NAME); - return genericService; + @Test + public void testCreateDefaultMetadataServiceFunction() { + Service currentService = createServiceObject(true); + assertThat(currentService.getServiceFunction()).isEqualTo(""); + } + + @Test + public void testCreateCustomMetadataServiceFunction() { + String customServiceFunctionName = "customName"; + Service currentService = createServiceObject(true); + currentService.setServiceFunction(customServiceFunctionName); + assertThat(currentService.getServiceFunction()).isEqualTo(customServiceFunctionName); + } + + @Test + public void testUpdateMetadataServiceFunction() { + Service currentService = createServiceObject(true); + Service newService = createServiceObject(false); + currentService.setServiceFunction("alice"); + //valid English word + newService.setServiceFunction("bob"); + Either<Service, ResponseFormat> resultOfUpdate = bl.validateAndUpdateServiceMetadata(user, currentService, newService); + assertThat(resultOfUpdate.isLeft()).isTrue(); + Service updatedService = resultOfUpdate.left().value(); + assertThat(updatedService.getServiceFunction()).isEqualToIgnoringCase("bob"); + //empty string is valid + newService.setServiceFunction(""); + resultOfUpdate = bl.validateAndUpdateServiceMetadata(user, currentService, newService); + assertThat(resultOfUpdate.isLeft()).isTrue(); + //null is valid and assigner to "" + newService.setServiceFunction(null); + resultOfUpdate = bl.validateAndUpdateServiceMetadata(user, currentService, newService); + assertThat(resultOfUpdate.isLeft()).isTrue(); + assertThat(updatedService.getServiceFunction()).isEqualTo(""); } + + @Test - public void testValidateServiceNameDoesExistTest() { - when(toscaOperationFacade.validateComponentNameUniqueness(ALREADY_EXIST, null, ComponentTypeEnum.SERVICE)) - .thenReturn(Either.left(true)); - Either<Map<String, Boolean>, ResponseFormat> actionResponse = - bl.validateServiceNameExists(ALREADY_EXIST, user.getUserId()); - Assert.assertTrue(actionResponse.isLeft()); - Map<String,Boolean> result = actionResponse.left().value(); - Assert.assertEquals(true, result.get(ServiceBusinessLogic.IS_VALID)); + public void testServiceFunctionExceedLength() { + String serviceName = "Service"; + String serviceFunction = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; + Service serviceFunctionExceedLength = createServiceObject(false); + serviceFunctionExceedLength.setName(serviceName); + serviceFunctionExceedLength.setServiceFunction(serviceFunction); + List<String> tgs = new ArrayList<>(); + tgs.add(serviceName); + serviceFunctionExceedLength.setTags(tgs); + try { + serviceFunctionValidator.validateAndCorrectField(user, serviceFunctionExceedLength, AuditingActionEnum.CREATE_SERVICE); + } catch (ComponentException exp) { + assertResponse(exp.getResponseFormat(), ActionStatus.PROPERTY_EXCEEDS_LIMIT, SERVICE_FUNCTION); + } } @Test - public void testValidateServiceNameDoesNotExist() { - when(toscaOperationFacade.validateComponentNameUniqueness(DOES_NOT_EXIST, null, ComponentTypeEnum.SERVICE)) - .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND)); - Either<Map<String, Boolean>, ResponseFormat> actionResponse = - bl.validateServiceNameExists(DOES_NOT_EXIST, user.getUserId()); - Assert.assertTrue(actionResponse.isRight()); - ResponseFormat responseFormat = actionResponse.right().value(); - Assert.assertEquals(HttpStatus.NOT_FOUND.value(), responseFormat.getStatus().intValue()); + public void testServiceFunctionInvalidCharacter(){ + String serviceName = "Service"; + String serviceFunction = "a?"; + Service serviceFunctionExceedLength = createServiceObject(false); + serviceFunctionExceedLength.setName(serviceName); + serviceFunctionExceedLength.setServiceFunction(serviceFunction); + List<String> tgs = new ArrayList<>(); + tgs.add(serviceName); + serviceFunctionExceedLength.setTags(tgs); + try { + serviceFunctionValidator.validateAndCorrectField(user, serviceFunctionExceedLength, AuditingActionEnum.CREATE_SERVICE); + } catch (ComponentException exp) { + assertResponse(exp.getResponseFormat(), ActionStatus.INVALID_PROPERY, SERVICE_FUNCTION); + } } @Test @@ -981,14 +828,14 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { @Test public void testAddPropertyServiceConsumptionParentServiceIsEmpty() { - Either<Component, StorageOperationStatus> eitherService = Either.left(createServiceObject(true)); + Either<Component, StorageOperationStatus> eitherService = Either.left(createNewComponent()); Mockito.when(toscaOperationFacade.getToscaElement(Mockito.anyString())).thenReturn(eitherService); Either<Operation, ResponseFormat> operationEither = bl.addPropertyServiceConsumption("1", "2", "3", user.getUserId(), new ServiceConsumptionData()); Assert.assertTrue(operationEither.isRight()); - Assert.assertEquals(HttpStatus.INTERNAL_SERVER_ERROR.value(), operationEither.right().value().getStatus().intValue()); + Assert.assertEquals(HttpStatus.NOT_FOUND.value(), operationEither.right().value().getStatus().intValue()); } @Test @@ -1003,7 +850,7 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { bl.addPropertyServiceConsumption("1", weirdUniqueServiceInstanceId, "3", user.getUserId(), new ServiceConsumptionData()); Assert.assertTrue(operationEither.isRight()); - Assert.assertEquals(HttpStatus.INTERNAL_SERVER_ERROR.value(), operationEither.right().value().getStatus().intValue()); + Assert.assertEquals(HttpStatus.NOT_FOUND.value(), operationEither.right().value().getStatus().intValue()); } @Test @@ -1017,7 +864,7 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { bl.addPropertyServiceConsumption("1", aService.getUniqueId(), "3", user.getUserId(), new ServiceConsumptionData()); Assert.assertTrue(operationEither.isRight()); - Assert.assertEquals(HttpStatus.INTERNAL_SERVER_ERROR.value(), operationEither.right().value().getStatus().intValue()); + Assert.assertEquals(HttpStatus.NOT_FOUND.value(), operationEither.right().value().getStatus().intValue()); } @Test @@ -1038,7 +885,7 @@ public class ServiceBusinessLogicTest extends ComponentBusinessLogicMock { bl.addPropertyServiceConsumption("1", aService.getUniqueId(), "3", user.getUserId(), new ServiceConsumptionData()); Assert.assertTrue(operationEither.isRight()); - Assert.assertEquals(HttpStatus.INTERNAL_SERVER_ERROR.value(), operationEither.right().value().getStatus().intValue()); + Assert.assertEquals(HttpStatus.NOT_FOUND.value(), operationEither.right().value().getStatus().intValue()); } @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ServiceBussinessLogicBaseTestSetup.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ServiceBussinessLogicBaseTestSetup.java new file mode 100644 index 0000000000..c93a362096 --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ServiceBussinessLogicBaseTestSetup.java @@ -0,0 +1,455 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * 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.openecomp.sdc.be.components.impl; + +import fj.data.Either; +import org.junit.Before; +import org.mockito.Mockito; +import org.openecomp.sdc.ElementOperationMock; +import org.openecomp.sdc.be.auditing.impl.AuditingManager; +import org.openecomp.sdc.be.components.distribution.engine.DistributionEngine; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; +import org.openecomp.sdc.be.components.impl.generic.GenericTypeBusinessLogic; +import org.openecomp.sdc.be.components.path.ForwardingPathValidator; +import org.openecomp.sdc.be.components.validation.NodeFilterValidator; +import org.openecomp.sdc.be.components.validation.ServiceDistributionValidation; +import org.openecomp.sdc.be.components.validation.UserValidations; +import org.openecomp.sdc.be.components.validation.component.ComponentContactIdValidator; +import org.openecomp.sdc.be.components.validation.component.ComponentDescriptionValidator; +import org.openecomp.sdc.be.components.validation.component.ComponentFieldValidator; +import org.openecomp.sdc.be.components.validation.component.ComponentIconValidator; +import org.openecomp.sdc.be.components.validation.component.ComponentNameValidator; +import org.openecomp.sdc.be.components.validation.component.ComponentProjectCodeValidator; +import org.openecomp.sdc.be.components.validation.component.ComponentTagsValidator; +import org.openecomp.sdc.be.components.validation.component.ComponentValidator; +import org.openecomp.sdc.be.components.validation.service.ServiceCategoryValidator; +import org.openecomp.sdc.be.components.validation.service.ServiceEnvironmentContextValidator; +import org.openecomp.sdc.be.components.validation.service.ServiceFieldValidator; +import org.openecomp.sdc.be.components.validation.service.ServiceFunctionValidator; +import org.openecomp.sdc.be.components.validation.service.ServiceInstantiationTypeValidator; +import org.openecomp.sdc.be.components.validation.service.ServiceNamingPolicyValidator; +import org.openecomp.sdc.be.components.validation.service.ServiceRoleValidator; +import org.openecomp.sdc.be.components.validation.service.ServiceTypeValidator; +import org.openecomp.sdc.be.components.validation.service.ServiceValidator; +import org.openecomp.sdc.be.config.ConfigurationManager; +import org.openecomp.sdc.be.dao.api.ActionStatus; +import org.openecomp.sdc.be.dao.cassandra.AuditCassandraDao; +import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; +import org.openecomp.sdc.be.datamodel.utils.UiComponentDataConverter; +import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; +import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields; +import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; +import org.openecomp.sdc.be.facade.operations.CatalogOperation; +import org.openecomp.sdc.be.impl.ComponentsUtils; +import org.openecomp.sdc.be.impl.WebAppContextWrapper; +import org.openecomp.sdc.be.model.ArtifactDefinition; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.Service; +import org.openecomp.sdc.be.model.User; +import org.openecomp.sdc.be.model.category.CategoryDefinition; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.NodeFilterOperation; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; +import org.openecomp.sdc.be.model.operations.api.IElementOperation; +import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; +import org.openecomp.sdc.be.model.operations.impl.GraphLockOperation; +import org.openecomp.sdc.be.resources.data.auditing.DistributionDeployEvent; +import org.openecomp.sdc.be.resources.data.auditing.DistributionNotificationEvent; +import org.openecomp.sdc.be.resources.data.auditing.ResourceAdminEvent; +import org.openecomp.sdc.be.user.Role; +import org.openecomp.sdc.be.user.UserBusinessLogic; +import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum; +import org.openecomp.sdc.common.api.ConfigurationSource; +import org.openecomp.sdc.common.api.Constants; +import org.openecomp.sdc.common.impl.ExternalConfiguration; +import org.openecomp.sdc.common.impl.FSConfigurationSource; +import org.openecomp.sdc.exception.ResponseFormat; +import org.springframework.web.context.WebApplicationContext; + +import javax.servlet.ServletContext; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import static org.junit.Assert.assertEquals; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.when; + +public class ServiceBussinessLogicBaseTestSetup extends BaseBusinessLogicMock{ + ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be"); + ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); + + protected ServiceBusinessLogic bl; + protected static final String SERVICE_CATEGORY = "Mobility"; + protected static final String INSTANTIATION_TYPE = "A-la-carte"; + protected final ServletContext servletContext = Mockito.mock(ServletContext.class); + protected UserBusinessLogic mockUserAdmin = Mockito.mock(UserBusinessLogic.class); + protected WebAppContextWrapper webAppContextWrapper = Mockito.mock(WebAppContextWrapper.class); + protected WebApplicationContext webAppContext = Mockito.mock(WebApplicationContext.class); + protected ResponseFormatManager responseManager = null; + protected ComponentsUtils componentsUtils = new ComponentsUtils(Mockito.mock(AuditingManager.class)); + protected AuditCassandraDao auditingDao = Mockito.mock(AuditCassandraDao.class); + protected ArtifactsBusinessLogic artifactBl = Mockito.mock(ArtifactsBusinessLogic.class); + protected GraphLockOperation graphLockOperation = Mockito.mock(GraphLockOperation.class); + protected JanusGraphDao mockJanusGraphDao = Mockito.mock(JanusGraphDao.class); + protected ToscaOperationFacade toscaOperationFacade = Mockito.mock(ToscaOperationFacade.class); + protected GenericTypeBusinessLogic genericTypeBusinessLogic = Mockito.mock(GenericTypeBusinessLogic.class); + protected UserValidations userValidations = Mockito.mock(UserValidations.class); + protected ResourceAdminEvent auditArchive1 = Mockito.mock(ResourceAdminEvent.class); + protected CatalogOperation catalogOperation = Mockito.mock(CatalogOperation.class); + protected ResourceAdminEvent auditArchive2 = Mockito.mock(ResourceAdminEvent.class); + protected ResourceAdminEvent auditRestore = Mockito.mock(ResourceAdminEvent.class); + IElementOperation mockElementDao = new ElementOperationMock(); + DistributionEngine distributionEngine = Mockito.mock(DistributionEngine.class); + ServiceDistributionValidation serviceDistributionValidation = Mockito.mock(ServiceDistributionValidation.class); + ComponentInstanceBusinessLogic componentInstanceBusinessLogic = Mockito.mock(ComponentInstanceBusinessLogic.class); + ForwardingPathValidator forwardingPathValidator = Mockito.mock(ForwardingPathValidator.class); + UiComponentDataConverter uiComponentDataConverter = Mockito.mock(UiComponentDataConverter.class); + protected final NodeFilterOperation serviceFilterOperation = Mockito.mock(NodeFilterOperation.class); + protected final NodeFilterValidator serviceFilterValidator = Mockito.mock(NodeFilterValidator.class); + protected ServiceTypeValidator serviceTypeValidator = new ServiceTypeValidator(componentsUtils); + protected ServiceCategoryValidator serviceCategoryValidator = new ServiceCategoryValidator(componentsUtils, mockElementDao); + protected ServiceRoleValidator serviceRoleValidator = new ServiceRoleValidator(componentsUtils); + protected ServiceFunctionValidator serviceFunctionValidator = new ServiceFunctionValidator(componentsUtils); + protected ServiceInstantiationTypeValidator serviceInstantiationTypeValidator = new ServiceInstantiationTypeValidator(componentsUtils); + protected ComponentDescriptionValidator componentDescriptionValidator = new ComponentDescriptionValidator(componentsUtils); + protected ComponentProjectCodeValidator componentProjectCodeValidator = new ComponentProjectCodeValidator(componentsUtils); + protected ComponentIconValidator componentIconValidator = new ComponentIconValidator(componentsUtils); + protected ComponentContactIdValidator componentContactIdValidator = new ComponentContactIdValidator(componentsUtils); + protected ComponentTagsValidator componentTagsValidator = new ComponentTagsValidator(componentsUtils); + protected ComponentNameValidator componentNameValidator = new ComponentNameValidator(componentsUtils, toscaOperationFacade); + protected final ComponentValidator componentValidator = Mockito.mock(ComponentValidator.class); + protected ServiceValidator serviceValidator = createServiceValidator(); + + + + + protected User user = null; + protected Resource genericService = null; + + protected static final String CERTIFIED_VERSION = "1.0"; + protected static final String UNCERTIFIED_VERSION = "0.2"; + protected static final String COMPONNET_ID = "myUniqueId"; + protected static final String GENERIC_SERVICE_NAME = "org.openecomp.resource.abstract.nodes.service"; + + protected static final String SERVICE_ROLE = JsonPresentationFields.SERVICE_ROLE.getPresentation(); + protected static final String SERVICE_TYPE = JsonPresentationFields.SERVICE_TYPE.getPresentation(); + protected static final String SERVICE_FUNCTION = JsonPresentationFields.SERVICE_FUNCTION.getPresentation(); + + public ServiceBussinessLogicBaseTestSetup() { + + } + + protected ServiceValidator createServiceValidator() { + List<ComponentFieldValidator> componentFieldValidators = Arrays.asList(componentContactIdValidator, + componentDescriptionValidator, + componentIconValidator, componentNameValidator, + new ComponentProjectCodeValidator(componentsUtils), + componentTagsValidator); + + List<ServiceFieldValidator> serviceFieldValidators = Arrays.asList(serviceCategoryValidator, new ServiceEnvironmentContextValidator(), + serviceInstantiationTypeValidator, new ServiceNamingPolicyValidator(componentsUtils), + serviceRoleValidator, serviceTypeValidator); + return new ServiceValidator(componentsUtils, componentFieldValidators, serviceFieldValidators); + } + + + + @Before + public void setup() { + + // Elements + IElementOperation mockElementDao = new ElementOperationMock(); + + // User data and management + user = new User(); + user.setUserId("jh0003"); + user.setFirstName("Jimmi"); + user.setLastName("Hendrix"); + user.setRole(Role.ADMIN.name()); + + when(mockUserAdmin.getUser("jh0003", false)).thenReturn(user); + when(userValidations.validateUserExists(eq("jh0003"))).thenReturn(user); + when(userValidations.validateUserNotEmpty(eq(user), anyString())).thenReturn(user); +// when(userValidations.validateUserRole(user)) + // Servlet Context attributes + when(servletContext.getAttribute(Constants.CONFIGURATION_MANAGER_ATTR)).thenReturn(configurationManager); +// when(servletContext.getAttribute(Constants.SERVICE_OPERATION_MANAGER)).thenReturn(new ServiceOperation()); + when(servletContext.getAttribute(Constants.WEB_APPLICATION_CONTEXT_WRAPPER_ATTR)).thenReturn(webAppContextWrapper); + when(webAppContextWrapper.getWebAppContext(servletContext)).thenReturn(webAppContext); + when(webAppContext.getBean(IElementOperation.class)).thenReturn(mockElementDao); + when(graphLockOperation.lockComponent(Mockito.anyString(), Mockito.eq(NodeTypeEnum.Service))).thenReturn(StorageOperationStatus.OK); + when(graphLockOperation.lockComponentByName(Mockito.anyString(), Mockito.eq(NodeTypeEnum.Service))).thenReturn(StorageOperationStatus.OK); + when(catalogOperation.updateCatalog(Mockito.any(), Mockito.any())).thenReturn(ActionStatus.OK); + // artifact bussinesslogic + ArtifactDefinition artifactDef = new ArtifactDefinition(); + when(artifactBl.createArtifactPlaceHolderInfo(Mockito.any(), Mockito.anyString(), Mockito.anyMap(), Mockito.any(User.class), Mockito.any(ArtifactGroupTypeEnum.class))).thenReturn(artifactDef); + + // createService + Service serviceResponse = createServiceObject(true); + Either<Component, StorageOperationStatus> eitherCreate = Either.left(serviceResponse); + when(toscaOperationFacade.createToscaComponent(Mockito.any(Component.class))).thenReturn(eitherCreate); + Either<Boolean, StorageOperationStatus> eitherCount = Either.left(false); + when(toscaOperationFacade.validateComponentNameExists("Service", null, ComponentTypeEnum.SERVICE)).thenReturn(eitherCount); + Either<Boolean, StorageOperationStatus> eitherCountExist = Either.left(true); + when(toscaOperationFacade.validateComponentNameExists("alreadyExist", null, ComponentTypeEnum.SERVICE)).thenReturn(eitherCountExist); + when(userValidations.validateUserExists(user)).thenReturn(user); + + genericService = setupGenericServiceMock(); + Either<Resource, StorageOperationStatus> findLatestGeneric = Either.left(genericService); + when(toscaOperationFacade.getLatestCertifiedNodeTypeByToscaResourceName(GENERIC_SERVICE_NAME)).thenReturn(findLatestGeneric); + + + bl = new ServiceBusinessLogic(elementDao, groupOperation, groupInstanceOperation, + groupTypeOperation, groupBusinessLogic, interfaceOperation, interfaceLifecycleTypeOperation, + artifactBl, distributionEngine, componentInstanceBusinessLogic, + serviceDistributionValidation, forwardingPathValidator, uiComponentDataConverter, + serviceFilterOperation, serviceFilterValidator, artifactToscaOperation, componentContactIdValidator, + componentNameValidator, componentTagsValidator, componentValidator, + componentIconValidator, componentProjectCodeValidator, componentDescriptionValidator); + bl.setComponentContactIdValidator(componentContactIdValidator); + bl.setComponentIconValidator(componentIconValidator); + bl.setComponentTagsValidator(componentTagsValidator); + bl.setComponentNameValidator(componentNameValidator); + bl.setComponentDescriptionValidator(componentDescriptionValidator); + bl.setComponentProjectCodeValidator(componentProjectCodeValidator); + bl.setServiceCategoryValidator(serviceCategoryValidator); + bl.setServiceTypeValidator(serviceTypeValidator); + bl.setServiceFunctionValidator(serviceFunctionValidator); + bl.setElementDao(mockElementDao); + bl.setUserAdmin(mockUserAdmin); + bl.setArtifactBl(artifactBl); + bl.setServiceValidator(createServiceValidator()); + bl.setGraphLockOperation(graphLockOperation); + bl.setJanusGraphDao(mockJanusGraphDao); + bl.setToscaOperationFacade(toscaOperationFacade); + bl.setGenericTypeBusinessLogic(genericTypeBusinessLogic); + bl.setComponentsUtils(componentsUtils); + bl.setCassandraAuditingDao(auditingDao); + bl.setUserValidations(userValidations); + bl.setCatalogOperations(catalogOperation); + + mockAuditingDaoLogic(); + + responseManager = ResponseFormatManager.getInstance(); + + + } + + protected Resource setupGenericServiceMock(){ + Resource genericService = new Resource(); + genericService.setVersion("1.0"); + genericService.setToscaResourceName(GENERIC_SERVICE_NAME); + return genericService; + } + + protected Service createServiceObject(boolean afterCreate) { + Service service = new Service(); + service.setUniqueId("sid"); + service.setName("Service"); + CategoryDefinition category = new CategoryDefinition(); + category.setName(SERVICE_CATEGORY); + category.setIcons(Collections.singletonList("defaulticon")); + List<CategoryDefinition> categories = new ArrayList<>(); + categories.add(category); + service.setCategories(categories); + service.setInstantiationType(INSTANTIATION_TYPE); + + service.setDescription("description"); + List<String> tgs = new ArrayList<>(); + tgs.add(service.getName()); + service.setTags(tgs); + // service.setVendorName("Motorola"); + // service.setVendorRelease("1.0.0"); + service.setIcon("defaulticon"); + // service.setState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); + service.setContactId("aa1234"); + service.setProjectCode("12345"); + service.setEcompGeneratedNaming(true); + + if (afterCreate) { + service.setVersion("0.1"); + service.setUniqueId(service.getName() + ":" + service.getVersion()); + service.setCreatorUserId(user.getUserId()); + service.setCreatorFullName(user.getFirstName() + " " + user.getLastName()); + } + return service; + } + + private void mockAuditingDaoLogic() { + final ResourceAdminEvent createResourceAudit = new ResourceAdminEvent(); + createResourceAudit.setModifier("Carlos Santana(cs0008)"); + createResourceAudit.setCurrState("NOT_CERTIFIED_CHECKOUT"); + createResourceAudit.setCurrVersion("0.1"); + createResourceAudit.setServiceInstanceId("82eddd99-0bd9-4742-ab0a-1bdb5e262a05"); + createResourceAudit.setRequestId("3e65cea1-7403-4bc7-b461-e2544d83799f"); + createResourceAudit.setDesc("OK"); + createResourceAudit.setResourceType("Resource"); + createResourceAudit.setStatus("201"); + createResourceAudit.setPrevVersion(""); + createResourceAudit.setAction("Create"); + // fields.put("TIMESTAMP", "2015-11-22 09:19:12.977"); + createResourceAudit.setPrevState(""); + createResourceAudit.setResourceName("MyTestResource"); + // createResourceAudit.setFields(fields); + + final ResourceAdminEvent checkInResourceAudit = new ResourceAdminEvent(); + checkInResourceAudit.setModifier("Carlos Santana(cs0008)"); + checkInResourceAudit.setCurrState("NOT_CERTIFIED_CHECKIN"); + checkInResourceAudit.setCurrVersion("0.1"); + checkInResourceAudit.setServiceInstanceId("82eddd99-0bd9-4742-ab0a-1bdb5e262a05"); + checkInResourceAudit.setRequestId("ffacbf5d-eeb1-43c6-a310-37fe7e1cc091"); + checkInResourceAudit.setDesc("OK"); + checkInResourceAudit.setComment("Stam"); + checkInResourceAudit.setResourceType("Resource"); + checkInResourceAudit.setStatus("200"); + checkInResourceAudit.setPrevVersion("0.1"); + checkInResourceAudit.setAction("Checkin"); + // fields.put("TIMESTAMP", "2015-11-22 09:25:03.797"); + checkInResourceAudit.setPrevState("NOT_CERTIFIED_CHECKOUT"); + checkInResourceAudit.setResourceName("MyTestResource"); + + final ResourceAdminEvent checkOutResourceAudit = new ResourceAdminEvent(); + checkOutResourceAudit.setModifier("Carlos Santana(cs0008)"); + checkOutResourceAudit.setCurrState("NOT_CERTIFIED_CHECKOUT"); + checkOutResourceAudit.setCurrVersion("0.2"); + checkOutResourceAudit.setServiceInstanceId("82eddd99-0bd9-4742-ab0a-1bdb5e262a05"); + checkOutResourceAudit.setRequestId("7add5078-4c16-4d74-9691-cc150e3c96b8"); + checkOutResourceAudit.setDesc("OK"); + checkOutResourceAudit.setComment(""); + checkOutResourceAudit.setResourceType("Resource"); + checkOutResourceAudit.setStatus("200"); + checkOutResourceAudit.setPrevVersion("0.1"); + checkOutResourceAudit.setAction("Checkout"); + // fields.put("TIMESTAMP", "2015-11-22 09:39:41.024"); + checkOutResourceAudit.setPrevState("NOT_CERTIFIED_CHECKIN"); + checkOutResourceAudit.setResourceName("MyTestResource"); + // checkOutResourceAudit.setFields(fields); + + // Mockito.doAnswer(new Answer<Either<List<ESTimeBasedEvent>, + // ActionStatus> >() { + // public Either<List<ESTimeBasedEvent>, ActionStatus> + // answer(InvocationOnMock invocation) { + // final Either<List<ESTimeBasedEvent>, ActionStatus> either; + // final List<ESTimeBasedEvent> list; + // Object[] args = invocation.getArguments(); + // Map<AuditingFieldsKey, Object> filterMap = + // (Map<AuditingFieldsKey, Object>) args[0]; + // if( filterMap.equals(FILTER_MAP_CERTIFIED_VERSION) ){ + // list = new + // ArrayList<ESTimeBasedEvent>(){{add(createResourceAudit);add(checkInResourceAudit);add(checkOutResourceAudit);}}; + // either = Either.left(list); + // + // } + // else if( filterMap.equals(FILTER_MAP_UNCERTIFIED_VERSION_PREV) ){ + // list = new ArrayList<ESTimeBasedEvent>(); + // either = Either.left(list); + // } + // else if( filterMap.equals(FILTER_MAP_UNCERTIFIED_VERSION_CURR) ){ + // list = new + // ArrayList<ESTimeBasedEvent>(){{/*add(createResourceAudit);add(checkInResourceAudit);*/add(checkOutResourceAudit);}}; + // either = Either.left(list); + // } + // else{ + // either = null; + // } + // return either; + // } + // }).when(auditingDao).getFilteredResourceAdminAuditingEvents(Mockito.anyMap()); + // + // + List<ResourceAdminEvent> list = new ArrayList<ResourceAdminEvent>() { + { + add(createResourceAudit); + add(checkInResourceAudit); + add(checkOutResourceAudit); + } + }; + Either<List<ResourceAdminEvent>, ActionStatus> result = Either.left(list); + Mockito.when(auditingDao.getByServiceInstanceId(Mockito.anyString())).thenReturn(result); + + List<ResourceAdminEvent> listPrev = new ArrayList<>(); + Either<List<ResourceAdminEvent>, ActionStatus> resultPrev = Either.left(listPrev); + Mockito.when(auditingDao.getAuditByServiceIdAndPrevVersion(Mockito.anyString(), Mockito.anyString())).thenReturn(resultPrev); + + List<ResourceAdminEvent> listCurr = new ArrayList<ResourceAdminEvent>() { + { + add(checkOutResourceAudit); + } + }; + Either<List<ResourceAdminEvent>, ActionStatus> resultCurr = Either.left(listCurr); + Mockito.when(auditingDao.getAuditByServiceIdAndCurrVersion(Mockito.anyString(), Mockito.anyString())).thenReturn(resultCurr); + + Either<List<ResourceAdminEvent>, ActionStatus> archiveAuditList = Either.left(Arrays.asList(auditArchive1, auditArchive2)); + when(auditingDao.getArchiveAuditByServiceInstanceId(anyString())).thenReturn(archiveAuditList); + + Either<List<ResourceAdminEvent>, ActionStatus> restoreAuditList = Either.left(Collections.singletonList(auditRestore)); + when(auditingDao.getRestoreAuditByServiceInstanceId(anyString())).thenReturn(restoreAuditList); + + } + + protected void setupBeforeDeploy(String notifyAction, String requestAction, String did) { + + DistributionNotificationEvent notifyEvent = new DistributionNotificationEvent(); + notifyEvent.setAction(notifyAction); + notifyEvent.setDid(did); + notifyEvent.setStatus("200"); + + ResourceAdminEvent requestEvent = new ResourceAdminEvent(); + requestEvent.setAction(requestAction); + requestEvent.setDid(did); + requestEvent.setStatus("200"); + + List<DistributionNotificationEvent> notifyResults = Collections.singletonList(notifyEvent); + Either<List<DistributionNotificationEvent>, ActionStatus> eitherNotify = Either.left(notifyResults); + + Mockito.when(auditingDao.getDistributionNotify(Mockito.anyString(), Mockito.eq(notifyAction))).thenReturn(eitherNotify); + + List<ResourceAdminEvent> requestResults = Collections.singletonList(requestEvent); + Either<List<ResourceAdminEvent>, ActionStatus> eitherRequest = Either.left(requestResults); + Mockito.when(auditingDao.getDistributionRequest(Mockito.anyString(), Mockito.eq(requestAction))).thenReturn(eitherRequest); + + Either<Component, StorageOperationStatus> eitherService = Either.left(createServiceObject(true)); + Mockito.when(toscaOperationFacade.getToscaElement(Mockito.anyString())).thenReturn(eitherService); + + Either<List<DistributionDeployEvent>, ActionStatus> emptyEventList = Either.left(Collections.emptyList()); + Mockito.when(auditingDao.getDistributionDeployByStatus(Mockito.anyString(), Mockito.eq("DResult"), Mockito.anyString())).thenReturn(emptyEventList); + } + + private void assertResponse(Either<Service, ResponseFormat> createResponse, ActionStatus expectedStatus, String... variables) { + assertResponse(createResponse.right().value(), expectedStatus, variables); + } + + protected void assertComponentException(ComponentException e, ActionStatus expectedStatus, String... variables) { + ResponseFormat actualResponse = e.getResponseFormat() != null ? + e.getResponseFormat() : componentsUtils.getResponseFormat(e.getActionStatus(), e.getParams()); + assertResponse(actualResponse, expectedStatus, variables); + } + + protected void assertResponse(ResponseFormat actualResponse, ActionStatus expectedStatus, String... variables) { + ResponseFormat expectedResponse = responseManager.getResponseFormat(expectedStatus, variables); + assertEquals(expectedResponse.getStatus(), actualResponse.getStatus()); + assertEquals("assert error description", expectedResponse.getFormattedMessage(), actualResponse.getFormattedMessage()); + } + +} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ServiceValidationsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ServiceValidationsTest.java new file mode 100644 index 0000000000..2a33329fe4 --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ServiceValidationsTest.java @@ -0,0 +1,209 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * 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.openecomp.sdc.be.components.impl; + +import fj.data.Either; +import org.junit.Test; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; +import org.openecomp.sdc.be.dao.api.ActionStatus; +import org.openecomp.sdc.be.model.Service; +import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; +import org.openecomp.sdc.exception.ResponseFormat; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.fail; + +public class ServiceValidationsTest extends ServiceBussinessLogicBaseTestSetup { + + @Test + public void testInvalidEnvironmentContext() { + Service newService = createServiceObject(false); + newService.setEnvironmentContext("not valid"); + try { + bl.createService(newService, user); + } catch (ComponentException exp) { + assertComponentException(exp, ActionStatus.INVALID_ENVIRONMENT_CONTEXT, "not valid"); + return; + } + fail(); + } + + @Test + public void testValidEnvironmentContext() { + Service newService = createServiceObject(false); + newService.setEnvironmentContext("Critical_Revenue-Bearing"); + Either<Service, ResponseFormat> service = bl.validateServiceBeforeCreate(newService, user, AuditingActionEnum.CREATE_RESOURCE); + assertThat(service.left().value().getEnvironmentContext()).isEqualTo("Critical_Revenue-Bearing"); + } + + @Test + public void testCreateServiceWithNoEnvironmentContext() { + Service newService = createServiceObject(false); + Either<Service, ResponseFormat> service = bl.validateServiceBeforeCreate(newService, user, AuditingActionEnum.CREATE_RESOURCE); + assertThat(service.left().value().getEnvironmentContext()).isEqualTo("General_Revenue-Bearing"); + } + + @Test + public void testInvalidInstantiationType() { + Service newService = createServiceObject(false); + newService.setInstantiationType("not valid"); + try { + bl.createService(newService, user); + } catch (ComponentException exp) { + assertComponentException(exp, ActionStatus.INVALID_INSTANTIATION_TYPE, "not valid"); + return; + } + fail(); + } + + @Test + public void testEmptyInstantiationType() { + Service newService = createServiceObject(false); + newService.setInstantiationType(null); + Either<Service, ResponseFormat> service = bl.validateServiceBeforeCreate(newService, user, AuditingActionEnum.CREATE_RESOURCE); + assertThat(service.left().value().getInstantiationType()).isEqualTo("A-la-carte"); + } + + @Test + public void testValidInstantiationType() { + Service newService = createServiceObject(false); + newService.setInstantiationType("Macro"); + Either<Service, ResponseFormat> service = bl.validateServiceBeforeCreate(newService, user, AuditingActionEnum.CREATE_RESOURCE); + assertThat(service.left().value().getInstantiationType()).isEqualTo("Macro"); + } + + @Test + public void testInvalidServiceRole() { + Service newService = createServiceObject(false); + newService.setServiceRole("gsg*"); + try { + bl.createService(newService, user); + } catch (ComponentException exp) { + assertComponentException(exp, ActionStatus.INVALID_PROPERY, SERVICE_ROLE); + return; + } + fail(); + } + + @Test + public void testTooLongServiceRole() { + Service newService = createServiceObject(false); + newService.setServiceRole("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + try { + bl.createService(newService, user); + } catch (ComponentException exp) { + assertComponentException(exp, ActionStatus.PROPERTY_EXCEEDS_LIMIT, SERVICE_ROLE); + return; + } + fail(); + } + + @Test + public void testValidServiceRole() { + Service newService = createServiceObject(false); + newService.setServiceRole("role"); + Either<Service, ResponseFormat> service = bl.validateServiceBeforeCreate(newService, user, AuditingActionEnum.CREATE_RESOURCE); + assertThat(service.left().value().getServiceRole()).isEqualTo("role"); + } + + @Test + public void testInvalidServiceType() { + Service newService = createServiceObject(false); + newService.setServiceType("gsg*"); + try { + bl.createService(newService, user); + } catch (ComponentException exp) { + assertComponentException(exp, ActionStatus.INVALID_PROPERY, SERVICE_TYPE); + return; + } + fail(); + } + + @Test + public void testValidServiceType() { + Service newService = createServiceObject(false); + newService.setServiceType("type"); + Either<Service, ResponseFormat> service = bl.validateServiceBeforeCreate(newService, user, AuditingActionEnum.CREATE_RESOURCE); + assertThat(service.left().value().getServiceType()).isEqualTo("type"); + } + + @Test + public void testTooLongServiceType() { + Service newService = createServiceObject(false); + newService.setServiceType("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + try { + bl.createService(newService, user); + } catch (ComponentException exp) { + assertComponentException(exp, ActionStatus.PROPERTY_EXCEEDS_LIMIT, SERVICE_TYPE); + return; + } + fail(); + } + + @Test + public void testEcompGeneratedNamingIsMissing() { + Service newService = createServiceObject(false); + newService.setEcompGeneratedNaming(null); + try { + bl.createService(newService, user); + } catch (ComponentException exp) { + assertComponentException(exp, ActionStatus.MISSING_ECOMP_GENERATED_NAMING); + return; + } + fail(); + + } + + @Test + public void testNamingPolicyWIthEcompNamingFalse() { + Service newService = createServiceObject(false); + newService.setEcompGeneratedNaming(false); + newService.setNamingPolicy("policy"); + Either<Service, ResponseFormat> service = bl.validateServiceBeforeCreate(newService, user, AuditingActionEnum.CREATE_RESOURCE); + assertThat(service.left().value().getNamingPolicy()).isEqualTo(""); + } + + @Test + public void testInvalidNamingPolicy() { + Service newService = createServiceObject(false); + newService.setNamingPolicy("פוליסי"); + try { + bl.createService(newService, user); + } catch (ComponentException exp) { + assertComponentException(exp, ActionStatus.INVALID_NAMING_POLICY); + return; + } + fail(); + } + + @Test + public void testTooLongNamingPolicy() { + Service newService = createServiceObject(false); + newService.setNamingPolicy("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + try { + bl.createService(newService, user); + } catch (ComponentException exp) { + assertComponentException(exp, ActionStatus.NAMING_POLICY_EXCEEDS_LIMIT, "100"); + return; + } + fail(); + } +} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/SoftwareInformationBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/SoftwareInformationBusinessLogicTest.java index 99bccfc566..7a90991b18 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/SoftwareInformationBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/SoftwareInformationBusinessLogicTest.java @@ -19,15 +19,6 @@ package org.openecomp.sdc.be.components.impl; -import static org.hamcrest.CoreMatchers.is; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.when; - -import java.io.IOException; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Optional; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -42,6 +33,16 @@ import org.openecomp.sdc.be.test.util.TestResourcesHandler; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Optional; + +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; +import static org.junit.Assert.fail; +import static org.mockito.Mockito.when; + @RunWith(MockitoJUnitRunner.class) public class SoftwareInformationBusinessLogicTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/exceptions/ComponentExceptionTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/exceptions/ComponentExceptionTest.java index f41e689bf6..95e5c990ae 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/exceptions/ComponentExceptionTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/exceptions/ComponentExceptionTest.java @@ -22,13 +22,13 @@ package org.openecomp.sdc.be.components.impl.exceptions; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; - import org.junit.Test; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.exception.ResponseFormat; +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; + public class ComponentExceptionTest { private static final String[] PARAMS = {"param1", "param2"}; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/instance/GroupMembersUpdateOperationTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/instance/GroupMembersUpdateOperationTest.java index eabd950536..d33b881c3c 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/instance/GroupMembersUpdateOperationTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/instance/GroupMembersUpdateOperationTest.java @@ -36,6 +36,7 @@ import org.openecomp.sdc.be.components.utils.ResourceBuilder; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.datatypes.elements.GroupDataDefinition; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; +import org.openecomp.sdc.be.datatypes.enums.PromoteVersionEnum; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.model.ComponentInstance; import org.openecomp.sdc.be.model.GroupDefinition; @@ -49,6 +50,7 @@ import java.util.stream.Stream; import static java.util.Collections.emptyMap; import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyList; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; @@ -130,7 +132,7 @@ public class GroupMembersUpdateOperationTest { @Test public void onChangeVersion_whenGroupHasPrevInstanceAsMember_replaceWithNewInstanceId_updateReplacedGroups() { verifyAllGroupsHasPrevInstancesAsMembers(); - when(groupsOperation.updateGroups(eq(container), updatedGroupsCaptor.capture(), eq(false))).thenReturn(Either.left(null)); + when(groupsOperation.updateGroups(eq(container), updatedGroupsCaptor.capture(),any(PromoteVersionEnum.class))).thenReturn(Either.left(null)); ActionStatus actionStatus = testInstance.onChangeVersion(container, prevInst2Version, currInst2Version); assertThat(actionStatus).isEqualTo(ActionStatus.OK); assertUpdatedGroups(updatedGroupsCaptor.getValue(), group1, group2); @@ -139,7 +141,7 @@ public class GroupMembersUpdateOperationTest { @Test public void onChangeVersion_whenFailingToUpdateGroups_propagateError() { - when(groupsOperation.updateGroups(eq(container), updatedGroupsCaptor.capture(), eq(false))).thenReturn(Either.right(StorageOperationStatus.NOT_FOUND)); + when(groupsOperation.updateGroups(eq(container), updatedGroupsCaptor.capture(), any(PromoteVersionEnum.class))).thenReturn(Either.right(StorageOperationStatus.NOT_FOUND)); ActionStatus actionStatus = testInstance.onChangeVersion(container, prevInst2Version, currInst2Version); assertThat(actionStatus).isEqualTo(ActionStatus.RESOURCE_NOT_FOUND); } @@ -180,7 +182,7 @@ public class GroupMembersUpdateOperationTest { @Test public void onDeleteInstance_removeInstanceIdFromGroupMember() { - when(groupsOperation.updateGroups(eq(container), updatedGroupsCaptor.capture(), eq(false))).thenReturn(Either.left(null)); + when(groupsOperation.updateGroups(eq(container), updatedGroupsCaptor.capture(), any(PromoteVersionEnum.class))).thenReturn(Either.left(null)); ActionStatus actionStatus = testInstance.onDelete(container, INSTANCE_ID_PRE_CHANGE); assertThat(actionStatus).isEqualTo(ActionStatus.OK); assertUpdatedGroups(updatedGroupsCaptor.getValue(), group1, group2); @@ -190,7 +192,7 @@ public class GroupMembersUpdateOperationTest { @Test public void onDeleteInstance_whenGroupsUpdateFails_propagateTheFailure() { - when(groupsOperation.updateGroups(eq(container), anyList(), eq(false))).thenReturn(Either.right(StorageOperationStatus.NOT_FOUND)); + when(groupsOperation.updateGroups(eq(container), anyList(), any(PromoteVersionEnum.class))).thenReturn(Either.right(StorageOperationStatus.NOT_FOUND)); ActionStatus actionStatus = testInstance.onDelete(container, INSTANCE_ID_PRE_CHANGE); assertThat(actionStatus).isEqualTo(ActionStatus.RESOURCE_NOT_FOUND); } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/CINodeFilterUtilsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/CINodeFilterUtilsTest.java index 7026325e13..b5baca1b98 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/CINodeFilterUtilsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/CINodeFilterUtilsTest.java @@ -27,6 +27,7 @@ import org.openecomp.sdc.be.datatypes.elements.CINodeFilterDataDefinition; import org.openecomp.sdc.be.model.UploadNodeFilterCapabilitiesInfo; import org.openecomp.sdc.be.model.UploadNodeFilterInfo; import org.openecomp.sdc.be.model.UploadNodeFilterPropertyInfo; + import java.util.ArrayList; import java.util.HashMap; import java.util.List; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/CapabilityTypeImportUtilsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/CapabilityTypeImportUtilsTest.java index 1c066db111..22069089ba 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/CapabilityTypeImportUtilsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/CapabilityTypeImportUtilsTest.java @@ -26,6 +26,7 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.openecomp.sdc.be.model.CapabilityTypeDefinition; + import java.util.Collections; import static org.junit.Assert.assertTrue; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/DirectivesUtilsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/DirectivesUtilsTest.java index fea039ef27..9e27134a33 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/DirectivesUtilsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/DirectivesUtilsTest.java @@ -24,6 +24,7 @@ package org.openecomp.sdc.be.components.impl.utils; import org.junit.Before; import org.junit.Test; + import java.util.ArrayList; import java.util.List; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/PropertiesUtilsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/PropertiesUtilsTest.java index 757e47a8f7..d038381c21 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/PropertiesUtilsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/PropertiesUtilsTest.java @@ -15,18 +15,6 @@ */ package org.openecomp.sdc.be.components.impl.utils; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.mockito.Mockito.when; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; - import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; @@ -45,6 +33,18 @@ import org.openecomp.sdc.be.model.PropertyDefinition; import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.model.Service; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.when; + @RunWith(MockitoJUnitRunner.class) public class PropertiesUtilsTest { @Mock diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/YamlTemplateParsingHandlerTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/YamlTemplateParsingHandlerTest.java index fdbe7c2197..b63e6ffeb8 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/YamlTemplateParsingHandlerTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/YamlTemplateParsingHandlerTest.java @@ -20,20 +20,6 @@ package org.openecomp.sdc.be.components.impl.utils; -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.assertNotNull; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.when; -import static org.openecomp.sdc.be.utils.TypeUtils.ToscaTagNamesEnum.ARTIFACTS; - -import java.io.File; -import java.net.URISyntaxException; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.stream.Collectors; import mockit.Deencapsulation; import org.apache.commons.collections.MapUtils; import org.assertj.core.util.Lists; @@ -64,6 +50,21 @@ import org.openecomp.sdc.be.model.operations.impl.AnnotationTypeOperations; import org.openecomp.sdc.common.zip.ZipUtils; import org.openecomp.sdc.common.zip.exception.ZipException; +import java.io.File; +import java.net.URISyntaxException; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.stream.Collectors; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.assertNotNull; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.when; +import static org.openecomp.sdc.be.utils.TypeUtils.ToscaTagNamesEnum.ARTIFACTS; + @RunWith(MockitoJUnitRunner.class) public class YamlTemplateParsingHandlerTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/CertificationChangeTransitionTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/CertificationChangeTransitionTest.java deleted file mode 100644 index f8401e8aa5..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/CertificationChangeTransitionTest.java +++ /dev/null @@ -1,180 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 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.openecomp.sdc.be.components.lifecycle; - -import fj.data.Either; -import org.junit.Before; -import org.junit.Test; -import org.openecomp.sdc.be.dao.api.ActionStatus; -import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; -import org.openecomp.sdc.be.model.*; -import org.openecomp.sdc.be.user.Role; -import org.openecomp.sdc.exception.ResponseFormat; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class CertificationChangeTransitionTest extends LifecycleTestBase { - - private CertificationChangeTransition certifyTransitionObj = null; - private CertificationChangeTransition certificationCancelObj = null; - private CertificationChangeTransition certificationFailObj = null; - - private User owner = null; - - Resource resource; - Service service; - - @SuppressWarnings("unchecked") - @Before - public void setup() { - - super.setup(); - // checkout transition object - certifyTransitionObj = new CertificationChangeTransition(LifeCycleTransitionEnum.CERTIFY, componentsUtils, toscaElementLifecycleOperation, toscaOperationFacade, - janusGraphDao); - certifyTransitionObj.setConfigurationManager(configurationManager); - certifyTransitionObj.setLifeCycleOperation(toscaElementLifecycleOperation); - - certificationCancelObj = new CertificationChangeTransition(LifeCycleTransitionEnum.CERTIFY, componentsUtils, toscaElementLifecycleOperation, toscaOperationFacade, - janusGraphDao); - certificationCancelObj.setConfigurationManager(configurationManager); - certificationCancelObj.setLifeCycleOperation(toscaElementLifecycleOperation); - - certificationFailObj = new CertificationChangeTransition(LifeCycleTransitionEnum.CERTIFY, componentsUtils, toscaElementLifecycleOperation, toscaOperationFacade, - janusGraphDao); - certificationFailObj.setConfigurationManager(configurationManager); - certificationFailObj.setLifeCycleOperation(toscaElementLifecycleOperation); - - owner = new User("cs0008", "Carlos", "Santana", "cs@sdc.com", "DESIGNER", null); - - resource = createResourceObject(); - service = createServiceObject(); - } - - @Test - public void testConstructor(){ - Resource resource = createResourceVFCMTObject(); - - User user = new User("cs0008", "Carlos", "Santana", "cs@sdc.com", "DESIGNER", null); - - for (LifeCycleTransitionEnum value : LifeCycleTransitionEnum.values()) { - new CertificationChangeTransition(value, componentsUtils, toscaElementLifecycleOperation, toscaOperationFacade, - janusGraphDao); - } - - } - - @Test - public void testVFCMTStateValidation(){ - Resource resource = createResourceVFCMTObject(); - - User user = new User("cs0008", "Carlos", "Santana", "cs@sdc.com", "DESIGNER", null); - - Either<Boolean, ResponseFormat> validateBeforeTransition = certifyTransitionObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, user, owner, LifecycleStateEnum.CERTIFICATION_IN_PROGRESS); - assertTrue(validateBeforeTransition.isLeft()); - } - - @Test - public void testStateValidationSuccess() { - - Either<Boolean, ResponseFormat> changeStateResult = certifyTransitionObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, user, owner, LifecycleStateEnum.CERTIFICATION_IN_PROGRESS); - assertTrue(changeStateResult.isLeft()); - - } - - @Test - public void testStateValidationFail() { - - // checkout - Either<Boolean, ResponseFormat> validateBeforeTransition = certifyTransitionObj.validateBeforeTransition(service, ComponentTypeEnum.SERVICE, user, owner, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); - - assertValidationStateErrorResponse(validateBeforeTransition); - - // checkin - validateBeforeTransition = certifyTransitionObj.validateBeforeTransition(service, ComponentTypeEnum.SERVICE, user, owner, LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); - assertValidationStateErrorResponse(validateBeforeTransition); - - // rfc - validateBeforeTransition = certifyTransitionObj.validateBeforeTransition(service, ComponentTypeEnum.SERVICE, user, owner, LifecycleStateEnum.READY_FOR_CERTIFICATION); - assertValidationStateErrorResponse(validateBeforeTransition); - - // certified - validateBeforeTransition = certifyTransitionObj.validateBeforeTransition(service, ComponentTypeEnum.SERVICE, user, owner, LifecycleStateEnum.CERTIFIED); - assertValidationStateErrorResponse(validateBeforeTransition); - - } - - @Test - public void testRolesFail() { - Either<Resource, ResponseFormat> changeStateResult; - - resource.setLifecycleState(LifecycleStateEnum.CERTIFICATION_IN_PROGRESS); - - User modifier = new User(); - modifier.setUserId("modifier"); - modifier.setFirstName("Albert"); - modifier.setLastName("Einstein"); - modifier.setRole(Role.DESIGNER.name()); - Either<User, ResponseFormat> ownerResponse = certifyTransitionObj.getComponentOwner(resource, ComponentTypeEnum.RESOURCE); - assertTrue(ownerResponse.isLeft()); - User owner = ownerResponse.left().value(); -//the lifecycle was changed for resource!! - Either<Boolean, ResponseFormat> validateBeforeTransition = certifyTransitionObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, modifier, owner, LifecycleStateEnum.CERTIFICATION_IN_PROGRESS); - assertTrue(validateBeforeTransition.isLeft()); - - modifier.setRole(Role.TESTER.name()); - validateBeforeTransition = certifyTransitionObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, modifier, owner, LifecycleStateEnum.CERTIFICATION_IN_PROGRESS); - assertTrue(validateBeforeTransition.isLeft()); - - } - - @Test - public void testRolesSuccess() { - - resource.setLifecycleState(LifecycleStateEnum.CERTIFICATION_IN_PROGRESS); - Either<User, ResponseFormat> ownerResponse = certifyTransitionObj.getComponentOwner(resource, ComponentTypeEnum.RESOURCE); - assertTrue(ownerResponse.isLeft()); - User owner = ownerResponse.left().value(); - - Either<Boolean, ResponseFormat> validateBeforeTransition = certifyTransitionObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, owner, owner, LifecycleStateEnum.CERTIFICATION_IN_PROGRESS); - assertTrue(validateBeforeTransition.isLeft()); - - User modifier = new User(); - modifier.setUserId("modifier"); - modifier.setFirstName("Albert"); - modifier.setLastName("Einstein"); - modifier.setRole(Role.ADMIN.name()); - validateBeforeTransition = certifyTransitionObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, modifier, owner, LifecycleStateEnum.CERTIFICATION_IN_PROGRESS); - assertTrue(validateBeforeTransition.isLeft()); - - } - - private void assertValidationStateErrorResponse(Either<Boolean, ResponseFormat> validateBeforeTransition) { - assertTrue(validateBeforeTransition.isRight()); - ResponseFormat error = validateBeforeTransition.right().value(); - Either<Resource, ResponseFormat> changeStateResult = Either.right(error); - assertTrue(changeStateResult.isRight()); - - assertResponse(changeStateResult, ActionStatus.COMPONENT_NOT_READY_FOR_CERTIFICATION, resource.getName(), ComponentTypeEnum.RESOURCE.name().toLowerCase(), user.getFirstName(), user.getLastName(), user.getUserId()); - } - -} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/CertificationRequestTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/CertificationChangeTransitionTests.java index 70833f40b6..2af413e6ed 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/CertificationRequestTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/CertificationChangeTransitionTests.java @@ -7,9 +7,9 @@ * 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. @@ -28,16 +28,22 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; -import org.openecomp.sdc.be.components.distribution.engine.ServiceDistributionArtifactsBuilder; import org.openecomp.sdc.be.components.impl.ServiceBusinessLogic; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; -import org.openecomp.sdc.be.model.*; -import org.openecomp.sdc.be.model.jsonjanusgraph.datamodel.ToscaElement; +import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; +import org.openecomp.sdc.be.model.ArtifactDefinition; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.ComponentInstance; +import org.openecomp.sdc.be.model.LifeCycleTransitionEnum; +import org.openecomp.sdc.be.model.LifecycleStateEnum; +import org.openecomp.sdc.be.model.Operation; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.Service; +import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.jsonjanusgraph.utils.ModelConverter; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; -import org.openecomp.sdc.be.model.operations.impl.CapabilityOperation; -import org.openecomp.sdc.be.tosca.ToscaExportHandler; import org.openecomp.sdc.be.user.Role; import org.openecomp.sdc.exception.ResponseFormat; @@ -46,123 +52,117 @@ import java.util.List; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.Silent.class) -public class CertificationRequestTest extends LifecycleTestBase { +public class CertificationChangeTransitionTests extends LifecycleTestBase { @Mock - private ServiceDistributionArtifactsBuilder serviceDistributionArtifactsBuilder; - @Mock private ServiceBusinessLogic serviceBusinessLogic; - @Mock - private CapabilityOperation capabilityOperation; - @Mock - private ToscaExportHandler toscaExportUtils; - private CertificationRequestTransition rfcObj; + private CertificationChangeTransition changeTransition; + + Resource resource, resourceAfterCertify; + Service service, serviceAfterCertify; + User owner; + private static String RES_ID = "resId"; + private static String RES_ID_CERTIFIED = "resIdCert"; + private static String SERVICE_ID = "serviceId"; + private static String SERVICE_ID_CERTIFIED = "serviceIdCert"; + + @Before public void setup() { super.setup(); - rfcObj = new CertificationRequestTransition(componentsUtils, toscaElementLifecycleOperation, serviceBusinessLogic, toscaOperationFacade, - janusGraphDao); - rfcObj.setConfigurationManager(configurationManager); + changeTransition = new CertificationChangeTransition(serviceBusinessLogic, LifeCycleTransitionEnum.CERTIFY, componentsUtils, toscaElementLifecycleOperation, toscaOperationFacade, janusGraphDao); + changeTransition.setConfigurationManager(configurationManager); + resource = createResourceObject(RES_ID); + resourceAfterCertify = createResourceObject(RES_ID_CERTIFIED); + resourceAfterCertify.setLifecycleState(LifecycleStateEnum.CERTIFIED); + service = createServiceObject(SERVICE_ID); + serviceAfterCertify = createServiceObject(SERVICE_ID_CERTIFIED); + User user = new User(); + user.setUserId("cs0008"); + user.setFirstName("Carlos"); + user.setLastName("Santana"); + user.setRole(Role.DESIGNER.name()); + Either<User, ResponseFormat> ownerResponse = changeTransition.getComponentOwner(resource, ComponentTypeEnum.RESOURCE); + assertTrue(ownerResponse.isLeft()); + owner = ownerResponse.left().value(); + + } @Test public void testVFCMTStateValidation(){ Either<? extends Component, ResponseFormat> changeStateResult; - Resource resource = createResourceVFCMTObject(); - + resource = createResourceVFCMTObject(); resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); - Either<User, ResponseFormat> ownerResponse = rfcObj.getComponentOwner(resource, ComponentTypeEnum.RESOURCE); - assertTrue(ownerResponse.isLeft()); - User owner = ownerResponse.left().value(); - - User user = new User(); - user.setUserId("cs0008"); - user.setFirstName("Carlos"); - user.setLastName("Santana"); - user.setRole(Role.TESTER.name()); + when(toscaElementLifecycleOperation.certifyToscaElement(resource.getUniqueId(), user.getUserId(), owner.getUserId())) + .thenReturn(Either.left(ModelConverter.convertToToscaElement(resource))); - changeStateResult = rfcObj.changeState(ComponentTypeEnum.RESOURCE, resource, serviceBusinessLogic, user, owner, false, false); + changeStateResult = changeTransition.changeState(ComponentTypeEnum.RESOURCE, resource, serviceBusinessLogic, user, owner, false, false); assertTrue(changeStateResult.isLeft()); } @Test public void testCheckoutStateValidation() { Either<? extends Component, ResponseFormat> changeStateResult; - Resource resource = createResourceObject(); resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); - Either<User, ResponseFormat> ownerResponse = rfcObj.getComponentOwner(resource, ComponentTypeEnum.RESOURCE); - assertTrue(ownerResponse.isLeft()); - User owner = ownerResponse.left().value(); - changeStateResult = rfcObj.changeState(ComponentTypeEnum.RESOURCE, resource, serviceBusinessLogic, user, owner, false, false); + when(toscaElementLifecycleOperation.certifyToscaElement(RES_ID, user.getUserId(), owner.getUserId())) + .thenReturn(Either.left(ModelConverter.convertToToscaElement(resourceAfterCertify))); + + changeStateResult = changeTransition.changeState(ComponentTypeEnum.RESOURCE, resource, serviceBusinessLogic, user, owner, false, false); assertTrue(changeStateResult.isLeft()); resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); - changeStateResult = rfcObj.changeState(ComponentTypeEnum.RESOURCE, resource, serviceBusinessLogic, user, owner, false, false); + changeStateResult = changeTransition.changeState(ComponentTypeEnum.RESOURCE, resource, serviceBusinessLogic, user, owner, false, false); assertTrue(changeStateResult.isLeft()); } @Test - public void testAlreadyRfc() { - Either<Resource, ResponseFormat> changeStateResult; - Resource resource = createResourceObject(); + public void testPnfValidation() { + Either<? extends Component, ResponseFormat> changeStateResult; + resource.setResourceType(ResourceTypeEnum.PNF); + resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); + when(toscaElementLifecycleOperation.certifyToscaElement(RES_ID, user.getUserId(), owner.getUserId())) + .thenReturn(Either.left(ModelConverter.convertToToscaElement(resourceAfterCertify))); - resource.setLifecycleState(LifecycleStateEnum.READY_FOR_CERTIFICATION); - Either<User, ResponseFormat> ownerResponse = rfcObj.getComponentOwner(resource, ComponentTypeEnum.RESOURCE); - assertTrue(ownerResponse.isLeft()); - User owner = ownerResponse.left().value(); - Either<Boolean, ResponseFormat> validateBeforeTransition = rfcObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, user, owner, LifecycleStateEnum.READY_FOR_CERTIFICATION); - assertTrue(validateBeforeTransition.isRight()); - changeStateResult = Either.right(validateBeforeTransition.right().value()); - assertResponse(changeStateResult, ActionStatus.COMPONENT_SENT_FOR_CERTIFICATION, resource.getName(), ComponentTypeEnum.RESOURCE.name().toLowerCase(), user.getFirstName(), user.getLastName(), user.getUserId()); + changeStateResult = changeTransition.changeState(ComponentTypeEnum.RESOURCE, resource, serviceBusinessLogic, user, owner, false, false); + assertTrue(changeStateResult.isLeft()); + resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); + changeStateResult = changeTransition.changeState(ComponentTypeEnum.RESOURCE, resource, serviceBusinessLogic, user, owner, false, false); + assertTrue(changeStateResult.isLeft()); } @Test - public void testCertificationInProgress() { - Either<Resource, ResponseFormat> changeStateResult; - Resource resource = createResourceObject(); - - resource.setLifecycleState(LifecycleStateEnum.CERTIFICATION_IN_PROGRESS); - Either<User, ResponseFormat> ownerResponse = rfcObj.getComponentOwner(resource, ComponentTypeEnum.RESOURCE); - assertTrue(ownerResponse.isLeft()); - User owner = ownerResponse.left().value(); - Either<Boolean, ResponseFormat> validateBeforeTransition = rfcObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, user, owner, LifecycleStateEnum.CERTIFICATION_IN_PROGRESS); - assertTrue(validateBeforeTransition.isRight()); - changeStateResult = Either.right(validateBeforeTransition.right().value()); - assertResponse(changeStateResult, ActionStatus.COMPONENT_IN_CERT_IN_PROGRESS_STATE, resource.getName(), ComponentTypeEnum.RESOURCE.name().toLowerCase(), user.getFirstName(), user.getLastName(), user.getUserId()); - - } + public void testCRValidation() { + Either<? extends Component, ResponseFormat> changeStateResult; + resource.setResourceType(ResourceTypeEnum.CR); + resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); + when(toscaElementLifecycleOperation.certifyToscaElement(RES_ID, user.getUserId(), owner.getUserId())) + .thenReturn(Either.left(ModelConverter.convertToToscaElement(resourceAfterCertify))); - @Test - public void testAlreadyCertified() { - Either<Resource, ResponseFormat> changeStateResult; - Resource resource = createResourceObject(); + changeStateResult = changeTransition.changeState(ComponentTypeEnum.RESOURCE, resource, serviceBusinessLogic, user, owner, false, false); + assertTrue(changeStateResult.isLeft()); - resource.setLifecycleState(LifecycleStateEnum.CERTIFIED); - Either<User, ResponseFormat> ownerResponse = rfcObj.getComponentOwner(resource, ComponentTypeEnum.RESOURCE); - assertTrue(ownerResponse.isLeft()); - User owner = ownerResponse.left().value(); - Either<Boolean, ResponseFormat> validateBeforeTransition = rfcObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, user, owner, LifecycleStateEnum.CERTIFIED); - assertTrue(validateBeforeTransition.isRight()); - changeStateResult = Either.right(validateBeforeTransition.right().value()); - assertResponse(changeStateResult, ActionStatus.COMPONENT_ALREADY_CERTIFIED, resource.getName(), ComponentTypeEnum.RESOURCE.name().toLowerCase(), user.getFirstName(), user.getLastName(), user.getUserId()); + resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); + changeStateResult = changeTransition.changeState(ComponentTypeEnum.RESOURCE, resource, serviceBusinessLogic, user, owner, false, false); + assertTrue(changeStateResult.isLeft()); } @Test public void testVSPIsArchivedValidation(){ - Either<? extends Component, ResponseFormat> changeStateResult; Resource resource = createResourceObject(); resource.setVspArchived(true); resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); - Either<User, ResponseFormat> ownerResponse = rfcObj.getComponentOwner(resource, ComponentTypeEnum.RESOURCE); + Either<User, ResponseFormat> ownerResponse = changeTransition.getComponentOwner(resource, ComponentTypeEnum.RESOURCE); assertTrue(ownerResponse.isLeft()); User owner = ownerResponse.left().value(); @@ -170,19 +170,21 @@ public class CertificationRequestTest extends LifecycleTestBase { user.setUserId("cs0008"); user.setFirstName("Carlos"); user.setLastName("Santana"); - user.setRole(Role.TESTER.name()); - - changeStateResult = rfcObj.changeState(ComponentTypeEnum.RESOURCE, resource, serviceBusinessLogic, user, owner, false, false); - assertTrue(changeStateResult.isRight()); - changeStateResult = Either.right(changeStateResult.right().value()); - assertResponse(changeStateResult, ActionStatus.ARCHIVED_ORIGINS_FOUND, resource.getName(), ComponentTypeEnum.RESOURCE.name().toLowerCase(), user.getFirstName(), user.getLastName(), user.getUserId()); + user.setRole(Role.DESIGNER.name()); + try { + changeTransition.changeState(ComponentTypeEnum.RESOURCE, resource, serviceBusinessLogic, user, owner, false, false); + } catch (ComponentException exp) { + assertResponse(Either.right(exp.getResponseFormat()), ActionStatus.ARCHIVED_ORIGINS_FOUND, resource.getName(), ComponentTypeEnum.RESOURCE.name().toLowerCase(), user.getFirstName(), user.getLastName(), user.getUserId()); + return; + } + fail(); } @Test public void testValidateAllResourceInstanceCertified_SuccessWithoutRI() { Resource resource = new Resource(); - Either<Boolean, ResponseFormat> validateAllResourceInstanceCertified = rfcObj.validateAllResourceInstanceCertified(resource); + Either<Boolean, ResponseFormat> validateAllResourceInstanceCertified = changeTransition.validateAllResourceInstanceCertified(resource); assertTrue(validateAllResourceInstanceCertified.isLeft()); } @@ -195,7 +197,7 @@ public class CertificationRequestTest extends LifecycleTestBase { riList.add(ri); resource.setComponentInstances(riList); - Either<Boolean, ResponseFormat> validateAllResourceInstanceCertified = rfcObj.validateAllResourceInstanceCertified(resource); + Either<Boolean, ResponseFormat> validateAllResourceInstanceCertified = changeTransition.validateAllResourceInstanceCertified(resource); assertTrue(validateAllResourceInstanceCertified.isLeft()); } @@ -205,7 +207,7 @@ public class CertificationRequestTest extends LifecycleTestBase { simulateCertifiedVersionExistForRI(); - Either<Boolean, ResponseFormat> validateAllResourceInstanceCertified = rfcObj.validateAllResourceInstanceCertified(resource); + Either<Boolean, ResponseFormat> validateAllResourceInstanceCertified = changeTransition.validateAllResourceInstanceCertified(resource); assertTrue(validateAllResourceInstanceCertified.isRight()); ResponseFormat responseFormat = validateAllResourceInstanceCertified.right().value(); @@ -220,7 +222,7 @@ public class CertificationRequestTest extends LifecycleTestBase { simulateCertifiedVersionExistForRI(); - Either<Boolean, ResponseFormat> validateAllResourceInstanceCertified = rfcObj.validateAllResourceInstanceCertified(resource); + Either<Boolean, ResponseFormat> validateAllResourceInstanceCertified = changeTransition.validateAllResourceInstanceCertified(resource); assertTrue(validateAllResourceInstanceCertified.isRight()); ResponseFormat responseFormat = validateAllResourceInstanceCertified.right().value(); @@ -232,21 +234,16 @@ public class CertificationRequestTest extends LifecycleTestBase { @Test public void testDeploymentArtifactRestriction() { Either<? extends Component, ResponseFormat> changeStateResult; - Service service = createServiceObject(); service.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); - Either<User, ResponseFormat> ownerResponse = rfcObj.getComponentOwner(service, ComponentTypeEnum.SERVICE); - assertTrue(ownerResponse.isLeft()); - User owner = ownerResponse.left().value(); - Either<Service, ResponseFormat> result = Either.left(service); - Either<ToscaElement, StorageOperationStatus> reqCertRes = Either.left(ModelConverter.convertToToscaElement(service)); - Either<Either<ArtifactDefinition, Operation>, ResponseFormat> resultArtifacts = Either.left(Either.left(new ArtifactDefinition())); + Either<ArtifactDefinition, Operation> resultArtifacts = Either.left(new ArtifactDefinition()); + when(toscaElementLifecycleOperation.certifyToscaElement(SERVICE_ID, user.getUserId(), owner.getUserId())) + .thenReturn(Either.left(ModelConverter.convertToToscaElement(serviceAfterCertify))); when(serviceBusinessLogic.generateHeatEnvArtifacts(service, owner, false, true)).thenReturn(result); when(serviceBusinessLogic.generateVfModuleArtifacts(service, owner, false, true)).thenReturn(result); when(serviceBusinessLogic.populateToscaArtifacts(service, owner, true, false, false)).thenReturn(resultArtifacts); - when(toscaElementLifecycleOperation.requestCertificationToscaElement(Mockito.anyString(), Mockito.anyString(), Mockito.anyString())).thenReturn(reqCertRes); - changeStateResult = rfcObj.changeState(ComponentTypeEnum.SERVICE, service, serviceBusinessLogic, user, owner, false, true); + changeStateResult = changeTransition.changeState(ComponentTypeEnum.SERVICE, service, serviceBusinessLogic, user, owner, false, true); assertTrue(changeStateResult.isLeft()); } @@ -269,4 +266,4 @@ public class CertificationRequestTest extends LifecycleTestBase { return resource; } -} +}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/CertificationChangeTransitionValidationTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/CertificationChangeTransitionValidationTest.java new file mode 100644 index 0000000000..4e21350083 --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/CertificationChangeTransitionValidationTest.java @@ -0,0 +1,148 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 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.openecomp.sdc.be.components.lifecycle; + +import fj.data.Either; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; +import org.openecomp.sdc.be.components.impl.ServiceBusinessLogic; +import org.openecomp.sdc.be.dao.api.ActionStatus; +import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; +import org.openecomp.sdc.be.model.LifeCycleTransitionEnum; +import org.openecomp.sdc.be.model.LifecycleStateEnum; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.Service; +import org.openecomp.sdc.be.model.User; +import org.openecomp.sdc.common.api.UserRoleEnum; +import org.openecomp.sdc.exception.ResponseFormat; + +import static org.junit.Assert.assertTrue; + +public class CertificationChangeTransitionValidationTest extends LifecycleTestBase { + + private CertificationChangeTransition certifyTransitionObj = null; + @Mock + private ServiceBusinessLogic serviceBusinessLogic; + + private User owner = null; + + Resource resource; + Service service; + + @SuppressWarnings("unchecked") + @Before + public void setup() { + + super.setup(); + // checkout transition object + certifyTransitionObj = new CertificationChangeTransition(serviceBusinessLogic, LifeCycleTransitionEnum.CERTIFY, componentsUtils, toscaElementLifecycleOperation, toscaOperationFacade, janusGraphDao); + certifyTransitionObj.setConfigurationManager(configurationManager); + certifyTransitionObj.setLifeCycleOperation(toscaElementLifecycleOperation); + + owner = new User("cs0008", "Carlos", "Santana", "cs@sdc.com", "DESIGNER", null); + user.setRole(UserRoleEnum.DESIGNER.getName()); + + resource = createResourceObject(); + service = createServiceObject(); + } + + @Test + public void testVFCMTStateValidation(){ + Resource resource = createResourceVFCMTObject(); + Either<Boolean, ResponseFormat> validateBeforeTransition = certifyTransitionObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, user, owner, LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); + assertTrue(validateBeforeTransition.isLeft()); + } + + @Test + public void testStateCheckInValidationSuccess() { + Either<Boolean, ResponseFormat> changeStateResult = certifyTransitionObj.validateBeforeTransition(service, ComponentTypeEnum.SERVICE, user, owner, LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); + assertTrue(changeStateResult.isLeft()); + + changeStateResult = certifyTransitionObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, user, owner, LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); + assertTrue(changeStateResult.isLeft()); + } + + @Test + public void testStateCheckOutValidationSuccess() { + Either<Boolean, ResponseFormat> changeStateResult = certifyTransitionObj.validateBeforeTransition(service, ComponentTypeEnum.SERVICE, user, owner, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); + assertTrue(changeStateResult.isLeft()); + + changeStateResult = certifyTransitionObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, user, owner, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); + assertTrue(changeStateResult.isLeft()); + } + + @Test + public void testStateCertifyValidationFail() { + Either<Boolean, ResponseFormat> validateBeforeTransition = certifyTransitionObj.validateBeforeTransition(service, ComponentTypeEnum.SERVICE, user, owner, LifecycleStateEnum.CERTIFIED); + assertValidationStateErrorResponse(validateBeforeTransition); + + certifyTransitionObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, user, owner, LifecycleStateEnum.CERTIFIED); + assertValidationStateErrorResponse(validateBeforeTransition); + } + + @Test + public void testRolesSuccess() { + + resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); + assertSuccessWithResourceAndService(); + + user.setRole(UserRoleEnum.ADMIN.getName()); + assertSuccessWithResourceAndService(); + + } + + @Test + public void testRolesFail() { + user.setRole(UserRoleEnum.TESTER.getName()); + assertBeforeTransitionRoleFalis(); + assertBeforeTransitionRoleFalis(); + assertBeforeTransitionRoleFalis(); + user.setRole(UserRoleEnum.PRODUCT_MANAGER.getName()); + assertBeforeTransitionRoleFalis(); + user.setRole(UserRoleEnum.PRODUCT_STRATEGIST.getName()); + assertBeforeTransitionRoleFalis(); + } + + private void assertSuccessWithResourceAndService() { + Either<Boolean, ResponseFormat> validateBeforeTransition = certifyTransitionObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, user, owner, LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); + assertTrue(validateBeforeTransition.isLeft()); + certifyTransitionObj.validateBeforeTransition(service, ComponentTypeEnum.SERVICE, user, owner, LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); + assertTrue(validateBeforeTransition.isLeft()); + } + + private void assertBeforeTransitionRoleFalis() { + Either<Boolean, ResponseFormat> validateBeforeTransition = certifyTransitionObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, user, owner, LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); + assertResponse(Either.right(validateBeforeTransition.right().value()), ActionStatus.RESTRICTED_OPERATION); + certifyTransitionObj.validateBeforeTransition(service, ComponentTypeEnum.SERVICE, user, owner, LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); + assertResponse(Either.right(validateBeforeTransition.right().value()), ActionStatus.RESTRICTED_OPERATION); + } + + private void assertValidationStateErrorResponse(Either<Boolean, ResponseFormat> validateBeforeTransition) { + assertTrue(validateBeforeTransition.isRight()); + ResponseFormat error = validateBeforeTransition.right().value(); + Either<Resource, ResponseFormat> changeStateResult = Either.right(error); + assertTrue(changeStateResult.isRight()); + + assertResponse(changeStateResult, ActionStatus.ILLEGAL_COMPONENT_STATE); + } + +} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/CertificationRequestTransitionTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/CertificationRequestTransitionTest.java deleted file mode 100644 index 0eea67e417..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/CertificationRequestTransitionTest.java +++ /dev/null @@ -1,100 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 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) 2019 Nokia - * ================================================================================ - */ -package org.openecomp.sdc.be.components.lifecycle; - -import static org.mockito.Mockito.mock; - -import org.junit.Test; -import org.openecomp.sdc.be.auditing.impl.AuditingManager; -import org.openecomp.sdc.be.components.impl.ServiceBusinessLogic; -import org.openecomp.sdc.be.dao.cassandra.AuditCassandraDao; -import org.openecomp.sdc.be.dao.cassandra.CassandraClient; -import org.openecomp.sdc.be.dao.impl.AuditingDao; -import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; -import org.openecomp.sdc.be.dao.janusgraph.JanusGraphClient; -import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.model.Component; -import org.openecomp.sdc.be.model.LifeCycleTransitionEnum; -import org.openecomp.sdc.be.model.Resource; -import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaElementLifecycleOperation; -import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; -import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; -import org.openecomp.sdc.exception.ResponseFormat; - -import fj.data.Either; -import mockit.Deencapsulation; -import org.openecomp.sdc.test.utils.TestConfigurationProvider; - -public class CertificationRequestTransitionTest extends LifecycleTestBase { - - private CertificationRequestTransition createTestSubject() { - return new CertificationRequestTransition( - new ComponentsUtils(new AuditingManager(new AuditingDao(), new AuditCassandraDao(mock(CassandraClient.class)), new TestConfigurationProvider())), - new ToscaElementLifecycleOperation(), new ServiceBusinessLogic(elementDao, groupOperation, groupInstanceOperation, - groupTypeOperation, groupBusinessLogic, interfaceOperation, interfaceLifecycleTypeOperation, artifactsBusinessLogic, - distributionEngine, componentInstanceBusinessLogic, serviceDistributionValidation, forwardingPathValidator, - uiComponentDataConverter, serviceFilterOperation, serviceFilterValidator, artifactToscaOperation), new ToscaOperationFacade(), - new JanusGraphDao(new JanusGraphClient())); - } - - @Test - public void testGetName() throws Exception { - CertificationRequestTransition testSubject; - LifeCycleTransitionEnum result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getName(); - } - - @Test - public void testGetAuditingAction() throws Exception { - CertificationRequestTransition testSubject; - AuditingActionEnum result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getAuditingAction(); - } - - @Test - public void testValidateAllResourceInstanceCertified() throws Exception { - CertificationRequestTransition testSubject; - Component component = new Resource(); - Either<Boolean, ResponseFormat> result; - - // default test - testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "validateAllResourceInstanceCertified", component); - } - - @Test - public void testValidateConfiguredAtomicReqCapSatisfied() throws Exception { - CertificationRequestTransition testSubject; - Component component = new Resource(); - Either<Boolean, ResponseFormat> result; - - // default test - testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "validateConfiguredAtomicReqCapSatisfied", component); - } -} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/CheckinTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/CheckinTest.java index 7e1310dff0..18a17a9797 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/CheckinTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/CheckinTest.java @@ -32,7 +32,6 @@ import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.user.Role; import org.openecomp.sdc.exception.ResponseFormat; -import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class CheckinTest extends LifecycleTestBase { @@ -44,8 +43,7 @@ public class CheckinTest extends LifecycleTestBase { super.setup(); // checkout transition object - checkinObj = new CheckinTransition(componentsUtils, toscaElementLifecycleOperation, toscaOperationFacade, - janusGraphDao); + checkinObj = new CheckinTransition(componentsUtils, toscaElementLifecycleOperation, toscaOperationFacade, janusGraphDao, vesionUpdateHandler); checkinObj.setLifeCycleOperation(toscaElementLifecycleOperation); checkinObj.setConfigurationManager(configurationManager); } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/CheckoutTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/CheckoutTest.java index 7e2c2acce5..a27c959a2e 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/CheckoutTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/CheckoutTest.java @@ -33,9 +33,10 @@ import org.openecomp.sdc.be.components.impl.InputsBusinessLogic; import org.openecomp.sdc.be.components.impl.PropertyBusinessLogic; import org.openecomp.sdc.be.components.impl.ResourceBusinessLogic; import org.openecomp.sdc.be.components.impl.ResourceImportManager; -import org.openecomp.sdc.be.components.impl.SoftwareInformationBusinessLogic; import org.openecomp.sdc.be.components.merge.resource.ResourceDataMergeBusinessLogic; import org.openecomp.sdc.be.components.merge.utils.MergeInstanceUtils; +import org.openecomp.sdc.be.components.validation.component.ComponentContactIdValidator; +import org.openecomp.sdc.be.components.validation.component.ComponentNameValidator; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.datamodel.utils.UiComponentDataConverter; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; @@ -61,14 +62,17 @@ public class CheckoutTest extends LifecycleTestBase { private final UiComponentDataConverter uiComponentDataConverter = Mockito.mock(UiComponentDataConverter.class); private final CsarBusinessLogic csarBusinessLogic = Mockito.mock(CsarBusinessLogic.class); private final PropertyBusinessLogic propertyBusinessLogic = Mockito.mock(PropertyBusinessLogic.class); - private final SoftwareInformationBusinessLogic softwareInformationBusinessLogic = Mockito.mock(SoftwareInformationBusinessLogic.class); + protected ComponentContactIdValidator componentContactIdValidator = new ComponentContactIdValidator(componentsUtils); + protected ComponentNameValidator componentNameValidator = new ComponentNameValidator(componentsUtils, toscaOperationFacade); @InjectMocks ResourceBusinessLogic bl = new ResourceBusinessLogic(elementDao, groupOperation, groupInstanceOperation, groupTypeOperation, groupBusinessLogic, interfaceOperation, interfaceLifecycleTypeOperation, artifactsBusinessLogic, componentInstanceBusinessLogic, resourceImportManager, inputsBusinessLogic, compositionBusinessLogic, resourceDataMergeBusinessLogic, csarArtifactsAndGroupsBusinessLogic, mergeInstanceUtils, - uiComponentDataConverter, csarBusinessLogic, artifactToscaOperation, propertyBusinessLogic, softwareInformationBusinessLogic); + uiComponentDataConverter, csarBusinessLogic, artifactToscaOperation, propertyBusinessLogic, + componentContactIdValidator, componentNameValidator, componentTagsValidator, componentValidator, + componentIconValidator, componentProjectCodeValidator, componentDescriptionValidator ); @Before public void setup() { @@ -121,62 +125,6 @@ public class CheckoutTest extends LifecycleTestBase { } @Test - public void testCertificationInProgress() { - Either<? extends Component, ResponseFormat> changeStateResult; - Resource resource = createResourceObject(); - - resource.setLifecycleState(LifecycleStateEnum.CERTIFICATION_IN_PROGRESS); - Either<User, ResponseFormat> ownerResponse = checkoutObj.getComponentOwner(resource, ComponentTypeEnum.RESOURCE); - assertTrue(ownerResponse.isLeft()); - User owner = ownerResponse.left().value(); - changeStateResult = checkoutObj.changeState(ComponentTypeEnum.RESOURCE, resource, bl, user, owner, false, false); - - Either<Boolean, ResponseFormat> validateBeforeTransition = checkoutObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, user, owner, LifecycleStateEnum.CERTIFICATION_IN_PROGRESS); - assertTrue(validateBeforeTransition.isRight()); - changeStateResult = Either.right(validateBeforeTransition.right().value()); - assertTrue(changeStateResult.isRight()); - - assertResponse(changeStateResult, ActionStatus.COMPONENT_IN_CERT_IN_PROGRESS_STATE, resource.getName(), ComponentTypeEnum.RESOURCE.name().toLowerCase(), user.getFirstName(), user.getLastName(), user.getUserId()); - - } - - @Test - public void testReadyForCertification() { - Either<Resource, ResponseFormat> changeStateResult; - Resource resource = createResourceObject(); - - resource.setLifecycleState(LifecycleStateEnum.READY_FOR_CERTIFICATION); - - // if modifier = owner - Either<User, ResponseFormat> ownerResponse = checkoutObj.getComponentOwner(resource, ComponentTypeEnum.RESOURCE); - assertTrue(ownerResponse.isLeft()); - User owner = ownerResponse.left().value(); - Either<Boolean, ResponseFormat> validateBeforeTransition = checkoutObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, user, owner, LifecycleStateEnum.READY_FOR_CERTIFICATION); - assertTrue(validateBeforeTransition.isLeft()); - - // else - User modifier = new User(); - modifier.setUserId("modifier"); - modifier.setFirstName("Albert"); - modifier.setLastName("Einstein"); - - // admin - modifier.setRole(Role.ADMIN.name()); - validateBeforeTransition = checkoutObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, modifier, owner, LifecycleStateEnum.READY_FOR_CERTIFICATION); - assertTrue(validateBeforeTransition.isLeft()); - - // designer - modifier.setRole(Role.TESTER.name()); - validateBeforeTransition = checkoutObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, modifier, owner, LifecycleStateEnum.READY_FOR_CERTIFICATION); - assertTrue(validateBeforeTransition.isRight()); - changeStateResult = Either.right(validateBeforeTransition.right().value()); - - assertTrue(changeStateResult.isRight()); - assertResponse(changeStateResult, ActionStatus.RESTRICTED_OPERATION, resource.getName(), ComponentTypeEnum.RESOURCE.name().toLowerCase(), user.getFirstName(), user.getLastName(), user.getUserId()); - - } - - @Test public void testRoles() { Either<Resource, ResponseFormat> changeStateResult; Resource resource = createResourceObject(); @@ -191,10 +139,14 @@ public class CheckoutTest extends LifecycleTestBase { Either<User, ResponseFormat> ownerResponse = checkoutObj.getComponentOwner(resource, ComponentTypeEnum.RESOURCE); assertTrue(ownerResponse.isLeft()); User owner = ownerResponse.left().value(); + // changeStateResult = checkoutObj.changeStateOperation(resource, + // modifier, owner); Either<Boolean, ResponseFormat> validateBeforeTransition = checkoutObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, modifier, owner, LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); assertTrue(validateBeforeTransition.isLeft()); modifier.setRole(Role.TESTER.name()); + // changeStateResult = checkoutObj.changeStateOperation(resource, + // modifier, owner); validateBeforeTransition = checkoutObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, modifier, owner, LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); assertTrue(validateBeforeTransition.isRight()); changeStateResult = Either.right(validateBeforeTransition.right().value()); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/LifecycleBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/LifecycleBusinessLogicTest.java new file mode 100644 index 0000000000..bcec330409 --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/LifecycleBusinessLogicTest.java @@ -0,0 +1,164 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * 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.openecomp.sdc.be.components.lifecycle; + +import fj.data.Either; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.junit.MockitoJUnitRunner; +import org.openecomp.sdc.be.catalog.enums.ChangeTypeEnum; +import org.openecomp.sdc.be.components.impl.ServiceBusinessLogic; +import org.openecomp.sdc.be.dao.api.ActionStatus; +import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; +import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; +import org.openecomp.sdc.be.facade.operations.CatalogOperation; +import org.openecomp.sdc.be.impl.ComponentsUtils; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.LifeCycleTransitionEnum; +import org.openecomp.sdc.be.model.LifecycleStateEnum; +import org.openecomp.sdc.be.model.Service; +import org.openecomp.sdc.be.model.User; +import org.openecomp.sdc.be.model.operations.api.IGraphLockOperation; +import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; +import org.openecomp.sdc.be.user.Role; +import org.openecomp.sdc.exception.ResponseFormat; + +import java.util.Map; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.when; + +@RunWith(MockitoJUnitRunner.class) +public class LifecycleBusinessLogicTest extends LifecycleTestBase { + + @Mock + private IGraphLockOperation graphLockOperation; + + @Mock + private ServiceBusinessLogic serviceBusinessLogic; + + @Mock + private ComponentsUtils componentsUtils; + + @InjectMocks + LifecycleBusinessLogic lifecycleBusinessLogic = new LifecycleBusinessLogic(); + + @Mock + CertificationChangeTransition certificationChangeTransition; + + @Mock + CheckinTransition checkinTransition; + + @Mock + CatalogOperation catalogOperations; + + @Before + public void before() { + lifecycleBusinessLogic.init(); + Map<String, LifeCycleTransition> startTransition = lifecycleBusinessLogic.getStartTransition(); + startTransition.put(LifeCycleTransitionEnum.CHECKIN.name(), checkinTransition); + startTransition.put(LifeCycleTransitionEnum.CERTIFY.name(), certificationChangeTransition); + } + + + @Test + public void certifyCheckedOutComponent() { + String ID_BEFORE_CHECKIN = "id"; + String ID_AFTER_CHECKIN = "id2"; + String ID_AFTER_CERTIFY = "id3"; + Service service = createServiceObject(); + fillService(service, ID_BEFORE_CHECKIN); + service.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); + + User modifier = createUser(); + + LifecycleChangeInfoWithAction remarks = new LifecycleChangeInfoWithAction("remarks"); + + Service serviceAfterCheckIn = createServiceObject(); + fillService(serviceAfterCheckIn, ID_AFTER_CHECKIN); + serviceAfterCheckIn.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); + + Service serviceAfterCertify = createServiceObject(); + fillService(serviceAfterCertify, ID_AFTER_CERTIFY); + serviceAfterCertify.setLifecycleState(LifecycleStateEnum.CERTIFIED); + + when(toscaOperationFacade.getToscaElement(ID_BEFORE_CHECKIN)).thenReturn(Either.left(service)); + when(graphLockOperation.lockComponent(ID_BEFORE_CHECKIN, NodeTypeEnum.Service)).thenReturn(StorageOperationStatus.OK); + when(checkinTransition.getComponentOwner(service, ComponentTypeEnum.SERVICE)).thenReturn(Either.left(modifier)); + when(checkinTransition.validateBeforeTransition(service, ComponentTypeEnum.SERVICE, modifier, modifier, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, remarks)).thenReturn(Either.left(true)); + Mockito.doReturn(Either.left(serviceAfterCheckIn)).when(checkinTransition).changeState(ComponentTypeEnum.SERVICE, service, serviceBusinessLogic, modifier, modifier, false, false); + + when(certificationChangeTransition.getComponentOwner(serviceAfterCheckIn, ComponentTypeEnum.SERVICE)).thenReturn(Either.left(modifier)); + when(certificationChangeTransition.validateBeforeTransition(serviceAfterCheckIn, ComponentTypeEnum.SERVICE, modifier, modifier, LifecycleStateEnum.NOT_CERTIFIED_CHECKIN, remarks)).thenReturn(Either.left(true)); + Mockito.doReturn(Either.left(serviceAfterCertify)).when(certificationChangeTransition).changeState(ComponentTypeEnum.SERVICE, serviceAfterCheckIn, serviceBusinessLogic, modifier, modifier, false, false); + when(catalogOperations.updateCatalog(ChangeTypeEnum.LIFECYCLE,serviceAfterCertify)).thenReturn(ActionStatus.OK); + Either<? extends Component, ResponseFormat> serviceAfterCertificationEither = lifecycleBusinessLogic.changeComponentState(ComponentTypeEnum.SERVICE, ID_BEFORE_CHECKIN, modifier, LifeCycleTransitionEnum.CERTIFY, remarks, false, true); + Component serviceAfterCertification = serviceAfterCertificationEither.left().value(); + assertThat(serviceAfterCertification.getUniqueId()).isEqualTo(ID_AFTER_CERTIFY); + assertThat(serviceAfterCertification.getLifecycleState()).isEqualTo(LifecycleStateEnum.CERTIFIED); + } + + @Test + public void certifyCheckedInComponent() { + String ID_BEFORE_CERTIFY = "id"; + String ID_AFTER_CERTIFY = "id2"; + Service service = createServiceObject(); + fillService(service, ID_BEFORE_CERTIFY); + service.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); + + Service serviceAfterCertify = createServiceObject(); + fillService(serviceAfterCertify, ID_AFTER_CERTIFY); + serviceAfterCertify.setLifecycleState(LifecycleStateEnum.CERTIFIED); + + User modifier = createUser(); + LifecycleChangeInfoWithAction remarks = new LifecycleChangeInfoWithAction("remarks"); + + when(toscaOperationFacade.getToscaElement(ID_BEFORE_CERTIFY)).thenReturn(Either.left(service)); + when(graphLockOperation.lockComponent(ID_BEFORE_CERTIFY, NodeTypeEnum.Service)).thenReturn(StorageOperationStatus.OK); + when(certificationChangeTransition.getComponentOwner(service, ComponentTypeEnum.SERVICE)).thenReturn(Either.left(modifier)); + when(certificationChangeTransition.validateBeforeTransition(service, ComponentTypeEnum.SERVICE, modifier, modifier, LifecycleStateEnum.NOT_CERTIFIED_CHECKIN, remarks)).thenReturn(Either.left(true)); + Mockito.doReturn(Either.left(serviceAfterCertify)).when(certificationChangeTransition).changeState(ComponentTypeEnum.SERVICE, service, serviceBusinessLogic, modifier, modifier, false, false); + when(catalogOperations.updateCatalog(ChangeTypeEnum.LIFECYCLE,serviceAfterCertify)).thenReturn(ActionStatus.OK); + Either<? extends Component, ResponseFormat> serviceAfterCertificationEither = lifecycleBusinessLogic.changeComponentState(ComponentTypeEnum.SERVICE, ID_BEFORE_CERTIFY, modifier, LifeCycleTransitionEnum.CERTIFY, remarks, false, true); + Component serviceAfterCertification = serviceAfterCertificationEither.left().value(); + assertThat(serviceAfterCertification.getUniqueId()).isEqualTo(ID_AFTER_CERTIFY); + assertThat(serviceAfterCertification.getLifecycleState()).isEqualTo(LifecycleStateEnum.CERTIFIED); + } + + private User createUser() { + User modifier = new User(); + modifier.setUserId("modifier"); + modifier.setFirstName("Albert"); + modifier.setLastName("Einstein"); + modifier.setRole(Role.DESIGNER.name()); + return modifier; + } + + private void fillService(Service service, String id) { + service.setUniqueId(id); + service.setVersion("0.2"); + service.setHighestVersion(true); + } +} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/LifecycleTestBase.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/LifecycleTestBase.java index 830173dfb6..cb78cbaeb3 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/LifecycleTestBase.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/LifecycleTestBase.java @@ -31,6 +31,7 @@ import org.openecomp.sdc.be.components.distribution.engine.IDistributionEngine; import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic; import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; import org.openecomp.sdc.be.components.impl.ResponseFormatManager; +import org.openecomp.sdc.be.components.impl.version.VesionUpdateHandler; import org.openecomp.sdc.be.components.path.ForwardingPathValidator; import org.openecomp.sdc.be.components.utils.ComponentBusinessLogicMock; import org.openecomp.sdc.be.components.validation.NodeFilterValidator; @@ -44,7 +45,13 @@ import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.impl.WebAppContextWrapper; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.ArtifactDefinition; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.ComponentMetadataDefinition; +import org.openecomp.sdc.be.model.LifecycleStateEnum; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.Service; +import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.jsonjanusgraph.datamodel.ToscaElement; import org.openecomp.sdc.be.model.jsonjanusgraph.datamodel.ToscaElementTypeEnum; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.NodeFilterOperation; @@ -68,6 +75,7 @@ import javax.servlet.ServletContext; import java.util.ArrayList; import java.util.List; +import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.when; public class LifecycleTestBase extends ComponentBusinessLogicMock { @@ -78,6 +86,7 @@ public class LifecycleTestBase extends ComponentBusinessLogicMock { protected WebAppContextWrapper webAppContextWrapper = Mockito.mock(WebAppContextWrapper.class); protected WebApplicationContext webAppContext = Mockito.mock(WebApplicationContext.class); protected ToscaElementLifecycleOperation toscaElementLifecycleOperation = Mockito.mock(ToscaElementLifecycleOperation.class); + protected VesionUpdateHandler vesionUpdateHandler = Mockito.mock(VesionUpdateHandler.class); protected ArtifactsBusinessLogic artifactsManager = Mockito.mock(ArtifactsBusinessLogic.class);; protected User user = null; protected Resource resourceResponse; @@ -109,6 +118,14 @@ public class LifecycleTestBase extends ComponentBusinessLogicMock { public void setup() { +// ExternalConfiguration.setAppName("catalog-be"); +// +// // init Configuration +// String appConfigDir = "src/test/resources/config/catalog-be"; +// ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir); +// configurationManager = new ConfigurationManager(configurationSource); + + // User data and management user = new User(); user.setUserId("jh003"); @@ -116,9 +133,7 @@ public class LifecycleTestBase extends ComponentBusinessLogicMock { user.setLastName("Hendrix"); user.setRole(Role.ADMIN.name()); - Either<User, ActionStatus> eitherGetUser = Either.left(user); - when(mockUserAdmin.getUser("jh003", false)).thenReturn(eitherGetUser); - + when(mockUserAdmin.getUser("jh003", false)).thenReturn(user); // Servlet Context attributes when(servletContext.getAttribute(Constants.CONFIGURATION_MANAGER_ATTR)).thenReturn(configurationManager); when(servletContext.getAttribute(Constants.WEB_APPLICATION_CONTEXT_WRAPPER_ATTR)).thenReturn(webAppContextWrapper); @@ -126,6 +141,9 @@ public class LifecycleTestBase extends ComponentBusinessLogicMock { when(webAppContext.getBean(ToscaElementLifecycleOperation.class)).thenReturn(toscaElementLifecycleOperation); when(webAppContext.getBean(ArtifactsBusinessLogic.class)).thenReturn(artifactsManager); + // Resource Operation mock methods + // getCount + // createResource resourceResponse = createResourceObject(); Either<ToscaElement, StorageOperationStatus> eitherComponent = Either.left(ModelConverter.convertToToscaElement(resourceResponse)); @@ -135,9 +153,6 @@ public class LifecycleTestBase extends ComponentBusinessLogicMock { when(toscaElementLifecycleOperation.checkinToscaELement(Mockito.any(LifecycleStateEnum.class), Mockito.any(String.class), Mockito.any(String.class), Mockito.any(String.class))) .thenAnswer(createAnswer(eitherComponent)); - when(toscaElementLifecycleOperation.requestCertificationToscaElement(Mockito.any(String.class), Mockito.any(String.class), Mockito.any(String.class))) - .thenAnswer(createAnswer(eitherComponent)); - Either<User, StorageOperationStatus> getOwnerResult = Either.left(user); when(toscaElementLifecycleOperation.getToscaElementOwner(Mockito.anyString())).thenReturn(getOwnerResult); @@ -159,15 +174,18 @@ public class LifecycleTestBase extends ComponentBusinessLogicMock { } protected Resource createResourceObject() { - return createResourceObject(ComponentTypeEnum.RESOURCE); + return createResourceObject(ComponentTypeEnum.RESOURCE, "uid"); } - protected Resource createResourceObject(ComponentTypeEnum componentType) { + protected Resource createResourceObject(String uid) { + return createResourceObject(ComponentTypeEnum.RESOURCE, uid); + } + + protected Resource createResourceObject(ComponentTypeEnum componentType, String uid) { Resource resource = new Resource(); - resource.setUniqueId("uid"); + resource.setUniqueId(uid); resource.setComponentType(componentType); resource.setName("MyResourceName"); - resource.setUniqueId("uid"); resource.addCategory("VoIP", "INfra"); resource.setDescription("My short description"); List<String> tgs = new ArrayList<>(); @@ -209,11 +227,14 @@ public class LifecycleTestBase extends ComponentBusinessLogicMock { return resource; } - protected Service createServiceObject() { + return createServiceObject("sid"); + } + + protected Service createServiceObject(String uid) { Service service = new Service(); service.setName("MyServiceName"); - service.setUniqueId("sid"); + service.setUniqueId(uid); service.addCategory("VoIP", null); service.setDescription("My short description"); List<String> tgs = new ArrayList<>(); @@ -230,11 +251,13 @@ public class LifecycleTestBase extends ComponentBusinessLogicMock { protected void assertResponse(Either<? extends Component, ResponseFormat> createResponse, ActionStatus expectedStatus, String... variables) { ResponseFormat expectedResponse = responseManager.getResponseFormat(expectedStatus, variables); ResponseFormat actualResponse = createResponse.right().value(); + assertThat(expectedResponse.getMessageId()).isEqualTo(actualResponse.getMessageId()); } protected void assertServiceResponse(Either<Service, ResponseFormat> createResponse, ActionStatus expectedStatus, String... variables) { ResponseFormat expectedResponse = responseManager.getResponseFormat(expectedStatus, variables); ResponseFormat actualResponse = createResponse.right().value(); + assertThat(expectedResponse.getMessageId()).isEqualTo(actualResponse.getMessageId()); } protected static ArtifactDefinition getArtifactPlaceHolder(String resourceId, String logicalName) { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/UndoCheckoutTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/UndoCheckoutTest.java index ac43c535c1..9b7c23f07a 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/UndoCheckoutTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/lifecycle/UndoCheckoutTest.java @@ -31,7 +31,6 @@ import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.user.Role; import org.openecomp.sdc.exception.ResponseFormat; -import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class UndoCheckoutTest extends LifecycleTestBase { @@ -68,14 +67,6 @@ public class UndoCheckoutTest extends LifecycleTestBase { assertResponse(changeStateResult, ActionStatus.COMPONENT_ALREADY_CHECKED_IN, resource.getName(), ComponentTypeEnum.RESOURCE.name().toLowerCase(), user.getFirstName(), user.getLastName(), user.getUserId()); - resource.setLifecycleState(LifecycleStateEnum.CERTIFICATION_IN_PROGRESS); - validateBeforeTransition = undoCheckoutObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, user, owner, LifecycleStateEnum.CERTIFICATION_IN_PROGRESS); - assertTrue(validateBeforeTransition.isRight()); - changeStateResult = Either.right(validateBeforeTransition.right().value()); - assertTrue(changeStateResult.isRight()); - - assertResponse(changeStateResult, ActionStatus.COMPONENT_ALREADY_CHECKED_IN, resource.getName(), ComponentTypeEnum.RESOURCE.name().toLowerCase(), user.getFirstName(), user.getLastName(), user.getUserId()); - resource.setLifecycleState(LifecycleStateEnum.CERTIFIED); validateBeforeTransition = undoCheckoutObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, user, owner, LifecycleStateEnum.CERTIFIED); assertTrue(validateBeforeTransition.isRight()); @@ -83,15 +74,6 @@ public class UndoCheckoutTest extends LifecycleTestBase { assertTrue(changeStateResult.isRight()); assertResponse(changeStateResult, ActionStatus.COMPONENT_ALREADY_CHECKED_IN, resource.getName(), ComponentTypeEnum.RESOURCE.name().toLowerCase(), user.getFirstName(), user.getLastName(), user.getUserId()); - - resource.setLifecycleState(LifecycleStateEnum.READY_FOR_CERTIFICATION); - validateBeforeTransition = undoCheckoutObj.validateBeforeTransition(resource, ComponentTypeEnum.RESOURCE, user, owner, LifecycleStateEnum.READY_FOR_CERTIFICATION); - assertTrue(validateBeforeTransition.isRight()); - changeStateResult = Either.right(validateBeforeTransition.right().value()); - assertTrue(changeStateResult.isRight()); - - assertResponse(changeStateResult, ActionStatus.COMPONENT_ALREADY_CHECKED_IN, resource.getName(), ComponentTypeEnum.RESOURCE.name().toLowerCase(), user.getFirstName(), user.getLastName(), user.getUserId()); - } @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/TopologyComparatorTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/TopologyComparatorTest.java index d9cc1c8a33..7f77b7de53 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/TopologyComparatorTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/TopologyComparatorTest.java @@ -36,7 +36,9 @@ import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.when; public class TopologyComparatorTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/group/ComponentGroupMergeCommandTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/group/ComponentGroupMergeCommandTest.java index 14766526ee..a8e610f2dc 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/group/ComponentGroupMergeCommandTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/group/ComponentGroupMergeCommandTest.java @@ -46,7 +46,9 @@ import java.util.Map; import java.util.stream.Stream; import static java.util.Arrays.asList; -import static java.util.Collections.*; +import static java.util.Collections.emptyList; +import static java.util.Collections.emptyMap; +import static java.util.Collections.singletonList; import static java.util.stream.Collectors.toMap; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.eq; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/group/GroupPropertiesMergeCommandTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/group/GroupPropertiesMergeCommandTest.java index cadf22f599..42dec9469e 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/group/GroupPropertiesMergeCommandTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/group/GroupPropertiesMergeCommandTest.java @@ -35,6 +35,7 @@ import org.openecomp.sdc.be.components.utils.GroupDefinitionBuilder; import org.openecomp.sdc.be.components.utils.ResourceBuilder; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.datatypes.enums.CreatedFrom; +import org.openecomp.sdc.be.datatypes.enums.PromoteVersionEnum; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.model.GroupDefinition; import org.openecomp.sdc.be.model.Resource; @@ -44,8 +45,12 @@ import java.util.List; import java.util.stream.Stream; import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyZeroInteractions; +import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) public class GroupPropertiesMergeCommandTest { @@ -142,7 +147,7 @@ public class GroupPropertiesMergeCommandTest { @Test public void mergeGroupProperties_updateGroupsAfterMerge_mergeOnlyGroups() { - when(groupsOperation.updateGroups(eq(newResource), updatedGroupsCaptor.capture(), eq(false))).thenReturn(Either.left(null)); + when(groupsOperation.updateGroups(eq(newResource), updatedGroupsCaptor.capture(), any(PromoteVersionEnum.class))).thenReturn(Either.left(null)); ActionStatus mergeStatus = testInstance.mergeComponents(prevResource, newResource); assertThat(mergeStatus).isEqualTo(ActionStatus.OK); verify(mergeBusinessLogic).mergeInstanceDataDefinitions(prevGroup1.getProperties(), prevResource.getInputs(), newGroup1.getProperties(), newResource.getInputs()); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/input/BaseComponentInputsMerge.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/input/BaseComponentInputsMerge.java index c6655d910b..a01f8dd3e6 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/input/BaseComponentInputsMerge.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/input/BaseComponentInputsMerge.java @@ -60,9 +60,11 @@ public abstract class BaseComponentInputsMerge { prevResource = new ResourceBuilder() .addInput("input1") .addInput("input2") + .addComponentInstance("inst1") .build(); currResource = new ResourceBuilder() + .addComponentInstance("inst1") .addInstanceProperty("inst1", "prop1") .addInstanceProperty("inst1", "prop2") .addInstanceInput("inst2", "prop3") diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/input/ComponentInputsMergeBLTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/input/ComponentInputsMergeBLTest.java index 244549640b..954e6094c1 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/input/ComponentInputsMergeBLTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/input/ComponentInputsMergeBLTest.java @@ -104,6 +104,23 @@ public class ComponentInputsMergeBLTest extends BaseComponentInputsMerge { } @Test + public void identifyAlreadyExistingInputsAndDontMergeThemIntoNewComponent() { + List<InputDefinition> prevDeclaredInputs = ObjectGenerator.buildInputs("declared1", "declared2", "input1"); + List<InputDefinition> prevDeclaredInputsNotPresentInCurrent = ObjectGenerator.buildInputs("declared1", "declared2"); + List<InputDefinition> currInputsPreMerge = new ArrayList<>(currResource.getInputs()); + when(declaredInputsResolver.getPreviouslyDeclaredInputsToMerge(eq(prevResource), eq(currResource), getInputPropertiesCaptor.capture())).thenReturn(prevDeclaredInputs); + List<InputDefinition> expectedInputsToUpdate = union(currInputsPreMerge, prevDeclaredInputsNotPresentInCurrent); + when(toscaOperationFacade.updateInputsToComponent(expectedInputsToUpdate, RESOURCE_ID)).thenReturn(Either.left(null)); + doCallRealMethod().when(inputsValuesMergingBusinessLogic).mergeComponentInputs(Mockito.anyList(), Mockito.anyList()); + ActionStatus actionStatus = testInstance.mergeComponents(prevResource, currResource); + assertThat(actionStatus).isEqualTo(ActionStatus.OK); + assertThat(currResource.getInputs()).containsExactlyInAnyOrderElementsOf(expectedInputsToUpdate); + verifyCallToMergeComponentInputs(prevResource, currInputsPreMerge); + verifyPropertiesPassedToDeclaredInputsResolver(); + } + + + @Test public void whenFailingToUpdateInputs_propagateTheError() { Resource newResource = new ResourceBuilder().setUniqueId(RESOURCE_ID).build(); when(toscaOperationFacade.updateInputsToComponent(emptyList(), RESOURCE_ID)).thenReturn(Either.right(StorageOperationStatus.GENERAL_ERROR)); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/input/InputsValuesMergingBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/input/InputsValuesMergingBusinessLogicTest.java index efc966f74d..ceadc5d3ea 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/input/InputsValuesMergingBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/input/InputsValuesMergingBusinessLogicTest.java @@ -20,18 +20,18 @@ package org.openecomp.sdc.be.components.merge.input; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; +import org.junit.Before; +import org.junit.Test; +import org.openecomp.sdc.be.dao.utils.MapUtil; +import org.openecomp.sdc.be.model.InputDefinition; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Map; -import org.junit.Before; -import org.junit.Test; -import org.openecomp.sdc.be.dao.utils.MapUtil; -import org.openecomp.sdc.be.model.InputDefinition; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; public class InputsValuesMergingBusinessLogicTest { private static final String INPUT_DEFUALT_TYPE = "string"; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentCapabilitiesPropertiesMergeBLTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentCapabilitiesPropertiesMergeBLTest.java index 03bff4c497..2b48f1e981 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentCapabilitiesPropertiesMergeBLTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentCapabilitiesPropertiesMergeBLTest.java @@ -70,13 +70,17 @@ public class ComponentCapabilitiesPropertiesMergeBLTest { @Test public void testDescription() throws Exception { + // ComponentCapabilitiesPropertiesMergeBL testSubject; String result; + // default test + // testSubject = createTestSubject(); result = testSubject.description(); } @Test public void testMergeComponents() throws Exception { + // ComponentCapabilitiesPropertiesMergeBL testSubject; Component prevComponent = ObjectGenerator.buildResourceWithComponentInstance("mock3"); Component currentComponent = ObjectGenerator.buildResourceWithComponentInstance("mock1", "mock2"); currentComponent.setUniqueId("mock"); @@ -90,6 +94,7 @@ public class ComponentCapabilitiesPropertiesMergeBLTest { @Test public void testMergeComponentInstanceCapabilities() throws Exception { + // ComponentCapabilitiesPropertiesMergeBL testSubject; Component currentComponent = null; Component origInstanceCmpt = null; String instanceId = ""; @@ -97,6 +102,8 @@ public class ComponentCapabilitiesPropertiesMergeBLTest { List<CapabilityDefinition> prevInstanceCapabilities = null; ActionStatus result; + // default test + // testSubject = createTestSubject(); result = testSubject.mergeComponentInstanceCapabilities(currentComponent, origInstanceCmpt, instanceId, prevInstanceCapabilities); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceArtifactsMergeTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceArtifactsMergeTest.java index 1801c2fc13..07b2ca6135 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceArtifactsMergeTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceArtifactsMergeTest.java @@ -29,17 +29,23 @@ import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic; import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic.ArtifactOperationInfo; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.ArtifactDefinition; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.ComponentInstance; +import org.openecomp.sdc.be.model.Operation; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum; -import org.openecomp.sdc.exception.ResponseFormat; +import org.openecomp.sdc.common.api.ArtifactTypeEnum; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; -import static junit.framework.TestCase.assertEquals; +import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.when; public class ComponentInstanceArtifactsMergeTest { @@ -63,14 +69,16 @@ public class ComponentInstanceArtifactsMergeTest { Component containerComponent = new Resource(); Component originComponent = buildOriginalComponentWithOneArtifact(); - ComponentInstance componentInstance = buildComponentInstanceWithTwoArtifacts(); + ComponentInstance componentInstance = buildComponentInstanceWithTwoArtifactsAndVfModuleFile(); DataForMergeHolder dataForMergeHolder = new DataForMergeHolder(); testInstance.saveDataBeforeMerge(dataForMergeHolder, containerComponent, componentInstance, originComponent); Map<String, ArtifactDefinition> originalComponentDeploymentArtifactsCreatedOnTheInstance = dataForMergeHolder .getOrigComponentDeploymentArtifactsCreatedOnTheInstance(); - - assertEquals(originalComponentDeploymentArtifactsCreatedOnTheInstance.size(), 1); + Map<String, Integer> componentInstanceDeploymentArtifactsTimeOut = dataForMergeHolder + .getComponentInstanceDeploymentArtifactsTimeOut(); + assertThat(originalComponentDeploymentArtifactsCreatedOnTheInstance.size()).isEqualTo(1); + assertThat(componentInstanceDeploymentArtifactsTimeOut.size()).isEqualTo(3); assert (originalComponentDeploymentArtifactsCreatedOnTheInstance.containsKey("artifactTwo")); } @@ -86,7 +94,7 @@ public class ComponentInstanceArtifactsMergeTest { Map<String, ArtifactDefinition> originalComponentInformationalArtifactsCreatedOnTheInstance = dataForMergeHolder .getOrigComponentInformationalArtifactsCreatedOnTheInstance(); - assertEquals(originalComponentInformationalArtifactsCreatedOnTheInstance.size(), 1); + assertThat(originalComponentInformationalArtifactsCreatedOnTheInstance.size()).isEqualTo(1); assert (originalComponentInformationalArtifactsCreatedOnTheInstance.containsKey("artifactTwo")); } @@ -97,6 +105,8 @@ public class ComponentInstanceArtifactsMergeTest { List<ComponentInstance> resourceInstances = new LinkedList<>(); ComponentInstance ci = new ComponentInstance(); ci.setUniqueId("mock"); + Map<String, ArtifactDefinition> currentDeploymentArtifacts = buildDeploymentArtifacts(); + ci.setDeploymentArtifacts(currentDeploymentArtifacts); resourceInstances.add(ci); originComponent.setComponentInstances(resourceInstances); DataForMergeHolder dataForMergeHolder = new DataForMergeHolder(); @@ -104,7 +114,10 @@ public class ComponentInstanceArtifactsMergeTest { ArtifactDefinition currentArtifactDefinition = new ArtifactDefinition(); origDeploymentArtifacts.put("mock", currentArtifactDefinition); dataForMergeHolder.setOrigComponentDeploymentArtifactsCreatedOnTheInstance(origDeploymentArtifacts); - + Map<String, ArtifactDefinition> updateDeploymentArtifacts = buildDeploymentArtifacts(); + updateDeploymentArtifacts.get("artifactOne").setTimeout(55); + dataForMergeHolder.setComponentInstanceDeploymentArtifactsTimeOut(updateDeploymentArtifacts.entrySet().stream() + .collect(Collectors.toMap(Map.Entry::getKey, artifact -> artifact.getValue().getTimeout()))); when(artifactsBusinessLogicMock.buildJsonForUpdateArtifact(Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), @@ -117,20 +130,55 @@ public class ComponentInstanceArtifactsMergeTest { Mockito.any(List.class))) .thenReturn(new HashMap<>()); - Either<Either<ArtifactDefinition, Operation>, ResponseFormat> left = Either.left(Either.left(new ArtifactDefinition())); - - when(artifactsBusinessLogicMock.updateResourceInstanceArtifactNoContent(Mockito.anyString(), Mockito.any(Component.class), Mockito.any(User.class), + Either<ArtifactDefinition, Operation> left = Either.left(new ArtifactDefinition()); + + User user = new User(); + + when(artifactsBusinessLogicMock.updateResourceInstanceArtifactNoContent("mock", originComponent, user, + new HashMap<>(), artifactsBusinessLogicMock.new ArtifactOperationInfo(false, false, + ArtifactsBusinessLogic.ArtifactOperationEnum.LINK), currentDeploymentArtifacts.get("artifactOne"))).thenReturn(left); + + when(artifactsBusinessLogicMock.updateResourceInstanceArtifactNoContent(Mockito.anyString(), Mockito.any(Component.class), Mockito.any(User.class), Mockito.any(Map.class), Mockito.any(ArtifactOperationInfo.class), Mockito.any(ArtifactDefinition.class))).thenReturn(left); - - testInstance.mergeDataAfterCreate(new User(), dataForMergeHolder, originComponent, "mock"); + testInstance.mergeDataAfterCreate(user, dataForMergeHolder, originComponent, "mock"); + + } + + private Map<String, ArtifactDefinition> buildDeploymentArtifacts() { + ArtifactDefinition artifactFromTheOriginalResource = new ArtifactDefinition(); + artifactFromTheOriginalResource.setArtifactLabel("artifactOne"); + artifactFromTheOriginalResource.setTimeout(30); + ArtifactDefinition artifactCreatedOnTheInstance = new ArtifactDefinition(); + artifactCreatedOnTheInstance.setArtifactLabel("artifactTwo"); + artifactCreatedOnTheInstance.setTimeout(30); + ArtifactDefinition artifactGeneratedBySubmitForTesting = new ArtifactDefinition(); + artifactGeneratedBySubmitForTesting.setArtifactLabel("artifactThree"); + artifactGeneratedBySubmitForTesting.setArtifactType(ArtifactTypeEnum.VF_MODULES_METADATA.name()); + artifactGeneratedBySubmitForTesting.setTimeout(30); + Map<String, ArtifactDefinition> componentInstanceArtifacts = new HashMap<>(); + componentInstanceArtifacts.put(artifactFromTheOriginalResource.getArtifactLabel(), artifactFromTheOriginalResource); + componentInstanceArtifacts.put(artifactCreatedOnTheInstance.getArtifactLabel(), artifactCreatedOnTheInstance); + componentInstanceArtifacts.put(artifactGeneratedBySubmitForTesting.getArtifactLabel(), artifactGeneratedBySubmitForTesting); + return componentInstanceArtifacts; + } + + private ComponentInstance buildComponentInstanceWithTwoArtifactsAndVfModuleFile(){ + + Map<String, ArtifactDefinition> componentInstanceArtifacts = buildDeploymentArtifacts(); + ComponentInstance componentInstance = new ComponentInstance(); + componentInstance.setArtifacts(componentInstanceArtifacts); + componentInstance.setDeploymentArtifacts(componentInstanceArtifacts); + return componentInstance; } private ComponentInstance buildComponentInstanceWithTwoArtifacts() { ArtifactDefinition artifactFromTheOriginalResource = new ArtifactDefinition(); artifactFromTheOriginalResource.setArtifactLabel("artifactOne"); + artifactFromTheOriginalResource.setTimeout(30); ArtifactDefinition artifactCreatedOnTheInstance = new ArtifactDefinition(); artifactCreatedOnTheInstance.setArtifactLabel("artifactTwo"); + artifactCreatedOnTheInstance.setTimeout(30); Map<String, ArtifactDefinition> componentInstanceArtifacts = new HashMap<>(); componentInstanceArtifacts.put(artifactFromTheOriginalResource.getArtifactLabel(), @@ -146,6 +194,7 @@ public class ComponentInstanceArtifactsMergeTest { private Component buildOriginalComponentWithOneArtifact() { ArtifactDefinition artifactFromTheOriginalResource = new ArtifactDefinition(); artifactFromTheOriginalResource.setArtifactLabel("artifactOne"); + artifactFromTheOriginalResource.setTimeout(30); Map<String, ArtifactDefinition> originComponentArtifacts = new HashMap<>(); originComponentArtifacts.put(artifactFromTheOriginalResource.getArtifactLabel(), diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceCapabilitiesMergeBLTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceCapabilitiesMergeBLTest.java index 2bb0334ce7..ccfd04f050 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceCapabilitiesMergeBLTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceCapabilitiesMergeBLTest.java @@ -40,7 +40,11 @@ import org.openecomp.sdc.be.components.utils.ResourceBuilder; import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.CapabilityDefinition; +import org.openecomp.sdc.be.model.ComponentInstance; +import org.openecomp.sdc.be.model.ComponentInstanceProperty; +import org.openecomp.sdc.be.model.ComponentParametersView; +import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.common.api.ConfigurationSource; @@ -57,7 +61,11 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyList; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoMoreInteractions; +import static org.mockito.Mockito.verifyZeroInteractions; +import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) public class ComponentInstanceCapabilitiesMergeBLTest { @@ -134,6 +142,7 @@ public class ComponentInstanceCapabilitiesMergeBLTest { getCapabilitiesPropsFilter.setIgnoreComponentInstances(false); getCapabilitiesPropsFilter.setIgnoreCapabilities(false); getCapabilitiesPropsFilter.setIgnoreCapabiltyProperties(false); + getCapabilitiesPropsFilter.setIgnoreGroups(false); ExternalConfiguration.setAppName("catalog-be"); String appConfigDir = "src/test/resources/config/catalog-be"; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceCapabilitiesPropertiesMergeTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceCapabilitiesPropertiesMergeTest.java index ff12f85d92..8304679ef2 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceCapabilitiesPropertiesMergeTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceCapabilitiesPropertiesMergeTest.java @@ -20,17 +20,21 @@ package org.openecomp.sdc.be.components.merge.instance; -import fj.data.Either; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.model.*; -import org.openecomp.sdc.exception.ResponseFormat; +import org.openecomp.sdc.be.model.CapabilityDefinition; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.ComponentInstance; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.Service; +import org.openecomp.sdc.be.model.User; import java.util.Collections; import java.util.List; @@ -69,18 +73,16 @@ public class ComponentInstanceCapabilitiesPropertiesMergeTest { Service currentComponent = new Service(); when(capabilitiesPropertiesMergeBL.mergeComponentInstanceCapabilities(currentComponent, origInstanceNode, "instId", origInstanceCapabilities)) .thenReturn(ActionStatus.OK); - Either<Component, ResponseFormat> mergeResult = testInstance.mergeDataAfterCreate(new User(), mergeHolder, currentComponent, "instId"); - assertTrue(mergeResult.isLeft()); + Component mergeResult = testInstance.mergeDataAfterCreate(new User(), mergeHolder, currentComponent, "instId"); + assertTrue(mergeResult != null); } - @Test + @Test(expected = ComponentException.class) public void mergeDataAfterCreate_error() { Service currentComponent = new Service(); when(capabilitiesPropertiesMergeBL.mergeComponentInstanceCapabilities(currentComponent, origInstanceNode, "instId", origInstanceCapabilities)) .thenReturn(ActionStatus.GENERAL_ERROR); - when(componentsUtils.getResponseFormat(ActionStatus.GENERAL_ERROR)).thenReturn(new ResponseFormat()); - Either<Component, ResponseFormat> mergeResult = testInstance.mergeDataAfterCreate(new User(), mergeHolder, currentComponent, "instId"); - assertTrue(mergeResult.isRight()); + testInstance.mergeDataAfterCreate(new User(), mergeHolder, currentComponent, "instId"); } @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceHeatEnvMergeTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceHeatEnvMergeTest.java index 3f6054d708..f5317bba6e 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceHeatEnvMergeTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceHeatEnvMergeTest.java @@ -92,7 +92,7 @@ public class ComponentInstanceHeatEnvMergeTest { Mockito.eq(USER), Mockito.eq(json), Mockito.refEq(artifactUpdateOperation), isNull())) - .thenReturn(Either.left(Either.left(new ArtifactDefinition()))); + .thenReturn(Either.left(new ArtifactDefinition())); } } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceInterfacesMergeTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceInterfacesMergeTest.java index 8b89ed5e6a..33590e82ff 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceInterfacesMergeTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceInterfacesMergeTest.java @@ -20,17 +20,6 @@ package org.openecomp.sdc.be.components.merge.instance; -import static org.junit.Assert.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.when; - -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import org.junit.Before; import org.junit.Test; import org.mockito.InjectMocks; @@ -49,6 +38,17 @@ import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.common.api.UserRoleEnum; import org.openecomp.sdc.test.utils.InterfaceOperationTestUtils; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static org.junit.Assert.assertEquals; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.when; + public class ComponentInstanceInterfacesMergeTest { @InjectMocks diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceMergeDataBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceMergeDataBusinessLogicTest.java index f6b9e88da9..ab4d8118a5 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceMergeDataBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceMergeDataBusinessLogicTest.java @@ -23,12 +23,23 @@ package org.openecomp.sdc.be.components.merge.instance; import fj.data.Either; import org.junit.Before; import org.junit.Test; -import org.mockito.*; +import org.mockito.ArgumentCaptor; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; import org.openecomp.sdc.be.components.utils.ResourceBuilder; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.ComponentInstance; +import org.openecomp.sdc.be.model.ComponentParametersView; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.Service; +import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.exception.ResponseFormat; @@ -37,7 +48,8 @@ import java.util.Arrays; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; public class ComponentInstanceMergeDataBusinessLogicTest { @@ -79,14 +91,14 @@ public class ComponentInstanceMergeDataBusinessLogicTest { User user = new User(); DataForMergeHolder dataHolder = new DataForMergeHolder(); when(toscaOperationFacade.getToscaElement(Mockito.eq("newContainerId"), componentsFilterCapture.capture())).thenReturn(Either.left(persistedService)); - when(componentInstanceMergeInterfaceMock1.mergeDataAfterCreate(user, dataHolder, persistedService, "instId")).thenReturn(Either.left(persistedService)); - when(componentInstanceMergeInterfaceMock2.mergeDataAfterCreate(user, dataHolder, persistedService, "instId")).thenReturn(Either.left(persistedService)); - Either<Component, ResponseFormat> mergeResult = testInstance.mergeComponentUserOrigData(user, dataHolder, new Service(), "newContainerId", "instId"); - assertEquals(persistedService, mergeResult.left().value()); + when(componentInstanceMergeInterfaceMock1.mergeDataAfterCreate(user, dataHolder, persistedService, "instId")).thenReturn(persistedService); + when(componentInstanceMergeInterfaceMock2.mergeDataAfterCreate(user, dataHolder, persistedService, "instId")).thenReturn(persistedService); + Component mergeResult = testInstance.mergeComponentUserOrigData(user, dataHolder, new Service(), "newContainerId", "instId"); + assertEquals(persistedService, mergeResult); assertComponentFilter(componentsFilterCapture.getValue()); } - @Test + @Test(expected = ComponentException.class) public void mergeComponentUserOrigData_failToGetPersistedComponent_doNotTryToMerge() throws Exception { User user = new User(); DataForMergeHolder dataHolder = new DataForMergeHolder(); @@ -95,22 +107,18 @@ public class ComponentInstanceMergeDataBusinessLogicTest { when(toscaOperationFacade.getToscaElement(Mockito.eq("newContainerId"), Mockito.any(ComponentParametersView.class))).thenReturn(Either.right(StorageOperationStatus.GENERAL_ERROR)); when(componentsUtils.convertFromStorageResponse(StorageOperationStatus.GENERAL_ERROR, ComponentTypeEnum.SERVICE)).thenReturn(ActionStatus.GENERAL_ERROR); when(componentsUtils.getResponseFormat(ActionStatus.GENERAL_ERROR)).thenReturn(rf); - Either<Component, ResponseFormat> mergeResult = testInstance.mergeComponentUserOrigData(user, dataHolder, container, "newContainerId", "instId"); - assertEquals(rf, mergeResult.right().value()); - verifyZeroInteractions(componentInstanceMergeInterfaceMock1, componentInstanceMergeInterfaceMock2); + testInstance.mergeComponentUserOrigData(user, dataHolder, container, "newContainerId", "instId"); } - @Test + @Test(expected = ComponentException.class) public void mergeComponentUserOrigData_failOnOneMerge_doNotCallOtherMerge() throws Exception { Service persistedService = new Service(); User user = new User(); DataForMergeHolder dataHolder = new DataForMergeHolder(); ResponseFormat rf = new ResponseFormat(); when(toscaOperationFacade.getToscaElement(Mockito.eq("newContainerId"), Mockito.any(ComponentParametersView.class))).thenReturn(Either.left(persistedService)); - when(componentInstanceMergeInterfaceMock1.mergeDataAfterCreate(user, dataHolder, persistedService, "instId")).thenReturn(Either.right(rf)); - Either<Component, ResponseFormat> mergeResult = testInstance.mergeComponentUserOrigData(user, dataHolder, new Service(), "newContainerId", "instId"); - assertEquals(rf, mergeResult.right().value()); - verifyZeroInteractions(componentInstanceMergeInterfaceMock2); + when(componentInstanceMergeInterfaceMock1.mergeDataAfterCreate(user, dataHolder, persistedService, "instId")).thenThrow(new ByActionStatusComponentException(ActionStatus.GENERAL_ERROR)); + testInstance.mergeComponentUserOrigData(user, dataHolder, new Service(), "newContainerId", "instId"); } private void assertComponentFilter(ComponentParametersView value) { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstancePropsAndInputsMergeTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstancePropsAndInputsMergeTest.java index 87ca45075c..925f89b5eb 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstancePropsAndInputsMergeTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstancePropsAndInputsMergeTest.java @@ -23,12 +23,24 @@ package org.openecomp.sdc.be.components.merge.instance; import fj.data.Either; import org.junit.Before; import org.junit.Test; -import org.mockito.*; +import org.mockito.ArgumentCaptor; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; import org.openecomp.sdc.be.components.utils.ObjectGenerator; import org.openecomp.sdc.be.components.utils.ResourceBuilder; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.ComponentInstanceInput; +import org.openecomp.sdc.be.model.ComponentInstanceProperty; +import org.openecomp.sdc.be.model.ComponentParametersView; +import org.openecomp.sdc.be.model.InputDefinition; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.Service; +import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.exception.ResponseFormat; @@ -37,7 +49,9 @@ import java.util.List; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; -import static org.mockito.ArgumentMatchers.*; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyList; +import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.verifyZeroInteractions; import static org.mockito.Mockito.when; public class ComponentInstancePropsAndInputsMergeTest { @@ -107,33 +121,32 @@ public class ComponentInstancePropsAndInputsMergeTest { when(componentInstanceInputsMergeBL.mergeComponentInstanceInputs(oldInstInputs, oldInputs, resourceToUpdate, INSTANCE_ID1)).thenReturn(ActionStatus.OK); when(componentInstancePropertiesMergeBL.mergeComponentInstanceProperties(oldInstProps, oldInputs, resourceToUpdate, INSTANCE_ID1)).thenReturn(ActionStatus.OK); when(componentInstanceInputsRedeclareHandler.redeclareComponentInputsForInstance(resourceToUpdate, INSTANCE_ID1, currInstanceOriginType, oldInputs)).thenReturn(ActionStatus.OK); - Either<Component, ResponseFormat> mergeResult = testInstance.mergeDataAfterCreate(USER, dataForMergeHolder, resourceToUpdate, INSTANCE_ID1); - assertEquals(mergeResult.left().value(), resourceToUpdate); + Component mergeResult = testInstance.mergeDataAfterCreate(USER, dataForMergeHolder, resourceToUpdate, INSTANCE_ID1); + assertEquals(mergeResult, resourceToUpdate); assertComponentFilter(parametersViewCaptor.getValue()); } - @Test + @Test(expected = ComponentException.class) public void mergeDataAfterCreate_failedToMergeComponentInstanceInputs() throws Exception { ResponseFormat errorResponse = new ResponseFormat(); when(componentsUtils.getResponseFormat(ActionStatus.GENERAL_ERROR)).thenReturn(errorResponse); when(componentInstanceInputsMergeBL.mergeComponentInstanceInputs(anyList(), anyList(), any(Component.class), anyString())).thenReturn(ActionStatus.GENERAL_ERROR); - Either<Component, ResponseFormat> mergeResult = testInstance.mergeDataAfterCreate(USER, new DataForMergeHolder(), new Service(), "inst1"); - assertEquals(errorResponse, mergeResult.right().value()); + testInstance.mergeDataAfterCreate(USER, new DataForMergeHolder(), new Service(), "inst1"); verifyZeroInteractions(componentInstanceInputsRedeclareHandler, componentInstancePropertiesMergeBL, toscaOperationFacade); } - @Test + @Test(expected = ComponentException.class) public void mergeDataAfterCreate_failedToMergeComponentInstProps() throws Exception { ResponseFormat errorResponse = new ResponseFormat(); when(componentInstanceInputsMergeBL.mergeComponentInstanceInputs(anyList(), anyList(), any(Component.class), anyString())).thenReturn(ActionStatus.OK); when(componentInstancePropertiesMergeBL.mergeComponentInstanceProperties(anyList(), anyList(), any(Component.class), anyString())).thenReturn(ActionStatus.GENERAL_ERROR); when(componentsUtils.getResponseFormat(ActionStatus.GENERAL_ERROR)).thenReturn(errorResponse); - Either<Component, ResponseFormat> mergeResult = testInstance.mergeDataAfterCreate(USER, new DataForMergeHolder(), new Service(), "inst1"); - assertEquals(errorResponse, mergeResult.right().value()); + testInstance.mergeDataAfterCreate(USER, new DataForMergeHolder(), new Service(), "inst1"); verifyZeroInteractions(componentInstanceInputsRedeclareHandler, toscaOperationFacade); } - @Test + + @Test(expected = ComponentException.class) public void mergeDataAfterCreate_mergeInputs_FailedToFetchResource() throws Exception { ResponseFormat errorResponse = new ResponseFormat(); when(componentInstanceInputsMergeBL.mergeComponentInstanceInputs(anyList(), anyList(), any(Component.class), anyString())).thenReturn(ActionStatus.OK); @@ -143,8 +156,7 @@ public class ComponentInstancePropsAndInputsMergeTest { when(componentsUtils.getResponseFormat(ActionStatus.GENERAL_ERROR)).thenReturn(errorResponse); DataForMergeHolder dataHolder = new DataForMergeHolder(); dataHolder.setOrigComponentInputs(ObjectGenerator.buildInputs("input1", "input2")); - Either<Component, ResponseFormat> mergeResult = testInstance.mergeDataAfterCreate(USER, dataHolder, new Service(), "inst1"); - assertEquals(errorResponse, mergeResult.right().value()); + testInstance.mergeDataAfterCreate(USER, dataHolder, new Service(), "inst1"); verifyZeroInteractions(componentInstanceInputsRedeclareHandler); } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceRelationMergeTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceRelationMergeTest.java index 0472553055..9c3a5a4256 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceRelationMergeTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceRelationMergeTest.java @@ -29,6 +29,7 @@ import org.mockito.Captor; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; import org.openecomp.sdc.be.components.impl.utils.ExceptionUtils; import org.openecomp.sdc.be.components.merge.utils.MergeInstanceUtils; import org.openecomp.sdc.be.components.utils.GroupDefinitionBuilder; @@ -37,17 +38,37 @@ import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.CapabilityDefinition; +import org.openecomp.sdc.be.model.CapabilityRequirementRelationship; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.ComponentInstance; +import org.openecomp.sdc.be.model.GroupDefinition; +import org.openecomp.sdc.be.model.RelationshipImpl; +import org.openecomp.sdc.be.model.RelationshipInfo; +import org.openecomp.sdc.be.model.RequirementCapabilityRelDef; +import org.openecomp.sdc.be.model.RequirementDefinition; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.Service; +import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.exception.ResponseFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; import java.util.stream.IntStream; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.tuple; -import static org.junit.Assert.*; +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 static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -223,9 +244,9 @@ public class ComponentInstanceRelationMergeTest { when(toscaOperationFacade.getToscaElement("SRV1.VF1")).thenReturn(Either.left(newInstanceOriginVf)); when(dataHolder.getContainerRelationsMergeInfo()).thenReturn(relationsMergeInfo); - when(toscaOperationFacade.associateResourceInstances(Mockito.anyString(), Mockito.anyList())).thenReturn(StorageOperationStatus.OK); - Either<Component, ResponseFormat> mergeResult = compInstanceRelationMerge.mergeDataAfterCreate(user, dataHolder, updatedContainerComponent, "SRV1.VF1.VFI_2"); - assertTrue(mergeResult.isLeft()); + when(toscaOperationFacade.associateResourceInstances(any(), Mockito.anyString(), Mockito.anyList())).thenReturn(Either.left(resourceInstancesRelations)); + Component mergeResult = compInstanceRelationMerge.mergeDataAfterCreate(user, dataHolder, updatedContainerComponent, "SRV1.VF1.VFI_2"); + assertTrue(mergeResult != null); List<RequirementCapabilityRelDef> relations = updatedContainerComponent.getComponentInstancesRelations(); assertThat(relations) .containsExactlyInAnyOrder(requirementDef1, capabilityDef2, capabilityDef3) @@ -237,7 +258,7 @@ public class ComponentInstanceRelationMergeTest { } - @Test + @Test(expected = ComponentException.class) public void testMergeDataAfterCreate_FailedToAssociateResourceInstances() { Resource vf = new Resource(); @@ -277,15 +298,13 @@ public class ComponentInstanceRelationMergeTest { List<RequirementCapabilityRelDef> resourceInstancesRelations = new ArrayList<>(); updatedContainerComponent.setComponentInstancesRelations(resourceInstancesRelations); - when(toscaOperationFacade.associateResourceInstances(Mockito.anyString(), Mockito.anyList())).thenReturn(StorageOperationStatus.GENERAL_ERROR); + when(toscaOperationFacade.associateResourceInstances(any(), Mockito.anyString(), Mockito.anyList())).thenReturn(Either.right(StorageOperationStatus.GENERAL_ERROR)); when(componentsUtils.convertFromStorageResponse(Mockito.any())).thenReturn(ActionStatus.GENERAL_ERROR); - ResponseFormat expectedRresponseFormat = new ResponseFormat(); - when(componentsUtils.getResponseFormat(ActionStatus.GENERAL_ERROR, updatedContainerComponent.getUniqueId())).thenReturn(expectedRresponseFormat ); + ResponseFormat expectedResponseFormat = new ResponseFormat(); + when(componentsUtils.getResponseFormat(ActionStatus.GENERAL_ERROR, updatedContainerComponent.getUniqueId())).thenReturn(expectedResponseFormat ); - Either<Component, ResponseFormat> result = compInstanceRelationMerge.mergeDataAfterCreate(user, dataHolder, updatedContainerComponent, "SRV1.VF1.VFI_2"); - assertTrue(result.isRight()); - assertEquals(expectedRresponseFormat, result.right().value()); + compInstanceRelationMerge.mergeDataAfterCreate(user, dataHolder, updatedContainerComponent, "SRV1.VF1.VFI_2"); } @Test @@ -302,9 +321,8 @@ public class ComponentInstanceRelationMergeTest { when(dataHolder.getContainerRelationsMergeInfo()).thenReturn(relationsMergeInfo); - Either<Component, ResponseFormat> result = compInstanceRelationMerge.mergeDataAfterCreate(user, dataHolder, updatedContainerComponent, "SRV1.VF1.VFI_2"); - assertTrue(result.isLeft()); - assertEquals(updatedContainerComponent, result.left().value()); + Component result = compInstanceRelationMerge.mergeDataAfterCreate(user, dataHolder, updatedContainerComponent, "SRV1.VF1.VFI_2"); + assertEquals(updatedContainerComponent, result); } @Test @@ -347,12 +365,12 @@ public class ComponentInstanceRelationMergeTest { List<RequirementCapabilityRelDef> resourceInstancesRelations = new ArrayList<>(); updatedContainerComponent.setComponentInstancesRelations(resourceInstancesRelations); - when(toscaOperationFacade.associateResourceInstances(Mockito.anyString(), Mockito.anyList())).thenReturn(StorageOperationStatus.OK); + when(toscaOperationFacade.associateResourceInstances(any(),Mockito.anyString(), Mockito.anyList())).thenReturn(Either.left(resourceInstancesRelations)); compInstanceRelationMerge.mergeDataAfterCreate(user, dataHolder, updatedContainerComponent, "SRV1.VF1.VFI_2"); verify(dataHolder).getContainerRelationsMergeInfo(); - verify(toscaOperationFacade).associateResourceInstances(Mockito.anyString(), Mockito.anyList()); + verify(toscaOperationFacade).associateResourceInstances(any(), Mockito.anyString(), Mockito.anyList()); List<RequirementCapabilityRelDef> relations = updatedContainerComponent.getComponentInstancesRelations(); assertEquals("Expected 2 relations", 2, relations.size()); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/DataForMergeHolderTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/DataForMergeHolderTest.java index 70f377c0e2..ac70ae8957 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/DataForMergeHolderTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/DataForMergeHolderTest.java @@ -21,7 +21,12 @@ package org.openecomp.sdc.be.components.merge.instance; import org.junit.Test; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.ArtifactDefinition; +import org.openecomp.sdc.be.model.CapabilityDefinition; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.ComponentInstanceInput; +import org.openecomp.sdc.be.model.ComponentInstanceProperty; +import org.openecomp.sdc.be.model.InputDefinition; import java.util.LinkedList; import java.util.List; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ExternalRefsMergeBLTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ExternalRefsMergeBLTest.java index 64afbb4589..767fb6a5cd 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ExternalRefsMergeBLTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/instance/ExternalRefsMergeBLTest.java @@ -32,12 +32,19 @@ import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ExternalReferencesOperation; import javax.annotation.Resource; -import java.util.*; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyZeroInteractions; +import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) public class ExternalRefsMergeBLTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/path/ComponentInstanceForwardingPathMergeTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/path/ComponentInstanceForwardingPathMergeTest.java index 361c2f730b..8a575629af 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/path/ComponentInstanceForwardingPathMergeTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/path/ComponentInstanceForwardingPathMergeTest.java @@ -35,7 +35,6 @@ import org.openecomp.sdc.be.model.Service; import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.common.api.UserRoleEnum; -import org.openecomp.sdc.exception.ResponseFormat; import java.util.Set; @@ -71,11 +70,11 @@ public class ComponentInstanceForwardingPathMergeTest extends BaseForwardingPath testInstance.saveDataBeforeMerge(dataHolder, service, nodeACI, newNodeAC); assertEquals(nodeACI.getName(), dataHolder.getOrigComponentInstId()); - Either<Component, ResponseFormat> componentResponseFormatEither = testInstance + Component componentResponseFormatEither = testInstance .mergeDataAfterCreate(user, dataHolder, newNodeAC, "3344"); assertNotNull(componentResponseFormatEither); - assertTrue(componentResponseFormatEither.isLeft()); - assertEquals(newNodeAC, componentResponseFormatEither.left().value()); + assertTrue(componentResponseFormatEither != null); + assertEquals(newNodeAC, componentResponseFormatEither); } @Test @@ -84,7 +83,7 @@ public class ComponentInstanceForwardingPathMergeTest extends BaseForwardingPath .findForwardingPathNamesToDeleteOnComponentInstanceDeletion(service, nodeACI.getUniqueId()); nodeACI.getCapabilities().clear(); newNodeAC.getCapabilities().clear(); - Either<Set<String>, ResponseFormat> returnValue = Either.left(forwardingPathNamesToDeleteOnComponentInstanceDeletion); + Set<String> returnValue = forwardingPathNamesToDeleteOnComponentInstanceDeletion; when(serviceBusinessLogic.deleteForwardingPaths(any(), any(), any(), anyBoolean())) .thenReturn(returnValue); when(toscaOperationFacade.getToscaFullElement(any())).thenReturn(Either.left(newNodeAC)); @@ -95,17 +94,16 @@ public class ComponentInstanceForwardingPathMergeTest extends BaseForwardingPath testInstance.saveDataBeforeMerge(dataHolder, service, nodeACI, newNodeAC); assertEquals(nodeACI.getName(), dataHolder.getOrigComponentInstId()); - Either<Component, ResponseFormat> componentResponseFormatEither = testInstance + Component componentResponseFormatEither = testInstance .mergeDataAfterCreate(user, dataHolder, service, newNodeA); assertNotNull(componentResponseFormatEither); - assertTrue(componentResponseFormatEither.isLeft()); - assertEquals(0, ((Service) componentResponseFormatEither.left().value()).getForwardingPaths().size()); + assertEquals(0, ((Service) componentResponseFormatEither).getForwardingPaths().size()); } @Test public void mergeShouldUpdate() { when(serviceBusinessLogic.updateForwardingPath(any(), any(), any(), anyBoolean())) - .then(invocationOnMock -> Either.left(service)); + .then(invocationOnMock -> service); when(toscaOperationFacade.getToscaFullElement(any())).thenReturn(Either.left(newNodeAC)); testInstance.saveDataBeforeMerge(dataHolder, service, nodeACI, newNodeAC); assertEquals(nodeACI.getName(), dataHolder.getOrigComponentInstId()); @@ -114,10 +112,8 @@ public class ComponentInstanceForwardingPathMergeTest extends BaseForwardingPath service.getComponentInstances().remove(nodeACI); service.getComponentInstances().add(newNodeACI); - Either<Component, ResponseFormat> componentResponseFormatEither = testInstance - .mergeDataAfterCreate(user, dataHolder, service, newNodeA); - assertNotNull(componentResponseFormatEither); - assertTrue(componentResponseFormatEither.isLeft()); + Component component = testInstance.mergeDataAfterCreate(user, dataHolder, service, newNodeA); + assertNotNull(component); } @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/property/ComponentInstanceInputsMergeBLTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/property/ComponentInstanceInputsMergeBLTest.java index d5598770d3..429b2d7320 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/property/ComponentInstanceInputsMergeBLTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/property/ComponentInstanceInputsMergeBLTest.java @@ -41,7 +41,9 @@ import java.util.Collections; import java.util.List; import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoMoreInteractions; +import static org.mockito.Mockito.when; public class ComponentInstanceInputsMergeBLTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/property/ComponentInstancePropertiesMergeBLTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/property/ComponentInstancePropertiesMergeBLTest.java index d97149f88f..77cb7613e9 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/property/ComponentInstancePropertiesMergeBLTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/property/ComponentInstancePropertiesMergeBLTest.java @@ -39,7 +39,9 @@ import java.util.Collections; import java.util.List; import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoMoreInteractions; +import static org.mockito.Mockito.when; public class ComponentInstancePropertiesMergeBLTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/property/PropertyDataValueMergeBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/property/PropertyDataValueMergeBusinessLogicTest.java index 44824cb578..def3f8cc69 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/property/PropertyDataValueMergeBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/property/PropertyDataValueMergeBusinessLogicTest.java @@ -39,7 +39,11 @@ import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache; import org.openecomp.sdc.be.model.tosca.ToscaPropertyType; import java.io.IOException; -import java.util.*; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -299,9 +303,20 @@ public class PropertyDataValueMergeBusinessLogicTest { testInstance.mergePropertyValue(oldProp, newProp, Collections.emptyList()); assertEquals("lprop", "[{\"prop2\":{\"prop4\":45,\"prop3\":true},\"prop1\":\"val1\"},{\"prop2\":{\"prop3\":false},\"prop1\":\"val2\"}]", newProp.getValue()); } - - - + + @Test + public void mergeListOfMapsWithJsonAsInnerType() throws Exception { + PropertyDataDefinition oldProp = createProp("value_spec", "list", "json", "[{\"prop1\":\"val1\", \"prop2\":\"prop3\",\"prop4\":44}]"); + PropertyDataDefinition newProp = createProp("value_spec", "list", "json", "[{\"prop22\":{\"prop221\":45,\"prop222\":\"val222\",\"prop223\":\"false\"}}]"); + + Map<String, DataTypeDefinition> dataTypes = buildDataTypes(); + when(applicationDataTypeCache.getAll()).thenReturn(Either.left(dataTypes)); + testInstance.mergePropertyValue(oldProp, newProp, Collections.emptyList()); + assertEquals("value_spec", "[{\"prop22\":{\"prop223\":\"false\",\"prop221\":45,\"prop222\":\"val222\"}}]", newProp.getValue()); + } + + + /* * Old Property: New Property: Expected: * { { { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/resource/ResourceDataMergeBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/resource/ResourceDataMergeBusinessLogicTest.java index 7c4ccb828c..7f47a01c0e 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/resource/ResourceDataMergeBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/resource/ResourceDataMergeBusinessLogicTest.java @@ -34,7 +34,9 @@ import org.openecomp.sdc.be.model.Resource; import static java.util.Arrays.asList; import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyZeroInteractions; +import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) public class ResourceDataMergeBusinessLogicTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/utils/MergeInstanceUtilsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/utils/MergeInstanceUtilsTest.java index 5663480b0c..381aced39b 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/utils/MergeInstanceUtilsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/merge/utils/MergeInstanceUtilsTest.java @@ -34,7 +34,11 @@ import org.openecomp.sdc.be.components.utils.ServiceBuilder; import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.ComponentInstance; +import org.openecomp.sdc.be.model.GroupDefinition; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.Service; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.StorageException; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/BaseForwardingPathTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/BaseForwardingPathTest.java index 084c10c167..e2cba1ab30 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/BaseForwardingPathTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/BaseForwardingPathTest.java @@ -28,19 +28,20 @@ import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; import org.openecomp.sdc.be.components.impl.ServiceBusinessLogic; import org.openecomp.sdc.be.components.path.beans.JanusGraphTestSetup; import org.openecomp.sdc.be.components.path.utils.GraphTestUtils; +import org.openecomp.sdc.be.components.validation.service.ServiceValidator; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.janusgraph.JanusGraphClient; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; -import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.datatypes.elements.ForwardingPathDataDefinition; import org.openecomp.sdc.be.datatypes.elements.ForwardingPathElementDataDefinition; import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum; import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields; import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; -import org.openecomp.sdc.be.model.DistributionStatusEnum; +import org.openecomp.sdc.be.facade.operations.CatalogOperation; import org.openecomp.sdc.be.model.LifecycleStateEnum; import org.openecomp.sdc.be.model.Service; import org.openecomp.sdc.be.model.User; @@ -50,16 +51,23 @@ import org.openecomp.sdc.be.model.operations.api.IElementOperation; import org.openecomp.sdc.be.model.operations.impl.UniqueIdBuilder; import org.openecomp.sdc.be.tosca.CapabilityRequirementConverter; import org.openecomp.sdc.be.user.Role; +import org.openecomp.sdc.common.datastructure.UserContext; +import org.openecomp.sdc.common.util.ThreadLocalsHolder; import org.openecomp.sdc.common.util.ValidationUtils; import org.openecomp.sdc.exception.ResponseFormat; import org.springframework.beans.factory.annotation.Autowired; import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; +import java.util.Set; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; public abstract class BaseForwardingPathTest extends BeConfDependentTest implements ForwardingPathTestUtils { @@ -78,7 +86,10 @@ public abstract class BaseForwardingPathTest extends BeConfDependentTest impleme @Autowired protected ServiceBusinessLogic bl; + + private CatalogOperation catalogOperation = mock(CatalogOperation.class); + private ServiceValidator serviceValidator = mock(ServiceValidator.class); @Autowired protected IElementOperation elementDao; @@ -103,6 +114,11 @@ public abstract class BaseForwardingPathTest extends BeConfDependentTest impleme user.setFirstName("Jimmi"); user.setLastName("Hendrix"); user.setRole(Role.ADMIN.name()); + Set<String> userRole = new HashSet<>(); + userRole.add(user.getRole()); + UserContext userContext = new UserContext(user.getUserId(), userRole, user.getFirstName() ,user.getLastName()); + ThreadLocalsHolder.setUserContext(userContext); + bl.setServiceValidator(serviceValidator); } @@ -135,6 +151,9 @@ public abstract class BaseForwardingPathTest extends BeConfDependentTest impleme } private Service createTestService() { + when(catalogOperation.updateCatalog(any(), any())).thenReturn(ActionStatus.OK); + bl.setCatalogOperations(catalogOperation); + bl.setServiceValidator(serviceValidator); createCategory(); createServiceCategory(CATEGORY_NAME); initGraph(); @@ -153,7 +172,6 @@ public abstract class BaseForwardingPathTest extends BeConfDependentTest impleme categories.add(cd); service.setCategories(categories); service.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); - service.setDistributionStatus(DistributionStatusEnum.DISTRIBUTION_APPROVED); return service; } @@ -203,7 +221,8 @@ public abstract class BaseForwardingPathTest extends BeConfDependentTest impleme } Service createService() { - Either<Service, ResponseFormat> serviceCreateResult = bl.createService(createTestService(), user); + Either<Service, ResponseFormat> serviceCreateResult; + serviceCreateResult = bl.createService(createTestService(), user); assertTrue("Failed to create service", serviceCreateResult.isLeft()); return serviceCreateResult.left().value(); } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/BaseForwardingPathVersionChangeTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/BaseForwardingPathVersionChangeTest.java index 5f18e34852..5eca2b35a4 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/BaseForwardingPathVersionChangeTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/BaseForwardingPathVersionChangeTest.java @@ -27,7 +27,11 @@ import org.openecomp.sdc.be.datatypes.elements.ForwardingPathDataDefinition; import org.openecomp.sdc.be.datatypes.elements.ForwardingPathElementDataDefinition; import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition; import org.openecomp.sdc.be.impl.ForwardingPathUtils; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.CapabilityDefinition; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.ComponentInstance; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.Service; import java.util.Arrays; import java.util.HashMap; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathBusinessLogicTest.java index 552d5cad64..09f8848c09 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathBusinessLogicTest.java @@ -21,6 +21,7 @@ import com.google.common.collect.Sets; import fj.data.Either; import org.junit.Test; import org.junit.runner.RunWith; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; import org.openecomp.sdc.be.datatypes.elements.ForwardingPathDataDefinition; import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition; import org.openecomp.sdc.be.datatypes.enums.ComponentFieldsEnum; @@ -35,34 +36,34 @@ import java.util.HashMap; import java.util.Map; import java.util.Set; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "/paths/path-context.xml") public class ForwardingPathBusinessLogicTest extends BaseForwardingPathTest { - @Test + @Test(expected = ComponentException.class) public void shouldFailToUpdateForwardingPathSincePathDoesNotExist() { Service service = initForwardPath(); - Either<Service, ResponseFormat> serviceResponseFormatEither = bl.updateForwardingPath(FORWARDING_PATH_ID, service, user, true); - assertTrue(serviceResponseFormatEither.isRight()); + bl.updateForwardingPath(FORWARDING_PATH_ID, service, user, true); } - @Test + @Test(expected = ComponentException.class) public void shouldFailToDeleteForwardingPathSincePathDoesNotExist() { - Service service = initForwardPath(); - Either<Set<String>, ResponseFormat> serviceResponseFormatEither = bl.deleteForwardingPaths("delete_forward_test", Sets.newHashSet(FORWARDING_PATH_ID), user, true); - assertTrue(serviceResponseFormatEither.isRight()); + initForwardPath(); + bl.deleteForwardingPaths("delete_forward_test", Sets.newHashSet(FORWARDING_PATH_ID), user, true); } - @Test + @Test public void shouldSucceedCreateAndDeleteForwardingPath() { Service createdService = createService(); Service service = initForwardPath(); assertNotNull(service); - Either<Service, ResponseFormat> serviceResponseFormatEither = bl.createForwardingPath(createdService.getUniqueId(), service, user, true); - assertTrue(serviceResponseFormatEither.isLeft()); - Map<String, ForwardingPathDataDefinition> forwardingPathsMap = serviceResponseFormatEither.left().value().getForwardingPaths(); + Service serviceResponseFormatEither = bl.createForwardingPath(createdService.getUniqueId(), service, user, true); + assertTrue(serviceResponseFormatEither != null); + Map<String, ForwardingPathDataDefinition> forwardingPathsMap = serviceResponseFormatEither.getForwardingPaths(); Set<String> pathIds = forwardingPathsMap.keySet(); assertEquals(1, pathIds.size()); String toscaResourceName = forwardingPathsMap.values().iterator().next().getToscaResourceName(); @@ -87,7 +88,7 @@ public class ForwardingPathBusinessLogicTest extends BaseForwardingPathTest { service.getForwardingPaths().clear(); service.getForwardingPaths().put(forwardingPathDataDefinitionUpdate.getUniqueId(), forwardingPathDataDefinitionUpdate); serviceResponseFormatEither = bl.updateForwardingPath(createdService.getUniqueId(), service, user, true); - assertTrue(serviceResponseFormatEither.isLeft()); + assertTrue(serviceResponseFormatEither != null); // make sure changes were applied uiResaponse = bl.getComponentDataFilteredByParams(createdService.getUniqueId(), user, Lists.newArrayList(ComponentFieldsEnum.FORWARDING_PATHS.getValue())); @@ -98,10 +99,10 @@ public class ForwardingPathBusinessLogicTest extends BaseForwardingPathTest { assertEquals(newProtocol, updatedData.getProtocol()); assertTrue(updatedData.getPathElements().isEmpty()); - Service createdData = serviceResponseFormatEither.left().value(); + Service createdData = serviceResponseFormatEither; Set<String> paths = createdData.getForwardingPaths().keySet(); - Either<Set<String>, ResponseFormat> setResponseFormatEither = bl.deleteForwardingPaths(createdService.getUniqueId(), paths, user, true); - assertTrue(setResponseFormatEither.isLeft()); + Set<String> setResponseFormatEither = bl.deleteForwardingPaths(createdService.getUniqueId(), paths, user, true); + assertTrue(setResponseFormatEither != null); // nothing to return now uiResaponse = bl.getComponentDataFilteredByParams(createdService.getUniqueId(), user, Lists.newArrayList(ComponentFieldsEnum.COMPONENT_INSTANCES.getValue(),ComponentFieldsEnum.FORWARDING_PATHS.getValue())); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathDeleteCITest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathDeleteCITest.java index 30964d8b76..efef9bd799 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathDeleteCITest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathDeleteCITest.java @@ -32,7 +32,10 @@ import java.util.HashMap; import java.util.Map; import java.util.Set; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; public class ForwardingPathDeleteCITest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathRenameNodeTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathRenameNodeTest.java index 476f0d68a1..886cda05da 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathRenameNodeTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathRenameNodeTest.java @@ -16,17 +16,18 @@ package org.openecomp.sdc.be.components.path; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - import com.google.common.collect.Sets; -import java.util.Set; -import java.util.UUID; import org.junit.Test; import org.openecomp.sdc.be.datatypes.elements.ForwardingPathDataDefinition; import org.openecomp.sdc.be.impl.ForwardingPathUtils; +import java.util.Set; +import java.util.UUID; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + public class ForwardingPathRenameNodeTest implements ForwardingPathTestUtils{ @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathToscaUtilTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathToscaUtilTest.java index b83084896d..ed0d4dde02 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathToscaUtilTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathToscaUtilTest.java @@ -23,17 +23,30 @@ import org.junit.runner.RunWith; import org.openecomp.sdc.be.datatypes.elements.ForwardingPathDataDefinition; import org.openecomp.sdc.be.datatypes.elements.ForwardingPathElementDataDefinition; import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.CapabilityDefinition; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.ComponentInstance; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.Service; import org.openecomp.sdc.be.tosca.model.ToscaNodeTemplate; import org.openecomp.sdc.be.tosca.model.ToscaTemplateRequirement; import org.openecomp.sdc.be.tosca.utils.ForwardingPathToscaUtil; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import static org.junit.Assert.assertEquals; -import static org.openecomp.sdc.be.tosca.utils.ForwardingPathToscaUtil.*; +import static org.openecomp.sdc.be.tosca.utils.ForwardingPathToscaUtil.FORWARDER; +import static org.openecomp.sdc.be.tosca.utils.ForwardingPathToscaUtil.FORWARDS_TO_TOSCA_NAME; +import static org.openecomp.sdc.be.tosca.utils.ForwardingPathToscaUtil.PORTS_RANGE; +import static org.openecomp.sdc.be.tosca.utils.ForwardingPathToscaUtil.PROTOCOL; +import static org.openecomp.sdc.be.tosca.utils.ForwardingPathToscaUtil.addForwardingPaths; /** * @author KATYR, ORENK diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathValidatorTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathValidatorTest.java index bfeb2ec6d5..526f9e58f5 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathValidatorTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/ForwardingPathValidatorTest.java @@ -30,6 +30,7 @@ import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.openecomp.sdc.be.components.impl.ResponseFormatManager; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; import org.openecomp.sdc.be.datatypes.elements.ForwardingPathDataDefinition; import org.openecomp.sdc.be.model.Component; import org.openecomp.sdc.be.model.ComponentParametersView; @@ -41,7 +42,6 @@ import org.openecomp.sdc.exception.ResponseFormat; import java.util.Collection; import java.util.Set; -import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.when; @@ -75,72 +75,58 @@ public class ForwardingPathValidatorTest implements ForwardingPathTestUtils { @Test public void testValidForwardingPathName(){ - Collection<ForwardingPathDataDefinition> paths = createData("pathName", "http", "8285", "pathName"); - Either<Boolean, ResponseFormat> booleanResponseFormatEither = test.validateForwardingPaths(paths, SERVICE_ID, false); - assertTrue(booleanResponseFormatEither.isLeft()); + test.validateForwardingPaths(paths, SERVICE_ID, false); } - @Test + @Test(expected = ComponentException.class) public void testEmptyForwardingPathName(){ Collection<ForwardingPathDataDefinition> paths = createData("", "protocol", "8285", "name1"); - Either<Boolean, ResponseFormat> booleanResponseFormatEither = test - .validateForwardingPaths(paths, SERVICE_ID, false); - assertTrue(booleanResponseFormatEither.isRight()); + test.validateForwardingPaths(paths, SERVICE_ID, false); } - @Test + @Test(expected = ComponentException.class) public void testLongForwardingPathName(){ String pathName = "Failed to execute goal on project catalog-be: Could not resolve dependencies for project \n" + "org.openecomp.sdc:catalog-be:war:1.1.0-SNAPSHOT: Failed to collect dependencies at \n" + "org.openecomp.sdc.common:openecomp-sdc-artifact-generator-api:jar:1802.0.1.167: "; Collection<ForwardingPathDataDefinition> paths = createData(pathName, "http", "port", "name1"); - Either<Boolean, ResponseFormat> booleanResponseFormatEither = test - .validateForwardingPaths(paths, SERVICE_ID, false); - assertTrue(booleanResponseFormatEither.isRight()); + test.validateForwardingPaths(paths, SERVICE_ID, false); } @Test public void testUniqueForwardingPathNameUpdateName(){ - Collection<ForwardingPathDataDefinition> paths = createData("pathName4", "httpfd", "82df85", "name1"); - Either<Boolean, ResponseFormat> booleanResponseFormatEither = test.validateForwardingPaths(paths, SERVICE_ID, true); - assertTrue(booleanResponseFormatEither.isLeft()); - + test.validateForwardingPaths(paths, SERVICE_ID, true); } @Test public void testUniqueForwardingPathNameUpdatePort(){ - Collection<ForwardingPathDataDefinition> paths = createData("pathName3", "httpfd", "82df85", "name1"); - Either<Boolean, ResponseFormat> booleanResponseFormatEither = test.validateForwardingPaths(paths, SERVICE_ID, true); - assertTrue(booleanResponseFormatEither.isLeft()); - + test.validateForwardingPaths(paths, SERVICE_ID, true); } - @Test + @Test(expected = ComponentException.class) public void testLongForwardingPathPortNumber(){ String port = "Failed to execute goal on project catalog-be: Could not resolve dependencies for project \n" + "org.openecomp.sdc:catalog-be:war:1.1.0-SNAPSHOT: Failed to collect dependencies at \n" + "org.openecomp.sdc.common:openecomp-sdc-artifact-generator-api:jar:1802.0.1.167: "; Collection<ForwardingPathDataDefinition> paths = createData("pathName", "http", port, "name1"); - Either<Boolean, ResponseFormat> booleanResponseFormatEither = test.validateForwardingPaths(paths, SERVICE_ID, false); - assertTrue(booleanResponseFormatEither.isRight()); + test.validateForwardingPaths(paths, SERVICE_ID, false); } - @Test + @Test(expected = ComponentException.class) public void testLongForwardingPathProtocol(){ String protocol = "Failed to execute goal on project catalog-be: Could not resolve dependencies for project \n" + "org.openecomp.sdc:catalog-be:war:1.1.0-SNAPSHOT: Failed to collect dependencies at \n" + "org.openecomp.sdc.common:openecomp-sdc-artifact-generator-api:jar:1802.0.1.167: "; Collection<ForwardingPathDataDefinition> paths = createData("pathName", protocol, "port", "name1"); - Either<Boolean, ResponseFormat> booleanResponseFormatEither = test.validateForwardingPaths(paths, SERVICE_ID, false); - assertTrue(booleanResponseFormatEither.isRight()); + test.validateForwardingPaths(paths, SERVICE_ID, false); } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/beans/DistributionEngineMock.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/beans/DistributionEngineMock.java index 47aaca5a18..8ec71ad870 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/beans/DistributionEngineMock.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/beans/DistributionEngineMock.java @@ -28,6 +28,8 @@ import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.resources.data.OperationalEnvironmentEntry; +import java.util.List; + public class DistributionEngineMock implements IDistributionEngine { @Override public boolean isActive() { @@ -74,4 +76,9 @@ public class DistributionEngineMock implements IDistributionEngine { return null; } + @Override + public OperationalEnvironmentEntry getEnvironmentByDmaapUebAddress(List<String> dmaapUebAddress) { + return null; + } + } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/beans/FeatureToggleDaoMock.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/beans/FeatureToggleDaoMock.java new file mode 100644 index 0000000000..a7f7a7671c --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/beans/FeatureToggleDaoMock.java @@ -0,0 +1,57 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * 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.openecomp.sdc.be.components.path.beans; + +import org.openecomp.sdc.be.dao.cassandra.CassandraClient; +import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus; +import org.openecomp.sdc.be.dao.cassandra.FeatureToggleDao; +import org.openecomp.sdc.be.resources.data.togglz.FeatureToggleEvent; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import java.util.List; + +@Component("feature_toggle_dao") +public class FeatureToggleDaoMock extends FeatureToggleDao { + + public FeatureToggleDaoMock(CassandraClient cassandraClient) { + super(cassandraClient); + } + + @PostConstruct + public void init() {} + + public CassandraOperationStatus save(FeatureToggleEvent featureToggleEvent) { + return null; + } + + public FeatureToggleEvent get(String feature_name) { + return null; + } + + public CassandraOperationStatus delete(String feature_name) { + return null; + } + + public List<FeatureToggleEvent> getAllFeatures() { + return null; + } +} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/beans/ForwardingPathValidatorMock.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/beans/ForwardingPathValidatorMock.java index ded19536c7..65b548f506 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/beans/ForwardingPathValidatorMock.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/beans/ForwardingPathValidatorMock.java @@ -20,17 +20,15 @@ package org.openecomp.sdc.be.components.path.beans; -import fj.data.Either; import org.openecomp.sdc.be.components.path.ForwardingPathValidator; import org.openecomp.sdc.be.datatypes.elements.ForwardingPathDataDefinition; -import org.openecomp.sdc.exception.ResponseFormat; import java.util.Collection; public class ForwardingPathValidatorMock extends ForwardingPathValidator { @Override - public Either<Boolean, ResponseFormat> validateForwardingPaths(Collection<ForwardingPathDataDefinition> paths, String serviceId, - boolean isUpdate) { - return Either.left(Boolean.TRUE); + public void validateForwardingPaths(Collection<ForwardingPathDataDefinition> paths, String serviceId, + boolean isUpdate) { + //return Either.left(Boolean.TRUE); } } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/beans/InMemoryJanusGraphClient.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/beans/InMemoryJanusGraphClient.java index 56920c083d..26721d45ab 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/beans/InMemoryJanusGraphClient.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/beans/InMemoryJanusGraphClient.java @@ -21,24 +21,28 @@ package org.openecomp.sdc.be.components.path.beans; -import org.janusgraph.core.*; +import fj.data.Either; +import org.apache.tinkerpop.gremlin.structure.Vertex; +import org.janusgraph.core.InvalidElementException; +import org.janusgraph.core.InvalidIDException; +import org.janusgraph.core.JanusGraph; +import org.janusgraph.core.JanusGraphConfigurationException; +import org.janusgraph.core.JanusGraphFactory; +import org.janusgraph.core.PropertyKey; +import org.janusgraph.core.QueryException; +import org.janusgraph.core.SchemaViolationException; import org.janusgraph.core.schema.ConsistencyModifier; import org.janusgraph.core.schema.JanusGraphIndex; import org.janusgraph.core.schema.JanusGraphManagement; -import org.janusgraph.core.util.JanusGraphCleanup; import org.janusgraph.diskstorage.BackendException; import org.janusgraph.diskstorage.ResourceUnavailableException; import org.janusgraph.diskstorage.locking.PermanentLockingException; import org.janusgraph.graphdb.database.idassigner.IDPoolExhaustedException; -import fj.data.Either; -import org.apache.tinkerpop.gremlin.structure.Vertex; -import org.openecomp.sdc.be.dao.JanusGraphClientStrategy; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphClient; import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary; -import org.openecomp.sdc.be.dao.janusgraph.JanusGraphClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/beans/JanusGraphTestSetup.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/beans/JanusGraphTestSetup.java index e24f461100..c6608f77b3 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/beans/JanusGraphTestSetup.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/beans/JanusGraphTestSetup.java @@ -20,14 +20,14 @@ package org.openecomp.sdc.be.components.path.beans; -import org.janusgraph.core.PropertyKey; +import org.apache.tinkerpop.gremlin.structure.Edge; +import org.apache.tinkerpop.gremlin.structure.Vertex; import org.janusgraph.core.JanusGraph; import org.janusgraph.core.JanusGraphQuery; +import org.janusgraph.core.PropertyKey; import org.janusgraph.core.schema.ConsistencyModifier; import org.janusgraph.core.schema.JanusGraphIndex; import org.janusgraph.core.schema.JanusGraphManagement; -import org.apache.tinkerpop.gremlin.structure.Edge; -import org.apache.tinkerpop.gremlin.structure.Vertex; import org.openecomp.sdc.be.dao.graph.datatype.ActionEnum; import org.openecomp.sdc.be.dao.graph.datatype.GraphElementTypeEnum; import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/utils/GraphTestUtils.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/utils/GraphTestUtils.java index 0ae1d8c80c..be20beb595 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/utils/GraphTestUtils.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/path/utils/GraphTestUtils.java @@ -20,10 +20,10 @@ package org.openecomp.sdc.be.components.path.utils; -import org.janusgraph.core.JanusGraph; -import org.janusgraph.core.JanusGraphVertex; import fj.data.Either; import org.apache.tinkerpop.gremlin.structure.io.IoCore; +import org.janusgraph.core.JanusGraph; +import org.janusgraph.core.JanusGraphVertex; import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/ComponentInstanceInputPropertyDeceleratorTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/ComponentInstanceInputPropertyDeceleratorTest.java index f7b0337b21..538e4652f6 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/ComponentInstanceInputPropertyDeceleratorTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/ComponentInstanceInputPropertyDeceleratorTest.java @@ -30,7 +30,11 @@ import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.ComponentInstance; +import org.openecomp.sdc.be.model.ComponentInstanceInput; +import org.openecomp.sdc.be.model.InputDefinition; +import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/ComponentInstanceInputPropertyDeclaratorTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/ComponentInstanceInputPropertyDeclaratorTest.java index 7d82624e5f..6b5d41d5ae 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/ComponentInstanceInputPropertyDeclaratorTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/ComponentInstanceInputPropertyDeclaratorTest.java @@ -16,21 +16,7 @@ package org.openecomp.sdc.be.components.property; -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatExceptionOfType; -import static org.mockito.ArgumentMatchers.anyMap; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.when; -import static org.openecomp.sdc.be.MockGenerator.mockComponentUtils; -import static org.openecomp.sdc.be.MockGenerator.mockExceptionUtils; - import fj.data.Either; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -58,6 +44,21 @@ import org.openecomp.sdc.be.model.operations.StorageException; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.model.operations.impl.PropertyOperation; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import static org.mockito.ArgumentMatchers.anyMap; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.when; +import static org.openecomp.sdc.be.MockGenerator.mockComponentUtils; +import static org.openecomp.sdc.be.MockGenerator.mockExceptionUtils; + @RunWith(MockitoJUnitRunner.class) public class ComponentInstanceInputPropertyDeclaratorTest extends PropertyDeclaratorTestBase { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/ComponentInstancePropertyDeclaratorTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/ComponentInstancePropertyDeclaratorTest.java index 883a7f3866..07deb6a2de 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/ComponentInstancePropertyDeclaratorTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/ComponentInstancePropertyDeclaratorTest.java @@ -16,24 +16,7 @@ package org.openecomp.sdc.be.components.property; -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.verifyZeroInteractions; -import static org.mockito.Mockito.when; -import static org.openecomp.sdc.be.components.property.CapabilityTestUtils.createCapabilityDefinition; -import static org.openecomp.sdc.be.components.property.CapabilityTestUtils.createProperties; - import fj.data.Either; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; -import java.util.stream.Stream; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; @@ -64,6 +47,24 @@ import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.model.operations.impl.PropertyOperation; import org.openecomp.sdc.be.model.operations.impl.UniqueIdBuilder; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.verifyZeroInteractions; +import static org.mockito.Mockito.when; +import static org.openecomp.sdc.be.components.property.CapabilityTestUtils.createCapabilityDefinition; +import static org.openecomp.sdc.be.components.property.CapabilityTestUtils.createProperties; + @RunWith(MockitoJUnitRunner.class) public class ComponentInstancePropertyDeclaratorTest extends PropertyDeclaratorTestBase { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/ComponentPropertyDeclaratorTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/ComponentPropertyDeclaratorTest.java index c9e32e7327..057c4fba42 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/ComponentPropertyDeclaratorTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/ComponentPropertyDeclaratorTest.java @@ -19,18 +19,7 @@ */ package org.openecomp.sdc.be.components.property; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.when; - import fj.data.Either; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Objects; -import java.util.Optional; import org.apache.commons.collections.CollectionUtils; import org.junit.Assert; import org.junit.Before; @@ -54,6 +43,18 @@ import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.model.operations.impl.PropertyOperation; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.Optional; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.when; + @RunWith(MockitoJUnitRunner.class) public class ComponentPropertyDeclaratorTest extends PropertyDeclaratorTestBase { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/ComponentPropertyToPolicyDeclaratorTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/ComponentPropertyToPolicyDeclaratorTest.java index 62541a75bb..96ba42d7b2 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/ComponentPropertyToPolicyDeclaratorTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/ComponentPropertyToPolicyDeclaratorTest.java @@ -21,13 +21,7 @@ package org.openecomp.sdc.be.components.property; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.when; - import fj.data.Either; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; @@ -45,6 +39,13 @@ import org.openecomp.sdc.be.model.Service; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.when; + @RunWith(MockitoJUnitRunner.class) public class ComponentPropertyToPolicyDeclaratorTest extends PropertyDeclaratorTestBase { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/GetInputUtilsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/GetInputUtilsTest.java index a2d7743fcd..864b032dae 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/GetInputUtilsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/GetInputUtilsTest.java @@ -16,12 +16,12 @@ package org.openecomp.sdc.be.components.property; -import static org.junit.Assert.assertTrue; - import org.junit.Before; import org.junit.Test; import org.openecomp.sdc.be.datatypes.elements.GetInputValueDataDefinition; +import static org.junit.Assert.assertTrue; + public class GetInputUtilsTest { private static final String INPUT_ID = "inputUid"; private GetInputValueDataDefinition getInput; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PolicyPropertyDeceleratorTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PolicyPropertyDeceleratorTest.java index ccb2afa48d..c029725dfe 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PolicyPropertyDeceleratorTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PolicyPropertyDeceleratorTest.java @@ -20,17 +20,7 @@ package org.openecomp.sdc.be.components.property; -import static org.assertj.core.api.Java6Assertions.assertThat; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.verifyZeroInteractions; -import static org.mockito.Mockito.when; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; - +import fj.data.Either; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -51,7 +41,16 @@ import org.openecomp.sdc.be.model.jsonjanusgraph.operations.PolicyOperation; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.model.operations.impl.PropertyOperation; -import fj.data.Either; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import static org.assertj.core.api.Java6Assertions.assertThat; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.verifyZeroInteractions; +import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PropertyConstraintsUtilsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PropertyConstraintsUtilsTest.java new file mode 100644 index 0000000000..8ac4139e62 --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PropertyConstraintsUtilsTest.java @@ -0,0 +1,158 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * 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.openecomp.sdc.be.components.property; + +import com.google.common.collect.Lists; +import org.junit.Test; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; +import org.openecomp.sdc.be.dao.api.ActionStatus; +import org.openecomp.sdc.be.model.PropertyConstraint; +import org.openecomp.sdc.be.model.PropertyDefinition; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.tosca.constraints.ConstraintType; +import org.openecomp.sdc.be.model.tosca.constraints.InRangeConstraint; +import org.openecomp.sdc.be.model.tosca.constraints.PatternConstraint; +import org.openecomp.sdc.be.model.tosca.constraints.ValidValuesConstraint; + +import java.util.List; +import java.util.Optional; + +import static org.assertj.core.api.Java6Assertions.assertThat; + +public class PropertyConstraintsUtilsTest { + + @Test + public void mergePropertiesConstraintsDeletionNotPermittedTest(){ + Resource newResource = new Resource(); + Resource oldResource = new Resource(); + + PropertyDefinition prop1 = new PropertyDefinition(); + prop1.setName("prop1"); + ValidValuesConstraint vvConst = new ValidValuesConstraint(); + vvConst.setValidValues(Lists.newArrayList("3","1","2")); + InRangeConstraint inRangeConst = new InRangeConstraint(); + PatternConstraint patternConstraint = new PatternConstraint(); + prop1.setConstraints(Lists.newArrayList(vvConst, inRangeConst, patternConstraint)); + + + PropertyDefinition prop1_update = new PropertyDefinition(); + prop1_update.setName("prop1"); + vvConst = new ValidValuesConstraint(); + vvConst.setValidValues(Lists.newArrayList("1","2")); + inRangeConst = new InRangeConstraint(); + patternConstraint = new PatternConstraint(); + prop1_update.setConstraints(Lists.newArrayList(vvConst, inRangeConst, patternConstraint)); + + List<PropertyDefinition> oldProperties = Lists.newArrayList(prop1); + List<PropertyDefinition> newProperties = Lists.newArrayList(prop1_update); + oldResource.setProperties(oldProperties); + newResource.setProperties(newProperties); + try { + PropertyConstraintsUtils.validatePropertiesConstraints(newResource, oldResource); + } catch (ComponentException e){ + assertThat(e.getActionStatus()) + .isNotNull() + .isEqualTo(ActionStatus.CANNOT_DELETE_VALID_VALUES); + + assertThat(e.getParams()) + .containsExactlyInAnyOrder(ConstraintType.VALID_VALUES.name(),Lists.newArrayList("3").toString()); + + } + } + + @Test + public void mergePropertiesConstraintsAdditionPermittedTest(){ + Resource newResource = new Resource(); + Resource oldResource = new Resource(); + + PropertyDefinition prop2 = new PropertyDefinition(); + prop2.setName("prop2"); + ValidValuesConstraint vvConst = new ValidValuesConstraint(); + vvConst.setValidValues(Lists.newArrayList("def","abc")); + InRangeConstraint inRangeConst = new InRangeConstraint(); + PatternConstraint patternConstraint = new PatternConstraint(); + prop2.setConstraints(Lists.newArrayList(vvConst, inRangeConst, patternConstraint)); + + PropertyDefinition prop2_update = new PropertyDefinition(); + prop2_update.setName("prop2"); + vvConst = new ValidValuesConstraint(); + vvConst.setValidValues(Lists.newArrayList("ghi","def","abc")); + inRangeConst = new InRangeConstraint(); + patternConstraint = new PatternConstraint(); + prop2_update.setConstraints(Lists.newArrayList(vvConst, inRangeConst, patternConstraint)); + + List<PropertyDefinition> oldProperties = Lists.newArrayList(prop2); + List<PropertyDefinition> newProperties = Lists.newArrayList(prop2_update); + oldResource.setProperties(oldProperties); + newResource.setProperties(newProperties); + PropertyConstraintsUtils.validatePropertiesConstraints(newResource, oldResource); + + Optional<PropertyDefinition> prop_merged = newResource.getProperties().stream().filter(p -> p.getName().equals(prop2.getName())).findFirst(); + assertThat(prop_merged.isPresent()).isTrue(); + assertThat(prop_merged.get().getConstraints()).isNotEmpty(); + assertThat(prop_merged.get().getConstraints().size()).isEqualTo(3); + Optional<PropertyConstraint> vvConst_merged = prop_merged.get().getConstraints() + .stream() + .filter(c -> c.getConstraintType() == ConstraintType.VALID_VALUES) + .findFirst(); + assertThat(vvConst_merged.isPresent()).isTrue(); + assertThat(((ValidValuesConstraint)vvConst_merged.get()).getValidValues()).containsExactlyInAnyOrder("ghi","def","abc"); + } + + @Test + public void mergePropertiesConstraintsUpdateNotPermittedTest(){ + Resource newResource = new Resource(); + Resource oldResource = new Resource(); + + PropertyDefinition prop3 = new PropertyDefinition(); + prop3.setName("prop3"); + ValidValuesConstraint vvConst = new ValidValuesConstraint(); + vvConst.setValidValues(Lists.newArrayList("a2","a3","a1")); + InRangeConstraint inRangeConst = new InRangeConstraint(); + PatternConstraint patternConstraint = new PatternConstraint(); + prop3.setConstraints(Lists.newArrayList(vvConst, inRangeConst, patternConstraint)); + + PropertyDefinition prop3_update = new PropertyDefinition(); + prop3_update.setName("prop3"); + vvConst = new ValidValuesConstraint(); + vvConst.setValidValues(Lists.newArrayList("a4","a2","a3")); + inRangeConst = new InRangeConstraint(); + patternConstraint = new PatternConstraint(); + prop3_update.setConstraints(Lists.newArrayList(vvConst, inRangeConst, patternConstraint)); + + List<PropertyDefinition> oldProperties = Lists.newArrayList(prop3); + List<PropertyDefinition> newProperties = Lists.newArrayList(prop3_update); + oldResource.setProperties(oldProperties); + newResource.setProperties(newProperties); + try { + PropertyConstraintsUtils.validatePropertiesConstraints(newResource, oldResource); + } catch (ComponentException e){ + assertThat(e.getActionStatus()) + .isNotNull() + .isEqualTo(ActionStatus.CANNOT_DELETE_VALID_VALUES); + + assertThat(e.getParams()) + .containsExactlyInAnyOrder(ConstraintType.VALID_VALUES.name(),Lists.newArrayList("a1").toString()); + + } + + } +} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PropertyDeceleratorTestBase.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PropertyDeceleratorTestBase.java index 37300025f2..f1d52a0225 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PropertyDeceleratorTestBase.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PropertyDeceleratorTestBase.java @@ -20,13 +20,6 @@ package org.openecomp.sdc.be.components.property; -import static org.assertj.core.api.Assertions.assertThat; -import static org.openecomp.sdc.common.api.Constants.GET_INPUT; - -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - import org.junit.Before; import org.openecomp.sdc.be.components.utils.PropertyDataDefinitionBuilder; import org.openecomp.sdc.be.dao.utils.MapUtil; @@ -35,6 +28,13 @@ import org.openecomp.sdc.be.model.ComponentInstancePropInput; import org.openecomp.sdc.be.model.ComponentInstanceProperty; import org.openecomp.sdc.be.model.InputDefinition; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.openecomp.sdc.common.api.Constants.GET_INPUT; + public class PropertyDeceleratorTestBase { static final String INNER_PROP1 = "ecomp_generated_naming"; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PropertyDeclarationOrchestratorTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PropertyDeclarationOrchestratorTest.java index 2fabd25549..d6bd322dcc 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PropertyDeclarationOrchestratorTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PropertyDeclarationOrchestratorTest.java @@ -13,21 +13,7 @@ */ package org.openecomp.sdc.be.components.property; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyList; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.when; - import fj.data.Either; -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; import mockit.Deencapsulation; import org.junit.Before; import org.junit.Test; @@ -48,6 +34,21 @@ import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.model.Service; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyList; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.when; + public class PropertyDeclarationOrchestratorTest { @InjectMocks @@ -191,7 +192,7 @@ public class PropertyDeclarationOrchestratorTest { Map<String, List<ComponentInstancePropInput>> componentInstanceProperties = new HashMap<>(); List<ComponentInstancePropInput> value = new LinkedList<>(); componentInstanceProperties.put("mock", value); - componentInstInputsMap.setComponentInstanceProperties(componentInstanceProperties); + componentInstInputsMap.setComponentInstancePropInput(componentInstanceProperties); PropertyDeclarator result; // default test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PropertyDeclaratorTestBase.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PropertyDeclaratorTestBase.java index 53ec5b7086..88878438c0 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PropertyDeclaratorTestBase.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PropertyDeclaratorTestBase.java @@ -26,7 +26,11 @@ import org.openecomp.sdc.be.components.utils.PropertyDataDefinitionBuilder; import org.openecomp.sdc.be.components.utils.ResourceBuilder; import org.openecomp.sdc.be.dao.utils.MapUtil; import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.ComponentInstance; +import org.openecomp.sdc.be.model.ComponentInstancePropInput; +import org.openecomp.sdc.be.model.ComponentInstanceProperty; +import org.openecomp.sdc.be.model.InputDefinition; +import org.openecomp.sdc.be.model.Resource; import java.util.List; import java.util.Map; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PropertyDeserializationOrchestratorTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PropertyDeserializationOrchestratorTest.java new file mode 100644 index 0000000000..d1cf303c0b --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/PropertyDeserializationOrchestratorTest.java @@ -0,0 +1,140 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * 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.openecomp.sdc.be.components.property; + +import fj.data.Either; +import mockit.Deencapsulation; +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.ComponentInstInputsMap; +import org.openecomp.sdc.be.model.ComponentInstancePropInput; +import org.openecomp.sdc.be.model.InputDefinition; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +public class PropertyDeserializationOrchestratorTest { + + @InjectMocks + PropertyDeclarationOrchestrator testSubject; + + @Mock + List<PropertyDeclarator> propertyDeceleratorsMock; + + @Mock + private ComponentInstanceInputPropertyDeclarator componentInstanceInputPropertyDecelerator; + @Mock + private ComponentInstancePropertyDeclarator componentInstancePropertyDecelerator; + @Mock + private PolicyPropertyDeclarator policyPropertyDecelerator; + + @Before + public void setUp() throws Exception { + + MockitoAnnotations.initMocks(this); + } + + @Test(expected = IllegalStateException.class) + public void testDeclarePropertiesToInputs() throws Exception { + Component component = new Resource(); + ComponentInstInputsMap componentInstInputsMap = new ComponentInstInputsMap(); + componentInstInputsMap.setComponentInstanceInputsMap(new HashMap<>()); + componentInstInputsMap.setComponentInstancePropInput(new HashMap<>()); + componentInstInputsMap.setPolicyProperties(new HashMap<>()); + componentInstInputsMap.setGroupProperties(new HashMap<>()); + Either<List<InputDefinition>, StorageOperationStatus> result; + + // default test + result = testSubject.declarePropertiesToInputs(component, componentInstInputsMap); + } + + @Test + public void testUnDeclarePropertiesAsInputs() throws Exception { + Component component = new Resource(); + InputDefinition inputToDelete = new InputDefinition(); + StorageOperationStatus result; + + Iterator<PropertyDeclarator> mockIter = Mockito.mock(Iterator.class); + Mockito.when(propertyDeceleratorsMock.iterator()).thenReturn(mockIter); + Mockito.when(mockIter.hasNext()).thenReturn(false); + + // default test + result = testSubject.unDeclarePropertiesAsInputs(component, inputToDelete); + } + + @Test(expected = IllegalStateException.class) + public void testGetPropertyDecelerator() throws Exception { + ComponentInstInputsMap componentInstInputsMap = new ComponentInstInputsMap(); + PropertyDeclarator result; + + // default test + result = Deencapsulation.invoke(testSubject, "getPropertyDeclarator", componentInstInputsMap); + } + + @Test + public void testGetPropertyDeceleratorWithInputsMap() throws Exception { + ComponentInstInputsMap componentInstInputsMap = new ComponentInstInputsMap(); + Map<String, List<ComponentInstancePropInput>> componentInstanceInputsMap = new HashMap<>(); + List<ComponentInstancePropInput> value = new LinkedList<>(); + componentInstanceInputsMap.put("mock", value); + componentInstInputsMap.setComponentInstanceInputsMap(componentInstanceInputsMap); + PropertyDeclarator result; + + // default test + result = Deencapsulation.invoke(testSubject, "getPropertyDeclarator", componentInstInputsMap); + } + + @Test + public void testGetPropertyDeceleratorWithCIProperties() throws Exception { + ComponentInstInputsMap componentInstInputsMap = new ComponentInstInputsMap(); + Map<String, List<ComponentInstancePropInput>> componentInstanceProperties = new HashMap<>(); + List<ComponentInstancePropInput> value = new LinkedList<>(); + componentInstanceProperties.put("mock", value); + componentInstInputsMap.setComponentInstancePropInput(componentInstanceProperties); + PropertyDeclarator result; + + // default test + result = Deencapsulation.invoke(testSubject, "getPropertyDeclarator", componentInstInputsMap); + } + + @Test + public void testGetPropertyDeceleratorWithCIPolicy() throws Exception { + ComponentInstInputsMap componentInstInputsMap = new ComponentInstInputsMap(); + Map<String, List<ComponentInstancePropInput>> policyProperties = new HashMap<>(); + List<ComponentInstancePropInput> value = new LinkedList<>(); + policyProperties.put("mock", value); + componentInstInputsMap.setPolicyProperties(policyProperties); + PropertyDeclarator result; + + // default test + result = Deencapsulation.invoke(testSubject, "getPropertyDeclarator", componentInstInputsMap); + } +} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/propertytopolicydeclarators/ComponentInstancePropertyToPolicyDeclaratorTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/propertytopolicydeclarators/ComponentInstancePropertyToPolicyDeclaratorTest.java index fc7134a078..5de4c48245 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/propertytopolicydeclarators/ComponentInstancePropertyToPolicyDeclaratorTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/property/propertytopolicydeclarators/ComponentInstancePropertyToPolicyDeclaratorTest.java @@ -20,17 +20,7 @@ package org.openecomp.sdc.be.components.property.propertytopolicydeclarators; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - import fj.data.Either; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Optional; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -50,6 +40,16 @@ import org.openecomp.sdc.be.model.Service; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.when; + public class ComponentInstancePropertyToPolicyDeclaratorTest { @Mock diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/scheduledtasks/ComponentsCleanBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/scheduledtasks/ComponentsCleanBusinessLogicTest.java index 31e2092b0c..d499ad3f3b 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/scheduledtasks/ComponentsCleanBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/scheduledtasks/ComponentsCleanBusinessLogicTest.java @@ -25,11 +25,7 @@ import com.google.common.collect.Lists; import fj.data.Either; import org.junit.Before; import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.be.components.impl.BaseBusinessLogicMock; import org.openecomp.sdc.be.components.impl.ResourceBusinessLogic; import org.openecomp.sdc.be.components.impl.ServiceBusinessLogic; @@ -46,7 +42,9 @@ import java.util.Map; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; public class ComponentsCleanBusinessLogicTest extends BaseBusinessLogicMock { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/scheduledtasks/RecoveryThreadManagerTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/scheduledtasks/RecoveryThreadManagerTest.java index 1fb3d414cf..629e50c35e 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/scheduledtasks/RecoveryThreadManagerTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/scheduledtasks/RecoveryThreadManagerTest.java @@ -42,7 +42,12 @@ import java.util.List; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.reset; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; public class RecoveryThreadManagerTest extends BeConfDependentTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/upgrade/UpgradeBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/upgrade/UpgradeBusinessLogicTest.java index c23bb1c6b8..dd16d1ae89 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/upgrade/UpgradeBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/upgrade/UpgradeBusinessLogicTest.java @@ -58,6 +58,7 @@ import org.openecomp.sdc.be.model.jsonjanusgraph.operations.UpgradeOperation; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.user.Role; import org.openecomp.sdc.exception.ResponseFormat; + import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -131,7 +132,7 @@ public class UpgradeBusinessLogicTest { resource = new Resource(resourceMetadataDefinition); service = new Service(serviceMetadataDefinition); - when(userValidations.validateUserExists(eq(user.getUserId()), anyString(), anyBoolean())) + when(userValidations.validateUserExists(eq(user.getUserId()))) .thenReturn(user); } @@ -277,7 +278,7 @@ public class UpgradeBusinessLogicTest { when(toscaOperationFacade.updateComponentInstancePropsToComponent(any(Map.class), any())) .thenReturn(Either.left(stubComponentInstanceProperties)); when(componentInstanceBusinessLogic.changeInstanceVersion(any(Component.class), any(ComponentInstance.class), any(ComponentInstance.class), any(User.class), any(ComponentTypeEnum.class))) - .thenReturn(Either.left(componentInstance)); + .thenReturn(componentInstance); UpgradeStatus status = upgradeBusinessLogic.automatedUpgrade(COMPONENT_ID, getRequests(), user.getUserId()); Assert.assertEquals(ActionStatus.OK, status.getStatus()); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/ComponentBuilder.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/ComponentBuilder.java index 82a589824c..0c6ba53491 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/ComponentBuilder.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/ComponentBuilder.java @@ -23,7 +23,15 @@ package org.openecomp.sdc.be.components.utils; import org.openecomp.sdc.be.dao.utils.MapUtil; import org.openecomp.sdc.be.datatypes.elements.GetInputValueDataDefinition; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.ComponentInstance; +import org.openecomp.sdc.be.model.ComponentInstanceInput; +import org.openecomp.sdc.be.model.ComponentInstanceProperty; +import org.openecomp.sdc.be.model.GroupDefinition; +import org.openecomp.sdc.be.model.InputDefinition; +import org.openecomp.sdc.be.model.LifecycleStateEnum; +import org.openecomp.sdc.be.model.PolicyDefinition; +import org.openecomp.sdc.be.model.RequirementCapabilityRelDef; import java.util.ArrayList; import java.util.HashMap; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/ComponentBusinessLogicMock.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/ComponentBusinessLogicMock.java index ce19e53ab6..9d01da7462 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/ComponentBusinessLogicMock.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/ComponentBusinessLogicMock.java @@ -22,9 +22,23 @@ package org.openecomp.sdc.be.components.utils; import org.mockito.Mockito; import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic; import org.openecomp.sdc.be.components.impl.BaseBusinessLogicMock; +import org.openecomp.sdc.be.components.validation.component.ComponentContactIdValidator; +import org.openecomp.sdc.be.components.validation.component.ComponentDescriptionValidator; +import org.openecomp.sdc.be.components.validation.component.ComponentIconValidator; +import org.openecomp.sdc.be.components.validation.component.ComponentNameValidator; +import org.openecomp.sdc.be.components.validation.component.ComponentProjectCodeValidator; +import org.openecomp.sdc.be.components.validation.component.ComponentTagsValidator; +import org.openecomp.sdc.be.components.validation.component.ComponentValidator; public abstract class ComponentBusinessLogicMock extends BaseBusinessLogicMock { protected final ArtifactsBusinessLogic artifactsBusinessLogic = Mockito.mock(ArtifactsBusinessLogic.class); + protected final ComponentTagsValidator componentTagsValidator = Mockito.mock(ComponentTagsValidator.class); + protected final ComponentValidator componentValidator = Mockito.mock(ComponentValidator.class); + protected final ComponentIconValidator componentIconValidator = Mockito.mock(ComponentIconValidator.class); + protected final ComponentProjectCodeValidator componentProjectCodeValidator = Mockito.mock(ComponentProjectCodeValidator.class); + protected final ComponentDescriptionValidator componentDescriptionValidator = Mockito.mock(ComponentDescriptionValidator.class); + protected final ComponentContactIdValidator componentContactIdValidator = Mockito.mock(ComponentContactIdValidator.class); + protected final ComponentNameValidator componentNameValidator = Mockito.mock(ComponentNameValidator.class); } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/InterfaceOperationUtilsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/InterfaceOperationUtilsTest.java index b2a5c687fe..4923606f28 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/InterfaceOperationUtilsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/InterfaceOperationUtilsTest.java @@ -20,11 +20,6 @@ package org.openecomp.sdc.be.components.utils; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Optional; - import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -34,6 +29,11 @@ import org.openecomp.sdc.be.model.Operation; import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.test.utils.InterfaceOperationTestUtils; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Optional; + public class InterfaceOperationUtilsTest { private static final String TEST_RESOURCE_NAME = "TestResource"; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/MapUtilsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/MapUtilsTest.java index 5f8c5ec27c..57fac6ff98 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/MapUtilsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/MapUtilsTest.java @@ -19,15 +19,16 @@ */ package org.openecomp.sdc.be.components.utils; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import org.junit.Test; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; -import org.junit.Test; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; public class MapUtilsTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/ObjectGenerator.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/ObjectGenerator.java index 2f546ba0f7..c6a36971a8 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/ObjectGenerator.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/ObjectGenerator.java @@ -20,7 +20,14 @@ package org.openecomp.sdc.be.components.utils; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.ComponentInstance; +import org.openecomp.sdc.be.model.ComponentInstanceInput; +import org.openecomp.sdc.be.model.ComponentInstanceProperty; +import org.openecomp.sdc.be.model.HeatParameterDefinition; +import org.openecomp.sdc.be.model.InputDefinition; +import org.openecomp.sdc.be.model.PropertyDefinition; +import org.openecomp.sdc.be.model.RequirementCapabilityRelDef; +import org.openecomp.sdc.be.model.Resource; import java.util.ArrayList; import java.util.Arrays; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/PolicyDefinitionBuilder.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/PolicyDefinitionBuilder.java index 9f5b7b6eb1..8de5eb89a7 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/PolicyDefinitionBuilder.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/utils/PolicyDefinitionBuilder.java @@ -25,7 +25,11 @@ import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition; import org.openecomp.sdc.be.model.PolicyDefinition; import org.openecomp.sdc.be.model.PropertyDefinition; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; public class PolicyDefinitionBuilder { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/AccessValidationsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/AccessValidationsTest.java index f04d71097e..4cb908684e 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/AccessValidationsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/AccessValidationsTest.java @@ -20,10 +20,6 @@ package org.openecomp.sdc.be.components.validation; -import static org.mockito.Mockito.atLeast; - -import java.util.ArrayList; -import java.util.List; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -35,6 +31,11 @@ import org.openecomp.sdc.be.model.Component; import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.user.Role; +import java.util.ArrayList; +import java.util.List; + +import static org.mockito.Mockito.atLeast; + @RunWith(MockitoJUnitRunner.class) public class AccessValidationsTest { @@ -58,7 +59,7 @@ public class AccessValidationsTest { public void testValidateUserCanRetrieveComponentData() { accessValidations.validateUserCanRetrieveComponentData(COMPONENT_ID, RESOURCES, USER_ID, ANY_CONTEXT); - Mockito.verify(userValidations).validateUserExists(USER_ID, ANY_CONTEXT, true); + Mockito.verify(userValidations).validateUserExists(USER_ID); Mockito.verify(componentValidations).getComponent(COMPONENT_ID, ComponentTypeEnum.RESOURCE); } @@ -68,11 +69,11 @@ public class AccessValidationsTest { List<Role> adminRoles = new ArrayList<>(); adminRoles.add(Role.ADMIN); adminRoles.add(Role.DESIGNER); - Mockito.when(userValidations.validateUserExists(USER_ID, ANY_CONTEXT, true)).thenReturn(user); + Mockito.when(userValidations.validateUserExists(USER_ID)).thenReturn(user); accessValidations.validateUserCanWorkOnComponent(COMPONENT_ID, ComponentTypeEnum.RESOURCE, USER_ID, ANY_CONTEXT); - Mockito.verify(userValidations).validateUserExists(USER_ID, ANY_CONTEXT, true); + Mockito.verify(userValidations).validateUserExists(USER_ID); Mockito.verify(userValidations).validateUserRole(user, adminRoles); Mockito.verify(componentValidations).validateComponentIsCheckedOutByUser(COMPONENT_ID, ComponentTypeEnum.RESOURCE, USER_ID); @@ -85,11 +86,11 @@ public class AccessValidationsTest { List<Role> adminRoles = new ArrayList<>(); adminRoles.add(Role.ADMIN); adminRoles.add(Role.DESIGNER); - Mockito.when(userValidations.validateUserExists(USER_ID, ANY_CONTEXT, true)).thenReturn(user); + Mockito.when(userValidations.validateUserExists(USER_ID)).thenReturn(user); accessValidations.validateUserCanWorkOnComponent(component, USER_ID, ANY_CONTEXT); - Mockito.verify(userValidations, atLeast(1)).validateUserExists(USER_ID, ANY_CONTEXT, true); + Mockito.verify(userValidations, atLeast(1)).validateUserExists(USER_ID); Mockito.verify(userValidations).validateUserRole(user, adminRoles); Mockito.verify(componentValidations).validateComponentIsCheckedOutByUser(component, USER_ID); } @@ -97,13 +98,13 @@ public class AccessValidationsTest { @Test public void testValidateUserExists() { accessValidations.validateUserExists(COMPONENT_ID, ANY_CONTEXT); - Mockito.verify(userValidations).validateUserExists(COMPONENT_ID, ANY_CONTEXT, true); + Mockito.verify(userValidations).validateUserExists(COMPONENT_ID); } @Test public void validateUserExist() { accessValidations.validateUserExist(COMPONENT_ID, ANY_CONTEXT); - Mockito.verify(userValidations).validateUserExists(COMPONENT_ID, ANY_CONTEXT, false); + Mockito.verify(userValidations).validateUserExists(COMPONENT_ID); } @Test @@ -112,7 +113,7 @@ public class AccessValidationsTest { List<Role> adminRoles = new ArrayList<>(); adminRoles.add(Role.ADMIN); adminRoles.add(Role.DESIGNER); - Mockito.when(userValidations.validateUserExists(COMPONENT_ID, ANY_CONTEXT, true)).thenReturn(user); + Mockito.when(userValidations.validateUserExists(COMPONENT_ID)).thenReturn(user); accessValidations.userIsAdminOrDesigner(COMPONENT_ID, ANY_CONTEXT); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/AnnotationValidatorTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/AnnotationValidatorTest.java index 8815510369..4b33e2d2be 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/AnnotationValidatorTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/AnnotationValidatorTest.java @@ -19,14 +19,7 @@ */ package org.openecomp.sdc.be.components.validation; -import static org.hamcrest.CoreMatchers.is; -import static org.junit.Assert.assertThat; - import fj.data.Either; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -43,6 +36,14 @@ import org.openecomp.sdc.be.model.DataTypeDefinition; import org.openecomp.sdc.be.model.PropertyDefinition; import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; + @RunWith(MockitoJUnitRunner.class) public class AnnotationValidatorTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/ComponentValidationsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/ComponentValidationsTest.java index c6d7e569d3..1ad4433222 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/ComponentValidationsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/ComponentValidationsTest.java @@ -93,7 +93,7 @@ public class ComponentValidationsTest { String userId = ""; Component result; Resource resource = new Resource(); - resource.setLifecycleState(LifecycleStateEnum.CERTIFICATION_IN_PROGRESS); + resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); Mockito.when(toscaOperationFacadeMock.getToscaElement(Mockito.anyString(), Mockito.any(ComponentParametersView.class))).thenReturn(Either.left(resource)); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/InterfaceOperationValidationTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/InterfaceOperationValidationTest.java index 826405ca87..2f132abfae 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/InterfaceOperationValidationTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/InterfaceOperationValidationTest.java @@ -16,16 +16,6 @@ package org.openecomp.sdc.be.components.validation; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.when; -import static org.openecomp.sdc.test.utils.InterfaceOperationTestUtils.createMockOperation; - -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -45,6 +35,16 @@ import org.openecomp.sdc.be.model.Operation; import org.openecomp.sdc.exception.ResponseFormat; import org.openecomp.sdc.test.utils.InterfaceOperationTestUtils; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.when; +import static org.openecomp.sdc.test.utils.InterfaceOperationTestUtils.createMockOperation; + public class InterfaceOperationValidationTest { private static final String resourceId = "resourceId"; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/NodeFilterValidationTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/NodeFilterValidationTest.java index 1865acd771..4b254701a7 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/NodeFilterValidationTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/NodeFilterValidationTest.java @@ -21,11 +21,6 @@ package org.openecomp.sdc.be.components.validation; import fj.data.Either; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -43,6 +38,12 @@ import org.openecomp.sdc.be.model.PropertyDefinition; import org.openecomp.sdc.be.model.Service; import org.openecomp.sdc.exception.ResponseFormat; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + public class NodeFilterValidationTest { private static final String UI_CONSTRAINT_STATIC = "Prop1: {equal: 'value'}"; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/PolicyUtilsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/PolicyUtilsTest.java index e0555a294a..b5f95b9d3c 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/PolicyUtilsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/PolicyUtilsTest.java @@ -17,11 +17,7 @@ package org.openecomp.sdc.be.components.validation; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - import fj.data.Either; -import java.util.Objects; import mockit.Deencapsulation; import org.junit.Test; import org.openecomp.sdc.be.components.BeConfDependentTest; @@ -36,14 +32,18 @@ import org.openecomp.sdc.be.model.ComponentInstanceProperty; import org.openecomp.sdc.be.model.PolicyDefinition; import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.model.Service; - -import java.util.Map; -import java.util.Set; import org.openecomp.sdc.be.model.operations.impl.UniqueIdBuilder; import org.openecomp.sdc.common.api.ConfigurationSource; import org.openecomp.sdc.common.impl.ExternalConfiguration; import org.openecomp.sdc.common.impl.FSConfigurationSource; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + public class PolicyUtilsTest extends BeConfDependentTest{ private static final String PROP_NAME = "propertyName"; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/PropertyValidatorTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/PropertyValidatorTest.java index 98d2f8cc7c..9a9e9578b6 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/PropertyValidatorTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/PropertyValidatorTest.java @@ -19,12 +19,7 @@ */ package org.openecomp.sdc.be.components.validation; -import static org.junit.Assert.assertTrue; - import fj.data.Either; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -37,6 +32,12 @@ import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache; import org.openecomp.sdc.be.model.operations.impl.PropertyOperation; import org.openecomp.sdc.exception.ResponseFormat; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import static org.junit.Assert.assertTrue; + @RunWith(MockitoJUnitRunner.class) public class PropertyValidatorTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/ServiceDistributionValidationTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/ServiceDistributionValidationTest.java index 1ff159f317..483becc474 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/ServiceDistributionValidationTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/ServiceDistributionValidationTest.java @@ -30,6 +30,7 @@ import org.mockito.MockitoAnnotations; import org.openecomp.sdc.be.components.distribution.engine.IDistributionEngine; import org.openecomp.sdc.be.components.impl.ActivationRequestInformation; import org.openecomp.sdc.be.components.impl.exceptions.ByResponseFormatComponentException; +import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.cassandra.OperationalEnvironmentDao; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; @@ -42,6 +43,9 @@ import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.resources.data.OperationalEnvironmentEntry; +import org.openecomp.sdc.common.api.ConfigurationSource; +import org.openecomp.sdc.common.impl.ExternalConfiguration; +import org.openecomp.sdc.common.impl.FSConfigurationSource; import org.openecomp.sdc.exception.ResponseFormat; import static org.junit.Assert.assertEquals; @@ -52,6 +56,8 @@ import static org.mockito.Mockito.when; public class ServiceDistributionValidationTest { + ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be"); + ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); private static final String USER_ID = "userId"; private static final String SERVICE_ID = "serviceId"; private static final String ENV_ID = "envId"; @@ -87,14 +93,14 @@ public class ServiceDistributionValidationTest { errResponse = new ResponseFormat(); service = new Service(); service.setUniqueId(SERVICE_ID); - service.setLifecycleState(LifecycleStateEnum.CERTIFICATION_IN_PROGRESS); + service.setLifecycleState(LifecycleStateEnum.CERTIFIED); operationalEnvironmentEntry = new OperationalEnvironmentEntry(); operationalEnvironmentEntry.setStatus(EnvironmentStatusEnum.COMPLETED); } @Test public void validateActivateServiceRequest_userNotExist() { - when(userValidations.validateUserExists(eq(USER_ID), anyString(), eq(false))).thenThrow(new ByResponseFormatComponentException(errResponse)); + when(userValidations.validateUserExists(eq(USER_ID))).thenThrow(new ByResponseFormatComponentException(errResponse)); try { testInstance.validateActivateServiceRequest(SERVICE_ID, ENV_ID, user, new ServiceDistributionReqInfo("distributionData")); } catch(ByResponseFormatComponentException e){ @@ -105,7 +111,7 @@ public class ServiceDistributionValidationTest { @Test public void validateActivateServiceRequest_ServiceNotExist() { - when(userValidations.validateUserExists(eq(USER_ID), anyString(), eq(false))).thenReturn(user); + when(userValidations.validateUserExists(eq(USER_ID))).thenReturn(user); when(toscaOperationFacade.getLatestServiceByUuid(eq(SERVICE_ID))).thenReturn(Either.right(StorageOperationStatus.GENERAL_ERROR)); when(componentsUtils.convertFromStorageResponse(StorageOperationStatus.GENERAL_ERROR, ComponentTypeEnum.SERVICE)).thenReturn(ActionStatus.GENERAL_ERROR); when(componentsUtils.getResponseFormat(ActionStatus.API_RESOURCE_NOT_FOUND, ApiResourceEnum.SERVICE_ID.getValue())).thenReturn(errResponse); @@ -117,7 +123,7 @@ public class ServiceDistributionValidationTest { @Test public void validateActivateServiceRequest_ServiceLifeCycleStateNotReadyForDistribution() { service.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); - when(userValidations.validateUserExists(eq(USER_ID), anyString(), eq(false))).thenReturn(user); + when(userValidations.validateUserExists(eq(USER_ID))).thenReturn(user); when(toscaOperationFacade.getLatestServiceByUuid(eq(SERVICE_ID))).thenReturn(Either.left(service)); when(componentsUtils.getResponseFormat(eq(ActionStatus.INVALID_SERVICE_STATE))).thenReturn(errResponse); Either<ActivationRequestInformation, ResponseFormat> activateServiceReq = testInstance.validateActivateServiceRequest(SERVICE_ID, ENV_ID, user, new ServiceDistributionReqInfo("distributionData")); @@ -127,7 +133,7 @@ public class ServiceDistributionValidationTest { @Test public void validateActivateServiceRequest_operationalEnvNotExist() throws Exception { - when(userValidations.validateUserExists(eq(USER_ID), anyString(), eq(false))).thenReturn(user); + when(userValidations.validateUserExists(eq(USER_ID))).thenReturn(user); when(toscaOperationFacade.getLatestServiceByUuid(eq(SERVICE_ID))).thenReturn(Either.left(service)); when(distributionEngine.getEnvironmentById(ENV_ID)).thenReturn(null); when(componentsUtils.getResponseFormat(eq(ActionStatus.API_RESOURCE_NOT_FOUND), anyString())).thenReturn(errResponse); @@ -138,7 +144,7 @@ public class ServiceDistributionValidationTest { @Test public void validateActivateServiceRequest_operationalEnvStatusNotComplete() { operationalEnvironmentEntry.setStatus(EnvironmentStatusEnum.IN_PROGRESS); - when(userValidations.validateUserExists(eq(USER_ID), anyString(), eq(false))).thenReturn(user); + when(userValidations.validateUserExists(eq(USER_ID))).thenReturn(user); when(toscaOperationFacade.getLatestServiceByUuid(eq(SERVICE_ID))).thenReturn(Either.left(service)); when(distributionEngine.getEnvironmentById(ENV_ID)).thenReturn(operationalEnvironmentEntry); when(componentsUtils.getResponseFormat(eq(ActionStatus.API_RESOURCE_NOT_FOUND), anyString())).thenReturn(errResponse); @@ -148,7 +154,7 @@ public class ServiceDistributionValidationTest { @Test public void validateActivateServiceRequest_couldNotParseDistributionData() { - when(userValidations.validateUserExists(eq(USER_ID), anyString(), eq(false))).thenReturn(user); + when(userValidations.validateUserExists(eq(USER_ID))).thenReturn(user); when(toscaOperationFacade.getLatestServiceByUuid(eq(SERVICE_ID))).thenReturn(Either.left(service)); when(distributionEngine.getEnvironmentById(ENV_ID)).thenReturn(operationalEnvironmentEntry); when(componentsUtils.getResponseFormat(eq(ActionStatus.MISSING_BODY))).thenReturn(errResponse); @@ -158,7 +164,7 @@ public class ServiceDistributionValidationTest { @Test public void validateActivateServiceRequest_distributionDataHasNoWorkloadContext() { - when(userValidations.validateUserExists(eq(USER_ID), anyString(), eq(false))).thenReturn(user); + when(userValidations.validateUserExists(eq(USER_ID))).thenReturn(user); when(toscaOperationFacade.getLatestServiceByUuid(eq(SERVICE_ID))).thenReturn(Either.left(service)); when(distributionEngine.getEnvironmentById(ENV_ID)).thenReturn(operationalEnvironmentEntry); when(componentsUtils.getResponseFormat(eq(ActionStatus.MISSING_BODY))).thenReturn(errResponse); @@ -168,7 +174,7 @@ public class ServiceDistributionValidationTest { @Test public void validateActivateServiceRequest_requestValid() { - when(userValidations.validateUserExists(eq(USER_ID), anyString(), eq(false))).thenReturn(user); + when(userValidations.validateUserExists(eq(USER_ID))).thenReturn(user); when(toscaOperationFacade.getLatestServiceByUuid(eq(SERVICE_ID))).thenReturn(Either.left(service)); when(distributionEngine.getEnvironmentById(ENV_ID)).thenReturn(operationalEnvironmentEntry); Either<ActivationRequestInformation, ResponseFormat> activateServiceReq = testInstance.validateActivateServiceRequest(SERVICE_ID, ENV_ID, user, new ServiceDistributionReqInfo("context")); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/UserValidationsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/UserValidationsTest.java index 3ef4433c2c..ffbdd7ff80 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/UserValidationsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/validation/UserValidationsTest.java @@ -20,19 +20,20 @@ package org.openecomp.sdc.be.components.validation; -import fj.data.Either; import org.junit.Before; import org.junit.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; +import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException; import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; import org.openecomp.sdc.be.dao.api.ActionStatus; +import org.openecomp.sdc.be.dao.utils.UserStatusEnum; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.model.User; -import org.openecomp.sdc.be.user.IUserBusinessLogic; import org.openecomp.sdc.be.user.Role; +import org.openecomp.sdc.be.user.UserBusinessLogic; import java.util.LinkedList; import java.util.List; @@ -46,87 +47,83 @@ public class UserValidationsTest { UserValidations testSubject; @Mock - IUserBusinessLogic userAdmin; + UserBusinessLogic userAdmin; @Mock ComponentsUtils componentsUtils; @Before - public void setUp() throws Exception { + public void setUp() { //TestUtilsSdc.setFinalStatic(UserValidations.class, "log", LoggerFactory.getLogger(UserValidations.class)); MockitoAnnotations.initMocks(this); } @Test - public void testValidateUserExists() throws Exception { + public void testValidateUserExists() { String userId = "mock"; - String ecompErrorContext = "mock"; User usr = new User(); - boolean inTransaction = false; - User result; - - - Mockito.when(userAdmin.getUser(Mockito.anyString(), Mockito.anyBoolean())).thenReturn(Either.left(usr)); - + usr.setUserId(userId); + usr.setStatus(UserStatusEnum.ACTIVE); + Mockito.when(userAdmin.getUser(Mockito.anyString())).thenReturn(usr); // default test - result = testSubject.validateUserExists(userId, ecompErrorContext, inTransaction); + testSubject.validateUserExists(userId); } @Test - public void testValidateNonExistingUser2() throws Exception { + public void testValidateNonExistingUser2() { String userId = "mock"; String ecompErrorContext = "mock"; boolean inTransaction = false; User result; - - - Mockito.when(userAdmin.getUser(Mockito.anyString(), Mockito.anyBoolean())).thenReturn(Either.right(ActionStatus.USER_NOT_FOUND)); - Throwable thrown = catchThrowable(() -> testSubject.validateUserExists(userId, ecompErrorContext, inTransaction) ); - assertThat(thrown).isInstanceOf(ComponentException.class).hasFieldOrPropertyWithValue("actionStatus" , ActionStatus.AUTH_FAILED); + + Mockito.when(userAdmin.getUser(Mockito.anyString())).thenThrow(new ByActionStatusComponentException(ActionStatus.USER_NOT_FOUND)); + + Throwable thrown = catchThrowable(() -> testSubject.validateUserExists(userId) ); + assertThat(thrown).isInstanceOf(ComponentException.class).hasFieldOrPropertyWithValue("actionStatus" , ActionStatus.USER_NOT_FOUND); } @Test - public void testValidateUserRole() throws Exception { + public void testValidateUserRole() { User user = new User(); List<Role> roles = new LinkedList<>(); roles.add(Role.DESIGNER); - + user.setRole(Role.DESIGNER.name()); - + // test 1 testSubject.validateUserRole(user, roles); } @Test - public void testValidateUserExistsActionStatus() throws Exception { + public void testValidateUserExistsActionStatus() { String userId = "mock"; String ecompErrorContext = "mock"; - Either<User, ActionStatus> result; + ActionStatus result; User usr = new User(); - Mockito.when(userAdmin.getUser(Mockito.anyString(), Mockito.anyBoolean())).thenReturn(Either.left(usr)); + Mockito.when(userAdmin.getUser(Mockito.anyString())).thenReturn(usr); // default test - result = testSubject.validateUserExistsActionStatus(userId, ecompErrorContext); + result = testSubject.validateUserExistsActionStatus(userId); } @Test - public void testValidateUserExistsActionStatus2() throws Exception { + public void testValidateUserExistsActionStatus2() { String userId = "mock"; String ecompErrorContext = "mock"; - Either<User, ActionStatus> result; + ActionStatus result; User usr = new User(); - Mockito.when(userAdmin.getUser(Mockito.anyString(), Mockito.anyBoolean())).thenReturn(Either.right(ActionStatus.USER_NOT_FOUND)); + Mockito.when(userAdmin.getUser(Mockito.anyString())).thenThrow(new ByActionStatusComponentException((ActionStatus.USER_NOT_FOUND))); // default test - result = testSubject.validateUserExistsActionStatus(userId, ecompErrorContext); + result = testSubject.validateUserExistsActionStatus(userId); } @Test - public void testValidateUserNotEmpty() throws Exception { + public void testValidateUserNotEmpty() { User user = new User(); user.setUserId("userId"); String ecompErrorContext = "mock"; @@ -137,14 +134,14 @@ public class UserValidationsTest { } @Test - public void testValidateNonExistingUser() throws Exception { + public void testValidateNonExistingUser() { String userId = ""; String ecompErrorContext = ""; - Mockito.when(userAdmin.getUser(Mockito.anyString(), Mockito.anyBoolean())).thenReturn(Either.right(ActionStatus.USER_NOT_FOUND)); + Mockito.when(userAdmin.getUser(Mockito.anyString())).thenThrow(new ByActionStatusComponentException(ActionStatus.USER_NOT_FOUND)); // default test - Throwable thrown = catchThrowable(() -> testSubject.validateUserExist(userId, ecompErrorContext) ); - assertThat(thrown).isInstanceOf(ComponentException.class).hasFieldOrPropertyWithValue("actionStatus" , ActionStatus.AUTH_FAILED); + Throwable thrown = catchThrowable(() -> testSubject.validateUserExists(userId) ); + assertThat(thrown).isInstanceOf(ComponentException.class).hasFieldOrPropertyWithValue("actionStatus" , ActionStatus.USER_NOT_FOUND); } } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/config/SpringConfig.java b/catalog-be/src/test/java/org/openecomp/sdc/be/config/SpringConfig.java index 0433a88b49..efd2b615c0 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/config/SpringConfig.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/config/SpringConfig.java @@ -24,4 +24,6 @@ import org.springframework.context.annotation.Configuration; @Configuration public class SpringConfig { + + } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/ForwardingPathsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/ForwardingPathsTest.java index a63431a97f..fc385b7ba7 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/ForwardingPathsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/ForwardingPathsTest.java @@ -32,8 +32,9 @@ package org.openecomp.sdc.be.datamodel; import org.junit.Test; +import java.util.Arrays; +import java.util.HashSet; import java.util.Set; -import java.util.*; import static org.assertj.core.api.Assertions.assertThat; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/ServiceRelationsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/ServiceRelationsTest.java index 547349beda..77b201a82b 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/ServiceRelationsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/ServiceRelationsTest.java @@ -32,7 +32,6 @@ package org.openecomp.sdc.be.datamodel; import org.junit.Test; -import java.util.Arrays; import java.util.HashSet; import java.util.Set; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/UiComponentDataConverterTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/UiComponentDataConverterTest.java index 23b3cae23a..f9bb2bd892 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/UiComponentDataConverterTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/UiComponentDataConverterTest.java @@ -17,8 +17,6 @@ package org.openecomp.sdc.be.datamodel; -import java.util.HashMap; -import java.util.Map; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.MapUtils; import org.junit.Before; @@ -27,8 +25,8 @@ import org.junit.Test; import org.openecomp.sdc.be.components.impl.GroupTypeBusinessLogic; import org.openecomp.sdc.be.components.impl.PolicyTypeBusinessLogic; import org.openecomp.sdc.be.components.utils.GroupDefinitionBuilder; -import org.openecomp.sdc.be.components.utils.PolicyDefinitionBuilder; import org.openecomp.sdc.be.components.utils.InputsBuilder; +import org.openecomp.sdc.be.components.utils.PolicyDefinitionBuilder; import org.openecomp.sdc.be.components.utils.PropertyDataDefinitionBuilder; import org.openecomp.sdc.be.components.utils.ResourceBuilder; import org.openecomp.sdc.be.components.utils.ServiceBuilder; @@ -37,20 +35,21 @@ import org.openecomp.sdc.be.datatypes.elements.CINodeFilterDataDefinition; import org.openecomp.sdc.be.datatypes.elements.GetPolicyValueDataDefinition; import org.openecomp.sdc.be.model.ComponentInstanceProperty; import org.openecomp.sdc.be.model.GroupDefinition; +import org.openecomp.sdc.be.model.InputDefinition; +import org.openecomp.sdc.be.model.InterfaceDefinition; import org.openecomp.sdc.be.model.PolicyDefinition; +import org.openecomp.sdc.be.model.PropertyDefinition; import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.model.Service; -import org.openecomp.sdc.be.model.InputDefinition; -import org.openecomp.sdc.be.model.PropertyDefinition; -import org.openecomp.sdc.be.model.InterfaceDefinition; import org.openecomp.sdc.be.ui.model.UiComponentDataTransfer; import org.openecomp.sdc.be.ui.model.UiComponentMetadata; import org.openecomp.sdc.be.ui.model.UiServiceDataTransfer; - import java.util.Arrays; import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Set; import static org.assertj.core.api.Assertions.assertThat; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/utils/ArtifactUtilsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/utils/ArtifactUtilsTest.java index dd0418eea0..9438d8f574 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/utils/ArtifactUtilsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/utils/ArtifactUtilsTest.java @@ -28,13 +28,11 @@ import org.openecomp.sdc.be.model.HeatParameterDefinition; import org.openecomp.sdc.be.model.operations.impl.ArtifactOperation; import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum; +import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.ArrayList; - -import static org.junit.Assert.assertTrue; public class ArtifactUtilsTest { @@ -99,6 +97,12 @@ public class ArtifactUtilsTest { artifactId = null; result = ArtifactUtils.buildJsonForUpdateArtifact(artifactId, artifactName, artifactType, artifactGroupType, label, displayName, description, artifactContentent, updatedRequiredArtifacts, isFromCsar); + + // test 2 + /*artifactId = ""; + result = ArtifactUtils.buildJsonForUpdateArtifact(artifactId, artifactName, artifactType, artifactGroupType, + label, displayName, description, artifactContentent, updatedRequiredArtifacts, isFromCsar); + Assert.assertEquals(null, result);*/ } @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/utils/PropertyValueConstraintValidationUtilTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/utils/PropertyValueConstraintValidationUtilTest.java index 2308c25fd8..acb3d39b79 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/utils/PropertyValueConstraintValidationUtilTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/datamodel/utils/PropertyValueConstraintValidationUtilTest.java @@ -20,25 +20,9 @@ package org.openecomp.sdc.be.datamodel.utils; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.when; - import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; - -import java.io.BufferedReader; -import java.io.File; -import java.lang.reflect.Type; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Objects; - import fj.data.Either; import org.junit.Assert; import org.junit.Before; @@ -60,6 +44,21 @@ import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade import org.openecomp.sdc.be.model.operations.impl.PropertyOperation; import org.openecomp.sdc.exception.ResponseFormat; +import java.io.BufferedReader; +import java.io.File; +import java.lang.reflect.Type; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.when; + public class PropertyValueConstraintValidationUtilTest { @Mock diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/distribution/DistributionBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/distribution/DistributionBusinessLogicTest.java index fec2ace002..997ea2fb4f 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/distribution/DistributionBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/distribution/DistributionBusinessLogicTest.java @@ -29,6 +29,7 @@ import org.mockito.MockitoAnnotations; import org.openecomp.sdc.be.components.BeConfDependentTest; import org.openecomp.sdc.be.components.distribution.engine.CambriaErrorResponse; import org.openecomp.sdc.be.components.distribution.engine.CambriaHandler; +import org.openecomp.sdc.be.components.distribution.engine.DistributionEngine; import org.openecomp.sdc.be.components.distribution.engine.DistributionEngineInitTask; import org.openecomp.sdc.be.components.distribution.engine.SubscriberTypeEnum; import org.openecomp.sdc.be.config.DistributionEngineConfiguration; @@ -36,12 +37,16 @@ import org.openecomp.sdc.be.distribution.api.client.CambriaOperationStatus; import org.openecomp.sdc.be.distribution.api.client.RegistrationRequest; import org.openecomp.sdc.be.distribution.api.client.TopicRegistrationResponse; import org.openecomp.sdc.be.distribution.api.client.TopicUnregistrationResponse; +import org.openecomp.sdc.be.resources.data.OperationalEnvironmentEntry; import org.openecomp.sdc.common.datastructure.Wrapper; import javax.ws.rs.core.Response; +import java.util.Arrays; +import java.util.List; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.openecomp.sdc.be.components.distribution.engine.DistributionEngineInitTask.buildTopicName; @@ -51,13 +56,14 @@ public class DistributionBusinessLogicTest extends BeConfDependentTest { @InjectMocks DistributionBusinessLogic distributionBusinessLogic = Mockito.spy(DistributionBusinessLogic.class); - CambriaHandler cambriaHandler = Mockito.mock(CambriaHandler.class); - AuditHandler auditHandler = Mockito.mock(AuditHandler.class); + private CambriaHandler cambriaHandler = Mockito.mock(CambriaHandler.class); + private AuditHandler auditHandler = Mockito.mock(AuditHandler.class); + private DistributionEngine distributionEngine = Mockito.mock(DistributionEngine.class); - CambriaErrorResponse errorResponse = new CambriaErrorResponse(CambriaOperationStatus.CONNNECTION_ERROR, + private CambriaErrorResponse errorResponse = new CambriaErrorResponse(CambriaOperationStatus.CONNNECTION_ERROR, HttpStatus.SC_SERVICE_UNAVAILABLE); - CambriaErrorResponse okResponse = new CambriaErrorResponse(CambriaOperationStatus.OK, HttpStatus.SC_OK); - DistributionEngineConfiguration config = configurationManager.getDistributionEngineConfiguration(); + private CambriaErrorResponse okResponse = new CambriaErrorResponse(CambriaOperationStatus.OK, HttpStatus.SC_OK); + private DistributionEngineConfiguration config = configurationManager.getDistributionEngineConfiguration(); @Before public void init() { @@ -66,6 +72,78 @@ public class DistributionBusinessLogicTest extends BeConfDependentTest { } @Test + public void testHandleRegistrationOnTenant() { + List<String> uebs = Arrays.asList("11","22"); + OperationalEnvironmentEntry environment = new OperationalEnvironmentEntry(); + environment.setEnvironmentId("1"); + environment.setUebApikey("11"); + environment.setUebSecretKey("22"); + RegistrationRequest registrationRequest = + new RegistrationRequest("myPublicKey", "myEnv",uebs ,false); + Wrapper<Response> responseWrapper = new Wrapper<>(); + when(distributionEngine.getEnvironmentByDmaapUebAddress(uebs)) + .thenReturn(environment); + testHandleRegistrationBasic(registrationRequest, responseWrapper); + } + + @Test + public void handleUnregistrationOnTenant() { + List<String> uebs = Arrays.asList("11","22"); + OperationalEnvironmentEntry environment = new OperationalEnvironmentEntry(); + environment.setEnvironmentId("1"); + environment.setUebApikey("11"); + environment.setUebSecretKey("22"); + RegistrationRequest registrationRequest = + new RegistrationRequest("myPublicKey", "myEnv",uebs ,false); + Wrapper<Response> responseWrapper = new Wrapper<>(); + CambriaErrorResponse okResponse = new CambriaErrorResponse(CambriaOperationStatus.OK, HttpStatus.SC_OK); + + when(cambriaHandler.unRegisterFromTopic(Mockito.anyCollection(), eq("11"), + eq("22"), eq("myPublicKey"), Mockito.any(SubscriberTypeEnum.class), Mockito.anyString())) + .thenReturn(okResponse); + when(distributionEngine.getEnvironmentByDmaapUebAddress(uebs)) + .thenReturn(environment); + + distributionBusinessLogic.handleUnRegistration(responseWrapper, registrationRequest, auditHandler); + + Mockito.verify(distributionBusinessLogic, Mockito.times(0)).registerDistributionClientToTopic( + eq(responseWrapper), eq(registrationRequest), eq(SubscriberTypeEnum.PRODUCER), + Mockito.anyString()); + Mockito.verify(distributionBusinessLogic, Mockito.times(0)).registerDistributionClientToTopic( + eq(responseWrapper), eq(registrationRequest), eq(SubscriberTypeEnum.CONSUMER), + Mockito.anyString()); + Mockito.verify(distributionBusinessLogic, Mockito.times(1)).unRegisterDistributionClientFromTopic( + eq(registrationRequest), eq(SubscriberTypeEnum.PRODUCER), Mockito.anyString()); + Mockito.verify(distributionBusinessLogic, Mockito.times(1)).unRegisterDistributionClientFromTopic( + eq(registrationRequest), eq(SubscriberTypeEnum.CONSUMER), Mockito.anyString()); + + Mockito.verify(cambriaHandler, Mockito.times(2)).unRegisterFromTopic(Mockito.anyCollection(), + Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.any(SubscriberTypeEnum.class), + Mockito.anyString()); + + assertTrue(!responseWrapper.isEmpty()); + Response response = responseWrapper.getInnerElement(); + assertEquals(response.getStatus(), HttpStatus.SC_OK); + + TopicUnregistrationResponse okTopicUnregisterResponse = (TopicUnregistrationResponse) response.getEntity(); + + String expectedStatusTopicName = DistributionEngineInitTask.buildTopicName( + configurationManager.getDistributionEngineConfiguration().getDistributionStatusTopicName(), + registrationRequest.getDistrEnvName()); + String actualStatusTopicName = okTopicUnregisterResponse.getDistrStatusTopicName(); + assertEquals(expectedStatusTopicName, actualStatusTopicName); + + String expectedNotificationTopicName = DistributionEngineInitTask.buildTopicName( + configurationManager.getDistributionEngineConfiguration().getDistributionNotifTopicName(), + registrationRequest.getDistrEnvName()); + String actualNotificationTopicName = okTopicUnregisterResponse.getDistrNotificationTopicName(); + assertEquals(expectedNotificationTopicName, actualNotificationTopicName); + + assertEquals(okTopicUnregisterResponse.getNotificationUnregisterResult(), CambriaOperationStatus.OK); + assertEquals(okTopicUnregisterResponse.getStatusUnregisterResult(), CambriaOperationStatus.OK); + } + + @Test public void testHandleRegistrationNoConsumeStatusTopic() { RegistrationRequest registrationRequest = new RegistrationRequest("myPublicKey", "myEnv", false); Wrapper<Response> responseWrapper = new Wrapper<>(); @@ -256,7 +334,7 @@ public class DistributionBusinessLogicTest extends BeConfDependentTest { public void testHandleUnRegistrationHappyScenario() { CambriaErrorResponse okResponse = new CambriaErrorResponse(CambriaOperationStatus.OK, HttpStatus.SC_OK); - Mockito.when(cambriaHandler.unRegisterFromTopic(Mockito.anyCollection(), Mockito.anyString(), + when(cambriaHandler.unRegisterFromTopic(Mockito.anyCollection(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.any(SubscriberTypeEnum.class), Mockito.anyString())) .thenReturn(okResponse); @@ -265,15 +343,15 @@ public class DistributionBusinessLogicTest extends BeConfDependentTest { distributionBusinessLogic.handleUnRegistration(responseWrapper, registrationRequest, auditHandler); Mockito.verify(distributionBusinessLogic, Mockito.times(0)).registerDistributionClientToTopic( - Mockito.eq(responseWrapper), Mockito.eq(registrationRequest), Mockito.eq(SubscriberTypeEnum.PRODUCER), + eq(responseWrapper), eq(registrationRequest), eq(SubscriberTypeEnum.PRODUCER), Mockito.anyString()); Mockito.verify(distributionBusinessLogic, Mockito.times(0)).registerDistributionClientToTopic( - Mockito.eq(responseWrapper), Mockito.eq(registrationRequest), Mockito.eq(SubscriberTypeEnum.CONSUMER), + eq(responseWrapper), eq(registrationRequest), eq(SubscriberTypeEnum.CONSUMER), Mockito.anyString()); Mockito.verify(distributionBusinessLogic, Mockito.times(1)).unRegisterDistributionClientFromTopic( - Mockito.eq(registrationRequest), Mockito.eq(SubscriberTypeEnum.PRODUCER), Mockito.anyString()); + eq(registrationRequest), eq(SubscriberTypeEnum.PRODUCER), Mockito.anyString()); Mockito.verify(distributionBusinessLogic, Mockito.times(1)).unRegisterDistributionClientFromTopic( - Mockito.eq(registrationRequest), Mockito.eq(SubscriberTypeEnum.CONSUMER), Mockito.anyString()); + eq(registrationRequest), eq(SubscriberTypeEnum.CONSUMER), Mockito.anyString()); Mockito.verify(cambriaHandler, Mockito.times(2)).unRegisterFromTopic(Mockito.anyCollection(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.any(SubscriberTypeEnum.class), @@ -315,25 +393,25 @@ public class DistributionBusinessLogicTest extends BeConfDependentTest { .buildTopicName(config.getDistributionStatusTopicName(), registrationRequest.getDistrEnvName()); String expectedNotificationTopicName = DistributionEngineInitTask .buildTopicName(config.getDistributionNotifTopicName(), registrationRequest.getDistrEnvName()); - Mockito.when(cambriaHandler.unRegisterFromTopic(config.getUebServers(), config.getUebPublicKey(), + when(cambriaHandler.unRegisterFromTopic(config.getUebServers(), config.getUebPublicKey(), config.getUebSecretKey(), registrationRequest.getApiPublicKey(), SubscriberTypeEnum.PRODUCER, expectedStatusTopicName)).thenReturn(okResponse); - Mockito.when(cambriaHandler.unRegisterFromTopic(config.getUebServers(), config.getUebPublicKey(), + when(cambriaHandler.unRegisterFromTopic(config.getUebServers(), config.getUebPublicKey(), config.getUebSecretKey(), registrationRequest.getApiPublicKey(), SubscriberTypeEnum.CONSUMER, expectedNotificationTopicName)).thenReturn(errorResponse); distributionBusinessLogic.handleUnRegistration(responseWrapper, registrationRequest, auditHandler); Mockito.verify(distributionBusinessLogic, Mockito.times(0)).registerDistributionClientToTopic( - Mockito.eq(responseWrapper), Mockito.eq(registrationRequest), Mockito.eq(SubscriberTypeEnum.PRODUCER), + eq(responseWrapper), eq(registrationRequest), eq(SubscriberTypeEnum.PRODUCER), Mockito.anyString()); Mockito.verify(distributionBusinessLogic, Mockito.times(0)).registerDistributionClientToTopic( - Mockito.eq(responseWrapper), Mockito.eq(registrationRequest), Mockito.eq(SubscriberTypeEnum.CONSUMER), + eq(responseWrapper), eq(registrationRequest), eq(SubscriberTypeEnum.CONSUMER), Mockito.anyString()); Mockito.verify(distributionBusinessLogic, Mockito.times(1)).unRegisterDistributionClientFromTopic( - Mockito.eq(registrationRequest), Mockito.eq(SubscriberTypeEnum.PRODUCER), Mockito.anyString()); + eq(registrationRequest), eq(SubscriberTypeEnum.PRODUCER), Mockito.anyString()); Mockito.verify(distributionBusinessLogic, Mockito.times(1)).unRegisterDistributionClientFromTopic( - Mockito.eq(registrationRequest), Mockito.eq(SubscriberTypeEnum.CONSUMER), Mockito.anyString()); + eq(registrationRequest), eq(SubscriberTypeEnum.CONSUMER), Mockito.anyString()); assertTrue(!responseWrapper.isEmpty()); Response response = responseWrapper.getInnerElement(); @@ -357,7 +435,7 @@ public class DistributionBusinessLogicTest extends BeConfDependentTest { private void testHandleRegistrationBasic(RegistrationRequest registrationRequest, Wrapper<Response> responseWrapper) { CambriaErrorResponse okResponse = new CambriaErrorResponse(CambriaOperationStatus.OK, HttpStatus.SC_OK); - Mockito.when(cambriaHandler.registerToTopic(Mockito.anyCollection(), Mockito.anyString(), Mockito.anyString(), + when(cambriaHandler.registerToTopic(Mockito.anyCollection(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.any(SubscriberTypeEnum.class), Mockito.anyString())) .thenReturn(okResponse); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/distribution/TestQueue.java b/catalog-be/src/test/java/org/openecomp/sdc/be/distribution/TestQueue.java index 47e4574e1a..f699f4b7f1 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/distribution/TestQueue.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/distribution/TestQueue.java @@ -29,7 +29,15 @@ import java.util.ArrayList; import java.util.List; import java.util.Timer; import java.util.TimerTask; -import java.util.concurrent.*; +import java.util.concurrent.ArrayBlockingQueue; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.RejectedExecutionException; +import java.util.concurrent.SynchronousQueue; +import java.util.concurrent.ThreadFactory; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; public class TestQueue { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/distribution/servlet/DistributionCatalogServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/distribution/servlet/DistributionCatalogServletTest.java deleted file mode 100644 index 326fcdc61f..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/distribution/servlet/DistributionCatalogServletTest.java +++ /dev/null @@ -1,451 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2019 Nokia. 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.openecomp.sdc.be.distribution.servlet; - -import fj.data.Either; -import org.apache.commons.text.StrSubstitutor; -import org.apache.http.HttpStatus; -import org.glassfish.hk2.utilities.binding.AbstractBinder; -import org.glassfish.jersey.server.ResourceConfig; -import org.glassfish.jersey.test.JerseyTest; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; -import org.mockito.Mockito; -import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic; -import org.openecomp.sdc.be.components.impl.exceptions.ByResponseFormatComponentException; -import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; -import org.openecomp.sdc.be.config.ConfigurationManager; -import org.openecomp.sdc.be.config.SpringConfig; -import org.openecomp.sdc.be.dao.api.ActionStatus; -import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.impl.WebAppContextWrapper; -import org.openecomp.sdc.be.user.UserBusinessLogic; -import org.openecomp.sdc.common.api.ConfigurationSource; -import org.openecomp.sdc.common.api.Constants; -import org.openecomp.sdc.common.impl.ExternalConfiguration; -import org.openecomp.sdc.common.impl.FSConfigurationSource; -import org.openecomp.sdc.exception.ResponseFormat; -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; -import org.springframework.web.context.WebApplicationContext; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Application; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.reset; -import static org.mockito.Mockito.when; -import static org.openecomp.sdc.TestUtils.downloadedPayloadMatchesExpected; - -public class DistributionCatalogServletTest extends JerseyTest { - - private static final HttpServletRequest HTTP_SERVLET_REQUEST = Mockito.mock(HttpServletRequest.class); - private static final UserBusinessLogic USER_BUSINESS_LOGIC = Mockito.mock(UserBusinessLogic.class); - private static final ArtifactsBusinessLogic ARTIFACTS_BUSINESS_LOGIC = Mockito.mock(ArtifactsBusinessLogic.class); - private static final ServletContext SERVLET_CONTEXT = Mockito.mock(ServletContext.class); - private static final WebAppContextWrapper WEB_APP_CONTEXT_WRAPPER = Mockito.mock(WebAppContextWrapper.class); - private static final WebApplicationContext WEB_APPLICATION_CONTEXT = Mockito.mock(WebApplicationContext.class); - private static final ComponentsUtils COMPONENT_UTILS = Mockito.mock(ComponentsUtils.class); - private static final ResponseFormat OK_RESPONSE_FORMAT = new ResponseFormat(HttpStatus.SC_OK); - private static final ResponseFormat GENERAL_ERROR_RESPONSE_FORMAT = new ResponseFormat(HttpStatus.SC_INTERNAL_SERVER_ERROR); - private static final ResponseFormat CREATED_RESPONSE_FORMAT = new ResponseFormat(HttpStatus.SC_CREATED); - private static final ResponseFormat NO_CONTENT_RESPONSE_FORMAT = new ResponseFormat(HttpStatus.SC_NO_CONTENT); - private static final ResponseFormat UNAUTHORIZED_RESPONSE_FORMAT = new ResponseFormat(HttpStatus.SC_UNAUTHORIZED); - private static final ResponseFormat NOT_FOUND_RESPONSE_FORMAT = new ResponseFormat(HttpStatus.SC_NOT_FOUND); - private static final ResponseFormat BAD_REQUEST_RESPONSE_FORMAT = new ResponseFormat(HttpStatus.SC_BAD_REQUEST); - private static final String SERVICE_VERSION = "serviceVersion"; - private static final String ARTIFACT_NAME = "artifactName"; - private static final String SERVICE_NAME = "serviceName"; - private static final String RESOURCE_NAME = "resourceName"; - private static final String RESOURCE_VERSION = "resourceVersion"; - private static final String RESOURCE_INSTANCE_NAME = "resourceInstanceName"; - private static final byte[] BYTE_ARRAY = new byte[]{0xA, 0xB, 0xC, 0xD}; - - @BeforeClass - public static void setup() { - when(SERVLET_CONTEXT.getAttribute(Constants.WEB_APPLICATION_CONTEXT_WRAPPER_ATTR)).thenReturn(WEB_APP_CONTEXT_WRAPPER); - when(WEB_APP_CONTEXT_WRAPPER.getWebAppContext(SERVLET_CONTEXT)).thenReturn(WEB_APPLICATION_CONTEXT); - - setUpResponseFormatsForMocks(); - setUpMockTestConfiguration(); - } - - private static void setUpMockTestConfiguration() { - String appConfigDir = "src/test/resources/config"; - ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir); - ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); - - org.openecomp.sdc.be.config.Configuration configuration = new org.openecomp.sdc.be.config.Configuration(); - configuration.setJanusGraphInMemoryGraph(true); - - configurationManager.setConfiguration(configuration); - ExternalConfiguration.setAppName("catalog-be"); - } - - private static void setUpResponseFormatsForMocks() { - when(COMPONENT_UTILS.getResponseFormat(ActionStatus.RESTRICTED_OPERATION)).thenReturn(UNAUTHORIZED_RESPONSE_FORMAT); - when(COMPONENT_UTILS.getResponseFormat(ActionStatus.OK)).thenReturn(OK_RESPONSE_FORMAT); - when(COMPONENT_UTILS.getResponseFormat(ActionStatus.CREATED)).thenReturn(CREATED_RESPONSE_FORMAT); - when(COMPONENT_UTILS.getResponseFormat(ActionStatus.NO_CONTENT)).thenReturn(NO_CONTENT_RESPONSE_FORMAT); - when(COMPONENT_UTILS.getResponseFormat(ActionStatus.INVALID_CONTENT)).thenReturn(BAD_REQUEST_RESPONSE_FORMAT); - when(COMPONENT_UTILS.getResponseFormat(ActionStatus.GENERAL_ERROR)).thenReturn(GENERAL_ERROR_RESPONSE_FORMAT); - when(COMPONENT_UTILS.getResponseFormat(any(ComponentException.class))) - .thenReturn(GENERAL_ERROR_RESPONSE_FORMAT); - when(COMPONENT_UTILS.getResponseFormat(eq(ActionStatus.RESOURCE_NOT_FOUND), any())).thenReturn(NOT_FOUND_RESPONSE_FORMAT); - when(COMPONENT_UTILS.getResponseFormat(eq(ActionStatus.COMPONENT_VERSION_NOT_FOUND), any())).thenReturn(NOT_FOUND_RESPONSE_FORMAT); - when(COMPONENT_UTILS.getResponseFormat(eq(ActionStatus.COMPONENT_INSTANCE_NOT_FOUND), any())).thenReturn(NOT_FOUND_RESPONSE_FORMAT); - when(COMPONENT_UTILS.getResponseFormat(eq(ActionStatus.EXT_REF_NOT_FOUND), any())).thenReturn(NOT_FOUND_RESPONSE_FORMAT); - when(COMPONENT_UTILS.getResponseFormat(eq(ActionStatus.MISSING_X_ECOMP_INSTANCE_ID), any())).thenReturn(BAD_REQUEST_RESPONSE_FORMAT); - ByResponseFormatComponentException ce = Mockito.mock(ByResponseFormatComponentException.class); - when(ce.getResponseFormat()).thenReturn(UNAUTHORIZED_RESPONSE_FORMAT); - } - - @Before - public void resetSomeMocks() { - reset(ARTIFACTS_BUSINESS_LOGIC); - } - - @Test - public void downloadServiceArtifactMissingInstanceIdHeaderTest() { - Map<String, String> parametersMap = new HashMap<>(); - parametersMap.put(SERVICE_NAME, SERVICE_NAME); - parametersMap.put(SERVICE_VERSION, SERVICE_VERSION); - parametersMap.put(ARTIFACT_NAME, ARTIFACT_NAME); - - String formatEndpoint = "/v1/catalog/services/{serviceName}/{serviceVersion}/artifacts/{artifactName}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{", "}"); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_OCTET_STREAM) - .get(); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_BAD_REQUEST); - } - - @Test - public void downloadServiceArtifactNoArtifactFoundTest() { - String serviceName = SERVICE_NAME; - String serviceVersion = SERVICE_VERSION; - String artifactName = ARTIFACT_NAME; - - Map<String, String> parametersMap = new HashMap<>(); - parametersMap.put(SERVICE_NAME, serviceName); - parametersMap.put(SERVICE_VERSION, serviceVersion); - parametersMap.put(ARTIFACT_NAME, artifactName); - - String formatEndpoint = "/v1/catalog/services/{serviceName}/{serviceVersion}/artifacts/{artifactName}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{", "}"); - - Either<byte[], ResponseFormat> downloadServiceArtifactEither = Either.right(NOT_FOUND_RESPONSE_FORMAT); - - when(ARTIFACTS_BUSINESS_LOGIC.downloadServiceArtifactByNames(serviceName, serviceVersion, artifactName)) - .thenReturn(downloadServiceArtifactEither); - - Response response = target() - .path(path) - .request() - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, UUID.randomUUID().toString()) - .accept(MediaType.APPLICATION_OCTET_STREAM) - .get(); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_NOT_FOUND); - } - - @Test - public void downloadServiceArtifactExceptionDuringProcessingTest() { - String serviceName = SERVICE_NAME; - String serviceVersion = SERVICE_VERSION; - String artifactName = ARTIFACT_NAME; - - Map<String, String> parametersMap = new HashMap<>(); - parametersMap.put(SERVICE_NAME, serviceName); - parametersMap.put(SERVICE_VERSION, serviceVersion); - parametersMap.put(ARTIFACT_NAME, artifactName); - - String formatEndpoint = "/v1/catalog/services/{serviceName}/{serviceVersion}/artifacts/{artifactName}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{", "}"); - - when(ARTIFACTS_BUSINESS_LOGIC.downloadServiceArtifactByNames(serviceName, serviceVersion, artifactName)) - .thenThrow(new RuntimeException("Test exception: downloadServiceArtifact")); - - Response response = target() - .path(path) - .request() - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, UUID.randomUUID().toString()) - .accept(MediaType.APPLICATION_OCTET_STREAM) - .get(); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_INTERNAL_SERVER_ERROR); - } - - @Test - public void downloadServiceArtifactTest() { - String serviceName = SERVICE_NAME; - String serviceVersion = SERVICE_VERSION; - String artifactName = ARTIFACT_NAME; - - Map<String, String> parametersMap = new HashMap<>(); - parametersMap.put(SERVICE_NAME, serviceName); - parametersMap.put(SERVICE_VERSION, serviceVersion); - parametersMap.put(ARTIFACT_NAME, artifactName); - - String formatEndpoint = "/v1/catalog/services/{serviceName}/{serviceVersion}/artifacts/{artifactName}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{", "}"); - - Either<byte[], ResponseFormat> downloadServiceArtifactEither = Either.left(BYTE_ARRAY); - when(ARTIFACTS_BUSINESS_LOGIC.downloadServiceArtifactByNames(serviceName, serviceVersion, artifactName)) - .thenReturn(downloadServiceArtifactEither); - - Response response = target() - .path(path) - .request() - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, UUID.randomUUID().toString()) - .accept(MediaType.APPLICATION_OCTET_STREAM) - .get(); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_OK); - assertTrue(response.getHeaders().containsKey(Constants.CONTENT_DISPOSITION_HEADER)); - assertTrue(downloadedPayloadMatchesExpected(response, BYTE_ARRAY)); - } - - @Test - public void downloadResouceArtifactNoArtifactFoundTest() { - String serviceName = SERVICE_NAME; - String serviceVersion = SERVICE_VERSION; - String resourceName = RESOURCE_NAME; - String resourceVersion = RESOURCE_VERSION; - String artifactName = ARTIFACT_NAME; - - Map<String, String> parametersMap = new HashMap<>(); - parametersMap.put(SERVICE_NAME, serviceName); - parametersMap.put(SERVICE_VERSION, serviceVersion); - parametersMap.put(RESOURCE_NAME, resourceName); - parametersMap.put(RESOURCE_VERSION, resourceVersion); - parametersMap.put(ARTIFACT_NAME, artifactName); - - String formatEndpoint = "/v1/catalog/services/{serviceName}/{serviceVersion}/resources/{resourceName}/{resourceVersion}/artifacts/{artifactName}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{", "}"); - - Either<byte[], ResponseFormat> downloadResourceArtifactEither = Either.right(NOT_FOUND_RESPONSE_FORMAT); - when(ARTIFACTS_BUSINESS_LOGIC.downloadRsrcArtifactByNames(serviceName, serviceVersion, resourceName, - resourceVersion, artifactName)) - .thenReturn(downloadResourceArtifactEither); - - Response response = target() - .path(path) - .request() - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, UUID.randomUUID().toString()) - .accept(MediaType.APPLICATION_OCTET_STREAM) - .get(); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_NOT_FOUND); - } - - @Test - public void downloadResouceArtifactExceptionDuringProcessingTest() { - String serviceName = SERVICE_NAME; - String serviceVersion = SERVICE_VERSION; - String resourceName = RESOURCE_NAME; - String resourceVersion = RESOURCE_VERSION; - String artifactName = ARTIFACT_NAME; - - Map<String, String> parametersMap = new HashMap<>(); - parametersMap.put(SERVICE_NAME, serviceName); - parametersMap.put(SERVICE_VERSION, serviceVersion); - parametersMap.put(RESOURCE_NAME, resourceName); - parametersMap.put(RESOURCE_VERSION, resourceVersion); - parametersMap.put(ARTIFACT_NAME, artifactName); - - String formatEndpoint = "/v1/catalog/services/{serviceName}/{serviceVersion}/resources/{resourceName}/{resourceVersion}/artifacts/{artifactName}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{", "}"); - - when(ARTIFACTS_BUSINESS_LOGIC.downloadRsrcArtifactByNames(serviceName, serviceVersion, resourceName, - resourceVersion, artifactName)) - .thenThrow(new RuntimeException("Test exception: downloadResouceArtifact")); - - Response response = target() - .path(path) - .request() - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, UUID.randomUUID().toString()) - .accept(MediaType.APPLICATION_OCTET_STREAM) - .get(); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_INTERNAL_SERVER_ERROR); - } - - @Test - public void downloadResouceArtifactTest() { - String serviceName = SERVICE_NAME; - String serviceVersion = SERVICE_VERSION; - String resourceName = RESOURCE_NAME; - String resourceVersion = RESOURCE_VERSION; - String artifactName = ARTIFACT_NAME; - - Map<String, String> parametersMap = new HashMap<>(); - parametersMap.put(SERVICE_NAME, serviceName); - parametersMap.put(SERVICE_VERSION, serviceVersion); - parametersMap.put(RESOURCE_NAME, resourceName); - parametersMap.put(RESOURCE_VERSION, resourceVersion); - parametersMap.put(ARTIFACT_NAME, artifactName); - - String formatEndpoint = "/v1/catalog/services/{serviceName}/{serviceVersion}/resources/{resourceName}/{resourceVersion}/artifacts/{artifactName}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{", "}"); - - Either<byte[], ResponseFormat> downloadResourceArtifactEither = Either.left(BYTE_ARRAY); - when(ARTIFACTS_BUSINESS_LOGIC.downloadRsrcArtifactByNames(serviceName, serviceVersion, resourceName, - resourceVersion, artifactName)) - .thenReturn(downloadResourceArtifactEither); - - Response response = target() - .path(path) - .request() - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, UUID.randomUUID().toString()) - .accept(MediaType.APPLICATION_OCTET_STREAM) - .get(); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_OK); - assertTrue(response.getHeaders().containsKey(Constants.CONTENT_DISPOSITION_HEADER)); - assertTrue(downloadedPayloadMatchesExpected(response, BYTE_ARRAY)); - } - - @Test - public void downloadResourceInstanceArtifactNoArtifactFoundTest() { - String serviceName = SERVICE_NAME; - String serviceVersion = SERVICE_VERSION; - String resourceInstanceName = RESOURCE_INSTANCE_NAME; - String artifactName = ARTIFACT_NAME; - - Map<String, String> parametersMap = new HashMap<>(); - parametersMap.put(SERVICE_NAME, serviceName); - parametersMap.put(SERVICE_VERSION, serviceVersion); - parametersMap.put(RESOURCE_INSTANCE_NAME, resourceInstanceName); - parametersMap.put(ARTIFACT_NAME, artifactName); - - String formatEndpoint = "/v1/catalog/services/{serviceName}/{serviceVersion}/resourceInstances/{resourceInstanceName}/artifacts/{artifactName}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{", "}"); - - Either<byte[], ResponseFormat> downloadResourceArtifactEither = Either.right(NOT_FOUND_RESPONSE_FORMAT); - when(ARTIFACTS_BUSINESS_LOGIC.downloadRsrcInstArtifactByNames(serviceName, serviceVersion, resourceInstanceName, - artifactName)) - .thenReturn(downloadResourceArtifactEither); - - Response response = target() - .path(path) - .request() - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, UUID.randomUUID().toString()) - .accept(MediaType.APPLICATION_OCTET_STREAM) - .get(); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_NOT_FOUND); - } - - @Test - public void downloadResourceInstanceArtifactExceptionDuringProcessingTest() { - String serviceName = SERVICE_NAME; - String serviceVersion = SERVICE_VERSION; - String resourceInstanceName = RESOURCE_INSTANCE_NAME; - String artifactName = ARTIFACT_NAME; - - Map<String, String> parametersMap = new HashMap<>(); - parametersMap.put(SERVICE_NAME, serviceName); - parametersMap.put(SERVICE_VERSION, serviceVersion); - parametersMap.put(RESOURCE_INSTANCE_NAME, resourceInstanceName); - parametersMap.put(ARTIFACT_NAME, artifactName); - - String formatEndpoint = "/v1/catalog/services/{serviceName}/{serviceVersion}/resourceInstances/{resourceInstanceName}/artifacts/{artifactName}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{", "}"); - - when(ARTIFACTS_BUSINESS_LOGIC.downloadRsrcInstArtifactByNames(serviceName, serviceVersion, resourceInstanceName, - artifactName)) - .thenThrow(new RuntimeException("Test exception: ownloadResourceInstanceArtifact")); - - Response response = target() - .path(path) - .request() - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, UUID.randomUUID().toString()) - .accept(MediaType.APPLICATION_OCTET_STREAM) - .get(); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_INTERNAL_SERVER_ERROR); - } - - @Test - public void downloadResourceInstanceArtifactTest() { - String serviceName = SERVICE_NAME; - String serviceVersion = SERVICE_VERSION; - String resourceInstanceName = RESOURCE_INSTANCE_NAME; - String artifactName = ARTIFACT_NAME; - - Map<String, String> parametersMap = new HashMap<>(); - parametersMap.put(SERVICE_NAME, serviceName); - parametersMap.put(SERVICE_VERSION, serviceVersion); - parametersMap.put(RESOURCE_INSTANCE_NAME, resourceInstanceName); - parametersMap.put(ARTIFACT_NAME, artifactName); - - String formatEndpoint = "/v1/catalog/services/{serviceName}/{serviceVersion}/resourceInstances/{resourceInstanceName}/artifacts/{artifactName}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{", "}"); - - Either<byte[], ResponseFormat> downloadResourceArtifactEither = Either.left(BYTE_ARRAY); - when(ARTIFACTS_BUSINESS_LOGIC.downloadRsrcInstArtifactByNames(serviceName, serviceVersion, resourceInstanceName, - artifactName)) - .thenReturn(downloadResourceArtifactEither); - - Response response = target() - .path(path) - .request() - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, UUID.randomUUID().toString()) - .accept(MediaType.APPLICATION_OCTET_STREAM) - .get(); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_OK); - assertTrue(response.getHeaders().containsKey(Constants.CONTENT_DISPOSITION_HEADER)); - assertTrue(downloadedPayloadMatchesExpected(response, BYTE_ARRAY)); - } - - @Override - protected Application configure() { - ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class); - return new ResourceConfig(DistributionCatalogServlet.class) - .register(new AbstractBinder() { - - @Override - protected void configure() { - bind(HTTP_SERVLET_REQUEST).to(HttpServletRequest.class); - bind(USER_BUSINESS_LOGIC).to(UserBusinessLogic.class); - bind(COMPONENT_UTILS).to(ComponentsUtils.class); - bind(ARTIFACTS_BUSINESS_LOGIC).to(ArtifactsBusinessLogic.class); - } - }) - .property("contextConfig", context); - } -}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/distribution/servlet/DistributionServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/distribution/servlet/DistributionServletTest.java index a33b24d5da..26312894ae 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/distribution/servlet/DistributionServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/distribution/servlet/DistributionServletTest.java @@ -20,18 +20,8 @@ package org.openecomp.sdc.be.distribution.servlet; -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.when; - import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; -import javax.ws.rs.client.Entity; -import javax.ws.rs.core.Application; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; import org.apache.http.HttpStatus; import org.glassfish.hk2.utilities.binding.AbstractBinder; import org.glassfish.jersey.server.ResourceConfig; @@ -45,6 +35,7 @@ import org.mockito.stubbing.Answer; import org.openecomp.sdc.be.components.distribution.engine.DistributionEngine; import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; import org.openecomp.sdc.be.components.impl.GroupBusinessLogic; +import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.config.SpringConfig; import org.openecomp.sdc.be.distribution.AuditHandler; import org.openecomp.sdc.be.distribution.DistributionBusinessLogic; @@ -54,14 +45,31 @@ import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.impl.WebAppContextWrapper; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.user.UserBusinessLogic; +import org.openecomp.sdc.common.api.ConfigurationSource; import org.openecomp.sdc.common.api.Constants; +import org.openecomp.sdc.common.api.FilterDecisionEnum; import org.openecomp.sdc.common.datastructure.Wrapper; import org.openecomp.sdc.common.impl.ExternalConfiguration; +import org.openecomp.sdc.common.impl.FSConfigurationSource; +import org.openecomp.sdc.common.util.ThreadLocalsHolder; import org.openecomp.sdc.exception.ResponseFormat; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.web.context.WebApplicationContext; +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import javax.ws.rs.client.Entity; +import javax.ws.rs.core.Application; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.when; + public class DistributionServletTest extends JerseyTest { public static final HttpServletRequest request = Mockito.mock(HttpServletRequest.class); @@ -72,6 +80,10 @@ public class DistributionServletTest extends JerseyTest { public static final ResponseFormat responseFormat = Mockito.mock(ResponseFormat.class); public static final DistributionBusinessLogic distributionBusinessLogic = Mockito.mock(DistributionBusinessLogic.class); public static final DistributionEngine distributionEngine = Mockito.mock(DistributionEngine.class); + private static ConfigurationSource configurationSource = new FSConfigurationSource( + ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be"); + static ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); + public static final String ENV_NAME = "myEnv"; public static final String NOTIFICATION_TOPIC = ENV_NAME + "_Notification"; @@ -79,6 +91,7 @@ public class DistributionServletTest extends JerseyTest { @BeforeClass public static void setup() { + ThreadLocalsHolder.setApiType(FilterDecisionEnum.EXTERNAL); ExternalConfiguration.setAppName("catalog-be"); when(request.getSession()).thenReturn(session); when(request.getHeader(Constants.X_ECOMP_INSTANCE_ID_HEADER)).thenReturn("myApplicationInstanceID"); @@ -86,10 +99,13 @@ public class DistributionServletTest extends JerseyTest { when(session.getServletContext()).thenReturn(servletContext); when(servletContext.getAttribute(Constants.WEB_APPLICATION_CONTEXT_WRAPPER_ATTR)).thenReturn(webAppContextWrapper); when(webAppContextWrapper.getWebAppContext(servletContext)).thenReturn(webApplicationContext); + when(webApplicationContext.getBean(DistributionBusinessLogic.class)).thenReturn(distributionBusinessLogic); when(distributionBusinessLogic.getDistributionEngine()).thenReturn(distributionEngine); when(distributionEngine.isEnvironmentAvailable(ENV_NAME)).thenReturn(StorageOperationStatus.OK); when(distributionEngine.isEnvironmentAvailable()).thenReturn(StorageOperationStatus.OK); + when(request.isUserInRole(anyString())).thenReturn(true); + mockBusinessLogicResponse(); } @@ -136,6 +152,15 @@ public class DistributionServletTest extends JerseyTest { } @Test + public void registerSuccessOnTenantTest() { + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + RegistrationRequest registrationRequest = new RegistrationRequest("myPublicKey", ENV_NAME, Arrays.asList("11","22"),false); + Response response = target().path("/v1/registerForDistribution").request(MediaType.APPLICATION_JSON).post(Entity.json(gson.toJson(registrationRequest)), Response.class); + assertEquals(response.getStatus(), HttpStatus.SC_OK); + + } + + @Test public void unRegisterSuccessTest() { Gson gson = new GsonBuilder().setPrettyPrinting().create(); RegistrationRequest registrationRequest = new RegistrationRequest("myPublicKey", ENV_NAME, false); @@ -144,6 +169,15 @@ public class DistributionServletTest extends JerseyTest { } + @Test + public void unRegisterSuccessOnTenantTest() { + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + RegistrationRequest registrationRequest = new RegistrationRequest("myPublicKey", ENV_NAME, false); + Response response = target().path("/v1/unRegisterForDistribution").request(MediaType.APPLICATION_JSON).post(Entity.json(gson.toJson(registrationRequest)), Response.class); + assertEquals(response.getStatus(), HttpStatus.SC_OK); + + } + @Override protected Application configure() { UserBusinessLogic userBusinessLogic = Mockito.mock(UserBusinessLogic.class); @@ -153,6 +187,8 @@ public class DistributionServletTest extends JerseyTest { ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class); forceSet(TestProperties.CONTAINER_PORT, "0"); + enable(TestProperties.LOG_TRAFFIC); + enable(TestProperties.DUMP_ENTITY); return new ResourceConfig(DistributionServlet.class) .register(new AbstractBinder() { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/ecomp/EcompIntImplTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/ecomp/EcompIntImplTest.java index 88be8cbd5d..c32768b85b 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/ecomp/EcompIntImplTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/ecomp/EcompIntImplTest.java @@ -31,91 +31,103 @@ import java.util.List; public class EcompIntImplTest { - private EcompIntImpl createTestSubject() { - return new EcompIntImpl(); - } - - @Test(expected=PortalAPIException.class) - public void testPushUser() throws Exception { - EcompIntImpl testSubject; - EcompUser user = null; - - // default test - testSubject = createTestSubject(); - testSubject.pushUser(user); - } - - @Test(expected=PortalAPIException.class) - public void testEditUser() throws Exception { - EcompIntImpl testSubject; - String loginId = ""; - EcompUser user = null; - - // default test - testSubject = createTestSubject(); - testSubject.editUser(loginId, user); - } - - @Test(expected=PortalAPIException.class) - public void testGetUser() throws Exception { - EcompIntImpl testSubject; - String loginId = ""; - EcompUser result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getUser(loginId); - } - - @Test(expected=PortalAPIException.class) - public void testGetUsers() throws Exception { - EcompIntImpl testSubject; - List<EcompUser> result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getUsers(); - } - - @Test - public void testGetAvailableRoles() throws Exception { - EcompIntImpl testSubject; - List<EcompRole> result; - - // default test - testSubject = createTestSubject(); + private EcompIntImpl createTestSubject() { + return new EcompIntImpl(); + } + + @Test(expected=PortalAPIException.class) + public void testPushUser() throws Exception { + EcompIntImpl testSubject; + EcompUser user = null; + + // default test + testSubject = createTestSubject(); + testSubject.pushUser(user); + } + + @Test(expected=PortalAPIException.class) + public void testEditUser() throws Exception { + EcompIntImpl testSubject; + String loginId = ""; + EcompUser user = null; + + // default test + testSubject = createTestSubject(); + testSubject.editUser(loginId, user); + } + + @Test(expected=PortalAPIException.class) + public void testGetUser() throws Exception { + EcompIntImpl testSubject; + String loginId = ""; + EcompUser result; + + // default test + testSubject = createTestSubject(); + result = testSubject.getUser(loginId); + } + + @Test(expected=PortalAPIException.class) + public void testGetUsers() throws Exception { + EcompIntImpl testSubject; + List<EcompUser> result; + + // default test + testSubject = createTestSubject(); + result = testSubject.getUsers(); + } + + @Test + public void testGetAvailableRoles() throws Exception { + EcompIntImpl testSubject; + List<EcompRole> result; + + // default test + testSubject = createTestSubject(); result = testSubject.getAvailableRoles("Mock"); - } + } + + /*@Test + public void testPushUserRole() throws Exception { + EcompIntImpl testSubject; + String loginId = ""; + List<EcompRole> roles = null; + + // test 1 + testSubject = createTestSubject(); + roles = null; + testSubject.pushUserRole(loginId, roles); + }*/ @Test(expected= PortalAPIException.class) - public void testGetUserRoles() throws Exception { - EcompIntImpl testSubject; - String loginId = ""; - List<EcompRole> result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getUserRoles(loginId); - } - - @Test - public void testIsAppAuthenticated() throws Exception { - EcompIntImpl testSubject; - boolean result; + public void testGetUserRoles() throws Exception { + EcompIntImpl testSubject; + String loginId = ""; + List<EcompRole> result; + + // default test + testSubject = createTestSubject(); + result = testSubject.getUserRoles(loginId); + } + + @Test + public void testIsAppAuthenticated() throws Exception { + EcompIntImpl testSubject; + boolean result; HttpServletRequest httpServletRequestImpl = Mockito.mock(HttpServletRequest.class); - // default test - testSubject = createTestSubject(); - result = testSubject.isAppAuthenticated(httpServletRequestImpl); - } - - @Test - public void testGetUserId() throws Exception { - EcompIntImpl testSubject; + // default test + testSubject = createTestSubject(); + result = testSubject.isAppAuthenticated(httpServletRequestImpl); + } + + @Test + public void testGetUserId() throws Exception { + EcompIntImpl testSubject; HttpServletRequest httpServletRequestImpl = Mockito.mock(HttpServletRequest.class); - String result; + String result; - // default test - testSubject = createTestSubject(); - result = testSubject.getUserId(httpServletRequestImpl); - } + // default test + testSubject = createTestSubject(); + result = testSubject.getUserId(httpServletRequestImpl); + } } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/ecomp/PortalRestAPICentralServiceImplTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/ecomp/PortalRestAPICentralServiceImplTest.java index d364bf1b21..964e6258df 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/ecomp/PortalRestAPICentralServiceImplTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/ecomp/PortalRestAPICentralServiceImplTest.java @@ -30,36 +30,38 @@ import org.onap.portalsdk.core.restful.domain.EcompRole; import org.onap.portalsdk.core.restful.domain.EcompUser; import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.user.UserBusinessLogic; +import org.openecomp.sdc.be.user.UserBusinessLogicExt; import org.openecomp.sdc.exception.ResponseFormat; +import javax.servlet.http.HttpServletRequest; import java.util.HashSet; import java.util.Map; import java.util.Set; public class PortalRestAPICentralServiceImplTest { - PortalRestAPICentralServiceImpl testSubject; - UserBusinessLogic ubl; + private PortalRestAPICentralServiceImpl testSubject; + private UserBusinessLogic ubl; + private UserBusinessLogicExt uble; @Before - public void setUp() throws Exception { + public void createTestSubject() { ubl = Mockito.mock(UserBusinessLogic.class); - testSubject = new PortalRestAPICentralServiceImpl(ubl); + uble = Mockito.mock(UserBusinessLogicExt.class); + testSubject = new PortalRestAPICentralServiceImpl(ubl, uble); + } @Test public void testGetAppCredentials() throws Exception { Map<String, String> appCredentials = testSubject.getAppCredentials(); - Assert.assertTrue(appCredentials.get(PortalRestAPICentralServiceImpl.PortalPropertiesEnum.PORTAL_APP_NAME.value()).equals("sdc")); - Assert.assertTrue(appCredentials.get(PortalRestAPICentralServiceImpl.PortalPropertiesEnum.PORTAL_USER.value()).equals("sdc")); - Assert.assertTrue(appCredentials.get(PortalRestAPICentralServiceImpl.PortalPropertiesEnum.PORTAL_PASS.value()).equals("asdc")); + Assert.assertTrue(appCredentials.get("appName").equals("sdc")); + Assert.assertTrue(appCredentials.get("username").equals("sdc")); + Assert.assertTrue(appCredentials.get("password").equals("asdc")); } @Test - public void testPushUserGeneralError() throws Exception { - ResponseFormat responseFormat = Mockito.mock(ResponseFormat.class); - Mockito.when(responseFormat.getMessageId()).thenReturn("mock"); - Mockito.when(ubl.createUser(Mockito.any(), Mockito.any())).thenReturn(Either.right(responseFormat)); + public void testPushUser() { EcompUser user = new EcompUser(); Set<EcompRole> roleSet = new HashSet<>(); EcompRole role = new EcompRole(); @@ -67,79 +69,206 @@ public class PortalRestAPICentralServiceImplTest { role.setName("Designer"); roleSet.add(role); user.setRoles(roleSet); - try{ + try { testSubject.pushUser(user); - }catch (PortalAPIException e) { - System.out.println(e); - Assert.assertTrue(e.getMessage().startsWith("Failed to create user {}")); + } catch (PortalAPIException e) { + Assert.fail(); } + } + @Test + public void testPushUserUBLError() { + Mockito.when(ubl.createUser(Mockito.anyString(), Mockito.any(User.class))).thenThrow(RuntimeException.class); + EcompUser user = new EcompUser(); + Set<EcompRole> roleSet = new HashSet<>(); + EcompRole role = new EcompRole(); + role.setId(1L); + role.setName("Designer"); + roleSet.add(role); + user.setRoles(roleSet); + try { + testSubject.pushUser(user); + } catch (PortalAPIException e) { + Assert.assertTrue(e.getMessage().startsWith("Failed to create user")); + return; + } + Assert.fail(); } @Test - public void testPushUserSuccess() throws Exception { - ResponseFormat responseFormat = Mockito.mock(ResponseFormat.class); - Mockito.when(responseFormat.getMessageId()).thenReturn("SVC4006"); - Mockito.when(ubl.createUser(Mockito.any(), Mockito.any())).thenReturn(Either.left(new User())); + public void testPushUserMultipleRoles() { EcompUser user = new EcompUser(); Set<EcompRole> roleSet = new HashSet<>(); EcompRole role = new EcompRole(); role.setId(1L); role.setName("Designer"); roleSet.add(role); + EcompRole role1 = new EcompRole(); + role.setId(2L); + roleSet.add(role1); + role.setName("Tester"); user.setRoles(roleSet); - testSubject.pushUser(user); + try { + testSubject.pushUser(user); + } catch (PortalAPIException e) { + Assert.assertTrue(e.getMessage().startsWith("Received multiple roles for user")); + return; + } + Assert.fail(); } @Test - public void testPushUserNullRoles() throws Exception { + public void testPushUserNullRoles() { EcompUser user = new EcompUser(); try{ testSubject.pushUser(user); } catch (PortalAPIException e){ Assert.assertTrue(e.getMessage().equals("Received null roles for user" + user)); + return; } - + Assert.fail(); } @Test - public void testPushUserUserNull() throws Exception { + public void testPushUserUserNull() { try { testSubject.pushUser(null); } catch (PortalAPIException e) { Assert.assertTrue(e.getMessage().equals("Received null for argument user")); + return; + } + Assert.fail(); + } + + @Test + public void testEditUserUserNull() { + try { + testSubject.editUser(null, null); + } catch (PortalAPIException e) { + Assert.assertTrue(e.getMessage().equals("Received null for argument user")); + return; + } + Assert.fail(); + } + + @Test + public void testEditUserIdNull() { + try { + testSubject.editUser(null, new EcompUser()); + } catch (PortalAPIException e) { + Assert.assertTrue(e.getMessage().equals("Received null for argument loginId")); + return; + } + Assert.fail(); + } + + @Test + public void testEditUserFailOnUpdate() { + Mockito.when(ubl.updateUserCredentials(Mockito.any(User.class))).thenReturn(Either.right(new ResponseFormat())); + Mockito.when(ubl.verifyNewUserForPortal(Mockito.anyString())).thenReturn(Either.left(new User())); + EcompUser user = new EcompUser(); + Set<EcompRole> roleSet = new HashSet<>(); + EcompRole role = new EcompRole(); + role.setId(1L); + role.setName("Designer"); + roleSet.add(role); + user.setRoles(roleSet); + try { + testSubject.editUser("mock_id", user); + } catch (PortalAPIException e) { + Assert.assertTrue(e.getMessage().startsWith("Failed to edit user")); } + } + @Test + public void testEditUserDeactivate() { + Mockito.when(ubl.updateUserCredentials(Mockito.any(User.class))).thenReturn(Either.left(new User())); + Mockito.when(ubl.verifyNewUserForPortal(Mockito.anyString())).thenReturn(Either.left(new User())); + EcompUser user = new EcompUser(); + try { + testSubject.editUser("mock_id", user); + } catch (PortalAPIException e) { + Assert.fail(); + } } - /** - * - * Method: editUser(String loginId, EcompUser user) - * - */ @Test - public void testEditUser() throws Exception { - //TODO: Test goes here... + public void testEditUserFailUpdate() { + Mockito.when(ubl.updateUserCredentials(Mockito.any(User.class))).thenReturn(Either.left(new User())); + Mockito.when(ubl.updateUserRole(Mockito.anyString(), Mockito.anyString(), Mockito.anyString())).thenThrow(new RuntimeException()); + Mockito.when(ubl.verifyNewUserForPortal(Mockito.anyString())).thenReturn(Either.left(new User())); + EcompUser user = new EcompUser(); + Set<EcompRole> roleSet = new HashSet<>(); + EcompRole role = new EcompRole(); + role.setId(1L); + role.setName("Designer"); + roleSet.add(role); + user.setRoles(roleSet); + try { + testSubject.editUser("mock_id", user); + } catch (PortalAPIException e) { + Assert.assertTrue(e.getMessage().startsWith("Error: Failed to update user role")); + return; + } + Assert.fail(); } - /** - * - * Method: getUserId(HttpServletRequest request) - * - */ @Test - public void testGetUserId() throws Exception { - //TODO: Test goes here... + public void testEditUserFailDeactivate() { + Mockito.when(ubl.updateUserCredentials(Mockito.any(User.class))).thenReturn(Either.left(new User())); + Mockito.when(uble.deActivateUser(Mockito.anyString(), Mockito.anyString())).thenThrow(new RuntimeException()); + Mockito.when(ubl.verifyNewUserForPortal(Mockito.anyString())).thenReturn(Either.left(new User())); + EcompUser user = new EcompUser(); + try { + testSubject.editUser("mock_id", user); + } catch (PortalAPIException e) { + Assert.assertTrue(e.getMessage().startsWith("Error: Failed to deactivate user")); + return; + } + Assert.fail(); } - /** - * - * Method: value() - * - */ @Test - public void testValue() throws Exception { - //TODO: Test goes here... + public void testEditUser() { + Mockito.when(ubl.updateUserCredentials(Mockito.any(User.class))).thenReturn(Either.left(new User())); + Mockito.when(ubl.verifyNewUserForPortal(Mockito.anyString())).thenReturn(Either.left(new User())); + EcompUser user = new EcompUser(); + Set<EcompRole> roleSet = new HashSet<>(); + EcompRole role = new EcompRole(); + role.setId(1L); + role.setName("Designer"); + roleSet.add(role); + user.setRoles(roleSet); + try { + testSubject.editUser("mock_id", user); + } catch (PortalAPIException e) { + Assert.fail(); + } + } + + @Test + public void testGetUserId() { + HttpServletRequest httpServletRequestMock = Mockito.mock(HttpServletRequest.class); + String mockHeader = "MockHeader"; + Mockito.when(httpServletRequestMock.getHeader(Mockito.anyString())).thenReturn(mockHeader); + try { + String userId = testSubject.getUserId(httpServletRequestMock); + Assert.assertTrue(userId.equals(mockHeader)); + } catch (PortalAPIException e){ + Assert.fail(); + } + } + @Test + public void testGetUserIdException() { + HttpServletRequest httpServletRequestMock = Mockito.mock(HttpServletRequest.class); + try { + testSubject.getUserId(httpServletRequestMock); + } catch (PortalAPIException e){ + Assert.assertTrue(e.getMessage().equals("Failed to get user_id header")); + return; + } + Assert.fail(); + } } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/ecomp/converters/AssetMetadataConverterTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/ecomp/converters/AssetMetadataConverterTest.java index 64ad87df1e..22c8b94190 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/ecomp/converters/AssetMetadataConverterTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/ecomp/converters/AssetMetadataConverterTest.java @@ -25,8 +25,20 @@ import mockit.Deencapsulation; import org.junit.Assert; import org.junit.Test; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; -import org.openecomp.sdc.be.externalapi.servlet.representation.*; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.externalapi.servlet.representation.ArtifactMetadata; +import org.openecomp.sdc.be.externalapi.servlet.representation.AssetMetadata; +import org.openecomp.sdc.be.externalapi.servlet.representation.ResourceAssetDetailedMetadata; +import org.openecomp.sdc.be.externalapi.servlet.representation.ResourceAssetMetadata; +import org.openecomp.sdc.be.externalapi.servlet.representation.ResourceInstanceMetadata; +import org.openecomp.sdc.be.externalapi.servlet.representation.ServiceAssetDetailedMetadata; +import org.openecomp.sdc.be.externalapi.servlet.representation.ServiceAssetMetadata; +import org.openecomp.sdc.be.model.ArtifactDefinition; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.ComponentInstance; +import org.openecomp.sdc.be.model.DistributionStatusEnum; +import org.openecomp.sdc.be.model.LifecycleStateEnum; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.Service; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum; import org.openecomp.sdc.exception.ResponseFormat; @@ -63,7 +75,7 @@ public class AssetMetadataConverterTest { String serverBaseURL = ""; boolean detailed = false; Either<? extends AssetMetadata, ResponseFormat> result; - component.setLifecycleState(LifecycleStateEnum.CERTIFICATION_IN_PROGRESS); + component.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); component.setComponentType(ComponentTypeEnum.RESOURCE); // default test testSubject = createTestSubject(); @@ -77,7 +89,7 @@ public class AssetMetadataConverterTest { boolean detailed = false; Resource curr = new Resource(); Either<? extends AssetMetadata, ResponseFormat> result; - curr.setLifecycleState(LifecycleStateEnum.CERTIFICATION_IN_PROGRESS); + curr.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); curr.setComponentType(ComponentTypeEnum.RESOURCE); // default test testSubject = createTestSubject(); @@ -91,7 +103,7 @@ public class AssetMetadataConverterTest { String serverBaseURL = ""; Resource curr = new Resource(); Either<? extends AssetMetadata, ResponseFormat> result; - curr.setLifecycleState(LifecycleStateEnum.CERTIFICATION_IN_PROGRESS); + curr.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); curr.setComponentType(ComponentTypeEnum.RESOURCE); // default test testSubject = createTestSubject(); @@ -114,7 +126,7 @@ public class AssetMetadataConverterTest { String serverBaseURL = ""; boolean detailed = false; Service curr = new Service(); - curr.setLifecycleState(LifecycleStateEnum.CERTIFICATION_IN_PROGRESS); + curr.setLifecycleState(LifecycleStateEnum.CERTIFIED); curr.setDistributionStatus(DistributionStatusEnum.DISTRIBUTED); Either<? extends AssetMetadata, ResponseFormat> result; @@ -145,7 +157,7 @@ public class AssetMetadataConverterTest { String serverBaseURL = ""; boolean detailed = false; ResourceAssetMetadata result; - resource.setLifecycleState(LifecycleStateEnum.CERTIFICATION_IN_PROGRESS); + resource.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); // default test testSubject = createTestSubject(); @@ -158,7 +170,7 @@ public class AssetMetadataConverterTest { AssetMetadataConverter testSubject; ServiceAssetMetadata assetToPopulate = new ServiceAssetMetadata(); Service service = new Service(); - service.setLifecycleState(LifecycleStateEnum.CERTIFICATION_IN_PROGRESS); + service.setLifecycleState(LifecycleStateEnum.CERTIFIED); service.setDistributionStatus(DistributionStatusEnum.DISTRIBUTED); String serverBaseURL = ""; boolean detailed = false; @@ -216,7 +228,7 @@ public class AssetMetadataConverterTest { Service service = new Service(); Map<String, ArtifactDefinition> artifacts = new HashMap<>(); ServiceAssetDetailedMetadata result; - service.setLifecycleState(LifecycleStateEnum.CERTIFICATION_IN_PROGRESS); + service.setLifecycleState(LifecycleStateEnum.CERTIFIED); service.setDistributionStatus(DistributionStatusEnum.DISTRIBUTED); // default test testSubject = createTestSubject(); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/ecomp/converters/EcompRoleConverterTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/ecomp/converters/EcompRoleConverterTest.java index c800c44275..ea4b085e5a 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/ecomp/converters/EcompRoleConverterTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/ecomp/converters/EcompRoleConverterTest.java @@ -33,7 +33,7 @@ public class EcompRoleConverterTest { // test 1 for (Role iterable_element : Role.values()) { - ecompRole.setId(new Long(iterable_element.ordinal())); + ecompRole.setName(iterable_element.name()); EcompRoleConverter.convertEcompRoleToRole(ecompRole); } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/ecomp/converters/EcompUserConverterTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/ecomp/converters/EcompUserConverterTest.java index a8aed72591..74fe5205a6 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/ecomp/converters/EcompUserConverterTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/ecomp/converters/EcompUserConverterTest.java @@ -21,79 +21,27 @@ package org.openecomp.sdc.be.ecomp.converters; import fj.data.Either; -import org.junit.Assert; import org.junit.Test; -import org.onap.portalsdk.core.restful.domain.EcompRole; import org.onap.portalsdk.core.restful.domain.EcompUser; import org.openecomp.sdc.be.model.User; -import java.util.Collections; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; public class EcompUserConverterTest { - private static final String FIRST_NAME = "firstname"; - private static final String LAST_NAME = "lastname"; - private static final String USER_ID = "sample id"; - private static final String EMAIL_ADDRESS = "sample@sample.com"; - private static final String ROLE = "ADMIN"; - - private static final Long LAST_LOGIN_TIME = 12345L; - private static final User TEST_USER = new User(FIRST_NAME, LAST_NAME, USER_ID, EMAIL_ADDRESS, ROLE, LAST_LOGIN_TIME); - - - @Test - public void shouldProperlyConvertEcompUserToUser() { - Either<EcompUser, String> convertedUser = EcompUserConverter.convertUserToEcompUser(TEST_USER); - - assertThat(convertedUser.isLeft()).isTrue(); - - EcompUser user = convertedUser.left().value(); - - assertThat(EMAIL_ADDRESS).isEqualTo(user.getEmail()); - assertThat(FIRST_NAME).isEqualTo(user.getFirstName()); - assertThat(LAST_NAME).isEqualTo(user.getLastName()); - assertThat(USER_ID).isEqualTo(user.getLoginId()); - assertThat(user.getRoles().stream().anyMatch((x) -> ROLE.equals(x.getName()))).isTrue(); - } - - @Test - public void shouldNotCrashWhenUserIsNotProvided() { - Either<EcompUser, String> convertedUser = EcompUserConverter.convertUserToEcompUser(null); - - assertThat(convertedUser.isRight()).isTrue(); - } - - @Test - public void shouldNotCrashWhenEcompUserIsNotProvided() { - User convertedUser = EcompUserConverter.convertEcompUserToUser(null); - - Assert.assertTrue(convertedUser != null); - } - - @Test - public void shouldProperlyConvertUserToEcompUser() { - User convertedUser = EcompUserConverter.convertEcompUserToUser(createEcompUser()); - - assertThat(EMAIL_ADDRESS).isEqualTo(convertedUser.getEmail()); - assertThat(FIRST_NAME).isEqualTo(convertedUser.getFirstName()); - assertThat(LAST_NAME).isEqualTo(convertedUser.getLastName()); - assertThat(USER_ID).isEqualTo(convertedUser.getUserId()); - assertThat(ROLE).isEqualTo(convertedUser.getRole()); - } - private EcompUser createEcompUser() { - EcompUser user = new EcompUser(); + @Test + public void testConvertUserToEcompUser() throws Exception { + User asdcUser = new User(); + Either<EcompUser, String> result; - EcompRole role = new EcompRole(); + // test 1 + result = EcompUserConverter.convertUserToEcompUser(asdcUser); + } - role.setName(ROLE); - role.setId(0L); + @Test + public void testConvertEcompUserToUser() throws Exception { + EcompUser ecompUser = new EcompUser(); + User result; - user.setRoles(Collections.singleton(role)); - user.setEmail(EMAIL_ADDRESS); - user.setLastName(LAST_NAME); - user.setFirstName(FIRST_NAME); - user.setOrgUserId(USER_ID); - return user; - } + // test 1 + result = EcompUserConverter.convertEcompUserToUser(ecompUser); + } } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/exception/ComponentExceptionMatcher.java b/catalog-be/src/test/java/org/openecomp/sdc/be/exception/ComponentExceptionMatcher.java new file mode 100644 index 0000000000..3230196d60 --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/exception/ComponentExceptionMatcher.java @@ -0,0 +1,52 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * 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.openecomp.sdc.be.exception; + +import org.hamcrest.Description; +import org.hamcrest.TypeSafeMatcher; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; + +public class ComponentExceptionMatcher extends TypeSafeMatcher<ComponentException> { + + private String foundErrorCode; + private final String expectedErrorCode; + + public static ComponentExceptionMatcher hasStatus(String status) { + return new ComponentExceptionMatcher(status); + } + + public ComponentExceptionMatcher(String expectedErrorCode) { + this.expectedErrorCode = expectedErrorCode; + } + + @Override + protected boolean matchesSafely(ComponentException e) { + foundErrorCode = e.getResponseFormat().getMessageId(); + return expectedErrorCode.equals(foundErrorCode); + } + + @Override + public void describeTo(Description description) { + description.appendValue(foundErrorCode) + .appendText(" was found instead of ") + .appendValue(expectedErrorCode); + } +} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/ArtifactExternalServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/ArtifactExternalServletTest.java deleted file mode 100644 index 00f84ad9c9..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/ArtifactExternalServletTest.java +++ /dev/null @@ -1,1006 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2019 Nokia. 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.openecomp.sdc.be.externalapi.servlet; - -import fj.data.Either; -import org.apache.commons.text.StrSubstitutor; -import org.glassfish.hk2.utilities.binding.AbstractBinder; -import org.glassfish.jersey.server.ResourceConfig; -import org.glassfish.jersey.test.JerseyTest; -import org.junit.BeforeClass; -import org.junit.Test; -import org.mockito.Mockito; -import org.apache.http.HttpStatus; -import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic; -import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; -import org.openecomp.sdc.be.components.impl.ResourceBusinessLogic; -import org.openecomp.sdc.be.components.impl.ResourceImportManager; -import org.openecomp.sdc.be.components.impl.exceptions.ByResponseFormatComponentException; -import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; -import org.openecomp.sdc.be.config.ConfigurationManager; -import org.openecomp.sdc.be.config.SpringConfig; -import org.openecomp.sdc.be.dao.api.ActionStatus; -import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; -import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.impl.ServletUtils; -import org.openecomp.sdc.be.impl.WebAppContextWrapper; -import org.openecomp.sdc.be.model.ArtifactDefinition; -import org.openecomp.sdc.be.model.Resource; -import org.openecomp.sdc.be.model.User; -import org.openecomp.sdc.be.user.Role; -import org.openecomp.sdc.be.user.UserBusinessLogic; -import org.openecomp.sdc.common.api.ConfigurationSource; -import org.openecomp.sdc.common.api.Constants; -import org.openecomp.sdc.common.impl.ExternalConfiguration; -import org.openecomp.sdc.common.impl.FSConfigurationSource; -import org.openecomp.sdc.exception.ResponseFormat; -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; -import org.springframework.web.context.WebApplicationContext; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; -import javax.ws.rs.client.Entity; -import javax.ws.rs.core.Application; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.BDDMockito.given; -import static org.mockito.Mockito.when; - -public class ArtifactExternalServletTest extends JerseyTest { - public static final HttpServletRequest request = Mockito.mock(HttpServletRequest.class); - public static final HttpSession session = Mockito.mock(HttpSession.class); - public static final ResourceImportManager resourceImportManager = Mockito.mock(ResourceImportManager.class); - public static final ResourceBusinessLogic resourceBusinessLogic = Mockito.mock(ResourceBusinessLogic.class); - public static final Resource resource = Mockito.mock(Resource.class); - public static final UserBusinessLogic userBusinessLogic = Mockito.mock(UserBusinessLogic.class); - public static final ComponentInstanceBusinessLogic componentInstanceBusinessLogic = Mockito.mock(ComponentInstanceBusinessLogic.class); - public static final ArtifactsBusinessLogic artifactsBusinessLogic = Mockito.mock(ArtifactsBusinessLogic.class); - - private static final ServletContext servletContext = Mockito.mock(ServletContext.class); - public static final WebAppContextWrapper webAppContextWrapper = Mockito.mock(WebAppContextWrapper.class); - private static final WebApplicationContext webApplicationContext = Mockito.mock(WebApplicationContext.class); - private static final ServletUtils servletUtils = Mockito.mock(ServletUtils.class); - private static final UserBusinessLogic userAdmin = Mockito.mock(UserBusinessLogic.class); - private static final ComponentsUtils componentUtils = Mockito.mock(ComponentsUtils.class); - private static final ResponseFormat generalErrorResponseFormat = new ResponseFormat(HttpStatus.SC_INTERNAL_SERVER_ERROR); - private static final ResponseFormat unauthorizedResponseFormat = Mockito.mock(ResponseFormat.class); - private static final ResponseFormat notFoundResponseFormat = Mockito.mock(ResponseFormat.class); - private static final ResponseFormat badRequestResponseFormat = Mockito.mock(ResponseFormat.class); - private static final String ASSET_TYPE = "assetType"; - public static final String UUID = "uuid"; - private static final String RESOURCE_INSTANCE_NAME = "resourceInstanceName"; - private static final String INTERFACE_UUID = "interfaceUUID"; - private static final String OPERATION_UUID = "operationUUID"; - private static final String ARTIFACT_UUID = "artifactUUID"; - private static final String EMPTY_JSON = "{}"; - - /* Users */ - private static User designerUser = new User("designer", "designer", "designer", "designer@email.com", Role.DESIGNER.name(), System - .currentTimeMillis()); - - @BeforeClass - public static void setup() { - - //Needed for User Authorization - when(servletContext.getAttribute(Constants.WEB_APPLICATION_CONTEXT_WRAPPER_ATTR)).thenReturn(webAppContextWrapper); - when(webAppContextWrapper.getWebAppContext(servletContext)).thenReturn(webApplicationContext); - when(webApplicationContext.getBean(ServletUtils.class)).thenReturn(servletUtils); - when(servletUtils.getUserAdmin()).thenReturn(userAdmin); - when(servletUtils.getComponentsUtils()).thenReturn(componentUtils); - when(componentUtils.getResponseFormat(ActionStatus.RESTRICTED_OPERATION)).thenReturn(unauthorizedResponseFormat); - when(unauthorizedResponseFormat.getStatus()).thenReturn(HttpStatus.SC_UNAUTHORIZED); - - ResponseFormat okResponseFormat = new ResponseFormat(org.apache.http.HttpStatus.SC_OK); - - when(componentUtils.getResponseFormat(ActionStatus.OK)) .thenReturn(okResponseFormat); - when(componentUtils.getResponseFormat(ActionStatus.INVALID_CONTENT)).thenReturn(badRequestResponseFormat); - when(componentUtils.getResponseFormat(ActionStatus.GENERAL_ERROR)) .thenReturn(generalErrorResponseFormat); - when(componentUtils.getResponseFormat(any(ComponentException.class))) - .thenReturn(generalErrorResponseFormat); - - ByResponseFormatComponentException ce = Mockito.mock(ByResponseFormatComponentException.class); - when(ce.getResponseFormat()).thenReturn(unauthorizedResponseFormat); - - //Needed for error configuration - when(notFoundResponseFormat.getStatus()).thenReturn(HttpStatus.SC_NOT_FOUND); - when(badRequestResponseFormat.getStatus()).thenReturn(HttpStatus.SC_BAD_REQUEST); - when(componentUtils.getResponseFormat(eq(ActionStatus.RESOURCE_NOT_FOUND), any())).thenReturn(notFoundResponseFormat); - when(componentUtils.getResponseFormat(eq(ActionStatus.COMPONENT_VERSION_NOT_FOUND), any())).thenReturn(notFoundResponseFormat); - when(componentUtils.getResponseFormat(eq(ActionStatus.COMPONENT_INSTANCE_NOT_FOUND), any())).thenReturn(notFoundResponseFormat); - when(componentUtils.getResponseFormat(eq(ActionStatus.EXT_REF_NOT_FOUND), any())).thenReturn(notFoundResponseFormat); - when(componentUtils.getResponseFormat(eq(ActionStatus.MISSING_X_ECOMP_INSTANCE_ID), any())).thenReturn(badRequestResponseFormat); - - Either<User, ActionStatus> designerEither = Either.left(designerUser); - - when(userAdmin.getUser(designerUser.getUserId(), false)).thenReturn(designerEither); - - String appConfigDir = "src/test/resources/config"; - ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir); - ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); - - org.openecomp.sdc.be.config.Configuration configuration = new org.openecomp.sdc.be.config.Configuration(); - configuration.setJanusGraphInMemoryGraph(true); - - configurationManager.setConfiguration(configuration); - ExternalConfiguration.setAppName("catalog-be"); - } - - @Test - public void uploadInterfaceOperationArtifactNoInstanceIdHeaderTest() { - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, "assetType"); - parametersMap.put(UUID, "uuid"); - parametersMap.put(INTERFACE_UUID, "interfaceUUID"); - parametersMap.put(OPERATION_UUID, "operationUUID"); - parametersMap.put(ARTIFACT_UUID, "artifactUUID"); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/interfaces/{interfaceUUID}/operations/{operationUUID}/artifacts/{artifactUUID}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_JSON) - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .post(Entity.json(EMPTY_JSON)); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_BAD_REQUEST); - } - - @Test - public void uploadInterfaceOperationArtifactNoUserHeaderTest() { - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, "assetType"); - parametersMap.put(UUID, "uuid"); - parametersMap.put(INTERFACE_UUID, "interfaceUUID"); - parametersMap.put(OPERATION_UUID, "operationUUID"); - parametersMap.put(ARTIFACT_UUID, "artifactUUID"); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/interfaces/{interfaceUUID}/operations/{operationUUID}/artifacts/{artifactUUID}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_JSON) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .post(Entity.json(EMPTY_JSON)); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_INTERNAL_SERVER_ERROR); - } - - @Test - public void uploadInterfaceOperationArtifactTest() { - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, "assetType"); - parametersMap.put(UUID, "uuid"); - parametersMap.put(INTERFACE_UUID, "interfaceUUID"); - parametersMap.put(OPERATION_UUID, "operationUUID"); - parametersMap.put(ARTIFACT_UUID, "artifactUUID"); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/interfaces/{interfaceUUID}/operations/{operationUUID}/artifacts/{artifactUUID}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - ArtifactDefinition artifactDefinition = new ArtifactDefinition(); - Either<ArtifactDefinition, ResponseFormat> uploadArtifactEither = Either.left(artifactDefinition); - when(artifactsBusinessLogic - .updateArtifactOnInterfaceOperationByResourceUUID(anyString(), any(), - any(), any(), any(), - any(), any(), any(), - any())) - .thenReturn(uploadArtifactEither); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_JSON) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .post(Entity.json(EMPTY_JSON)); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_OK); - } - - @Test - public void uploadInterfaceOperationArtifactFailedUploadTest() { - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, "assetType"); - parametersMap.put(UUID, "uuid"); - parametersMap.put(INTERFACE_UUID, "interfaceUUID"); - parametersMap.put(OPERATION_UUID, "operationUUID"); - parametersMap.put(ARTIFACT_UUID, "artifactUUID"); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/interfaces/{interfaceUUID}/operations/{operationUUID}/artifacts/{artifactUUID}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - Either<ArtifactDefinition, ResponseFormat> uploadArtifactEither = - Either.right(new ResponseFormat(HttpStatus.SC_CONFLICT)); - - when(artifactsBusinessLogic - .updateArtifactOnInterfaceOperationByResourceUUID(anyString(), any(), - any(), any(), any(), - any(), any(), any(), - any())) - .thenReturn(uploadArtifactEither); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_JSON) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .post(Entity.json(EMPTY_JSON)); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_CONFLICT); - } - - @Test - public void uploadInterfaceOperationArtifactExceptionDuringProcessingTest() { - String uuid = "uuidToThrow_uploadArtifact"; - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, "assetType"); - parametersMap.put(UUID, uuid); - parametersMap.put(INTERFACE_UUID, "interfaceUUID"); - parametersMap.put(OPERATION_UUID, "operationUUID"); - parametersMap.put(ARTIFACT_UUID, "artifactUUID"); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/interfaces/{interfaceUUID}/operations/{operationUUID}/artifacts/{artifactUUID}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - when(artifactsBusinessLogic - .updateArtifactOnInterfaceOperationByResourceUUID(anyString(), any(), - any(), any(), any(), - any(), any(), any(), - any())) - .thenThrow(new RuntimeException("Text exception")); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_JSON) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .post(Entity.json(EMPTY_JSON)); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_INTERNAL_SERVER_ERROR); - } - - @Test - public void uploadArtifactUnknownComponentTypeTest() { - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, "something_new"); - parametersMap.put(UUID, "uuid"); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/artifacts"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_JSON) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .post(Entity.json(EMPTY_JSON)); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_BAD_REQUEST); - } - - @Test - public void uploadArtifactErrorDuringUploadProcessingTest() { - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, ComponentTypeEnum.SERVICE_PARAM_NAME); - parametersMap.put(UUID, "uuid"); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/artifacts"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - Either<ArtifactDefinition, ResponseFormat> uploadArtifactEither = - Either.right(new ResponseFormat(HttpStatus.SC_CONFLICT)); - - when(artifactsBusinessLogic - .uploadArtifactToComponentByUUID(anyString(), any(), any(), any(), any(), - any())) - .thenReturn(uploadArtifactEither); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_JSON) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .post(Entity.json(EMPTY_JSON)); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_CONFLICT); - } - - @Test - public void uploadArtifactExceptionDuringUploadTest() { - String uuid = "uuidToThrow_uploadArtifact"; - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, ComponentTypeEnum.SERVICE_PARAM_NAME); - parametersMap.put(UUID, uuid); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/artifacts"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - given(artifactsBusinessLogic.uploadArtifactToComponentByUUID(anyString(), any(), - any(), eq(uuid), any(), any())) - .willAnswer( invocation -> { throw new IOException("Test exception"); }); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_JSON) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .post(Entity.json(EMPTY_JSON)); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_INTERNAL_SERVER_ERROR); - } - - @Test - public void uploadArtifactTest() { - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, ComponentTypeEnum.SERVICE_PARAM_NAME); - parametersMap.put(UUID, "uuid"); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/artifacts"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - ArtifactDefinition artifactDefinition = new ArtifactDefinition(); - Either<ArtifactDefinition, ResponseFormat> uploadArtifactEither = Either.left(artifactDefinition); - when(artifactsBusinessLogic - .uploadArtifactToComponentByUUID(anyString(), any(), any(), any(), any(), any())) - .thenReturn(uploadArtifactEither); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_JSON) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .post(Entity.json(EMPTY_JSON)); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_OK); - } - - @Test - public void uploadArtifactToInstanceErrorDuringUploadProcessingTest() { - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, ComponentTypeEnum.SERVICE_PARAM_NAME); - parametersMap.put(UUID, "uuid"); - parametersMap.put(RESOURCE_INSTANCE_NAME, "resourceInstanceName"); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/resourceInstances/{resourceInstanceName}/artifacts"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - Either<ArtifactDefinition, ResponseFormat> uploadArtifactToRiByUUIDEither = - Either.right(new ResponseFormat(HttpStatus.SC_CONFLICT)); - - given(artifactsBusinessLogic.uploadArtifactToRiByUUID(anyString(), any(), - any(), any(), any(), any())) - .willAnswer( invocation -> uploadArtifactToRiByUUIDEither); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_JSON) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .post(Entity.json(EMPTY_JSON)); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_CONFLICT); - } - - @Test - public void uploadArtifactToInstanceExceptionDuringUploadTest() { - String uuid = "uuidToThrow_uploadArtifactToInstance"; - String resourceInstanceName = "resourceInstanceNameToThrow_uploadArtifactToInstance"; - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, ComponentTypeEnum.SERVICE_PARAM_NAME); - parametersMap.put(UUID, uuid); - parametersMap.put(RESOURCE_INSTANCE_NAME, resourceInstanceName); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/resourceInstances/{resourceInstanceName}/artifacts"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - given(artifactsBusinessLogic.uploadArtifactToRiByUUID(anyString(), any(), - any(), eq(uuid), eq(resourceInstanceName), any())) - .willAnswer( invocation -> { throw new IOException("Test exception"); }); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_JSON) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .post(Entity.json(EMPTY_JSON)); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_INTERNAL_SERVER_ERROR); - } - - @Test - public void uploadArtifactToInstanceTest() { - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, ComponentTypeEnum.SERVICE_PARAM_NAME); - parametersMap.put(UUID, "uuid"); - parametersMap.put(RESOURCE_INSTANCE_NAME, "resourceInstanceName"); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/resourceInstances/{resourceInstanceName}/artifacts"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - ArtifactDefinition artifactDefinition = new ArtifactDefinition(); - Either<ArtifactDefinition, ResponseFormat> uploadArtifactToRiByUUIDEither = Either.left(artifactDefinition); - - given(artifactsBusinessLogic.uploadArtifactToRiByUUID(anyString(), any(), - any(), any(), any(), any())) - .willAnswer( invocation -> uploadArtifactToRiByUUIDEither); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_JSON) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .post(Entity.json(EMPTY_JSON)); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_OK); - } - - @Test - public void updateArtifactErrorDuringUpdateProcessingTest() { - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, ComponentTypeEnum.SERVICE_PARAM_NAME); - parametersMap.put(UUID, "uuid"); - parametersMap.put(ARTIFACT_UUID, "artifactUUID"); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/artifacts/{artifactUUID}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - Either<ArtifactDefinition, ResponseFormat> updateArtifactEither = - Either.right(new ResponseFormat(HttpStatus.SC_CONFLICT)); - - given(artifactsBusinessLogic.updateArtifactOnComponentByUUID(anyString(), any(), - any(), any(), any(), any(), any())) - .willAnswer( invocation -> updateArtifactEither); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_JSON) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .post(Entity.json(EMPTY_JSON)); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_CONFLICT); - } - - @Test - public void updateArtifactExceptionDuringUpdateTest() { - String uuid = "uuidToThrow_updateArtifact"; - String artifactUUID = "artifactUUIDToThrow_updateArtifact"; - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, ComponentTypeEnum.SERVICE_PARAM_NAME); - parametersMap.put(UUID, uuid); - parametersMap.put(ARTIFACT_UUID, artifactUUID); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/artifacts/{artifactUUID}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - given(artifactsBusinessLogic.updateArtifactOnComponentByUUID(anyString(), any(), - any(), eq(uuid), eq(artifactUUID), any(), any())) - .willAnswer( invocation -> { throw new IOException("Test exception"); }); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_JSON) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .post(Entity.json(EMPTY_JSON)); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_INTERNAL_SERVER_ERROR); - } - - @Test - public void updateArtifactTest() { - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, ComponentTypeEnum.SERVICE_PARAM_NAME); - parametersMap.put(UUID, "uuid"); - parametersMap.put(ARTIFACT_UUID, "artifactUUID"); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/artifacts/{artifactUUID}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - ArtifactDefinition artifactDefinition = new ArtifactDefinition(); - Either<ArtifactDefinition, ResponseFormat> uploadArtifactToRiByUUIDEither = Either.left(artifactDefinition); - - given(artifactsBusinessLogic.updateArtifactOnComponentByUUID(anyString(), any(), - any(), any(), any(), any(), any())) - .willAnswer( invocation -> uploadArtifactToRiByUUIDEither); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_JSON) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .post(Entity.json(EMPTY_JSON)); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_OK); - } - - ///////////////////////// - - @Test - public void updateArtifactOnResourceInstanceErrorDuringUpdateProcessingTest() { - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, ComponentTypeEnum.SERVICE_PARAM_NAME); - parametersMap.put(UUID, "uuid"); - parametersMap.put(RESOURCE_INSTANCE_NAME, "resourceInstanceName"); - parametersMap.put(ARTIFACT_UUID, "artifactUUID"); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/resourceInstances/{resourceInstanceName}/artifacts/{artifactUUID}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - Either<ArtifactDefinition, ResponseFormat> updateArtifactOnResourceInstanceEither = - Either.right(new ResponseFormat(HttpStatus.SC_CONFLICT)); - - given(artifactsBusinessLogic.updateArtifactOnRiByUUID(anyString(), any(), - any(), any(), any(), any(), any())) - .willAnswer( invocation -> updateArtifactOnResourceInstanceEither); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_JSON) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .post(Entity.json(EMPTY_JSON)); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_CONFLICT); - } - - @Test - public void updateArtifactOnResourceInstanceExceptionDuringUpdateTest() { - String uuid = "uuidToThrow_updateArtifactOnResourceInstance"; - String resourceInstanceName = "resourceInstanceNameToThrow_updateArtifactOnResourceInstance"; - String artifactUUID = "artifactUUIDToThrow_updateArtifactOnResourceInstance"; - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, ComponentTypeEnum.SERVICE_PARAM_NAME); - parametersMap.put(UUID, uuid); - parametersMap.put(RESOURCE_INSTANCE_NAME, resourceInstanceName); - parametersMap.put(ARTIFACT_UUID, artifactUUID); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/resourceInstances/{resourceInstanceName}/artifacts/{artifactUUID}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - given(artifactsBusinessLogic.updateArtifactOnRiByUUID(anyString(), any(), - any(), eq(uuid), eq(resourceInstanceName), eq(artifactUUID), any())) - .willAnswer( invocation -> { throw new IOException("Test exception"); }); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_JSON) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .post(Entity.json(EMPTY_JSON)); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_INTERNAL_SERVER_ERROR); - } - - @Test - public void updateArtifactOnResourceInstanceTest() { - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, ComponentTypeEnum.SERVICE_PARAM_NAME); - parametersMap.put(UUID, "uuid"); - parametersMap.put(RESOURCE_INSTANCE_NAME, "resourceInstanceName"); - parametersMap.put(ARTIFACT_UUID, "artifactUUID"); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/resourceInstances/{resourceInstanceName}/artifacts/{artifactUUID}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - ArtifactDefinition artifactDefinition = new ArtifactDefinition(); - Either<ArtifactDefinition, ResponseFormat> updateArtifactOnResourceInstanceEither = Either.left(artifactDefinition); - - given(artifactsBusinessLogic.updateArtifactOnRiByUUID(anyString(), any(), - any(), any(), any(), any(), any())) - .willAnswer( invocation -> updateArtifactOnResourceInstanceEither); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_JSON) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .post(Entity.json(EMPTY_JSON)); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_OK); - } - - @Test - public void deleteArtifactErrorDuringDeleteProcessingTest() { - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, ComponentTypeEnum.SERVICE_PARAM_NAME); - parametersMap.put(UUID, "uuid"); - parametersMap.put(ARTIFACT_UUID, "artifactUUID"); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/artifacts/{artifactUUID}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - Either<ArtifactDefinition, ResponseFormat> deleteArtifactOnComponentByUUIDEither = - Either.right(new ResponseFormat(HttpStatus.SC_CONFLICT)); - - given(artifactsBusinessLogic.deleteArtifactOnComponentByUUID(any(), any(), any(), any(), - any(), any())) - .willAnswer( invocation -> deleteArtifactOnComponentByUUIDEither); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_JSON) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .delete(); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_CONFLICT); - } - - @Test - public void deleteArtifactExceptionDuringDeleteTest() { - String uuid = "uuidToThrow_deleteArtifact"; - String artifactUUID = "artifactUUIDToThrow_deleteArtifact"; - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, ComponentTypeEnum.SERVICE_PARAM_NAME); - parametersMap.put(UUID, uuid); - parametersMap.put(ARTIFACT_UUID, artifactUUID); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/artifacts/{artifactUUID}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - given(artifactsBusinessLogic.deleteArtifactOnComponentByUUID(any(), any(), eq(uuid), - eq(artifactUUID), any(), any())) - .willAnswer( invocation -> { throw new IOException("Test exception"); }); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_JSON) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .delete(); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_INTERNAL_SERVER_ERROR); - } - - @Test - public void deleteArtifactTest() { - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, ComponentTypeEnum.SERVICE_PARAM_NAME); - parametersMap.put(UUID, "uuid"); - parametersMap.put(ARTIFACT_UUID, "artifactUUID"); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/artifacts/{artifactUUID}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - ArtifactDefinition artifactDefinition = new ArtifactDefinition(); - Either<ArtifactDefinition, ResponseFormat> deleteArtifactOnComponentByUUIDEither = Either.left(artifactDefinition); - - given(artifactsBusinessLogic.deleteArtifactOnComponentByUUID(any(), any(), any(), any(), - any(), any())) - .willAnswer( invocation -> deleteArtifactOnComponentByUUIDEither); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_JSON) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .delete(); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_OK); - } - - @Test - public void deleteArtifactOnResourceErrorDuringDeleteProcessingTest() { - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, ComponentTypeEnum.SERVICE_PARAM_NAME); - parametersMap.put(UUID, "uuid"); - parametersMap.put(RESOURCE_INSTANCE_NAME, "resourceInstanceName"); - parametersMap.put(ARTIFACT_UUID, "artifactUUID"); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/resourceInstances/{resourceInstanceName}/artifacts/{artifactUUID}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - Either<ArtifactDefinition, ResponseFormat> deleteArtifactOnRiByUUIDEither = - Either.right(new ResponseFormat(HttpStatus.SC_CONFLICT)); - - given(artifactsBusinessLogic.deleteArtifactOnRiByUUID(any(), any(), any(), any(), - any(), any())) - .willAnswer( invocation -> deleteArtifactOnRiByUUIDEither); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_JSON) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .delete(); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_CONFLICT); - } - - @Test - public void deleteArtifactOnResourceExceptionDuringDeleteTest() { - String uuid = "uuidToThrow_deleteArtifactOnResource"; - String resourceInstanceName = "resourceInstanceNameToThrow_deleteArtifactOnResource"; - String artifactUUID = "artifactUUIDToThrow_deleteArtifactOnResource"; - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, ComponentTypeEnum.SERVICE_PARAM_NAME); - parametersMap.put(UUID, uuid); - parametersMap.put(RESOURCE_INSTANCE_NAME, resourceInstanceName); - parametersMap.put(ARTIFACT_UUID, artifactUUID); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/resourceInstances/{resourceInstanceName}/artifacts/{artifactUUID}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - given(artifactsBusinessLogic.deleteArtifactOnRiByUUID(any(), any(), eq(uuid), - eq(resourceInstanceName), eq(artifactUUID), any())) - .willAnswer( invocation -> { throw new IOException("Test exception"); }); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_JSON) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .delete(); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_INTERNAL_SERVER_ERROR); - } - - @Test - public void deleteArtifactOnResourceTest() { - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, ComponentTypeEnum.SERVICE_PARAM_NAME); - parametersMap.put(UUID, "uuid"); - parametersMap.put(RESOURCE_INSTANCE_NAME, "resourceInstanceName"); - parametersMap.put(ARTIFACT_UUID, "artifactUUID"); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/resourceInstances/{resourceInstanceName}/artifacts/{artifactUUID}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - ArtifactDefinition artifactDefinition = new ArtifactDefinition(); - Either<ArtifactDefinition, ResponseFormat> deleteArtifactOnRiByUUIDEither = Either.left(artifactDefinition); - - given(artifactsBusinessLogic.deleteArtifactOnRiByUUID(any(), any(), any(), any(), - any(), any())) - .willAnswer( invocation -> deleteArtifactOnRiByUUIDEither); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_JSON) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .delete(); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_OK); - } - - @Test - public void downloadComponentArtifactErrorDuringDownloadProcessingTest() { - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, ComponentTypeEnum.SERVICE_PARAM_NAME); - parametersMap.put(UUID, "uuid"); - parametersMap.put(ARTIFACT_UUID, "artifactUUID"); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/artifacts/{artifactUUID}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - Either<byte[], ResponseFormat> downloadComponentArtifactByUUIDsEither = - Either.right(new ResponseFormat(HttpStatus.SC_SERVICE_UNAVAILABLE)); - - given(artifactsBusinessLogic.downloadComponentArtifactByUUIDs(any(), any(), any(), any())) - .willAnswer( invocation -> downloadComponentArtifactByUUIDsEither); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_OCTET_STREAM) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .get(); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_SERVICE_UNAVAILABLE); - } - - @Test - public void downloadComponentArtifactExceptionDuringUploadTest() { - String uuid = "uuidToThrow_downloadComponentArtifact"; - String artifactUUID = "artifactUUIDToThrow_downloadComponentArtifact"; - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, ComponentTypeEnum.SERVICE_PARAM_NAME); - parametersMap.put(UUID, uuid); - parametersMap.put(ARTIFACT_UUID, artifactUUID); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/artifacts/{artifactUUID}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - given(artifactsBusinessLogic.downloadComponentArtifactByUUIDs(any(), eq(uuid), - eq(artifactUUID), any())) - .willAnswer( invocation -> { throw new IOException("Test exception"); }); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_OCTET_STREAM) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .get(); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_INTERNAL_SERVER_ERROR); - } - - @Test - public void downloadComponentArtifactTest() { - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, ComponentTypeEnum.SERVICE_PARAM_NAME); - parametersMap.put(UUID, "uuid"); - parametersMap.put(ARTIFACT_UUID, "artifactUUID"); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/artifacts/{artifactUUID}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - byte[] responsePayload = {0xA, 0xB, 0xC, 0xD}; - Either<byte[], ResponseFormat> downloadComponentArtifactByUUIDsEither = Either.left(responsePayload); - - given(artifactsBusinessLogic.downloadComponentArtifactByUUIDs(any(), any(), any(), any())) - .willAnswer( invocation -> downloadComponentArtifactByUUIDsEither); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_OCTET_STREAM) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .get(); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_OK); - } - - @Test - public void downloadResourceInstanceArtifactErrorDuringDownloadProcessingTest() { - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, ComponentTypeEnum.SERVICE_PARAM_NAME); - parametersMap.put(UUID, "uuid"); - parametersMap.put(RESOURCE_INSTANCE_NAME, "resourceInstanceName"); - parametersMap.put(ARTIFACT_UUID, "artifactUUID"); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/resourceInstances/{resourceInstanceName}/artifacts/{artifactUUID}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - Either<byte[], ResponseFormat> downloadResourceInstanceArtifactByUUIDsEither = - Either.right(new ResponseFormat(HttpStatus.SC_SERVICE_UNAVAILABLE)); - - given(artifactsBusinessLogic.downloadResourceInstanceArtifactByUUIDs(any(), any(), any(), - any())) - .willAnswer( invocation -> downloadResourceInstanceArtifactByUUIDsEither); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_OCTET_STREAM) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .get(); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_SERVICE_UNAVAILABLE); - } - - @Test - public void downloadResourceInstanceArtifactExceptionDuringUploadTest() { - String uuid = "uuidToThrow_downloadResourceInstanceArtifact"; - String resourceInstanceName = "resourceInstanceNameToThrow_downloadResourceInstanceArtifact"; - String artifactUUID = "artifactUUIDToThrow_downloadResourceInstanceArtifact"; - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, ComponentTypeEnum.SERVICE_PARAM_NAME); - parametersMap.put(UUID, uuid); - parametersMap.put(RESOURCE_INSTANCE_NAME, resourceInstanceName); - parametersMap.put(ARTIFACT_UUID, artifactUUID); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/resourceInstances/{resourceInstanceName}/artifacts/{artifactUUID}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - when(artifactsBusinessLogic.downloadResourceInstanceArtifactByUUIDs(any(), eq(uuid), - eq(resourceInstanceName), eq(artifactUUID))) - .thenThrow(new ByResponseFormatComponentException(generalErrorResponseFormat)); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_OCTET_STREAM) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .get(); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_INTERNAL_SERVER_ERROR); - } - - @Test - public void downloadResourceInstanceArtifactTest() { - Map<String,String> parametersMap = new HashMap<>(); - parametersMap.put(ASSET_TYPE, ComponentTypeEnum.SERVICE_PARAM_NAME); - parametersMap.put(UUID, "uuid"); - parametersMap.put(RESOURCE_INSTANCE_NAME, "resourceInstanceName"); - parametersMap.put(ARTIFACT_UUID, "artifactUUID"); - - String formatEndpoint = "/v1/catalog/{assetType}/{uuid}/resourceInstances/{resourceInstanceName}/artifacts/{artifactUUID}"; - String path = StrSubstitutor.replace(formatEndpoint, parametersMap, "{","}"); - - byte[] responsePayload = {0xA, 0xB, 0xC, 0xD}; - Either<byte[], ResponseFormat> downloadResourceInstanceArtifactByUUIDsEither = Either.left(responsePayload); - - given(artifactsBusinessLogic.downloadResourceInstanceArtifactByUUIDs(any(), any(), any(), - any())) - .willAnswer( invocation -> downloadResourceInstanceArtifactByUUIDsEither); - - Response response = target() - .path(path) - .request() - .accept(MediaType.APPLICATION_OCTET_STREAM) - .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") - .header(Constants.USER_ID_HEADER, designerUser.getUserId()) - .get(); - - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_OK); - } - - @Override - protected Application configure() { - ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class); - return new ResourceConfig(ArtifactExternalServlet.class) - .register(new AbstractBinder() { - - @Override - protected void configure() { - bind(request).to(HttpServletRequest.class); - bind(userBusinessLogic).to(UserBusinessLogic.class); - bind(componentInstanceBusinessLogic).to(ComponentInstanceBusinessLogic.class); - bind(componentUtils).to(ComponentsUtils.class); - bind(servletUtils).to(ServletUtils.class); - bind(resourceImportManager).to(ResourceImportManager.class); - bind(artifactsBusinessLogic).to(ArtifactsBusinessLogic.class); - } - }) - .property("contextConfig", context); - } -}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/AssetsDataServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/AssetsDataServletTest.java index 9b4a98de01..2e62981820 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/AssetsDataServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/AssetsDataServletTest.java @@ -39,6 +39,7 @@ import org.openecomp.sdc.be.components.impl.ResourceBusinessLogic; import org.openecomp.sdc.be.components.impl.ResourceImportManager; import org.openecomp.sdc.be.components.impl.ServiceBusinessLogic; import org.openecomp.sdc.be.components.lifecycle.LifecycleBusinessLogic; +import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.config.SpringConfig; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; @@ -51,9 +52,11 @@ import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.model.category.CategoryDefinition; import org.openecomp.sdc.be.model.category.SubCategoryDefinition; import org.openecomp.sdc.be.user.UserBusinessLogic; +import org.openecomp.sdc.common.api.ConfigurationSource; import org.openecomp.sdc.common.api.Constants; import org.openecomp.sdc.common.datastructure.FunctionalInterfaces; import org.openecomp.sdc.common.impl.ExternalConfiguration; +import org.openecomp.sdc.common.impl.FSConfigurationSource; import org.openecomp.sdc.exception.ResponseFormat; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; @@ -69,6 +72,7 @@ import javax.ws.rs.core.Response; import java.util.Arrays; import static org.junit.Assert.assertEquals; +import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.when; public class AssetsDataServletTest extends JerseyTest { @@ -89,10 +93,9 @@ public class AssetsDataServletTest extends JerseyTest { private static final SubCategoryDefinition subCategoryDefinition = Mockito.mock(SubCategoryDefinition.class); private static final AssetMetadataConverter assetMetadataConverter = Mockito.mock(AssetMetadataConverter.class); private static final ResourceAssetMetadata resourceAssetMetadata = new ResourceAssetMetadata(); + private static final LifecycleBusinessLogic lifecycleBusinessLogic = Mockito.mock(LifecycleBusinessLogic.class); private static final UserBusinessLogic userBusinessLogic = Mockito.mock(UserBusinessLogic.class); private static final ComponentInstanceBusinessLogic componentInstanceBusinessLogic = Mockito.mock(ComponentInstanceBusinessLogic.class); - private static final LifecycleBusinessLogic lifecycleBusinessLogic = Mockito.mock(LifecycleBusinessLogic.class); - @@ -127,12 +130,19 @@ public class AssetsDataServletTest extends JerseyTest { when(elementBusinessLogic.getAllResourceCategories()).thenReturn(Either.left(Arrays.asList(categoryDefinition))); when(resourceBusinessLogic.createResource(Mockito.eq(resource), Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any())).thenReturn(resource); when(webApplicationContext.getBean(AssetMetadataConverter.class)).thenReturn(assetMetadataConverter); + when(request.isUserInRole(anyString())).thenReturn(true); Mockito.doReturn(Either.left(resourceAssetMetadata)).when(assetMetadataConverter).convertToSingleAssetMetadata(Mockito.eq(resource), Mockito.anyString(), Mockito.eq(true)); + String appConfigDir = "src/test/resources/config"; + ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir); + ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); + org.openecomp.sdc.be.config.Configuration configuration = new org.openecomp.sdc.be.config.Configuration(); + configuration.setJanusGraphInMemoryGraph(true); + configurationManager.setConfiguration(configuration); } @@ -161,7 +171,7 @@ public class AssetsDataServletTest extends JerseyTest { final JSONObject createRequest = buildCreateJsonRequest(); Response response = target().path("/v1/catalog/resources").request(MediaType.APPLICATION_JSON).header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId").header(Constants.USER_ID_HEADER, "mockAttID") .post(Entity.json(createRequest.toJSONString()), Response.class); - assertEquals(HttpStatus.SC_CREATED, response.getStatus()); + assertEquals(response.getStatus(), HttpStatus.SC_CREATED); } private static final String BASIC_CREATE_REQUEST = "{\r\n" + @@ -189,22 +199,13 @@ public class AssetsDataServletTest extends JerseyTest { protected Application configure() { ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class); forceSet(TestProperties.CONTAINER_PORT, "0"); - return new ResourceConfig(CrudExternalServlet.class) + return new ResourceConfig() + .register(new CrudExternalServlet(userBusinessLogic, componentInstanceBusinessLogic,componentsUtils,servletUtils,resourceImportManager, elementBusinessLogic, assetMetadataConverter, lifecycleBusinessLogic, resourceBusinessLogic, serviceBusinessLogic)) .register(new AbstractBinder() { @Override protected void configure() { bind(request).to(HttpServletRequest.class); - bind(userBusinessLogic).to(UserBusinessLogic.class); - bind(componentInstanceBusinessLogic).to(ComponentInstanceBusinessLogic.class); - bind(componentsUtils).to(ComponentsUtils.class); - bind(servletUtils).to(ServletUtils.class); - bind(resourceImportManager).to(ResourceImportManager.class); - bind(elementBusinessLogic).to(ElementBusinessLogic.class); - bind(assetMetadataConverter).to(AssetMetadataConverter.class); - bind(lifecycleBusinessLogic).to(LifecycleBusinessLogic.class); - bind(resourceBusinessLogic).to(ResourceBusinessLogic.class); - bind(serviceBusinessLogic).to(ServiceBusinessLogic.class); } }) .property("contextConfig", context); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/ExternalRefServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/ExternalRefServletTest.java index 97f15022c0..bdf986cc07 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/ExternalRefServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/ExternalRefServletTest.java @@ -39,12 +39,12 @@ import org.openecomp.sdc.be.dao.DAOJanusGraphStrategy; import org.openecomp.sdc.be.dao.JanusGraphClientStrategy; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.impl.HealingPipelineDao; -import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; -import org.openecomp.sdc.be.dao.jsongraph.HealingJanusGraphDao; import org.openecomp.sdc.be.dao.janusgraph.HealingJanusGraphGenericDao; -import org.openecomp.sdc.be.dao.janusgraph.JanusGraphGenericDao; import org.openecomp.sdc.be.dao.janusgraph.JanusGraphClient; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphGenericDao; import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; +import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; +import org.openecomp.sdc.be.dao.jsongraph.HealingJanusGraphDao; import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; import org.openecomp.sdc.be.dto.ExternalRefDTO; import org.openecomp.sdc.be.impl.ComponentsUtils; @@ -52,7 +52,14 @@ import org.openecomp.sdc.be.impl.ServletUtils; import org.openecomp.sdc.be.impl.WebAppContextWrapper; import org.openecomp.sdc.be.model.Component; import org.openecomp.sdc.be.model.User; -import org.openecomp.sdc.be.model.jsonjanusgraph.operations.*; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ArchiveOperation; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.CategoryOperation; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ExternalReferencesOperation; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.GroupsOperation; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.NodeTemplateOperation; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.NodeTypeOperation; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.TopologyTemplateOperation; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.jsonjanusgraph.utils.IdMapper; import org.openecomp.sdc.be.model.operations.api.IGraphLockOperation; import org.openecomp.sdc.be.model.operations.impl.OperationUtils; @@ -297,7 +304,7 @@ public class ExternalRefServletTest extends JerseyTest { .currentTimeMillis()); private static User otherDesignerUser = new User("otherDesigner", "otherDesigner", "otherDesigner", "otherDesigner@email.com", Role.DESIGNER .name(), System.currentTimeMillis()); - private static User otherUser = new User("other", "other", "other", "other@email.com", Role.OPS.name(), System.currentTimeMillis()); + private static User otherUser = new User("other", "other", "other", "other@email.com", Role.DESIGNER.name(), System.currentTimeMillis()); @BeforeClass @@ -317,9 +324,9 @@ public class ExternalRefServletTest extends JerseyTest { String[] params = {otherDesignerUser.getUserId()}; when(ce.getResponseFormat()).thenReturn(responseFormat); doThrow(ce).when(accessValidationsMock) - .validateUserCanWorkOnComponent(any(), eq(otherDesignerUser.getUserId()), any()); + .validateUserCanWorkOnComponent(any(), any(), eq(otherDesignerUser.getUserId()), any()); doThrow(ce).when(accessValidationsMock) - .validateUserCanWorkOnComponent(any(), eq(otherUser.getUserId()), any()); + .validateUserCanWorkOnComponent(any(), any(), eq(otherUser.getUserId()), any()); //Needed for error configuration when(notFoundResponseFormat.getStatus()).thenReturn(HttpStatus.NOT_FOUND.value()); @@ -329,15 +336,9 @@ public class ExternalRefServletTest extends JerseyTest { when(componentUtils.getResponseFormat(eq(ActionStatus.COMPONENT_INSTANCE_NOT_FOUND), (String[]) any())).thenReturn(notFoundResponseFormat); when(componentUtils.getResponseFormat(eq(ActionStatus.EXT_REF_NOT_FOUND), (String[]) any())).thenReturn(notFoundResponseFormat); when(componentUtils.getResponseFormat(eq(ActionStatus.MISSING_X_ECOMP_INSTANCE_ID), (String[]) any())).thenReturn(badRequestResponseFormat); - - - Either<User, ActionStatus> adminEither = Either.left(adminUser); - Either<User, ActionStatus> designerEither = Either.left(designerUser); - Either<User, ActionStatus> otherEither = Either.left(otherUser); - - when(userAdmin.getUser(adminUser.getUserId(), false)).thenReturn(adminEither); - when(userAdmin.getUser(designerUser.getUserId(), false)).thenReturn(designerEither); - when(userAdmin.getUser(otherUser.getUserId(), false)).thenReturn(otherEither); + when(userAdmin.getUser(adminUser.getUserId(), false)).thenReturn(adminUser); + when(userAdmin.getUser(designerUser.getUserId(), false)).thenReturn(designerUser); + when(userAdmin.getUser(otherUser.getUserId(), false)).thenReturn(otherUser); //======================================================================================================================== String appConfigDir = "src/test/resources/config"; @@ -346,7 +347,9 @@ public class ExternalRefServletTest extends JerseyTest { org.openecomp.sdc.be.config.Configuration configuration = new org.openecomp.sdc.be.config.Configuration(); configuration.setJanusGraphInMemoryGraph(true); - + org.openecomp.sdc.be.config.Configuration.HeatDeploymentArtifactTimeout heatDeploymentArtifactTimeout = new org.openecomp.sdc.be.config.Configuration.HeatDeploymentArtifactTimeout(); + heatDeploymentArtifactTimeout.setDefaultMinutes(30);; + configuration.setHeatArtifactDeploymentTimeout(heatDeploymentArtifactTimeout); configurationManager.setConfiguration(configuration); ExternalConfiguration.setAppName("catalog-be"); } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/representation/ProductAssetMetadataTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/representation/ProductAssetMetadataTest.java index 997657843f..615c8e7e4f 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/representation/ProductAssetMetadataTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/representation/ProductAssetMetadataTest.java @@ -20,10 +20,10 @@ package org.openecomp.sdc.be.externalapi.servlet.representation; -import java.util.List; - import org.junit.Test; +import java.util.List; + public class ProductAssetMetadataTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/representation/ResourceAssetDetailedMetadataTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/representation/ResourceAssetDetailedMetadataTest.java index 41f10603b6..a8a84a36e7 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/representation/ResourceAssetDetailedMetadataTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/representation/ResourceAssetDetailedMetadataTest.java @@ -20,10 +20,10 @@ package org.openecomp.sdc.be.externalapi.servlet.representation; -import java.util.List; - import org.junit.Test; +import java.util.List; + public class ResourceAssetDetailedMetadataTest { private ResourceAssetDetailedMetadata createTestSubject() { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/representation/ResourceInstanceMetadataTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/representation/ResourceInstanceMetadataTest.java index 1caf7feb48..35f2a4fa6f 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/representation/ResourceInstanceMetadataTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/representation/ResourceInstanceMetadataTest.java @@ -20,10 +20,10 @@ package org.openecomp.sdc.be.externalapi.servlet.representation; -import java.util.List; - import org.junit.Test; +import java.util.List; + public class ResourceInstanceMetadataTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/representation/ServiceAssetDetailedMetadataTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/representation/ServiceAssetDetailedMetadataTest.java index 964e63089c..093f0fc4ce 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/representation/ServiceAssetDetailedMetadataTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/representation/ServiceAssetDetailedMetadataTest.java @@ -20,10 +20,10 @@ package org.openecomp.sdc.be.externalapi.servlet.representation; -import java.util.List; - import org.junit.Test; +import java.util.List; + public class ServiceAssetDetailedMetadataTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/facade/operations/FacadeUserCacheOperationTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/facade/operations/FacadeUserCacheOperationTest.java new file mode 100644 index 0000000000..c1947d5c9f --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/facade/operations/FacadeUserCacheOperationTest.java @@ -0,0 +1,63 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * 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.openecomp.sdc.be.facade.operations; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +import org.mockito.Captor; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.junit.MockitoJUnitRunner; +import org.openecomp.sdc.be.catalog.impl.DmaapProducer; +import org.openecomp.sdc.be.user.UserMessage; +import org.openecomp.sdc.be.user.UserOperationEnum; + +import static org.assertj.core.api.Assertions.assertThat; + +@RunWith(MockitoJUnitRunner.class) +public class FacadeUserCacheOperationTest { + @Mock + private DmaapProducer msProducer; + @Captor + private ArgumentCaptor<UserMessage> messageCaptor; + + private UserOperation userCacheOperation; + + @Before + public void setUp() { + userCacheOperation = new UserOperation(msProducer); + } + + @Test + public void testUpdate() { + userCacheOperation.updateUserCache(UserOperationEnum.CREATE, "id", "role"); + Mockito.verify(msProducer).pushMessage(messageCaptor.capture()); + + UserMessage message = messageCaptor.getValue(); + + assertThat(message.getOperation()).isEqualTo(UserOperationEnum.CREATE); + assertThat(message.getUserId()).isEqualTo("id"); + assertThat(message.getRole()).isEqualTo("role"); + } + +} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/filters/GatewayFilterTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/filters/GatewayFilterTest.java new file mode 100644 index 0000000000..7a55bcbedb --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/filters/GatewayFilterTest.java @@ -0,0 +1,152 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * 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.openecomp.sdc.be.filters; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.mockito.Spy; +import org.mockito.junit.MockitoJUnitRunner; +import org.openecomp.sdc.be.components.impl.ResponseFormatManager; +import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; +import org.openecomp.sdc.be.config.Configuration; +import org.openecomp.sdc.be.config.ConfigurationManager; +import org.openecomp.sdc.be.servlets.exception.ComponentExceptionMapper; +import org.openecomp.sdc.common.api.ConfigurationSource; +import org.openecomp.sdc.common.api.FilterDecisionEnum; +import org.openecomp.sdc.common.impl.ExternalConfiguration; +import org.openecomp.sdc.common.impl.FSConfigurationSource; +import org.openecomp.sdc.common.util.ThreadLocalsHolder; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.core.HttpHeaders; +import java.io.IOException; +import java.util.Arrays; +import java.util.Collections; +import java.util.Enumeration; +import java.util.List; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.when; + + +@RunWith(MockitoJUnitRunner.class) +public class GatewayFilterTest { + + private static final List<String> excludedUrls = Arrays.asList("test1", "test2"); + private static final String cookieName = "myCookie"; + + static ResponseFormatManager responseFormatManager = new ResponseFormatManager(); + static ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be"); + static ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); + + @InjectMocks + private GatewayFilter filter; + @Spy + private ThreadLocalUtils threadLocalUtils; + @Mock + private Configuration.CookieConfig authCookieConf; + @Mock + private Configuration configuration; + @Mock + private HttpServletRequest request; + @Mock + private FilterChain filterChain; + @Mock + private HttpServletResponse response; + @Mock + private ComponentExceptionMapper componentExceptionMapper; + + + + @Before + public void initMocks(){ + MockitoAnnotations.initMocks(this); + } + + @Before + public void setUp() throws ServletException { + doNothing().when(threadLocalUtils).setUserContextFromDB(request); + when(configuration.getAuthCookie()).thenReturn(authCookieConf); + this.filter = new GatewayFilter(configuration); + ThreadLocalsHolder.setApiType(null); + assertNotNull(filter); + } + + @Test + public void validateRequestFromWhiteList() throws ServletException, IOException { + when(authCookieConf.getExcludedUrls()).thenReturn(excludedUrls); + when(request.getPathInfo()).thenReturn("test1"); + filter.doFilter(request, response, filterChain); + assertTrue(ThreadLocalsHolder.getApiType().equals(FilterDecisionEnum.NA)); + Mockito.verify(filterChain, times(1)).doFilter(request, response); + } + + private Enumeration getHeaderEnumerationObj(List<String> arrlist){ + + // creating object of type Enumeration<String> + Enumeration<String> enumer = Collections.enumeration(arrlist); + return enumer; + } + + + + + + + private Cookie[] getCookiesFromReq(boolean isFromRequest) { + Cookie[] cookies = new Cookie [1]; + if (isFromRequest) { + cookies[0] = new Cookie(cookieName, "cookieData"); + } + else { + cookies[0] = new Cookie("dummy", "cookieData"); + } + return cookies; + } + + private String getCookieNameFromConf(boolean isFromConfiguration) { + Cookie[] cookies = new Cookie [1]; + if (isFromConfiguration) { + cookies[0] = new Cookie(cookieName, "cookieData"); + } + else { + cookies[0] = new Cookie("dummy", "cookieData"); + } + return cookies[0].getName(); + } +}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/filters/ReqValidationFilterTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/filters/ReqValidationFilterTest.java new file mode 100644 index 0000000000..8656560b7a --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/filters/ReqValidationFilterTest.java @@ -0,0 +1,130 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * 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.openecomp.sdc.be.filters; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.mockito.junit.MockitoJUnitRunner; +import org.openecomp.sdc.be.components.impl.ResponseFormatManager; +import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; +import org.openecomp.sdc.be.config.ConfigurationManager; +import org.openecomp.sdc.be.servlets.exception.ComponentExceptionMapper; +import org.openecomp.sdc.common.api.ConfigurationSource; +import org.openecomp.sdc.common.api.UserRoleEnum; +import org.openecomp.sdc.common.datastructure.UserContext; +import org.openecomp.sdc.common.impl.ExternalConfiguration; +import org.openecomp.sdc.common.impl.FSConfigurationSource; +import org.openecomp.sdc.common.util.ThreadLocalsHolder; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.Collections; +import java.util.HashSet; + +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; + +@RunWith(MockitoJUnitRunner.class) +public class ReqValidationFilterTest { + + @InjectMocks + private ReqValidationFilter reqValidationFilter; + @Mock + private HttpServletRequest request; + @Mock + private FilterChain filterChain; + @Mock + private HttpServletResponse response; + @Mock + private ComponentExceptionMapper componentExceptionMapper; + + static ResponseFormatManager responseFormatManager = new ResponseFormatManager(); + private static ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be"); + static ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); + + @Before + public void initMocks(){ + MockitoAnnotations.initMocks(this); + } + + @Before + public void setUp() { + reqValidationFilter = new ReqValidationFilter(); + } + + @Test + public void testValidRequestWithNoUser() throws IOException, ServletException { + ThreadLocalsHolder.setUserContext(null); + reqValidationFilter.doFilter(request, response, filterChain); + verify(filterChain, times(1)).doFilter(request, response); + } + + @Test + public void testValidRequestWithDesignerRole() throws IOException, ServletException { + UserContext userContext = new UserContext("designer", new HashSet<>(Collections.singletonList(UserRoleEnum.DESIGNER.getName())),"f", "l"); + ThreadLocalsHolder.setUserContext(userContext); + reqValidationFilter.doFilter(request, response, filterChain); + verify(filterChain, times(1)).doFilter(request, response); + } + + @Test + public void testValidRequestWithNoRoles() throws IOException, ServletException { + UserContext userContext = new UserContext("designer", null,"f", "l"); + ThreadLocalsHolder.setUserContext(userContext); + reqValidationFilter.doFilter(request, response, filterChain); + verify(filterChain, times(1)).doFilter(request, response); + } + + @Test + public void testValidRequestWithEmptyRoles() throws IOException, ServletException { + UserContext userContext = new UserContext("designer", new HashSet<>(),"f", "l"); + ThreadLocalsHolder.setUserContext(userContext); + reqValidationFilter.doFilter(request, response, filterChain); + verify(filterChain, times(1)).doFilter(request, response); + } + + @Test + public void testValidRequestWithAdminRole() throws IOException, ServletException { + UserContext userContext = new UserContext("admin", new HashSet<>(Collections.singletonList(UserRoleEnum.ADMIN.getName())),"f", "l"); + ThreadLocalsHolder.setUserContext(userContext); + reqValidationFilter.doFilter(request, response, filterChain); + verify(filterChain, times(1)).doFilter(request, response); + } + + @Test(expected = ComponentException .class) + public void testValidRequestWithTesterRole() throws IOException, ServletException { + UserContext userContext = new UserContext("tester", new HashSet<>(Collections.singletonList(UserRoleEnum.TESTER.getName())),"f", "l"); + ThreadLocalsHolder.setUserContext(userContext); + doThrow(ByActionStatusComponentException.class).when(componentExceptionMapper).writeToResponse(any(ComponentException.class),eq(response)); + reqValidationFilter.doFilter(request, response, filterChain); + } +} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/impl/ComponentsUtilsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/impl/ComponentsUtilsTest.java index a4c8a3dd7d..9e738ca81a 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/impl/ComponentsUtilsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/impl/ComponentsUtilsTest.java @@ -25,7 +25,6 @@ import fj.data.Either; import junit.framework.Assert; import org.apache.tinkerpop.gremlin.structure.T; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.mockito.Mockito; import org.openecomp.sdc.be.auditing.impl.AuditingManager; @@ -36,12 +35,17 @@ import org.openecomp.sdc.be.dao.cassandra.AuditCassandraDao; import org.openecomp.sdc.be.dao.cassandra.CassandraClient; import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus; import org.openecomp.sdc.be.dao.graph.datatype.AdditionalInformationEnum; -import org.openecomp.sdc.be.dao.impl.AuditingDao; import org.openecomp.sdc.be.datatypes.elements.AdditionalInfoParameterInfo; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields; import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.CapabilityTypeDefinition; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.DataTypeDefinition; +import org.openecomp.sdc.be.model.GroupTypeDefinition; +import org.openecomp.sdc.be.model.PolicyTypeDefinition; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; import org.openecomp.sdc.be.resources.data.auditing.model.ResourceCommonInfo; @@ -51,9 +55,9 @@ import org.openecomp.sdc.common.api.ConfigurationSource; import org.openecomp.sdc.common.impl.ExternalConfiguration; import org.openecomp.sdc.common.impl.FSConfigurationSource; import org.openecomp.sdc.exception.ResponseFormat; +import org.openecomp.sdc.test.utils.TestConfigurationProvider; import java.util.List; -import org.openecomp.sdc.test.utils.TestConfigurationProvider; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; @@ -62,15 +66,15 @@ import static org.mockito.Mockito.when; public class ComponentsUtilsTest { private ComponentsUtils createTestSubject() { - return new ComponentsUtils(new AuditingManager(new AuditingDao(), new AuditCassandraDao(mock(CassandraClient.class)), new TestConfigurationProvider())); + return new ComponentsUtils(new AuditingManager(new AuditCassandraDao(mock(CassandraClient.class)), new TestConfigurationProvider())); } @Before public void init(){ - String appConfigDir = "src/test/resources/config/catalog-be"; - ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir); - ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); - ComponentsUtils componentsUtils = new ComponentsUtils(mock(AuditingManager.class)); + String appConfigDir = "src/test/resources/config/catalog-be"; + ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir); + ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); + ComponentsUtils componentsUtils = new ComponentsUtils(Mockito.mock(AuditingManager.class)); } @Test @@ -83,7 +87,7 @@ public class ComponentsUtilsTest { result = testSubject.getAuditingManager(); } - + @Test public void testGetResponseFormat() throws Exception { ComponentsUtils testSubject; @@ -96,7 +100,7 @@ public class ComponentsUtilsTest { result = testSubject.getResponseFormat(actionStatus, params); } - + @Test public void testGetResponseFormat_1() throws Exception { ComponentsUtils testSubject; @@ -109,7 +113,7 @@ public class ComponentsUtilsTest { result = testSubject.getResponseFormat(storageStatus, params); } - + @Test public void testConvertToResponseFormatOrNotFoundErrorToEmptyList() throws Exception { ComponentsUtils testSubject; @@ -121,7 +125,7 @@ public class ComponentsUtilsTest { result = testSubject.convertToResponseFormatOrNotFoundErrorToEmptyList(storageOperationStatus); } - + @Test public void testGetResponseFormatByResource() throws Exception { ComponentsUtils testSubject; @@ -139,7 +143,7 @@ public class ComponentsUtilsTest { result = testSubject.getResponseFormatByResource(ActionStatus.COMPONENT_IN_USE, resource); } - + @Test public void testGetResponseFormatByResource_1() throws Exception { ComponentsUtils testSubject; @@ -159,7 +163,7 @@ public class ComponentsUtilsTest { result = testSubject.getResponseFormatByResource(ActionStatus.RESOURCE_NOT_FOUND, resourceName); } - + @Test public void testGetResponseFormatByCapabilityType() throws Exception { ComponentsUtils testSubject; @@ -173,7 +177,7 @@ public class ComponentsUtilsTest { result = testSubject.getResponseFormatByCapabilityType(ActionStatus.AAI_ARTIFACT_GENERATION_FAILED, capabilityType); } - + @Test public void testGetResponseFormatByElement() throws Exception { ComponentsUtils testSubject; @@ -190,7 +194,7 @@ public class ComponentsUtilsTest { result = testSubject.getResponseFormatByElement(ActionStatus.MISSING_CAPABILITY_TYPE, obj); } - + @Test public void testGetResponseFormatByUser() throws Exception { ComponentsUtils testSubject; @@ -210,7 +214,7 @@ public class ComponentsUtilsTest { result = testSubject.getResponseFormatByUser(ActionStatus.ADDITIONAL_INFORMATION_EMPTY_STRING_NOT_ALLOWED, user); } - + @Test public void testGetResponseFormatByUserId() throws Exception { ComponentsUtils testSubject; @@ -223,7 +227,7 @@ public class ComponentsUtilsTest { result = testSubject.getResponseFormatByUserId(actionStatus, userId); } - + @Test public void testGetResponseFormatByDE() throws Exception { ComponentsUtils testSubject; @@ -237,7 +241,7 @@ public class ComponentsUtilsTest { result = testSubject.getResponseFormatByDE(actionStatus, serviceId); } - + @Test public void testGetResponseFormatByArtifactId() throws Exception { ComponentsUtils testSubject; @@ -265,7 +269,7 @@ public class ComponentsUtilsTest { } - + @Test public void testAuditResource_3() throws Exception { ComponentsUtils testSubject; @@ -280,7 +284,7 @@ public class ComponentsUtilsTest { testSubject.auditResource(responseFormat, modifier, resource, resourceName, actionEnum); } - + @Test public void testAuditResource_4() throws Exception { ComponentsUtils testSubject; @@ -311,7 +315,7 @@ public class ComponentsUtilsTest { result = testSubject.convertFromStorageResponse(storageResponse); } - + @Test public void testConvertFromStorageResponse_1() throws Exception { ComponentsUtils testSubject; @@ -325,7 +329,7 @@ public class ComponentsUtilsTest { result = testSubject.convertFromStorageResponse(storageResponse, type); } - + @Test public void testConvertFromToscaError() throws Exception { ComponentsUtils testSubject; @@ -338,7 +342,7 @@ public class ComponentsUtilsTest { result = testSubject.convertFromToscaError(toscaError); } - + @Test public void testConvertFromStorageResponseForCapabilityType() throws Exception { ComponentsUtils testSubject; @@ -350,7 +354,7 @@ public class ComponentsUtilsTest { result = testSubject.convertFromStorageResponseForCapabilityType(storageResponse); } - + @Test public void testConvertFromStorageResponseForLifecycleType() throws Exception { ComponentsUtils testSubject; @@ -362,7 +366,7 @@ public class ComponentsUtilsTest { result = testSubject.convertFromStorageResponseForLifecycleType(storageResponse); } - + @Test public void testConvertFromStorageResponseForResourceInstance() throws Exception { ComponentsUtils testSubject; @@ -375,7 +379,7 @@ public class ComponentsUtilsTest { result = testSubject.convertFromStorageResponseForResourceInstance(storageResponse, isRelation); } - + @Test public void testGetResponseFormatForResourceInstance() throws Exception { ComponentsUtils testSubject; @@ -389,7 +393,7 @@ public class ComponentsUtilsTest { result = testSubject.getResponseFormatForResourceInstance(actionStatus, serviceName, resourceInstanceName); } - + @Test public void testGetResponseFormatForResourceInstanceProperty() throws Exception { ComponentsUtils testSubject; @@ -402,7 +406,7 @@ public class ComponentsUtilsTest { result = testSubject.getResponseFormatForResourceInstanceProperty(actionStatus, resourceInstanceName); } - + @Test public void testConvertFromStorageResponseForResourceInstanceProperty() throws Exception { ComponentsUtils testSubject; @@ -414,7 +418,7 @@ public class ComponentsUtilsTest { result = testSubject.convertFromStorageResponseForResourceInstanceProperty(storageResponse); } - + @Test public void testAuditComponent() throws Exception { ComponentsUtils testSubject; @@ -448,7 +452,7 @@ public class ComponentsUtilsTest { testSubject.auditComponent(responseFormat, modifier, component, actionEnum, type, prevComponent); } - + @Test public void testValidateStringNotEmpty() throws Exception { ComponentsUtils testSubject; @@ -460,7 +464,7 @@ public class ComponentsUtilsTest { result = testSubject.validateStringNotEmpty(value); } - + @Test public void testConvertFromStorageResponseForAdditionalInformation() throws Exception { ComponentsUtils testSubject; @@ -472,7 +476,7 @@ public class ComponentsUtilsTest { result = testSubject.convertFromStorageResponseForAdditionalInformation(storageResponse); } - + @Test public void testConvertFromResultStatusEnum() throws Exception { ComponentsUtils testSubject; @@ -485,7 +489,7 @@ public class ComponentsUtilsTest { result = testSubject.convertFromResultStatusEnum(resultStatus, elementType); } - + @Test public void testGetResponseFormatAdditionalProperty() throws Exception { ComponentsUtils testSubject; @@ -508,7 +512,7 @@ public class ComponentsUtilsTest { labelOrValue); } - + @Test public void testGetResponseFormatAdditionalProperty_1() throws Exception { ComponentsUtils testSubject; @@ -520,7 +524,7 @@ public class ComponentsUtilsTest { result = testSubject.getResponseFormatAdditionalProperty(actionStatus); } - + @Test public void testConvertFromStorageResponseForConsumer() throws Exception { ComponentsUtils testSubject; @@ -532,7 +536,7 @@ public class ComponentsUtilsTest { result = testSubject.convertFromStorageResponseForConsumer(storageResponse); } - + @Test public void testConvertFromStorageResponseForGroupType() throws Exception { ComponentsUtils testSubject; @@ -544,7 +548,7 @@ public class ComponentsUtilsTest { result = testSubject.convertFromStorageResponseForGroupType(storageResponse); } - + @Test public void testConvertFromStorageResponseForDataType() throws Exception { ComponentsUtils testSubject; @@ -556,7 +560,7 @@ public class ComponentsUtilsTest { result = testSubject.convertFromStorageResponseForDataType(storageResponse); } - + @Test public void testGetResponseFormatByGroupType() throws Exception { ComponentsUtils testSubject; @@ -570,7 +574,7 @@ public class ComponentsUtilsTest { result = testSubject.getResponseFormatByGroupType(actionStatus, groupType); } - + @Test public void testGetResponseFormatByPolicyType() throws Exception { ComponentsUtils testSubject; @@ -583,7 +587,7 @@ public class ComponentsUtilsTest { result = testSubject.getResponseFormatByPolicyType(actionStatus, policyType); } - + @Test public void testGetResponseFormatByDataType() throws Exception { ComponentsUtils testSubject; @@ -601,7 +605,7 @@ public class ComponentsUtilsTest { @Test public void testconvertJsonToObject() throws Exception { - AuditingManager auditingmanager = mock(AuditingManager.class); + AuditingManager auditingmanager = Mockito.mock(AuditingManager.class); ComponentsUtils compUtils = new ComponentsUtils(auditingmanager); when(auditingmanager.auditEvent(any())).thenReturn("OK"); @@ -618,7 +622,7 @@ public class ComponentsUtilsTest { @Test public void testconvertJsonToObject_NllData() throws Exception { - AuditingManager auditingmanager = mock(AuditingManager.class); + AuditingManager auditingmanager = Mockito.mock(AuditingManager.class); ComponentsUtils compUtils = new ComponentsUtils(auditingmanager); when(auditingmanager.auditEvent(any())).thenReturn("OK"); User user = new User(); @@ -631,7 +635,7 @@ public class ComponentsUtilsTest { @Test public void testconvertJsonToObjectInvalidData() throws Exception { - AuditingManager auditingmanager = mock(AuditingManager.class); + AuditingManager auditingmanager = Mockito.mock(AuditingManager.class); ComponentsUtils compUtils = new ComponentsUtils(auditingmanager); when(auditingmanager.auditEvent(any())).thenReturn("OK"); @@ -647,7 +651,7 @@ public class ComponentsUtilsTest { @Test public void testconvertToStorageOperationStatus() { - AuditingManager auditingmanager = mock(AuditingManager.class); + AuditingManager auditingmanager = Mockito.mock(AuditingManager.class); ComponentsUtils compUtils = new ComponentsUtils(auditingmanager); when(auditingmanager.auditEvent(any())).thenReturn("OK"); Assert.assertEquals(StorageOperationStatus.OK,compUtils.convertToStorageOperationStatus(CassandraOperationStatus.OK)); @@ -659,7 +663,7 @@ public class ComponentsUtilsTest { @Test public void testgetResponseFormatByDataType() { - AuditingManager auditingmanager = mock(AuditingManager.class); + AuditingManager auditingmanager = Mockito.mock(AuditingManager.class); ComponentsUtils compUtils = new ComponentsUtils(auditingmanager); when(auditingmanager.auditEvent(any())).thenReturn("OK"); DataTypeDefinition dataType = new DataTypeDefinition(); @@ -673,7 +677,7 @@ public class ComponentsUtilsTest { @Test public void testGetResponseFormatByPolicyType_POLICY_TYPE_ALREADY_EXIST() throws Exception { - AuditingManager auditingmanager = mock(AuditingManager.class); + AuditingManager auditingmanager = Mockito.mock(AuditingManager.class); ComponentsUtils compUtils = new ComponentsUtils(auditingmanager); when(auditingmanager.auditEvent(any())).thenReturn("OK"); PolicyTypeDefinition policyType = new PolicyTypeDefinition(); @@ -686,7 +690,7 @@ public class ComponentsUtilsTest { @Test public void testGetResponseFormatByPolicyType_PolicyID_NULL() throws Exception { - AuditingManager auditingmanager = mock(AuditingManager.class); + AuditingManager auditingmanager = Mockito.mock(AuditingManager.class); ComponentsUtils compUtils = new ComponentsUtils(auditingmanager); when(auditingmanager.auditEvent(any())).thenReturn("OK"); ResponseFormat responseFormat = compUtils.getResponseFormatByPolicyType(ActionStatus.POLICY_TYPE_ALREADY_EXIST, null); @@ -697,7 +701,7 @@ public class ComponentsUtilsTest { @Test public void testGetResponseFormatByGroupType_GROUP_MEMBER_EMPTY() throws Exception { - AuditingManager auditingmanager = mock(AuditingManager.class); + AuditingManager auditingmanager = Mockito.mock(AuditingManager.class); ComponentsUtils compUtils = new ComponentsUtils(auditingmanager); when(auditingmanager.auditEvent(any())).thenReturn("OK"); GroupTypeDefinition groupType = new GroupTypeDefinition(); @@ -711,7 +715,7 @@ public class ComponentsUtilsTest { @Test public void testConvertFromStorageResponseForDataType_ALL() throws Exception { - AuditingManager auditingmanager = mock(AuditingManager.class); + AuditingManager auditingmanager = Mockito.mock(AuditingManager.class); ComponentsUtils compUtils = new ComponentsUtils(auditingmanager); when(auditingmanager.auditEvent(any())).thenReturn("OK"); @@ -728,7 +732,7 @@ public class ComponentsUtilsTest { @Test public void testConvertFromStorageResponseForGroupType_ALL() throws Exception { - AuditingManager auditingmanager = mock(AuditingManager.class); + AuditingManager auditingmanager = Mockito.mock(AuditingManager.class); ComponentsUtils compUtils = new ComponentsUtils(auditingmanager); when(auditingmanager.auditEvent(any())).thenReturn("OK"); @@ -742,7 +746,7 @@ public class ComponentsUtilsTest { @Test public void testConvertFromStorageResponseForConsumer_ALL() throws Exception { - AuditingManager auditingmanager = mock(AuditingManager.class); + AuditingManager auditingmanager = Mockito.mock(AuditingManager.class); ComponentsUtils compUtils = new ComponentsUtils(auditingmanager); when(auditingmanager.auditEvent(any())).thenReturn("OK"); @@ -757,7 +761,7 @@ public class ComponentsUtilsTest { @Test public void testGetResponseFormatAdditionalProperty_ALL() throws Exception { - AuditingManager auditingmanager = mock(AuditingManager.class); + AuditingManager auditingmanager = Mockito.mock(AuditingManager.class); ComponentsUtils compUtils = new ComponentsUtils(auditingmanager); when(auditingmanager.auditEvent(any())).thenReturn("OK"); @@ -792,7 +796,7 @@ public class ComponentsUtilsTest { @Test public void testConvertFromResultStatusEnum_ALL() throws Exception { - AuditingManager auditingmanager = mock(AuditingManager.class); + AuditingManager auditingmanager = Mockito.mock(AuditingManager.class); ComponentsUtils compUtils = new ComponentsUtils(auditingmanager); when(auditingmanager.auditEvent(any())).thenReturn("OK"); Assert.assertEquals(ActionStatus.OK,compUtils.convertFromResultStatusEnum(ResultStatusEnum.OK, null)); @@ -805,7 +809,7 @@ public class ComponentsUtilsTest { @Test public void testconvertFromStorageResponseForAdditionalInformation() throws Exception{ - AuditingManager auditingmanager = mock(AuditingManager.class); + AuditingManager auditingmanager = Mockito.mock(AuditingManager.class); ComponentsUtils compUtils = new ComponentsUtils(auditingmanager); when(auditingmanager.auditEvent(any())).thenReturn("OK"); Assert.assertEquals(ActionStatus.OK,compUtils.convertFromStorageResponseForAdditionalInformation(StorageOperationStatus.OK)); @@ -815,7 +819,7 @@ public class ComponentsUtilsTest { @Test public void testgetResponseFormatByComponent() throws Exception{ - AuditingManager auditingmanager = mock(AuditingManager.class); + AuditingManager auditingmanager = Mockito.mock(AuditingManager.class); ComponentsUtils compUtils = new ComponentsUtils(auditingmanager); when(auditingmanager.auditEvent(any())).thenReturn("OK"); Component component = new Resource(); @@ -836,7 +840,7 @@ public class ComponentsUtilsTest { @Test public void testConvertFromStorageResponseForResourceInstanceProperty_ALL() throws Exception { - AuditingManager auditingmanager = mock(AuditingManager.class); + AuditingManager auditingmanager = Mockito.mock(AuditingManager.class); ComponentsUtils compUtils = new ComponentsUtils(auditingmanager); when(auditingmanager.auditEvent(any())).thenReturn("OK"); Assert.assertEquals(ActionStatus.OK,compUtils.convertFromStorageResponseForResourceInstanceProperty(StorageOperationStatus.OK)); @@ -850,7 +854,7 @@ public class ComponentsUtilsTest { @Test public void testConvertFromStorageResponseForResourceInstance_ALL() throws Exception { - AuditingManager auditingmanager = mock(AuditingManager.class); + AuditingManager auditingmanager = Mockito.mock(AuditingManager.class); ComponentsUtils compUtils = new ComponentsUtils(auditingmanager); when(auditingmanager.auditEvent(any())).thenReturn("OK"); Assert.assertEquals(ActionStatus.GENERAL_ERROR,compUtils.convertFromStorageResponseForResourceInstance(StorageOperationStatus.ARTIFACT_NOT_FOUND, false)); @@ -867,7 +871,7 @@ public class ComponentsUtilsTest { @Test public void testConvertFromStorageResponse_ALL() throws Exception { - AuditingManager auditingmanager = mock(AuditingManager.class); + AuditingManager auditingmanager = Mockito.mock(AuditingManager.class); ComponentsUtils compUtils = new ComponentsUtils(auditingmanager); when(auditingmanager.auditEvent(any())).thenReturn("OK"); Assert.assertEquals(ActionStatus.GENERAL_ERROR,compUtils.convertFromStorageResponse(StorageOperationStatus.CONNECTION_FAILURE, ComponentTypeEnum.RESOURCE)); @@ -889,4 +893,4 @@ public class ComponentsUtilsTest { Assert.assertEquals(ActionStatus.INVALID_PROPERTY,compUtils.convertFromStorageResponse(StorageOperationStatus.INVALID_PROPERTY, ComponentTypeEnum.RESOURCE)); Assert.assertEquals(ActionStatus.COMPONENT_IS_ARCHIVED,compUtils.convertFromStorageResponse(StorageOperationStatus.COMPONENT_IS_ARCHIVED, ComponentTypeEnum.RESOURCE)); } -} +}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/impl/DownloadArtifactLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/impl/DownloadArtifactLogicTest.java deleted file mode 100644 index 673c11fc3e..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/impl/DownloadArtifactLogicTest.java +++ /dev/null @@ -1,100 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * 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.openecomp.sdc.be.impl; - -import com.att.aft.dme2.internal.jersey.core.util.Base64; -import fj.data.Either; -import org.junit.Test; -import org.openecomp.sdc.be.dao.api.ResourceUploadStatus; -import org.openecomp.sdc.be.info.ArtifactAccessInfo; -import org.openecomp.sdc.be.resources.data.ESArtifactData; - -import javax.ws.rs.core.Response; -import java.util.LinkedList; -import java.util.List; - -public class DownloadArtifactLogicTest { - - private DownloadArtifactLogic createTestSubject() { - return new DownloadArtifactLogic(); - } - - @Test - public void testDownloadArtifact() throws Exception { - DownloadArtifactLogic testSubject; - String artifactName = ""; - String artifactId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - result = testSubject.downloadArtifact(artifactName, Either.right(ResourceUploadStatus.COMPONENT_NOT_EXIST), artifactId); - result = testSubject.downloadArtifact(artifactName, Either.right(ResourceUploadStatus.ALREADY_EXIST), artifactId); - ESArtifactData ad = new ESArtifactData(); - ad.setDataAsArray(Base64.encode("mock")); - result = testSubject.downloadArtifact(artifactName, Either.left(ad ), artifactId); - } - - @Test - public void testConvertArtifactList() throws Exception { - DownloadArtifactLogic testSubject; - List<ESArtifactData> artifactsList = new LinkedList<>(); - artifactsList.add(new ESArtifactData()); - String servletPath = "mock"; - List<ArtifactAccessInfo> result; - - // default test - testSubject = createTestSubject(); - result = testSubject.convertArtifactList(artifactsList, servletPath); - } - - @Test - public void testCreateArtifactListResponse() throws Exception { - DownloadArtifactLogic testSubject; - String serviceName = "mock"; - Either<List<ESArtifactData>, ResourceUploadStatus> getArtifactsStatus = Either.right(ResourceUploadStatus.COMPONENT_NOT_EXIST); - String servletPath = "mock"; - Response result; - - // default test - testSubject = createTestSubject(); - - result = testSubject.createArtifactListResponse(serviceName, getArtifactsStatus, servletPath); - getArtifactsStatus = Either.right(ResourceUploadStatus.ALREADY_EXIST); - result = testSubject.createArtifactListResponse(serviceName, getArtifactsStatus, servletPath); - List<ESArtifactData> artifactsList = new LinkedList<>(); - artifactsList.add(new ESArtifactData()); - getArtifactsStatus = Either.left(artifactsList); - result = testSubject.createArtifactListResponse(serviceName, getArtifactsStatus, servletPath); - } - - @Test - public void testBuildResponse() throws Exception { - DownloadArtifactLogic testSubject; - int status = 0; - String errorMessage = ""; - Response result; - - // default test - testSubject = createTestSubject(); - result = testSubject.buildResponse(status, errorMessage); - } -} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/impl/ForwardingPathUtilsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/impl/ForwardingPathUtilsTest.java index b3dfee1af3..e5450b2f95 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/impl/ForwardingPathUtilsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/impl/ForwardingPathUtilsTest.java @@ -36,7 +36,11 @@ import org.openecomp.sdc.be.model.ComponentInstance; import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.model.Service; -import java.util.*; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; public class ForwardingPathUtilsTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/impl/ServletUtilsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/impl/ServletUtilsTest.java index f76b17f239..cf0ec68bad 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/impl/ServletUtilsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/impl/ServletUtilsTest.java @@ -22,7 +22,7 @@ package org.openecomp.sdc.be.impl; import com.google.gson.Gson; import org.junit.Test; -import org.openecomp.sdc.be.user.IUserBusinessLogic; +import org.openecomp.sdc.be.user.UserBusinessLogic; public class ServletUtilsTest { @@ -53,7 +53,7 @@ public class ServletUtilsTest { @Test public void testGetUserAdmin() throws Exception { ServletUtils testSubject; - IUserBusinessLogic result; + UserBusinessLogic result; // default test testSubject = createTestSubject(); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/impl/aaf/RoleAndPermissionEnumTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/impl/aaf/RoleAndPermissionEnumTest.java new file mode 100644 index 0000000000..2831a811a8 --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/impl/aaf/RoleAndPermissionEnumTest.java @@ -0,0 +1,70 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * 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.openecomp.sdc.be.impl.aaf; + +import org.junit.Assert; +import org.junit.Test; +import org.openecomp.sdc.be.components.impl.aaf.AafPermission; +import org.openecomp.sdc.be.components.impl.aaf.AafRoles; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; +import org.openecomp.sdc.be.config.ConfigurationManager; +import org.openecomp.sdc.be.dao.api.ActionStatus; +import org.openecomp.sdc.common.api.ConfigurationSource; +import org.openecomp.sdc.common.impl.ExternalConfiguration; +import org.openecomp.sdc.common.impl.FSConfigurationSource; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.catchThrowable; + +public class RoleAndPermissionEnumTest { + private static ConfigurationSource configurationSource = new FSConfigurationSource( + ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be"); + private static ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); + private final String prefix = ".app."; + + @Test + public void getRoleReadOnly() { + Assert.assertEquals(configurationManager.getConfiguration().getAafNamespace() + prefix + "readonly", AafRoles.READ_ONLY.getRole()); + } + + @Test + public void getRoleAll() { + Assert.assertEquals(configurationManager.getConfiguration().getAafNamespace() + prefix + "all", AafRoles.ALL.getRole()); + } + + @Test + public void testGetEnumByStringWithExistingValue() { + Assert.assertEquals(AafPermission.getEnumByString(AafPermission.PermNames.READ_VALUE), + AafPermission.READ); + Assert.assertEquals(AafPermission.getEnumByString(AafPermission.PermNames.WRITE_VALUE), + AafPermission.WRITE); + Assert.assertEquals(AafPermission.getEnumByString(AafPermission.PermNames.DELETE_VALUE), + AafPermission.DELETE); + } + + @Test + public void testGetEnumByStringNonExistingValue() { + ComponentException thrown = (ComponentException) catchThrowable(()-> AafPermission.getEnumByString("stam")); + assertThat(thrown.getActionStatus()).isEqualTo(ActionStatus.INVALID_PROPERTY); + assertThat(thrown.getParams()[0]).isEqualTo("stam"); + } + +} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/impl/aaf/RoleAuthorizationHandlerTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/impl/aaf/RoleAuthorizationHandlerTest.java new file mode 100644 index 0000000000..fa02a72f96 --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/impl/aaf/RoleAuthorizationHandlerTest.java @@ -0,0 +1,119 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * 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.openecomp.sdc.be.impl.aaf; + +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.Signature; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; +import org.openecomp.sdc.be.components.impl.aaf.AafPermission; +import org.openecomp.sdc.be.components.impl.aaf.PermissionAllowed; +import org.openecomp.sdc.be.components.impl.aaf.RoleAuthorizationHandler; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; +import org.openecomp.sdc.be.config.ConfigurationManager; +import org.openecomp.sdc.be.dao.api.ActionStatus; +import org.openecomp.sdc.be.servlets.BeGenericServlet; +import org.openecomp.sdc.common.api.ConfigurationSource; +import org.openecomp.sdc.common.api.FilterDecisionEnum; +import org.openecomp.sdc.common.impl.ExternalConfiguration; +import org.openecomp.sdc.common.impl.FSConfigurationSource; +import org.openecomp.sdc.common.util.ThreadLocalsHolder; +import sun.reflect.annotation.AnnotationParser; + +import javax.servlet.http.HttpServletRequest; +import java.util.Collections; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.catchThrowable; +import static org.mockito.Mockito.when; + +@RunWith(MockitoJUnitRunner.class) +public class RoleAuthorizationHandlerTest { + + private RoleAuthorizationHandler roleAuthorizationHandler = new RoleAuthorizationHandler(); + @Mock + JoinPoint joinPoint; + @Mock + Signature signature; + @Mock + BeGenericServlet beGenericServlet; + @Mock + HttpServletRequest httpServletRequest; + + + private static ConfigurationSource configurationSource = new FSConfigurationSource( + ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be/auth"); + static ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); + + @Before + public void setUp() { + when(joinPoint.getSignature()).thenReturn(signature); + when(signature.toShortString()).thenReturn("methodName"); + when(joinPoint.getThis()).thenReturn(beGenericServlet); + when(beGenericServlet.getServletRequest()).thenReturn(httpServletRequest); + ThreadLocalsHolder.setApiType(FilterDecisionEnum.EXTERNAL); + } + + @Test + public void testAuthorizeRoleOnePermittedRole() { + String[] permsAllowed = {AafPermission.PermNames.WRITE_VALUE}; + PermissionAllowed rolesAllowed = + (PermissionAllowed) AnnotationParser.annotationForMap(PermissionAllowed.class, Collections.singletonMap("value", permsAllowed)); + when(httpServletRequest.isUserInRole(AafPermission.getEnumByString(permsAllowed[0]).getFullPermission())) + .thenReturn(true); + roleAuthorizationHandler.authorizeRole(joinPoint, rolesAllowed); + } + + @Test + public void testAuthorizeRoleTwoPermittedRole() { + String[] permsAllowed = {AafPermission.PermNames.WRITE_VALUE, AafPermission.PermNames.READ_VALUE}; + PermissionAllowed rolesAllowed = + (PermissionAllowed) AnnotationParser.annotationForMap(PermissionAllowed.class, Collections.singletonMap("value", permsAllowed)); + when(httpServletRequest.isUserInRole(AafPermission.getEnumByString(permsAllowed[0]).getFullPermission())) + .thenReturn(true); + roleAuthorizationHandler.authorizeRole(joinPoint, rolesAllowed); + } + + @Test + public void testAuthorizeRoleNonPermittedRole() { + String[] permsAllowed = {AafPermission.PermNames.WRITE_VALUE, AafPermission.PermNames.READ_VALUE}; + PermissionAllowed rolesAllowed = + (PermissionAllowed) AnnotationParser.annotationForMap(PermissionAllowed.class, Collections.singletonMap("value", permsAllowed)); + when(httpServletRequest.isUserInRole(AafPermission.getEnumByString(permsAllowed[0]).getFullPermission())) + .thenReturn(false); + + ComponentException thrown = (ComponentException) catchThrowable(()->roleAuthorizationHandler.authorizeRole(joinPoint, rolesAllowed)); + assertThat(thrown.getActionStatus()).isEqualTo(ActionStatus.AUTH_FAILED); + } + + @Test + public void testAuthorizeRoleEmptyRole() { + String[] permsAllowed = {}; + PermissionAllowed rolesAllowed = + (PermissionAllowed) AnnotationParser.annotationForMap(PermissionAllowed.class, Collections.singletonMap("value", permsAllowed)); + + ComponentException thrown = (ComponentException) catchThrowable(()->roleAuthorizationHandler.authorizeRole(joinPoint, rolesAllowed)); + assertThat(thrown.getActionStatus()).isEqualTo(ActionStatus.AUTH_FAILED); + } +} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/info/ArtifactAccessInfoTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/info/ArtifactAccessInfoTest.java deleted file mode 100644 index 03d305b6fe..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/info/ArtifactAccessInfoTest.java +++ /dev/null @@ -1,50 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 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) 2019 Nokia - * ================================================================================ - */ -package org.openecomp.sdc.be.info; - -import org.junit.Test; -import org.openecomp.sdc.be.resources.data.ESArtifactData; - -import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.MatcherAssert.assertThat; - -public class ArtifactAccessInfoTest { - - @Test - public void shouldHaveValidGettersAndSetters() { - assertThat(ArtifactAccessInfo.class, hasValidGettersAndSetters()); - } - - @Test - public void testArtifactAccessInfoConstructorUsingESArtifactData() { - ArtifactAccessInfo artifactAccessInfo = new ArtifactAccessInfo(new ESArtifactData("anyId")); - assertThat(artifactAccessInfo.getId(), is("anyId")); - } - - @Test - public void testArtifactAccessInfoConstructorUsingServletContext() { - ArtifactAccessInfo artifactAccessInfo = new ArtifactAccessInfo("http://localhost/test"); - assertThat(artifactAccessInfo.getUrl(), is("http://localhost/test/resources/artifacts/")); - } - -}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/info/ArtifactAccessListTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/info/ArtifactAccessListTest.java deleted file mode 100644 index ad73636482..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/info/ArtifactAccessListTest.java +++ /dev/null @@ -1,46 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * 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========================================================= - * Modifications copyright (c) 2019 Nokia - * ================================================================================ - */ -package org.openecomp.sdc.be.info; - -import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; -import static org.hamcrest.CoreMatchers.is; -import static org.junit.Assert.assertThat; - -import java.util.ArrayList; -import java.util.List; -import org.junit.Test; - -public class ArtifactAccessListTest { - - @Test - public void shouldHaveValidGettersAndSetters() { - assertThat(ArtifactAccessList.class, hasValidGettersAndSetters()); - } - - @Test - public void testCtor() { - List<ArtifactAccessInfo> artifacts = new ArrayList<>(); - ArtifactAccessList artifactAccessList = new ArtifactAccessList(artifacts); - assertThat(artifactAccessList.getArtifacts(), is(artifacts)); - } - -}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/info/ArtifactDefinitionInfoTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/info/ArtifactDefinitionInfoTest.java index 2811c1535d..725c95c569 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/info/ArtifactDefinitionInfoTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/info/ArtifactDefinitionInfoTest.java @@ -21,10 +21,6 @@ */ package org.openecomp.sdc.be.info; -import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; -import static org.hamcrest.CoreMatchers.is; -import static org.junit.Assert.assertThat; - import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -32,6 +28,10 @@ import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.be.model.ArtifactDefinition; +import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; + @RunWith(MockitoJUnitRunner.Silent.class) public class ArtifactDefinitionInfoTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/info/ArtifactTemplateInfoTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/info/ArtifactTemplateInfoTest.java index 5991341502..721e929791 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/info/ArtifactTemplateInfoTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/info/ArtifactTemplateInfoTest.java @@ -21,15 +21,15 @@ */ package org.openecomp.sdc.be.info; -import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanConstructor; -import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; -import static org.hamcrest.CoreMatchers.is; -import static org.junit.Assert.assertThat; +import org.junit.Test; import java.util.LinkedList; import java.util.List; -import org.junit.Test; +import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanConstructor; +import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; public class ArtifactTemplateInfoTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/info/CreateAndAssotiateInfoTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/info/CreateAndAssotiateInfoTest.java index 3b3d1f9556..4435dc8f4c 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/info/CreateAndAssotiateInfoTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/info/CreateAndAssotiateInfoTest.java @@ -21,15 +21,15 @@ */ package org.openecomp.sdc.be.info; -import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.MatcherAssert.assertThat; - import org.junit.Assert; import org.junit.Test; import org.openecomp.sdc.be.model.ComponentInstance; import org.openecomp.sdc.be.model.RequirementCapabilityRelDef; +import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; + public class CreateAndAssotiateInfoTest { @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/info/DistributionStatusInfoTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/info/DistributionStatusInfoTest.java index 9ff004e57f..46dce6ad61 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/info/DistributionStatusInfoTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/info/DistributionStatusInfoTest.java @@ -21,17 +21,18 @@ */ package org.openecomp.sdc.be.info; +import org.junit.Assert; +import org.junit.Test; +import org.openecomp.sdc.be.resources.data.auditing.AuditingGenericEvent; +import org.openecomp.sdc.common.datastructure.AuditingFieldsKey; + +import java.util.HashMap; +import java.util.Map; + import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.MatcherAssert.assertThat; -import java.util.HashMap; -import java.util.Map; -import org.junit.Assert; -import org.junit.Test; -import org.openecomp.sdc.common.datastructure.AuditingFieldsKey; -import org.openecomp.sdc.common.datastructure.ESTimeBasedEvent; public class DistributionStatusInfoTest { @@ -47,8 +48,8 @@ public class DistributionStatusInfoTest { } @Test - public void testCtorWithESTimeBasedEvent() { - ESTimeBasedEvent distributionStatusEvent = createESTimeBasedEvent(); + public void testCtorWithAuditingGenericEvent() { + AuditingGenericEvent distributionStatusEvent = createAuditingGenericEvent(); DistributionStatusInfo distributionStatusInfo = new DistributionStatusInfo(distributionStatusEvent); Assert.assertThat(distributionStatusInfo.getTimestamp(), is(AUDIT_DISTRIBUTION_STATUS_TIME)); Assert.assertThat(distributionStatusInfo.getOmfComponentID(), is(AUDIT_DISTRIBUTION_CONSUMER_ID)); @@ -66,8 +67,8 @@ public class DistributionStatusInfoTest { Assert.assertThat(distributionStatusInfo.getTimestamp(), is(AUDIT_DISTRIBUTION_STATUS_TIME)); } - private ESTimeBasedEvent createESTimeBasedEvent() { - ESTimeBasedEvent distributionStatusEvent = new ESTimeBasedEvent(); + private AuditingGenericEvent createAuditingGenericEvent() { + AuditingGenericEvent distributionStatusEvent = new AuditingGenericEvent(); Map<String, Object> fields = new HashMap<>(); fields.put(AuditingFieldsKey.AUDIT_DISTRIBUTION_CONSUMER_ID.getDisplayName(), AUDIT_DISTRIBUTION_CONSUMER_ID); fields.put(AuditingFieldsKey.AUDIT_DISTRIBUTION_STATUS_TIME.getDisplayName(), AUDIT_DISTRIBUTION_STATUS_TIME); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/info/DistributionStatusOfServiceInfoTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/info/DistributionStatusOfServiceInfoTest.java index d164f009f6..01040bce2c 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/info/DistributionStatusOfServiceInfoTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/info/DistributionStatusOfServiceInfoTest.java @@ -35,6 +35,104 @@ public class DistributionStatusOfServiceInfoTest { private static final String TIMESTAMP = "timestamp"; private static final String DISTRIBUTION_ID = "distributionID"; + private DistributionStatusOfServiceInfo createTestSubject() { + return new DistributionStatusOfServiceInfo(); + } + + @Test + public void testCtor() throws Exception { + new DistributionStatusOfServiceInfo("","","",""); + } + + + @Test + public void testGetDistributionID() throws Exception { + DistributionStatusOfServiceInfo testSubject; + String result; + + // default test + testSubject = createTestSubject(); + result = testSubject.getDistributionID(); + } + + + @Test + public void testSetDistributionID() throws Exception { + DistributionStatusOfServiceInfo testSubject; + String distributionID = ""; + + // default test + testSubject = createTestSubject(); + testSubject.setDistributionID(distributionID); + } + + + @Test + public void testGetTimestamp() throws Exception { + DistributionStatusOfServiceInfo testSubject; + String result; + + // default test + testSubject = createTestSubject(); + result = testSubject.getTimestamp(); + } + + + @Test + public void testSetTimestamp() throws Exception { + DistributionStatusOfServiceInfo testSubject; + String timestamp = ""; + + // default test + testSubject = createTestSubject(); + testSubject.setTimestamp(timestamp); + } + + + @Test + public void testGetUserId() throws Exception { + DistributionStatusOfServiceInfo testSubject; + String result; + + // default test + testSubject = createTestSubject(); + result = testSubject.getUserId(); + } + + + @Test + public void testSetUserId() throws Exception { + DistributionStatusOfServiceInfo testSubject; + String userId = ""; + + // default test + testSubject = createTestSubject(); + testSubject.setUserId(userId); + } + + + @Test + public void testGetDeployementStatus() throws Exception { + DistributionStatusOfServiceInfo testSubject; + String result; + + // default test + testSubject = createTestSubject(); + result = testSubject.getDeployementStatus(); + } + + + @Test + public void testSetDeployementStatus() throws Exception { + DistributionStatusOfServiceInfo testSubject; + String deployementStatus = ""; + + // default test + testSubject = createTestSubject(); + testSubject.setDeployementStatus(deployementStatus); + } + + @Test public void shouldHaveValidDefaultConstructor() { assertThat(DistributionStatusOfServiceInfo.class, hasValidBeanConstructor()); @@ -48,11 +146,12 @@ public class DistributionStatusOfServiceInfoTest { @Test public void shouldTestWhetherTheDefaultConstructorCorrectlySetAllFields() { DistributionStatusOfServiceInfo distributionStatusOfServiceInfo = new DistributionStatusOfServiceInfo( - DISTRIBUTION_ID, TIMESTAMP, USER_ID, STATUS); + DISTRIBUTION_ID, TIMESTAMP, USER_ID, STATUS); assertThat(distributionStatusOfServiceInfo.getDistributionID(), is(DISTRIBUTION_ID)); assertThat(distributionStatusOfServiceInfo.getTimestamp(), is(TIMESTAMP)); assertThat(distributionStatusOfServiceInfo.getUserId(), is(USER_ID)); assertThat(distributionStatusOfServiceInfo.getDeployementStatus(), is(STATUS)); } + }
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/info/DistributionStatusTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/info/DistributionStatusTest.java index 1b3633ca56..c9111bb1f4 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/info/DistributionStatusTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/info/DistributionStatusTest.java @@ -21,12 +21,12 @@ */ package org.openecomp.sdc.be.info; +import org.junit.Test; + import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.nullValue; import static org.junit.Assert.assertThat; -import org.junit.Test; - public class DistributionStatusTest { @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/info/GenericArtifactQueryInfoTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/info/GenericArtifactQueryInfoTest.java index e814605a71..dce3e16145 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/info/GenericArtifactQueryInfoTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/info/GenericArtifactQueryInfoTest.java @@ -19,15 +19,16 @@ */ package org.openecomp.sdc.be.info; +import org.junit.Test; + +import java.util.Collections; +import java.util.Set; + import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanConstructor; import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; -import java.util.Collections; -import java.util.Set; -import org.junit.Test; - public class GenericArtifactQueryInfoTest { private static final String ARTIFACT_UNIQUE_ID = "artifactId"; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/info/GroupDefinitionInfoTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/info/GroupDefinitionInfoTest.java index bc8041bfda..3c68e9ec89 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/info/GroupDefinitionInfoTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/info/GroupDefinitionInfoTest.java @@ -21,16 +21,16 @@ */ package org.openecomp.sdc.be.info; -import java.util.ArrayList; -import java.util.List; -import org.junit.Test; - import com.google.code.beanmatchers.BeanMatchers; +import org.junit.Test; import org.openecomp.sdc.be.datatypes.elements.GroupDataDefinition; import org.openecomp.sdc.be.datatypes.elements.GroupInstanceDataDefinition; import org.openecomp.sdc.be.model.GroupDefinition; import org.openecomp.sdc.be.model.GroupInstance; +import java.util.ArrayList; +import java.util.List; + import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanConstructor; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/info/MergedArtifactInfoTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/info/MergedArtifactInfoTest.java index 24676a263b..4d5ac9409f 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/info/MergedArtifactInfoTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/info/MergedArtifactInfoTest.java @@ -21,18 +21,19 @@ */ package org.openecomp.sdc.be.info; -import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanConstructor; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.MatcherAssert.assertThat; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; import org.junit.Test; import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition; import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields; import org.openecomp.sdc.be.model.ArtifactDefinition; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanConstructor; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; + public class MergedArtifactInfoTest { private static final String NAME = "NAME"; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/info/NodeTypeInfoToUpdateArtifactsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/info/NodeTypeInfoToUpdateArtifactsTest.java index 388d63757b..987563276d 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/info/NodeTypeInfoToUpdateArtifactsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/info/NodeTypeInfoToUpdateArtifactsTest.java @@ -21,17 +21,18 @@ */ package org.openecomp.sdc.be.info; -import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.MatcherAssert.assertThat; +import org.junit.Test; +import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic.ArtifactOperationEnum; +import org.openecomp.sdc.be.model.ArtifactDefinition; import java.util.Collections; import java.util.EnumMap; import java.util.List; import java.util.Map; -import org.junit.Test; -import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic.ArtifactOperationEnum; -import org.openecomp.sdc.be.model.ArtifactDefinition; + +import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; public class NodeTypeInfoToUpdateArtifactsTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/info/OperationalEnvInfoTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/info/OperationalEnvInfoTest.java index 66c29a4cd1..3d51a4a74d 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/info/OperationalEnvInfoTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/info/OperationalEnvInfoTest.java @@ -21,13 +21,13 @@ */ package org.openecomp.sdc.be.info; +import org.junit.Test; + import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanConstructor; import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; -import org.junit.Test; - public class OperationalEnvInfoTest { private static final String ID = "ID"; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/info/RelatedToPropertyTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/info/RelatedToPropertyTest.java index 4e88950610..7017f79222 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/info/RelatedToPropertyTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/info/RelatedToPropertyTest.java @@ -21,12 +21,12 @@ */ package org.openecomp.sdc.be.info; +import org.junit.Test; + import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanConstructor; import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; import static org.hamcrest.MatcherAssert.assertThat; -import org.junit.Test; - public class RelatedToPropertyTest { @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/info/RelationshipDataTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/info/RelationshipDataTest.java index 878666dc3a..37c0cb56ad 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/info/RelationshipDataTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/info/RelationshipDataTest.java @@ -21,12 +21,12 @@ */ package org.openecomp.sdc.be.info; +import org.junit.Test; + import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanConstructor; import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; import static org.hamcrest.MatcherAssert.assertThat; -import org.junit.Test; - public class RelationshipDataTest { @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/info/RelationshipListTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/info/RelationshipListTest.java index ac657ddfff..0444e1f689 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/info/RelationshipListTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/info/RelationshipListTest.java @@ -19,12 +19,12 @@ */ package org.openecomp.sdc.be.info; +import org.junit.Test; + import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanConstructor; import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; import static org.hamcrest.MatcherAssert.assertThat; -import org.junit.Test; - public class RelationshipListTest { @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/info/RelationshipTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/info/RelationshipTest.java index 5266753655..e2326d49cd 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/info/RelationshipTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/info/RelationshipTest.java @@ -21,12 +21,12 @@ */ package org.openecomp.sdc.be.info; +import org.junit.Test; + import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanConstructor; import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; import static org.hamcrest.MatcherAssert.assertThat; -import org.junit.Test; - public class RelationshipTest { @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/info/ServiceInfoTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/info/ServiceInfoTest.java index 73a4bb0a44..25021a985c 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/info/ServiceInfoTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/info/ServiceInfoTest.java @@ -21,13 +21,14 @@ */ package org.openecomp.sdc.be.info; -import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.MatcherAssert.assertThat; +import org.junit.Test; import java.util.Collections; import java.util.List; -import org.junit.Test; + +import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; public class ServiceInfoTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/info/ServiceVersionInfoTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/info/ServiceVersionInfoTest.java index 6ea2b2a385..d7c9815da9 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/info/ServiceVersionInfoTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/info/ServiceVersionInfoTest.java @@ -21,12 +21,12 @@ */ package org.openecomp.sdc.be.info; +import org.junit.Test; + import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; -import org.junit.Test; - public class ServiceVersionInfoTest { private static final String NAME = "NAME"; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/info/ToscaNodeTypeInfoTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/info/ToscaNodeTypeInfoTest.java index 101b72c5dd..e3f68835e5 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/info/ToscaNodeTypeInfoTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/info/ToscaNodeTypeInfoTest.java @@ -21,9 +21,8 @@ */ package org.openecomp.sdc.be.info; -import org.junit.Test; - import com.google.code.beanmatchers.BeanMatchers; +import org.junit.Test; import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanConstructor; import static org.hamcrest.MatcherAssert.assertThat; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/monitoring/EsGatewayTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/monitoring/EsGatewayTest.java deleted file mode 100644 index 71ee14f72b..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/monitoring/EsGatewayTest.java +++ /dev/null @@ -1,107 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * 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.openecomp.sdc.be.monitoring; - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.junit.Assert.assertThat; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; -import org.openecomp.sdc.be.components.impl.MonitoringBusinessLogic; -import org.openecomp.sdc.be.impl.WebAppContextWrapper; -import org.openecomp.sdc.common.api.Constants; -import org.springframework.web.context.WebApplicationContext; - -@RunWith(MockitoJUnitRunner.class) -public class EsGatewayTest { - - private static final String MYWEBAPP = "/mywebapp"; - private static final String SERVLET_MY_SERVLET = "/servlet/MyServlet"; - private static final String PATH_INFO = "/a/b;c=123"; - private static final String QUERY_STRING = "d=789"; - private static final String PORT = "8080"; - private static final String LOCALHOST = "localhost"; - private EsGateway esGateway; - - @Mock - HttpServletRequest request; - @Mock - ServletContext servletContext; - @Mock - HttpSession session; - @Mock - WebAppContextWrapper contextWrapper; - @Mock - WebApplicationContext webApplicationContext; - @Mock - MonitoringBusinessLogic monitoringBusinessLogic; - - @Before - public void setUp() throws Exception { - esGateway = new EsGateway(); - Mockito.when(request.getSession()).thenReturn(session); - Mockito.when(session.getServletContext()).thenReturn(servletContext); - Mockito.when(servletContext.getAttribute(Constants.WEB_APPLICATION_CONTEXT_WRAPPER_ATTR)).thenReturn(contextWrapper); - Mockito.when(contextWrapper.getWebAppContext(servletContext)).thenReturn(webApplicationContext); - Mockito.when(webApplicationContext.getBean(MonitoringBusinessLogic.class)).thenReturn(monitoringBusinessLogic); - } - - @Test - public void testShouldRewriteTarget() { - mockMonitoringBusinessLogic(); - mockRequestParameters(); - String redirectedUrl = esGateway.rewriteTarget(request); - assertThat(redirectedUrl, is("http://localhost:8080/mywebapp/servlet/MyServlet/a/b;c=123?d=789")); - } - - @Test - public void testShouldGetModifiedUrl() { - mockMonitoringBusinessLogic(); - mockRequestParameters(); - String modifiedUrl = esGateway.getModifiedUrl(request); - assertThat(modifiedUrl, is("http://localhost:8080/mywebapp/servlet/MyServlet/a/b;c=123?d=789")); - } - - @Test - public void shouldTestGetMonitoringBL() { - MonitoringBusinessLogic monitoringBL = esGateway.getMonitoringBL(servletContext); - assertThat(monitoringBL, is(notNullValue())); - } - - private void mockMonitoringBusinessLogic(){ - Mockito.when(monitoringBusinessLogic.getEsHost()).thenReturn(LOCALHOST); - Mockito.when(monitoringBusinessLogic.getEsPort()).thenReturn(PORT); - } - - private void mockRequestParameters(){ - Mockito.when(request.getContextPath()).thenReturn(MYWEBAPP); - Mockito.when(request.getServletPath()).thenReturn(SERVLET_MY_SERVLET); - Mockito.when(request.getPathInfo()).thenReturn(PATH_INFO); - Mockito.when(request.getQueryString()).thenReturn(QUERY_STRING); - } -}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/nodeFilter/BaseServiceFilterUtilsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/nodeFilter/BaseServiceFilterUtilsTest.java index 7cd7f3f45f..8ddf06abb8 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/nodeFilter/BaseServiceFilterUtilsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/nodeFilter/BaseServiceFilterUtilsTest.java @@ -16,7 +16,6 @@ package org.openecomp.sdc.be.nodeFilter; -import java.util.Arrays; import org.junit.Assert; import org.junit.Before; import org.openecomp.sdc.be.components.impl.utils.DirectivesUtils; @@ -27,6 +26,8 @@ import org.openecomp.sdc.be.model.ComponentInstance; import org.openecomp.sdc.be.model.PropertyDefinition; import org.openecomp.sdc.be.model.Service; +import java.util.Arrays; + public class BaseServiceFilterUtilsTest { protected Service service; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/nodeFilter/ServiceFilterRenameCiTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/nodeFilter/ServiceFilterRenameCiTest.java index a6a41c53e9..8e94b94e61 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/nodeFilter/ServiceFilterRenameCiTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/nodeFilter/ServiceFilterRenameCiTest.java @@ -16,16 +16,17 @@ package org.openecomp.sdc.be.nodeFilter; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import java.util.List; -import java.util.Map; import org.junit.Test; import org.openecomp.sdc.be.datatypes.elements.CINodeFilterDataDefinition; import org.openecomp.sdc.be.impl.ServiceFilterUtils; +import java.util.List; +import java.util.Map; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + public class ServiceFilterRenameCiTest extends BaseServiceFilterUtilsTest { protected static final String CI_NEW_NAME = "BBBBB"; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/nodeFilter/ServiceFilterUtilsCIChangeTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/nodeFilter/ServiceFilterUtilsCIChangeTest.java index b6bf0ad3b4..57b95e2fbe 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/nodeFilter/ServiceFilterUtilsCIChangeTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/nodeFilter/ServiceFilterUtilsCIChangeTest.java @@ -16,17 +16,9 @@ package org.openecomp.sdc.be.nodeFilter; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import fj.data.Either; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.util.Arrays; -import java.util.Set; import org.junit.Test; import org.mockito.Mockito; import org.openecomp.sdc.be.auditing.impl.AuditingManager; @@ -39,6 +31,15 @@ import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; import org.openecomp.sdc.be.ui.model.UIConstraint; import org.openecomp.sdc.exception.ResponseFormat; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.util.Arrays; +import java.util.Set; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + public class ServiceFilterUtilsCIChangeTest extends BaseServiceFilterUtilsTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/nodeFilter/ServiceFilterUtilsPropertyRemovedTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/nodeFilter/ServiceFilterUtilsPropertyRemovedTest.java index 739ba3a9f9..0b40359d60 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/nodeFilter/ServiceFilterUtilsPropertyRemovedTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/nodeFilter/ServiceFilterUtilsPropertyRemovedTest.java @@ -16,12 +16,12 @@ package org.openecomp.sdc.be.nodeFilter; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - import org.junit.Test; import org.openecomp.sdc.be.impl.ServiceFilterUtils; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + public class ServiceFilterUtilsPropertyRemovedTest extends BaseServiceFilterUtilsTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/nodeFilter/ServiceFilterUtilsServiceInputTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/nodeFilter/ServiceFilterUtilsServiceInputTest.java index 8f12fd1284..e17da93b0e 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/nodeFilter/ServiceFilterUtilsServiceInputTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/nodeFilter/ServiceFilterUtilsServiceInputTest.java @@ -16,16 +16,17 @@ package org.openecomp.sdc.be.nodeFilter; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import java.util.Arrays; -import java.util.Set; import org.junit.Test; import org.openecomp.sdc.be.impl.ServiceFilterUtils; import org.openecomp.sdc.be.model.InputDefinition; +import java.util.Arrays; +import java.util.Set; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + public class ServiceFilterUtilsServiceInputTest extends BaseServiceFilterUtilsTest { private static final String CONSTRAINT_NAME = "InputName"; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AbstractValidationsServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AbstractValidationsServletTest.java index 5158c438df..ecc89af3f8 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AbstractValidationsServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AbstractValidationsServletTest.java @@ -20,12 +20,10 @@ package org.openecomp.sdc.be.servlets; -import fj.data.Either; import org.apache.commons.codec.binary.Base64; import org.junit.Test; import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic; import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; -import org.openecomp.sdc.be.components.impl.GroupBusinessLogic; import org.openecomp.sdc.be.components.impl.ResourceImportManager; import org.openecomp.sdc.be.externalapi.servlet.ArtifactExternalServlet; import org.openecomp.sdc.be.impl.ComponentsUtils; @@ -34,7 +32,6 @@ import org.openecomp.sdc.be.model.UploadResourceInfo; import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.user.UserBusinessLogic; import org.openecomp.sdc.common.datastructure.Wrapper; -import org.openecomp.sdc.exception.ResponseFormat; import javax.ws.rs.core.Response; import java.io.IOException; @@ -69,10 +66,10 @@ public class AbstractValidationsServletTest { String payloadName = "valid_vf.csar"; String rootPath = System.getProperty("user.dir"); - Path path = null; - byte[] data = null; - String payloadData = null; - Either<Map<String, byte[]>, ResponseFormat> returnValue = null; + Path path; + byte[] data; + String payloadData; + Map<String, byte[]> returnValue = null; try { path = Paths.get(rootPath + "/src/test/resources/valid_vf.csar"); data = Files.readAllBytes(path); @@ -83,13 +80,11 @@ public class AbstractValidationsServletTest { Method privateMethod = null; privateMethod = AbstractValidationsServlet.class.getDeclaredMethod("getCsarFromPayload", UploadResourceInfo.class); privateMethod.setAccessible(true); - returnValue = (Either<Map<String, byte[]>, ResponseFormat>) privateMethod.invoke(servlet, resourceInfo); + returnValue = (Map<String, byte[]>) privateMethod.invoke(servlet, resourceInfo); } catch (IOException | NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { e.printStackTrace(); } - assertTrue(returnValue.isLeft()); - Map<String, byte[]> csar = returnValue.left().value(); - assertNotNull(csar); + assertNotNull(returnValue); } @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AdditionalInformationServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AdditionalInformationServletTest.java index e49420ef3b..edc01e8800 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AdditionalInformationServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AdditionalInformationServletTest.java @@ -20,18 +20,16 @@ package org.openecomp.sdc.be.servlets; -import static org.mockito.Mockito.mock; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - import org.junit.Test; import org.openecomp.sdc.be.components.impl.AdditionalInformationBusinessLogic; -import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; -import org.openecomp.sdc.be.components.impl.GroupBusinessLogic; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.user.UserBusinessLogic; +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.core.Response; + +import static org.mockito.Mockito.mock; + public class AdditionalInformationServletTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ArchiveEndpointTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ArchiveEndpointTest.java index 2636048408..c670b517ba 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ArchiveEndpointTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ArchiveEndpointTest.java @@ -22,30 +22,13 @@ package org.openecomp.sdc.be.servlets; -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - import fj.data.Either; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.client.Entity; -import javax.ws.rs.core.Application; -import javax.ws.rs.core.GenericType; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; import org.glassfish.jersey.server.ResourceConfig; import org.glassfish.jersey.test.JerseyTest; import org.junit.BeforeClass; import org.junit.Test; +import org.mockito.Mockito; +import org.openecomp.sdc.be.catalog.enums.ChangeTypeEnum; import org.openecomp.sdc.be.components.impl.ArchiveBusinessLogic; import org.openecomp.sdc.be.components.impl.exceptions.ByResponseFormatComponentException; import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; @@ -59,19 +42,21 @@ import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.impl.HealingPipelineDao; import org.openecomp.sdc.be.dao.janusgraph.HealingJanusGraphGenericDao; import org.openecomp.sdc.be.dao.janusgraph.JanusGraphClient; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphGenericDao; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; import org.openecomp.sdc.be.dao.jsongraph.HealingJanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum; -import org.openecomp.sdc.be.dao.janusgraph.JanusGraphGenericDao; -import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum; import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields; import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; +import org.openecomp.sdc.be.facade.operations.CatalogOperation; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.impl.ServletUtils; import org.openecomp.sdc.be.impl.WebAppContextWrapper; +import org.openecomp.sdc.be.model.Component; import org.openecomp.sdc.be.model.LifecycleStateEnum; import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.catalog.CatalogComponent; @@ -102,6 +87,26 @@ import org.springframework.context.annotation.PropertySource; import org.springframework.http.HttpStatus; import org.springframework.web.context.WebApplicationContext; +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.client.Entity; +import javax.ws.rs.core.Application; +import javax.ws.rs.core.GenericType; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + public class ArchiveEndpointTest extends JerseyTest { private static final ServletContext servletContext = mock(ServletContext.class); @@ -113,6 +118,11 @@ public class ArchiveEndpointTest extends JerseyTest { private static final ServletUtils servletUtils = mock(ServletUtils.class); private static final UserBusinessLogic userAdmin = mock(UserBusinessLogic.class); private static final ComponentsUtils componentUtils = mock(ComponentsUtils.class); + private static final CatalogOperation catalogOperations = mock(CatalogOperation.class); +// private static final ToscaOperationFacade toscaOperationFacade = mock(ToscaOperationFacade.class); + private static final ToscaOperationFacade toscaOperationFacade = Mockito.spy(new ToscaOperationFacade()); + + private static final ResponseFormat responseFormat = mock(ResponseFormat.class); private static final ResponseFormat notFoundResponseFormat = mock(ResponseFormat.class); private static final ResponseFormat badRequestResponseFormat = mock(ResponseFormat.class); @@ -137,7 +147,9 @@ public class ArchiveEndpointTest extends JerseyTest { @Bean ArchiveEndpoint archiveEndpoint() { - return new ArchiveEndpoint(archiveBusinessLogic()); + UserBusinessLogic userBusinessLogic = mock(UserBusinessLogic.class); + ComponentsUtils componentsUtils = mock(ComponentsUtils.class); + return new ArchiveEndpoint(userBusinessLogic, componentsUtils, archiveBusinessLogic()); } @Bean @@ -157,7 +169,7 @@ public class ArchiveEndpointTest extends JerseyTest { @Bean ArchiveBusinessLogic archiveBusinessLogic() { - return new ArchiveBusinessLogic(janusGraphDao(), accessValidations(), archiveOperation(), toscaOperationFacade(), componentUtils); + return new ArchiveBusinessLogic(janusGraphDao(), accessValidations(), archiveOperation(), toscaOperationFacade(), componentUtils, catalogOperations); } @Bean @@ -180,7 +192,7 @@ public class ArchiveEndpointTest extends JerseyTest { @Bean ToscaOperationFacade toscaOperationFacade() { - return new ToscaOperationFacade(); + return toscaOperationFacade; } @Bean @@ -281,7 +293,7 @@ public class ArchiveEndpointTest extends JerseyTest { private static final User adminUser = new User("admin", "admin", "admin", "admin@email.com", Role.ADMIN.name(), System.currentTimeMillis()); private static final User designerUser = new User("designer", "designer", "designer", "designer@email.com", Role.DESIGNER.name(), System .currentTimeMillis()); - private static final User otherUser = new User("other", "other", "other", "other@email.com", Role.OPS.name(), System.currentTimeMillis()); + private static final User otherUser = new User("other", "other", "other", "other@email.com", Role.TESTER.name(), System.currentTimeMillis()); @BeforeClass public static void setup() { @@ -307,23 +319,23 @@ public class ArchiveEndpointTest extends JerseyTest { when(componentUtils.getResponseFormat(eq(ActionStatus.MISSING_X_ECOMP_INSTANCE_ID), (String[]) any())).thenReturn(badRequestResponseFormat); when(graphLockOperation.lockComponent(anyString(), any(NodeTypeEnum.class))).thenReturn(StorageOperationStatus.OK); - - Either<User, ActionStatus> adminEither = Either.left(adminUser); - Either<User, ActionStatus> designerEither = Either.left(designerUser); - Either<User, ActionStatus> otherEither = Either.left(otherUser); - - when(userAdmin.getUser(adminUser.getUserId(), false)).thenReturn(adminEither); - when(userAdmin.getUser(designerUser.getUserId(), false)).thenReturn(designerEither); - when(userAdmin.getUser(otherUser.getUserId(), false)).thenReturn(otherEither); + when(userAdmin.getUser(adminUser.getUserId(), false)).thenReturn(adminUser); + when(userAdmin.getUser(designerUser.getUserId(), false)).thenReturn(designerUser); + when(userAdmin.getUser(otherUser.getUserId(), false)).thenReturn(otherUser); //======================================================================================================================== - String appConfigDir = "src/test/resources/config/catalog-be"; + String appConfigDir = "src/test/resources/config"; ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir); ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); org.openecomp.sdc.be.config.Configuration configuration = new org.openecomp.sdc.be.config.Configuration(); configuration.setJanusGraphInMemoryGraph(true); + org.openecomp.sdc.be.config.Configuration.HeatDeploymentArtifactTimeout heatDeploymentArtifactTimeout = new org.openecomp.sdc.be.config.Configuration.HeatDeploymentArtifactTimeout(); + heatDeploymentArtifactTimeout.setDefaultMinutes(30);; + configuration.setHeatArtifactDeploymentTimeout(heatDeploymentArtifactTimeout); + configurationManager.setConfiguration(configuration); + configurationManager.setConfiguration(configuration); ExternalConfiguration.setAppName("catalog-be"); } @@ -334,15 +346,31 @@ public class ArchiveEndpointTest extends JerseyTest { } @Test - public void archiveAndGetArchivedComponents_SingleComponent() { - archiveComponent(serviceVertex.getUniqueId(), HttpStatus.OK.value()); + public void archiveAndGetArchivedService_SingleService() { + Component serviceComponent = mock(Component.class); + final String serviceUniqueId = serviceVertex.getUniqueId(); + when(toscaOperationFacade.getToscaElement(serviceUniqueId)).thenReturn(Either.left(serviceComponent)); + when(catalogOperations.updateCatalog(ChangeTypeEnum.ARCHIVE, serviceComponent)).thenReturn(ActionStatus.OK); + archiveService(serviceUniqueId, HttpStatus.OK.value()); assertOnGetArchivedComponents(ComponentTypeEnum.SERVICE_PARAM_NAME, 1); + //restoreService(serviceUniqueId, 200); + } + + @Test + public void archiveAndGetArchivedResource_SingleResource() { + Component component = mock(Component.class); + final String uniqueId = resourceVertex.getUniqueId(); + when(toscaOperationFacade.getToscaElement(uniqueId)).thenReturn(Either.left(component)); + when(catalogOperations.updateCatalog(ChangeTypeEnum.ARCHIVE, component)).thenReturn(ActionStatus.OK); + archiveResource(uniqueId, HttpStatus.OK.value()); + assertOnGetArchivedComponents(ComponentTypeEnum.RESOURCE_PARAM_NAME, 1); + //restoreResource(uniqueId, 200); } @Test public void attemptArchiveCheckedOutService() { checkoutComponent(serviceVertex); - archiveComponent(serviceVertex.getUniqueId(), HttpStatus.CONFLICT.value()); + archiveService(serviceVertex.getUniqueId(), HttpStatus.CONFLICT.value()); } @Test @@ -384,12 +412,12 @@ public class ArchiveEndpointTest extends JerseyTest { */ @Test public void archiveWithInvalidUid() { - archiveComponent("fakeUid", HttpStatus.NOT_FOUND.value()); + archiveService("fakeUid", HttpStatus.NOT_FOUND.value()); } @Test public void restoreWithInvalidUid() { - restoreComponent("fakeUid", HttpStatus.NOT_FOUND.value()); + restoreService("fakeUid", HttpStatus.NOT_FOUND.value()); } @Test @@ -420,10 +448,13 @@ public class ArchiveEndpointTest extends JerseyTest { assertThat(v.getMetadataProperty(GraphPropertyEnum.IS_VSP_ARCHIVED)).isEqualTo(expectedValue); } - private void archiveComponent(String id, int expectedStatus){ archiveOrRestoreComponent(id, ArchiveOperation.Action.ARCHIVE, expectedStatus); } - private void restoreComponent(String id, int expectedStatus){ archiveOrRestoreComponent(id, ArchiveOperation.Action.RESTORE, expectedStatus); } + private void archiveService(String id, int expectedStatus){ archiveOrRestoreService(id, ArchiveOperation.Action.ARCHIVE, expectedStatus); } + private void restoreService(String id, int expectedStatus){ archiveOrRestoreService(id, ArchiveOperation.Action.RESTORE, expectedStatus); } + + private void archiveResource(String id, int expectedStatus){ archiveOrRestoreResource(id, ArchiveOperation.Action.ARCHIVE, expectedStatus); } + private void restoreResource(String id, int expectedStatus){ archiveOrRestoreResource(id, ArchiveOperation.Action.RESTORE, expectedStatus); } - private void archiveOrRestoreComponent(String compUid, ArchiveOperation.Action action, int expectedStatus) { + private void archiveOrRestoreService(String compUid, ArchiveOperation.Action action, int expectedStatus) { String path = String.format("/v1/catalog/services/%s/%s", compUid, action.name().toLowerCase()); Response response = target() .path(path) @@ -435,6 +466,18 @@ public class ArchiveEndpointTest extends JerseyTest { assertThat(response.getStatus()).isEqualTo(expectedStatus); } + private void archiveOrRestoreResource(String compUid, ArchiveOperation.Action action, int expectedStatus) { + String path = String.format("/v1/catalog/resources/%s/%s", compUid, action.name().toLowerCase()); + Response response = target() + .path(path) + .request() + .accept(MediaType.APPLICATION_JSON) + .header(Constants.USER_ID_HEADER, designerUser.getUserId()) + .post(null); + + assertThat(response.getStatus()).isEqualTo(expectedStatus); + } + private void assertOnGetArchivedComponents(String componentType, int expectedCount) { String path = "/v1/catalog/archive"; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ArtifactServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ArtifactServletTest.java index 74a6555eca..efa5b51041 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ArtifactServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ArtifactServletTest.java @@ -20,19 +20,16 @@ package org.openecomp.sdc.be.servlets; -import static org.mockito.Mockito.mock; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - import org.junit.Test; import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic; -import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; -import org.openecomp.sdc.be.components.impl.ConsumerBusinessLogic; -import org.openecomp.sdc.be.components.impl.GroupBusinessLogic; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.user.UserBusinessLogic; +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.core.Response; + +import static org.mockito.Mockito.mock; + public class ArtifactServletTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AttributeServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AttributeServletTest.java index 47d2cf4f2f..6184fa8d7e 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AttributeServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AttributeServletTest.java @@ -20,14 +20,9 @@ package org.openecomp.sdc.be.servlets; -import static org.mockito.Mockito.mock; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - +import com.google.common.base.Equivalence.Wrapper; import org.junit.Test; import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; -import org.openecomp.sdc.be.components.impl.GroupBusinessLogic; import org.openecomp.sdc.be.components.impl.ResourceImportManager; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.impl.ServletUtils; @@ -35,7 +30,10 @@ import org.openecomp.sdc.be.model.PropertyDefinition; import org.openecomp.sdc.be.user.UserBusinessLogic; import org.openecomp.sdc.exception.ResponseFormat; -import com.google.common.base.Equivalence.Wrapper; +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.core.Response; + +import static org.mockito.Mockito.mock; public class AttributeServletTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AutomatedUpgradeEndpointTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AutomatedUpgradeEndpointTest.java index 3f07d95096..91f9b5b919 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AutomatedUpgradeEndpointTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AutomatedUpgradeEndpointTest.java @@ -30,7 +30,6 @@ import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; -import org.openecomp.sdc.be.components.impl.GroupBusinessLogic; import org.openecomp.sdc.be.components.lifecycle.LifecycleBusinessLogic; import org.openecomp.sdc.be.components.lifecycle.LifecycleChangeInfoWithAction; import org.openecomp.sdc.be.components.upgrade.ServiceInfo; @@ -44,7 +43,13 @@ import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.ComponentInstance; +import org.openecomp.sdc.be.model.ComponentParametersView; +import org.openecomp.sdc.be.model.LifeCycleTransitionEnum; +import org.openecomp.sdc.be.model.LifecycleStateEnum; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.Service; +import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.UpgradeOperation; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; @@ -68,10 +73,10 @@ import java.util.List; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyBoolean; -import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; public class AutomatedUpgradeEndpointTest extends JerseySpringBaseTest { static ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be"); @@ -143,7 +148,7 @@ public class AutomatedUpgradeEndpointTest extends JerseySpringBaseTest { @Before public void init() { prepareComponents(); - when(userValidations.validateUserExists(eq(USER_ID), anyString(), anyBoolean())).thenReturn(user); + when(userValidations.validateUserExists(eq(USER_ID))).thenReturn(user); when(toscaOperationFacade.getToscaFullElement(eq(RESOURCE_ID_PREV))).thenReturn(Either.left(vfPrev)); when(toscaOperationFacade.getToscaFullElement(eq(RESOURCE_ID_NEW))).thenReturn(Either.left(vfNew)); when(toscaOperationFacade.getToscaFullElement(eq(SERVICE_ID_PREV))).thenReturn(Either.left(servicePrev)); @@ -154,7 +159,7 @@ public class AutomatedUpgradeEndpointTest extends JerseySpringBaseTest { eq(true)); when(toscaOperationFacade.getToscaElement(eq(RESOURCE_ID_PREV), any(ComponentParametersView.class))).thenReturn(Either.left(vfPrev)); - when(componentInstanceBusinessLogic.changeInstanceVersion(any(Service.class), any(ComponentInstance.class), any(ComponentInstance.class), any(User.class), eq(ComponentTypeEnum.SERVICE))).thenReturn(Either.left(istanceNew)); + when(componentInstanceBusinessLogic.changeInstanceVersion(any(Service.class), any(ComponentInstance.class), any(ComponentInstance.class), any(User.class), eq(ComponentTypeEnum.SERVICE))).thenReturn(istanceNew); doReturn(Either.left(serviceNewCheckIn)).when(lifecycleBusinessLogic).changeComponentState(eq(ComponentTypeEnum.SERVICE), eq(SERVICE_ID_NEW), any(User.class), eq(LifeCycleTransitionEnum.CHECKIN), any(LifecycleChangeInfoWithAction.class), eq(false), eq(true)); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ComponentInstanceServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ComponentInstanceServletTest.java index ca407eaed0..f5b558e0d6 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ComponentInstanceServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ComponentInstanceServletTest.java @@ -20,12 +20,9 @@ package org.openecomp.sdc.be.servlets; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; import fj.data.Either; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.ArrayList; -import javax.ws.rs.client.Entity; import org.eclipse.jetty.http.HttpStatus; import org.glassfish.hk2.utilities.binding.AbstractBinder; import org.glassfish.jersey.server.ResourceConfig; @@ -45,31 +42,38 @@ import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.impl.ServletUtils; import org.openecomp.sdc.be.impl.WebAppContextWrapper; -import org.openecomp.sdc.be.model.CapabilityDefinition; import org.openecomp.sdc.be.model.ComponentInstance; +import org.openecomp.sdc.be.model.ComponentInstanceInput; +import org.openecomp.sdc.be.model.ComponentInstanceProperty; import org.openecomp.sdc.be.model.RequirementCapabilityRelDef; -import org.openecomp.sdc.be.model.RequirementDefinition; +import org.openecomp.sdc.be.model.User; +import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; import org.openecomp.sdc.be.user.UserBusinessLogic; import org.openecomp.sdc.common.api.Constants; import org.openecomp.sdc.exception.ResponseFormat; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.web.context.WebApplicationContext; -import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; -import org.openecomp.sdc.be.model.User; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; +import javax.ws.rs.client.Entity; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertEquals; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.when; import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.nullable; +import static org.mockito.Mockito.when; +import static org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum.SERVICE_PARAM_NAME; /** * The test suite designed for test functionality of ComponentInstanceServlet class @@ -111,10 +115,11 @@ public class ComponentInstanceServletTest extends JerseyTest { Response response = target() .path(path) .request(MediaType.APPLICATION_JSON) + .accept(MediaType.APPLICATION_JSON) .header("USER_ID", USER_ID) .get( Response.class); - assertEquals(response.getStatus(), HttpStatus.OK_200); + assertThat(response.getStatus()).isEqualTo(HttpStatus.OK_200); } @Test @@ -136,36 +141,6 @@ public class ComponentInstanceServletTest extends JerseyTest { } @Test - public void testCopyComponentInstanceSuccess(){ - - String componentId = "componentId"; - String componentInstanceId = "componentInstanceId"; - String path = "/v1/catalog/services/" + componentId + "/copyComponentInstance/" + componentInstanceId; - - Either<Map<String, ComponentInstance>, ResponseFormat> successResponse = Either.left(new HashMap<String, ComponentInstance>()); - when(componentInstanceBusinessLogic.copyComponentInstance(any(ComponentInstance.class), eq(componentId), eq(componentInstanceId), eq(USER_ID))).thenReturn(successResponse); - when(responseFormat.getStatus()).thenReturn(HttpStatus.OK_200); - when(componentsUtils.getResponseFormat(ActionStatus.OK)).thenReturn(responseFormat); - - ComponentInstance c = new ComponentInstance(); - c.setName("comp1"); - c.setUniqueId("comp1"); - c.setComponentUid("comp1"); - c.setPosX("10"); - c.setPosY("10"); - c.setCapabilities(new HashMap<String, List<CapabilityDefinition>>()); - c.setRequirements(new HashMap<String, List<RequirementDefinition>>()); - - Response response = target() - .path(path) - .request(MediaType.APPLICATION_JSON) - .header("USER_ID", USER_ID) - .post(Entity.json(c)); - - assertEquals(response.getStatus(), HttpStatus.OK_200); - } - - @Test public void testBatchDeleteResourceInstancesSuccess() { String componentId = "componentId"; @@ -237,7 +212,7 @@ public class ComponentInstanceServletTest extends JerseyTest { when(componentsUtils.convertJsonToObjectUsingObjectMapper(anyString(), any(User.class), ArgumentMatchers.<Class<RequirementCapabilityRelDef[]>>any(), nullable(AuditingActionEnum.class), nullable(ComponentTypeEnum.class))).thenReturn(convertReqEither); - Either<RequirementCapabilityRelDef, ResponseFormat> actionResponseEither = Either.left(ref); + RequirementCapabilityRelDef actionResponseEither = ref; when(componentInstanceBusinessLogic .dissociateRIFromRI(componentId, USER_ID, ref, ComponentTypeEnum.findByParamName(containerComponentType))) .thenReturn(actionResponseEither); @@ -317,4 +292,142 @@ public class ComponentInstanceServletTest extends JerseyTest { when(webApplicationContext.getBean(ServletUtils.class)).thenReturn(servletUtils); when(servletUtils.getComponentsUtils()).thenReturn(componentsUtils); } + + @Test + public void testUpdateResourceInstancePropertiesSuccess(){ + + String containerComponentType = "services"; + String componentId = "componentId"; + String resourceInstanceId = "resourceInstanceId"; + ComponentInstanceProperty [] properties = new ComponentInstanceProperty[1]; + ComponentInstanceProperty property = new ComponentInstanceProperty(); + property.setName("property"); + property.setValue("value"); + property.setType("String"); + properties[0] = (property); + ObjectMapper mapper = new ObjectMapper(); + String propertyJson = null; + try { + propertyJson = mapper.writeValueAsString(properties); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + String path = "/v1/catalog/" + containerComponentType + "/" + componentId + "/resourceInstance" + "/" + + resourceInstanceId + "/properties"; + when(componentsUtils.convertJsonToObjectUsingObjectMapper(propertyJson, new User(), ComponentInstanceProperty[].class, + null, ComponentTypeEnum.RESOURCE_INSTANCE)).thenReturn(Either.left(properties)); + when(componentInstanceBusinessLogic.createOrUpdatePropertiesValues(eq(ComponentTypeEnum.findByParamName(SERVICE_PARAM_NAME)), + eq(componentId), eq(resourceInstanceId), eq(Arrays.asList(properties)), eq(USER_ID))).thenReturn(Either.left(Arrays.asList(properties))); + when(responseFormat.getStatus()).thenReturn(HttpStatus.OK_200); + when(componentsUtils.getResponseFormat(ActionStatus.OK)).thenReturn(responseFormat); + Response response = target() + .path(path) + .request(MediaType.APPLICATION_JSON) + .header("USER_ID", USER_ID).post(Entity.entity(properties, MediaType.APPLICATION_JSON)); + assertThat(response.getStatus()).isEqualTo(HttpStatus.OK_200); + } + + @Test + public void testUpdateResourceInstanceInputsSuccess(){ + + String containerComponentType = "services"; + String componentId = "componentId"; + String resourceInstanceId = "resourceInstanceId"; + ComponentInstanceInput[] inputs = new ComponentInstanceInput[1]; + ComponentInstanceInput input = new ComponentInstanceInput(); + input.setName("input"); + input.setValue("value"); + input.setType("String"); + inputs[0] = (input); + ObjectMapper mapper = new ObjectMapper(); + String inputJson = null; + try { + inputJson = mapper.writeValueAsString(inputs); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + String path = "/v1/catalog/" + containerComponentType + "/" + componentId + "/resourceInstance" + "/" + + resourceInstanceId + "/inputs"; + when(componentsUtils.convertJsonToObjectUsingObjectMapper(inputJson, new User(), ComponentInstanceInput[].class, + null, ComponentTypeEnum.RESOURCE_INSTANCE)).thenReturn(Either.left(inputs)); + when(componentInstanceBusinessLogic.createOrUpdateInstanceInputValues(eq(ComponentTypeEnum.findByParamName(SERVICE_PARAM_NAME)), + eq(componentId), eq(resourceInstanceId), eq(Arrays.asList(inputs)), eq(USER_ID))).thenReturn(Either.left(Arrays.asList(inputs))); + when(responseFormat.getStatus()).thenReturn(HttpStatus.OK_200); + when(componentsUtils.getResponseFormat(ActionStatus.OK)).thenReturn(responseFormat); + Response response = target() + .path(path) + .request(MediaType.APPLICATION_JSON) + .header("USER_ID", USER_ID).post(Entity.entity(inputs, MediaType.APPLICATION_JSON)); + assertThat(response.getStatus()).isEqualTo(HttpStatus.OK_200); + } + + @Test + public void testUpdateResourceInstancePropertiesFailure(){ + + String containerComponentType = "services"; + String componentId = "componentId"; + String resourceInstanceId = "resourceInstanceId"; + ComponentInstanceProperty [] properties = new ComponentInstanceProperty[1]; + ComponentInstanceProperty property = new ComponentInstanceProperty(); + property.setName("property"); + property.setValue("value"); + property.setType("String"); + properties[0] = (property); + ObjectMapper mapper = new ObjectMapper(); + String propertyJson = null; + try { + propertyJson = mapper.writeValueAsString(properties); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + String path = "/v1/catalog/" + containerComponentType + "/" + componentId + "/resourceInstance" + "/" + + resourceInstanceId + "/properties"; + when(componentsUtils.convertJsonToObjectUsingObjectMapper(propertyJson, new User(), ComponentInstanceProperty[].class, + null, ComponentTypeEnum.RESOURCE_INSTANCE)).thenReturn(Either.left(properties)); + when(componentInstanceBusinessLogic.createOrUpdatePropertiesValues(eq(ComponentTypeEnum.findByParamName(SERVICE_PARAM_NAME)), + eq(componentId), eq(resourceInstanceId), eq(Arrays.asList(properties)), eq(USER_ID))) + .thenReturn(Either.right(new ResponseFormat(404))); + when(responseFormat.getStatus()).thenReturn(HttpStatus.NOT_FOUND_404); + when(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND)).thenReturn(responseFormat); + Response response = target() + .path(path) + .request(MediaType.APPLICATION_JSON) + .header("USER_ID", USER_ID).post(Entity.entity(properties, MediaType.APPLICATION_JSON)); + assertThat(response.getStatus()).isEqualTo(HttpStatus.NOT_FOUND_404); + } + + @Test + public void testUpdateResourceInstanceInputsFailure(){ + + String containerComponentType = "services"; + String componentId = "componentId"; + String resourceInstanceId = "resourceInstanceId"; + ComponentInstanceInput [] inputs = new ComponentInstanceInput[1]; + ComponentInstanceInput input = new ComponentInstanceInput(); + input.setName("input"); + input.setValue("value"); + input.setType("String"); + inputs[0] = (input); + ObjectMapper mapper = new ObjectMapper(); + String inputJson = null; + try { + inputJson = mapper.writeValueAsString(inputs); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + String path = "/v1/catalog/" + containerComponentType + "/" + componentId + "/resourceInstance" + "/" + + resourceInstanceId + "/inputs"; + when(componentsUtils.convertJsonToObjectUsingObjectMapper(inputJson, new User(), ComponentInstanceInput[].class, + null, ComponentTypeEnum.RESOURCE_INSTANCE)).thenReturn(Either.left(inputs)); + when(componentInstanceBusinessLogic.createOrUpdateInstanceInputValues(eq(ComponentTypeEnum.findByParamName(SERVICE_PARAM_NAME)), + eq(componentId), eq(resourceInstanceId), eq(Arrays.asList(inputs)), eq(USER_ID))) + .thenReturn(Either.right(new ResponseFormat(404))); + when(responseFormat.getStatus()).thenReturn(HttpStatus.NOT_FOUND_404); + when(componentsUtils.getResponseFormat(ActionStatus.RESOURCE_NOT_FOUND)).thenReturn(responseFormat); + Response response = target() + .path(path) + .request(MediaType.APPLICATION_JSON) + .header("USER_ID", USER_ID).post(Entity.entity(inputs, MediaType.APPLICATION_JSON)); + assertThat(response.getStatus()).isEqualTo(HttpStatus.NOT_FOUND_404); + } } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ComponentPropertyServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ComponentPropertyServletTest.java index 4fcbd06927..02d273b8a9 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ComponentPropertyServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ComponentPropertyServletTest.java @@ -20,15 +20,7 @@ package org.openecomp.sdc.be.servlets; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.when; - -import com.google.gson.Gson; import fj.data.Either; -import javax.servlet.ServletContext; -import javax.servlet.http.HttpSession; -import javax.ws.rs.core.Response; import org.glassfish.grizzly.http.util.HttpStatus; import org.junit.Assert; import org.junit.Before; @@ -48,6 +40,14 @@ import org.openecomp.sdc.common.api.Constants; import org.openecomp.sdc.exception.ResponseFormat; import org.springframework.web.context.WebApplicationContext; +import javax.servlet.ServletContext; +import javax.servlet.http.HttpSession; +import javax.ws.rs.core.Response; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.when; + @RunWith(MockitoJUnitRunner.class) public class ComponentPropertyServletTest extends JerseySpringBaseTest { @Mock @@ -72,6 +72,11 @@ public class ComponentPropertyServletTest extends JerseySpringBaseTest { private static final String INVALID_PROPERTY_NAME = "invalid_name_$.&"; private static final String STRING_TYPE = "string"; + @Before + public void initClass() { + initMockitoStubbings(); + } + @Test public void testCreatePropertyOnService_success() { PropertyDefinition property = new PropertyDefinition(); @@ -105,6 +110,14 @@ public class ComponentPropertyServletTest extends JerseySpringBaseTest { Assert.assertEquals(HttpStatus.BAD_REQUEST_400.getStatusCode(), propertyInService.getStatus()); } + private static void initMockitoStubbings() { + when(request.getSession()).thenReturn(session); + when(session.getServletContext()).thenReturn(context); + when(context.getAttribute(eq(Constants.WEB_APPLICATION_CONTEXT_WRAPPER_ATTR))).thenReturn(wrapper); + when(wrapper.getWebAppContext(any())).thenReturn(webAppContext); + when(webAppContext.getBean(eq(ComponentsUtils.class))).thenReturn(componentsUtils); + } + private String getValidProperty() { return "{\n" + " \"valid_name_123\": {\n" diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ComponentServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ComponentServletTest.java index 8f823c3a7c..0e444fee92 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ComponentServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ComponentServletTest.java @@ -27,8 +27,6 @@ import org.json.JSONObject; import org.junit.Before; import org.junit.Test; import org.openecomp.sdc.be.components.impl.ComponentBusinessLogicProvider; -import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; -import org.openecomp.sdc.be.components.impl.GroupBusinessLogic; import org.openecomp.sdc.be.components.impl.ResourceBusinessLogic; import org.openecomp.sdc.be.components.utils.PolicyDefinitionBuilder; import org.openecomp.sdc.be.impl.ComponentsUtils; @@ -55,8 +53,6 @@ public class ComponentServletTest extends JerseySpringBaseTest{ private static final String USER_ID = "userId"; private static final String RESOURCE_ID = "resourceId"; private ResourceBusinessLogic resourceBusinessLogic; - private UserBusinessLogic userBusinessLogic; - private ComponentsUtils componentsUtils; private PolicyDefinition policy1, policy2; @Override @@ -70,10 +66,9 @@ public class ComponentServletTest extends JerseySpringBaseTest{ @Override protected ResourceConfig configure() { resourceBusinessLogic = mock(ResourceBusinessLogic.class); - userBusinessLogic = mock(UserBusinessLogic.class); - componentsUtils = mock(ComponentsUtils.class); - ComponentServlet componentServlet = new ComponentServlet(userBusinessLogic, componentsUtils, - new ComponentBusinessLogicProvider(resourceBusinessLogic, null, null)); + UserBusinessLogic userBusinessLogic = mock(UserBusinessLogic.class); + ComponentsUtils componentsUtils = mock(ComponentsUtils.class); + ComponentServlet componentServlet = new ComponentServlet(userBusinessLogic, componentsUtils, new ComponentBusinessLogicProvider(resourceBusinessLogic, null, null)); return super.configure().register(componentServlet); } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ConfigMgrServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ConfigMgrServletTest.java index 97537cbe8b..2ec190f93b 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ConfigMgrServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ConfigMgrServletTest.java @@ -20,11 +20,10 @@ package org.openecomp.sdc.be.servlets; -import javax.servlet.http.HttpServletRequest; - +import com.datastax.driver.core.Configuration; import org.junit.Test; -import com.datastax.driver.core.Configuration; +import javax.servlet.http.HttpServletRequest; public class ConfigMgrServletTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ConfigServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ConfigServletTest.java index a982dabaf4..36eb3e9909 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ConfigServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ConfigServletTest.java @@ -20,10 +20,10 @@ package org.openecomp.sdc.be.servlets; -import javax.servlet.http.HttpServletRequest; - import org.junit.Test; +import javax.servlet.http.HttpServletRequest; + public class ConfigServletTest { private ConfigServlet createTestSubject() { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ConsumerServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ConsumerServletTest.java deleted file mode 100644 index 6aa11a6366..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ConsumerServletTest.java +++ /dev/null @@ -1,113 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * 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.openecomp.sdc.be.servlets; - -import static org.mockito.Mockito.mock; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - -import org.junit.Test; -import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; -import org.openecomp.sdc.be.components.impl.ConsumerBusinessLogic; -import org.openecomp.sdc.be.components.impl.GroupBusinessLogic; -import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.model.ConsumerDefinition; -import org.openecomp.sdc.be.model.User; -import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; -import org.openecomp.sdc.be.user.UserBusinessLogic; -import org.openecomp.sdc.exception.ResponseFormat; - -import fj.data.Either; - -public class ConsumerServletTest { - - private ConsumerServlet createTestSubject() { - UserBusinessLogic userBusinessLogic = mock(UserBusinessLogic.class); - ComponentsUtils componentsUtils = mock(ComponentsUtils.class); - ConsumerBusinessLogic consumerBusinessLogic = mock(ConsumerBusinessLogic.class); - return new ConsumerServlet(userBusinessLogic, componentsUtils, consumerBusinessLogic); - } - - - @Test - public void testCreateConsumer() throws Exception { - ConsumerServlet testSubject; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testGetConsumer() throws Exception { - ConsumerServlet testSubject; - String consumerId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testDeleteConsumer() throws Exception { - ConsumerServlet testSubject; - String consumerId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testGetConsumerBL() throws Exception { - ConsumerServlet testSubject; - ServletContext context = null; - ConsumerBusinessLogic result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testConvertJsonToObject() throws Exception { - ConsumerServlet testSubject; - String data = ""; - User user = null; - AuditingActionEnum actionEnum = null; - Either<ConsumerDefinition, ResponseFormat> result; - - // default test - testSubject = createTestSubject(); - } -} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/CsarBuildServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/CsarBuildServletTest.java deleted file mode 100644 index 6d820841f0..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/CsarBuildServletTest.java +++ /dev/null @@ -1,81 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * 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.openecomp.sdc.be.servlets; - -import static org.mockito.Mockito.mock; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - -import org.junit.Test; -import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; -import org.openecomp.sdc.be.components.impl.GroupBusinessLogic; -import org.openecomp.sdc.be.components.impl.ResourceImportManager; -import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.impl.DownloadArtifactLogic; -import org.openecomp.sdc.be.impl.ServletUtils; -import org.openecomp.sdc.be.resources.api.IResourceUploader; -import org.openecomp.sdc.be.user.UserBusinessLogic; - - -public class CsarBuildServletTest { - - private CsarBuildServlet createTestSubject() { - UserBusinessLogic userBusinessLogic = mock(UserBusinessLogic.class); - ComponentsUtils componentsUtils = mock(ComponentsUtils.class); - IResourceUploader resourceUploader = mock(IResourceUploader.class); - DownloadArtifactLogic logic = mock(DownloadArtifactLogic.class); - - return new CsarBuildServlet(userBusinessLogic, componentsUtils, resourceUploader, - logic); - } - - - @Test - public void testGetDefaultTemplate() throws Exception { - CsarBuildServlet testSubject; - HttpServletRequest request = null; - String serviceName = ""; - String serviceVersion = ""; - Response result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getDefaultTemplate(request, serviceName, serviceVersion); - } - - - @Test - public void testGetToscaCsarTemplate() throws Exception { - CsarBuildServlet testSubject; - HttpServletRequest request = null; - String serviceName = ""; - String serviceVersion = ""; - Response result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getToscaCsarTemplate(request, serviceName, serviceVersion); - } - - - -} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/DistributionServiceServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/DistributionServiceServletTest.java index df26749ef0..7a89a6bee5 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/DistributionServiceServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/DistributionServiceServletTest.java @@ -20,18 +20,16 @@ package org.openecomp.sdc.be.servlets; -import static org.mockito.Mockito.mock; +import org.junit.Test; +import org.openecomp.sdc.be.components.impl.DistributionMonitoringBusinessLogic; +import org.openecomp.sdc.be.impl.ComponentsUtils; +import org.openecomp.sdc.be.user.UserBusinessLogic; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.core.Response; -import org.junit.Test; -import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; -import org.openecomp.sdc.be.components.impl.DistributionMonitoringBusinessLogic; -import org.openecomp.sdc.be.components.impl.GroupBusinessLogic; -import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.user.UserBusinessLogic; +import static org.mockito.Mockito.mock; public class DistributionServiceServletTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ElementServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ElementServletTest.java index 16d0942e0f..f90ef19293 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ElementServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ElementServletTest.java @@ -22,9 +22,9 @@ package org.openecomp.sdc.be.servlets; -import com.google.common.collect.Lists; import fj.data.Either; import org.apache.commons.text.StrSubstitutor; +import org.apache.http.HttpStatus; import org.glassfish.hk2.utilities.binding.AbstractBinder; import org.glassfish.jersey.server.ResourceConfig; import org.glassfish.jersey.test.JerseyTest; @@ -32,7 +32,6 @@ import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.mockito.Mockito; -import org.apache.http.HttpStatus; import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic; import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; import org.openecomp.sdc.be.components.impl.ElementBusinessLogic; @@ -41,11 +40,11 @@ import org.openecomp.sdc.be.components.impl.ResourceImportManager; import org.openecomp.sdc.be.components.impl.exceptions.ByResponseFormatComponentException; import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; import org.openecomp.sdc.be.components.scheduledtasks.ComponentsCleanBusinessLogic; +import org.openecomp.sdc.be.config.Configuration; import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.config.SpringConfig; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; -import org.openecomp.sdc.be.datatypes.enums.OriginTypeEnum; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.impl.ServletUtils; import org.openecomp.sdc.be.impl.WebAppContextWrapper; @@ -77,9 +76,10 @@ import javax.ws.rs.client.Entity; import javax.ws.rs.core.Application; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; - -import java.util.*; -import java.util.stream.Collectors; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; @@ -92,6 +92,7 @@ public class ElementServletTest extends JerseyTest { public static final HttpSession session = Mockito.mock(HttpSession.class); public static final ResourceImportManager resourceImportManager = Mockito.mock(ResourceImportManager.class); public static final ResourceBusinessLogic resourceBusinessLogic = Mockito.mock(ResourceBusinessLogic.class); + public static final BeGenericServlet beGenericServlet = Mockito.mock(BeGenericServlet.class); public static final Resource resource = Mockito.mock(Resource.class); public static final UserBusinessLogic userBusinessLogic = Mockito.mock(UserBusinessLogic.class); public static final ComponentInstanceBusinessLogic componentInstanceBusinessLogic = Mockito.mock(ComponentInstanceBusinessLogic.class); @@ -126,6 +127,8 @@ public class ElementServletTest extends JerseyTest { private static User designerUser = new User("designer", "designer", "designer", "designer@email.com", Role.DESIGNER.name(), System .currentTimeMillis()); + private static ConfigurationManager configurationManager; + @BeforeClass public static void setup() { @@ -157,20 +160,31 @@ public class ElementServletTest extends JerseyTest { when(componentUtils.getResponseFormat(eq(ActionStatus.COMPONENT_INSTANCE_NOT_FOUND), any())).thenReturn(notFoundResponseFormat); when(componentUtils.getResponseFormat(eq(ActionStatus.EXT_REF_NOT_FOUND), any())).thenReturn(notFoundResponseFormat); when(componentUtils.getResponseFormat(eq(ActionStatus.MISSING_X_ECOMP_INSTANCE_ID), any())).thenReturn(badRequestResponseFormat); + when(request.getSession()).thenReturn(session); + when(session.getServletContext()).thenReturn(servletContext); + when(beGenericServlet.getElementBL(any())).thenReturn(elementBusinessLogic); + when(webApplicationContext.getBean(ElementBusinessLogic.class)).thenReturn(elementBusinessLogic); + when(webApplicationContext.getBean(ComponentsUtils.class)).thenReturn(componentUtils); + when(beGenericServlet.getComponentsUtils()).thenReturn(componentUtils); Either<User, ActionStatus> designerEither = Either.left(designerUser); - when(userAdmin.getUser(designerUser.getUserId(), false)).thenReturn(designerEither); + when(userAdmin.getUser(designerUser.getUserId(), false)).thenReturn(designerUser); String appConfigDir = "src/test/resources/config"; ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir); - ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); + configurationManager = new ConfigurationManager(configurationSource); org.openecomp.sdc.be.config.Configuration configuration = new org.openecomp.sdc.be.config.Configuration(); configuration.setJanusGraphInMemoryGraph(true); + Configuration.HeatDeploymentArtifactTimeout testHeatDeploymentArtifactTimeout = new Configuration.HeatDeploymentArtifactTimeout(); + testHeatDeploymentArtifactTimeout.setDefaultMinutes(1); + configuration.setHeatArtifactDeploymentTimeout(testHeatDeploymentArtifactTimeout); configurationManager.setConfiguration(configuration); ExternalConfiguration.setAppName("catalog-be"); + + } @Before @@ -271,7 +285,7 @@ public class ElementServletTest extends JerseyTest { @Test public void getAllCategoriesExceptionDuringProcessingTest() { - String path = "/v1/categories"; + String path = "/v1/setup/ui"; when(elementBusinessLogic.getAllCategories(designerUser.getUserId())) .thenThrow(new RuntimeException("Test exception: getAllCategories")); @@ -287,8 +301,16 @@ public class ElementServletTest extends JerseyTest { @Test public void getAllCategoriesTest() { - String path = "/v1/categories"; + String path = "/v1/setup/ui"; Either<UiCategories, ResponseFormat> getAllCategoriesEither = Either.left(new UiCategories()); + Either<List<ArtifactType>, ActionStatus> otherEither = Either.left(new ArrayList<>()); + when(elementBusinessLogic.getDefaultHeatTimeout()).thenReturn(Either.left(configurationManager.getConfiguration().getHeatArtifactDeploymentTimeout())); + when(elementBusinessLogic.getAllDeploymentArtifactTypes()).thenReturn(Either.left(new HashMap<String, Object>())); + when(elementBusinessLogic.getResourceTypesMap()).thenReturn(Either.left(new HashMap<String, String>())); + when(elementBusinessLogic.getAllArtifactTypes(designerUser.getUserId())) + .thenReturn(otherEither); + + when(elementBusinessLogic.getAllCategories(designerUser.getUserId())) .thenReturn(getAllCategoriesEither); @@ -933,10 +955,12 @@ public class ElementServletTest extends JerseyTest { @Test public void configurationNoConfigurationFoundTest() { - String path = "/v1/configuration/ui"; + String path = "/v1/setup/ui"; Either<List<ArtifactType>, ActionStatus> otherEither = Either.left(new ArrayList<>()); - Either<Integer, ActionStatus> defaultHeatTimeoutEither = Either.left(1); + Configuration.HeatDeploymentArtifactTimeout heatDeploymentArtifactTimeout = new Configuration.HeatDeploymentArtifactTimeout(); + heatDeploymentArtifactTimeout.setDefaultMinutes(1); + Either<Configuration.HeatDeploymentArtifactTimeout, ActionStatus> defaultHeatTimeoutEither = Either.left(heatDeploymentArtifactTimeout); Either<Map<String, Object>, ActionStatus> deploymentEither = Either.left(new HashMap<>()); Either<Map<String, String>, ActionStatus> resourceTypesMapEither = Either.left(new HashMap<>()); @@ -956,12 +980,12 @@ public class ElementServletTest extends JerseyTest { .header(Constants.USER_ID_HEADER, designerUser.getUserId()) .get(); - assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_OK); + assertThat(response.getStatus()).isEqualTo(HttpStatus.SC_INTERNAL_SERVER_ERROR); } @Test public void configurationExceptionDuringProcessingTest() { - String path = "/v1/configuration/ui"; + String path = "/v1/setup/ui"; when(elementBusinessLogic.getAllArtifactTypes(designerUser.getUserId())) .thenThrow(new RuntimeException("Test exception: artifactTypes")); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ExceptionHandlerEndpointTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ExceptionHandlerEndpointTest.java new file mode 100644 index 0000000000..07435c4e03 --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ExceptionHandlerEndpointTest.java @@ -0,0 +1,77 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * 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.openecomp.sdc.be.servlets; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import org.apache.http.HttpStatus; +import org.glassfish.jersey.client.ClientConfig; +import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJaxbJsonProvider; +import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJsonProvider; +import org.glassfish.jersey.server.ResourceConfig; +import org.junit.Test; +import org.openecomp.sdc.be.dao.api.ActionStatus; +import org.openecomp.sdc.be.impl.ComponentsUtils; +import org.openecomp.sdc.exception.ResponseFormat; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Import; + +import javax.ws.rs.core.Response; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +public class ExceptionHandlerEndpointTest extends JerseySpringBaseTest { + + private static ComponentsUtils componentUtils; + + @org.springframework.context.annotation.Configuration + @Import(BaseTestConfig.class) + static class ExceptionHandlerConfig { + + @Bean + ExceptionHandlerEndpoint exceptionHandlerEndpoint() { + return new ExceptionHandlerEndpoint(componentUtils); + } + } + + @Override + protected void configureClient(ClientConfig config) { + final JacksonJsonProvider jacksonJsonProvider = new JacksonJaxbJsonProvider() + .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + config.register(jacksonJsonProvider); + } + + @Override + protected ResourceConfig configure() { + componentUtils = mock(ComponentsUtils.class); + + return super.configure(ExceptionHandlerConfig.class) + .register(ExceptionHandlerEndpoint.class); + } + + @Test + public void getHandleException() { + when(componentUtils.getResponseFormat(ActionStatus.GENERAL_ERROR)).thenReturn(new ResponseFormat(HttpStatus.SC_INTERNAL_SERVER_ERROR)); + Response response = target().path("/v1/catalog/handleException").request().get(Response.class); + assertEquals(HttpStatus.SC_INTERNAL_SERVER_ERROR, response.getStatus()); + } +} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupEndpointTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupEndpointTest.java index 20741aad73..742382155a 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupEndpointTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupEndpointTest.java @@ -39,6 +39,8 @@ import org.openecomp.sdc.be.components.validation.ComponentValidations; import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; +import org.openecomp.sdc.be.datatypes.enums.PromoteVersionEnum; +import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.model.ComponentInstance; import org.openecomp.sdc.be.model.GroupDefinition; import org.openecomp.sdc.be.model.GroupProperty; @@ -47,6 +49,7 @@ import org.openecomp.sdc.be.model.jsonjanusgraph.operations.GroupsOperation; import org.openecomp.sdc.be.model.operations.StorageException; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.model.operations.impl.GroupOperation; +import org.openecomp.sdc.be.user.UserBusinessLogic; import org.openecomp.sdc.common.api.ConfigurationSource; import org.openecomp.sdc.common.api.Constants; import org.openecomp.sdc.common.impl.ExternalConfiguration; @@ -72,7 +75,9 @@ import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.isA; import static org.mockito.Mockito.anyList; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; import static org.openecomp.sdc.be.model.operations.api.StorageOperationStatus.NOT_FOUND; public class GroupEndpointTest extends JerseySpringBaseTest { @@ -101,7 +106,10 @@ public class GroupEndpointTest extends JerseySpringBaseTest { @Bean GroupEndpoint groupEndpoint() { - return new GroupEndpoint(groupBusinessLogic()); + UserBusinessLogic userBusinessLogic = mock(UserBusinessLogic.class); + ComponentsUtils componentsUtils = mock(ComponentsUtils.class); + + return new GroupEndpoint(userBusinessLogic, componentsUtils, groupBusinessLogic()); } @Bean @@ -168,9 +176,9 @@ public class GroupEndpointTest extends JerseySpringBaseTest { when(accessValidations.validateUserCanRetrieveComponentData(eq(VALID_COMPONENT_ID), eq("resources"), eq(VALID_USER), anyString())) .thenReturn(cr); when(componentValidations.getComponentInstance(cr, A)).thenReturn(Optional.of(ci)); - doNothing().when(groupsOperation).updateGroupOnComponent(eq(VALID_COMPONENT_ID), isA(GroupDefinition.class)); + doNothing().when(groupsOperation).updateGroupOnComponent(eq(VALID_COMPONENT_ID), isA(GroupDefinition.class), any(PromoteVersionEnum.class)); when(groupOperation.validateAndUpdatePropertyValue(isA(GroupProperty.class))).thenReturn(StorageOperationStatus.OK); - when(groupsOperation.updateGroupPropertiesOnComponent(eq(VALID_COMPONENT_ID), isA(GroupDefinition.class), anyList())).thenAnswer(new Answer<Either>() { + when(groupsOperation.updateGroupPropertiesOnComponent(eq(VALID_COMPONENT_ID), isA(GroupDefinition.class), anyList(), any(PromoteVersionEnum.class))).thenAnswer(new Answer<Either>() { @Override public Either answer(InvocationOnMock invocationOnMock) throws Throwable { Object[] args = invocationOnMock.getArguments(); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupServletTest.java index 01383eae14..ddd5a2098d 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupServletTest.java @@ -20,21 +20,19 @@ package org.openecomp.sdc.be.servlets; -import static org.mockito.Mockito.mock; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - import org.junit.Test; import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; import org.openecomp.sdc.be.components.impl.GroupBusinessLogic; import org.openecomp.sdc.be.components.impl.ResourceImportManager; import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.impl.DownloadArtifactLogic; import org.openecomp.sdc.be.impl.ServletUtils; -import org.openecomp.sdc.be.resources.api.IResourceUploader; import org.openecomp.sdc.be.user.UserBusinessLogic; +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.core.Response; + +import static org.mockito.Mockito.mock; + public class GroupServletTest { private GroupServlet createTestSubject() { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupTypesEndpointTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupTypesEndpointTest.java index c6cd098f8f..286c1a0656 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupTypesEndpointTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupTypesEndpointTest.java @@ -43,8 +43,13 @@ import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.model.GroupTypeDefinition; import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.operations.api.DerivedFromOperation; -import org.openecomp.sdc.be.model.operations.impl.*; +import org.openecomp.sdc.be.model.operations.impl.CapabilityOperation; +import org.openecomp.sdc.be.model.operations.impl.CapabilityTypeOperation; +import org.openecomp.sdc.be.model.operations.impl.GroupTypeOperation; +import org.openecomp.sdc.be.model.operations.impl.OperationUtils; +import org.openecomp.sdc.be.model.operations.impl.PropertyOperation; import org.openecomp.sdc.be.resources.data.GroupTypeData; +import org.openecomp.sdc.be.user.UserBusinessLogic; import org.openecomp.sdc.common.api.ConfigurationSource; import org.openecomp.sdc.common.api.Constants; import org.openecomp.sdc.common.impl.ExternalConfiguration; @@ -63,10 +68,10 @@ import java.util.stream.Stream; import static java.util.Arrays.asList; import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.*; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -import static org.mockito.Mockito.mock; public class GroupTypesEndpointTest extends JerseySpringBaseTest { @@ -95,7 +100,9 @@ public class GroupTypesEndpointTest extends JerseySpringBaseTest { @Bean GroupTypesEndpoint groupTypesEndpoint() { - return new GroupTypesEndpoint(groupTypeBusinessLogic()); + UserBusinessLogic userBusinessLogic = mock(UserBusinessLogic.class); + ComponentsUtils componentsUtils = mock(ComponentsUtils.class); + return new GroupTypesEndpoint(userBusinessLogic, componentsUtils, groupTypeBusinessLogic()); } @Bean @@ -123,7 +130,7 @@ public class GroupTypesEndpointTest extends JerseySpringBaseTest { @Before public void init() { - when(userValidations.validateUserExists(eq(USER_ID), anyString(), anyBoolean())).thenReturn(user); + when(userValidations.validateUserExists(eq(USER_ID))).thenReturn(user); when(janusGraphGenericDao.getByCriteriaWithPredicate(eq(NodeTypeEnum.GroupType), any(), eq(GroupTypeData.class))).thenReturn(Either.left(buildGroupTypeDataList())); } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/InputsServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/InputsServletTest.java index da5352c206..0974bd5dd4 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/InputsServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/InputsServletTest.java @@ -21,11 +21,9 @@ package org.openecomp.sdc.be.servlets; import fj.data.Either; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Application; +import org.glassfish.grizzly.http.util.HttpStatus; import org.glassfish.hk2.utilities.binding.AbstractBinder; import org.glassfish.jersey.server.ResourceConfig; -import org.glassfish.grizzly.http.util.HttpStatus; import org.glassfish.jersey.test.JerseyTest; import org.junit.Before; import org.junit.BeforeClass; @@ -37,7 +35,10 @@ import org.openecomp.sdc.be.components.impl.DataTypeBusinessLogic; import org.openecomp.sdc.be.components.impl.GroupBusinessLogic; import org.openecomp.sdc.be.components.impl.InputsBusinessLogic; import org.openecomp.sdc.be.components.impl.ResourceImportManager; +import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; import org.openecomp.sdc.be.components.utils.PropertyDataDefinitionBuilder; +import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.config.SpringConfig; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.datatypes.elements.SchemaDefinition; @@ -53,17 +54,23 @@ import org.openecomp.sdc.be.model.InputDefinition; import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; +import org.openecomp.sdc.be.servlets.exception.ComponentExceptionMapper; import org.openecomp.sdc.be.user.UserBusinessLogic; +import org.openecomp.sdc.common.api.ConfigurationSource; import org.openecomp.sdc.common.api.Constants; +import org.openecomp.sdc.common.impl.ExternalConfiguration; +import org.openecomp.sdc.common.impl.FSConfigurationSource; import org.openecomp.sdc.exception.ResponseFormat; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.web.context.WebApplicationContext; import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import javax.ws.rs.client.Entity; import javax.ws.rs.client.Invocation; +import javax.ws.rs.core.Application; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import java.util.ArrayList; @@ -75,7 +82,12 @@ import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; public class InputsServletTest extends JerseyTest { @@ -106,6 +118,10 @@ public class InputsServletTest extends JerseyTest { private static ResourceImportManager resourceImportManager; private static HttpServletRequest request; + String appConfigDir = "src/test/resources/config/catalog-be"; + ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir); + ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); + @BeforeClass public static void configureMocks() { request = mock(HttpServletRequest.class); @@ -120,6 +136,8 @@ public class InputsServletTest extends JerseyTest { componentsUtils = mock(ComponentsUtils.class); servletUtils = mock(ServletUtils.class); resourceImportManager = mock(ResourceImportManager.class); + + } @Before @@ -152,6 +170,7 @@ public class InputsServletTest extends JerseyTest { servletUtils, resourceImportManager, dataTypeBusinessLogic); ResourceConfig resourceConfig = new ResourceConfig() .register(inputsServlet) + .register(new ComponentExceptionMapper(componentsUtils)) .register(new AbstractBinder() { @Override protected void configure() { @@ -164,6 +183,9 @@ public class InputsServletTest extends JerseyTest { return resourceConfig; } + + + private InputDefinition setUpListInput() { InputDefinition listInput = new InputDefinition(); listInput.setName(LISTINPUT_NAME); @@ -390,7 +412,7 @@ public class InputsServletTest extends JerseyTest { @Test public void test_deleteInput_success() throws Exception { when(inputsBusinessLogic.deleteInput(RESOURCE_ID, USER_ID, LISTINPUT_NAME)) - .thenReturn(Either.left(new InputDefinition())); + .thenReturn(new InputDefinition()); when(componentsUtils.getResponseFormat(ActionStatus.OK)).thenReturn(new ResponseFormat(HttpStatus.OK_200.getStatusCode())); // invoke delete call @@ -407,28 +429,9 @@ public class InputsServletTest extends JerseyTest { @Test public void test_deleteInput_failure_deleteInput() throws Exception { - doReturn(Either.right(new ResponseFormat(HttpStatus.BAD_REQUEST_400.getStatusCode()))).when(inputsBusinessLogic) - .deleteInput(RESOURCE_ID, USER_ID, LISTINPUT_NAME); - - ResponseFormat responseFormat = new ResponseFormat(HttpStatus.OK_200.getStatusCode()); - doReturn(responseFormat).when(componentsUtils).getResponseFormat(ActionStatus.OK); - - // invoke delete call - Response response = target("/v1/catalog/services/{id}/delete/{inputId}/input") - .resolveTemplate("id", RESOURCE_ID) - .resolveTemplate("inputId", LISTINPUT_NAME) - .request(MediaType.APPLICATION_JSON) - .header(Constants.USER_ID_HEADER, USER_ID) - .delete(); - assertThat(response.getStatus()).isEqualTo(HttpStatus.BAD_REQUEST_400.getStatusCode()); - verify(componentsUtils, never()).getResponseFormat(ActionStatus.OK); - } - - - @Test - public void test_deleteInput_failure_exception() throws Exception { - when(componentsUtils.getResponseFormat(ActionStatus.OK)).thenReturn(new ResponseFormat(HttpStatus.OK_200.getStatusCode())); - when(componentsUtils.getResponseFormat(ActionStatus.GENERAL_ERROR)).thenReturn(new ResponseFormat(HttpStatus.BAD_REQUEST_400.getStatusCode())); + ComponentException componentException = new ByActionStatusComponentException(ActionStatus.INVALID_CONTENT); + when(inputsBusinessLogic.deleteInput(RESOURCE_ID, USER_ID, LISTINPUT_NAME)) + .thenThrow(componentException); // invoke delete call Response response = target("/v1/catalog/services/{id}/delete/{inputId}/input") diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/JerseySpringBaseTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/JerseySpringBaseTest.java index 5b204476b0..af5c421078 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/JerseySpringBaseTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/JerseySpringBaseTest.java @@ -20,13 +20,7 @@ package org.openecomp.sdc.be.servlets; -import static org.mockito.Mockito.mock; - import com.fasterxml.jackson.databind.DeserializationFeature; -import java.util.logging.Level; -import java.util.logging.Logger; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Feature; import org.glassfish.grizzly.servlet.HttpSessionImpl; import org.glassfish.grizzly.servlet.WebappContext; import org.glassfish.hk2.utilities.binding.AbstractBinder; @@ -36,6 +30,7 @@ import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJsonProvi import org.glassfish.jersey.logging.LoggingFeature; import org.glassfish.jersey.media.multipart.MultiPartFeature; import org.glassfish.jersey.server.ResourceConfig; +import org.glassfish.jersey.server.filter.RolesAllowedDynamicFeature; import org.glassfish.jersey.test.JerseyTest; import org.glassfish.jersey.test.TestProperties; import org.junit.BeforeClass; @@ -47,6 +42,13 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.web.context.WebApplicationContext; +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.core.Feature; +import java.util.logging.Level; +import java.util.logging.Logger; + +import static org.mockito.Mockito.mock; + public abstract class JerseySpringBaseTest extends JerseyTest { private static final Logger log = Logger.getLogger(JerseySpringBaseTest.class.getName()); @@ -88,6 +90,7 @@ public abstract class JerseySpringBaseTest extends JerseyTest { bind(request).to(HttpServletRequest.class); } }) + .register(RolesAllowedDynamicFeature.class) .register(DefaultExceptionMapper.class) .register(ComponentExceptionMapper.class) .register(StorageExceptionMapper.class) diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/LifecycleServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/LifecycleServletTest.java deleted file mode 100644 index b69f2a58dd..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/LifecycleServletTest.java +++ /dev/null @@ -1,76 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * 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.openecomp.sdc.be.servlets; - -import static org.mockito.Mockito.mock; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - -import org.junit.Test; -import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; -import org.openecomp.sdc.be.components.impl.GroupBusinessLogic; -import org.openecomp.sdc.be.components.lifecycle.LifecycleBusinessLogic; -import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.model.LifeCycleTransitionEnum; -import org.openecomp.sdc.be.model.User; - -import fj.data.Either; -import org.openecomp.sdc.be.user.UserBusinessLogic; - -public class LifecycleServletTest { - - private LifecycleServlet createTestSubject() { - UserBusinessLogic userBusinessLogic = mock(UserBusinessLogic.class); - LifecycleBusinessLogic lifecycleBusinessLogic = mock(LifecycleBusinessLogic.class); - ComponentsUtils componentsUtils = mock(ComponentsUtils.class); - - return new LifecycleServlet(userBusinessLogic, componentsUtils, lifecycleBusinessLogic); - } - - - @Test - public void testChangeResourceState() throws Exception { - LifecycleServlet testSubject; - String jsonChangeInfo = ""; - String componentCollection = ""; - String lifecycleTransition = ""; - String componentId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testValidateTransitionEnum() throws Exception { - LifecycleServlet testSubject; - String lifecycleTransition = ""; - User user = null; - Either<LifeCycleTransitionEnum, Response> result; - - // default test - testSubject = createTestSubject(); - } -} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PolicyServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PolicyServletTest.java index 2d181ccbf6..1ba2c44a24 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PolicyServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PolicyServletTest.java @@ -20,27 +20,8 @@ package org.openecomp.sdc.be.servlets; -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyMap; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.when; -import static org.openecomp.sdc.common.api.Constants.GET_POLICY; - import com.fasterxml.jackson.databind.DeserializationFeature; import fj.data.Either; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Objects; -import javax.ws.rs.client.ClientBuilder; -import javax.ws.rs.client.Entity; -import javax.ws.rs.client.Invocation; -import javax.ws.rs.core.GenericType; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; import org.glassfish.grizzly.http.util.HttpStatus; import org.glassfish.jersey.client.ClientConfig; import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJaxbJsonProvider; @@ -58,8 +39,13 @@ import org.mockito.Spy; import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.be.components.impl.BaseBusinessLogic; import org.openecomp.sdc.be.components.impl.PolicyBusinessLogic; +import org.openecomp.sdc.be.components.impl.ResponseFormatManager; +import org.openecomp.sdc.be.components.impl.aaf.RoleAuthorizationHandler; +import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException; +import org.openecomp.sdc.be.components.impl.exceptions.ByResponseFormatComponentException; import org.openecomp.sdc.be.components.property.PropertyDeclarationOrchestrator; import org.openecomp.sdc.be.components.utils.PropertyDataDefinitionBuilder; +import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.datatypes.elements.GetPolicyValueDataDefinition; import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition; @@ -82,9 +68,37 @@ import org.openecomp.sdc.be.model.operations.api.IGroupTypeOperation; import org.openecomp.sdc.be.model.operations.impl.InterfaceLifecycleOperation; import org.openecomp.sdc.be.model.operations.impl.UniqueIdBuilder; import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; +import org.openecomp.sdc.common.api.ConfigurationSource; import org.openecomp.sdc.common.api.Constants; +import org.openecomp.sdc.common.api.FilterDecisionEnum; +import org.openecomp.sdc.common.impl.ExternalConfiguration; +import org.openecomp.sdc.common.impl.FSConfigurationSource; +import org.openecomp.sdc.common.util.ThreadLocalsHolder; import org.openecomp.sdc.exception.ResponseFormat; +import javax.ws.rs.client.ClientBuilder; +import javax.ws.rs.client.Entity; +import javax.ws.rs.client.Invocation; +import javax.ws.rs.core.GenericType; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Objects; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.assertEquals; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyMap; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.when; +import static org.openecomp.sdc.common.api.Constants.GET_POLICY; + + + @RunWith(MockitoJUnitRunner.class) public class PolicyServletTest extends JerseySpringBaseTest{ @@ -95,6 +109,7 @@ public class PolicyServletTest extends JerseySpringBaseTest{ private static ServletUtils servletUtils; private static PropertyDeclarationOrchestrator propertyDeclarationOrchestrator; private static ToscaOperationFacade toscaOperationFacade; + private static RoleAuthorizationHandler roleAuthorizationHandler; private static ResponseFormat responseFormat; @Captor private static ArgumentCaptor<PolicyDefinition> policyCaptor; @@ -114,25 +129,33 @@ public class PolicyServletTest extends JerseySpringBaseTest{ private static final String PROP_1 = "prop1"; private static final String UPDATE_TARGETS_URL = "/v1/catalog/{componentType}/{componentId}/policies/{policyId}/targets"; + static ConfigurationSource configurationSource = new FSConfigurationSource( + ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be"); + static ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); @BeforeClass public static void initClass() { + ResponseFormatManager.getInstance(); createMocks(); when(servletUtils.getComponentsUtils()).thenReturn(componentsUtils); } - + @Before public void beforeMethod() { + Mockito.reset(businessLogic); final JacksonJsonProvider jacksonJsonProvider = new JacksonJaxbJsonProvider().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); setClient(ClientBuilder.newClient(new ClientConfig(jacksonJsonProvider))); + ThreadLocalsHolder.setApiType(FilterDecisionEnum.EXTERNAL); + when(request.isUserInRole(anyString())).thenReturn(true); + } + @Test public void testGetPolicySuccess(){ String path = "/v1/catalog/" + validComponentType + "/" + componentId + "/policies/" + POLICY_ID; - Either<PolicyDefinition, ResponseFormat> successResponse = Either.left(new PolicyDefinition()); + PolicyDefinition successResponse = new PolicyDefinition(); when(businessLogic.getPolicy(eq(ComponentTypeEnum.RESOURCE), eq(componentId), eq(POLICY_ID), eq(USER_ID))).thenReturn(successResponse); - when(responseFormat.getStatus()).thenReturn(HttpStatus.OK_200.getStatusCode()); Response response = target() .path(path) .request(MediaType.APPLICATION_JSON) @@ -145,8 +168,6 @@ public class PolicyServletTest extends JerseySpringBaseTest{ @Test public void testGetPolicyFailure(){ String path = "/v1/catalog/" + unsupportedComponentType + "/" + componentId + "/policies/" + POLICY_ID; - when(responseFormat.getStatus()).thenReturn(HttpStatus.BAD_REQUEST_400.getStatusCode()); - when(componentsUtils.getResponseFormat(eq(ActionStatus.UNSUPPORTED_ERROR), eq(unsupportedComponentType))).thenReturn(responseFormat); Response response = target() .path(path) .request(MediaType.APPLICATION_JSON) @@ -160,7 +181,7 @@ public class PolicyServletTest extends JerseySpringBaseTest{ public void testPostPolicySuccess(){ String path = "/v1/catalog/" + validComponentType + "/" + componentId + "/policies/" + policyTypeName; PolicyDefinition policy = new PolicyDefinition(); - Either<PolicyDefinition, ResponseFormat> successResponse = Either.left(policy); + PolicyDefinition successResponse = policy; when(businessLogic.createPolicy(eq(ComponentTypeEnum.RESOURCE), eq(componentId), eq(policyTypeName), eq(USER_ID), eq(true))).thenReturn(successResponse); when(responseFormat.getStatus()).thenReturn(HttpStatus.CREATED_201.getStatusCode()); when(componentsUtils.getResponseFormat(ActionStatus.CREATED)).thenReturn(responseFormat); @@ -177,8 +198,6 @@ public class PolicyServletTest extends JerseySpringBaseTest{ public void testPostPolicyFailure(){ String path = "/v1/catalog/" + unsupportedComponentType + "/" + componentId + "/policies/" + policyTypeName; PolicyDefinition policy = new PolicyDefinition(); - when(responseFormat.getStatus()).thenReturn(HttpStatus.BAD_REQUEST_400.getStatusCode()); - when(componentsUtils.getResponseFormat(eq(ActionStatus.UNSUPPORTED_ERROR), eq(unsupportedComponentType))).thenReturn(responseFormat); Response response = target() .path(path) .request(MediaType.APPLICATION_JSON) @@ -193,9 +212,8 @@ public class PolicyServletTest extends JerseySpringBaseTest{ String path = "/v1/catalog/" + validComponentType + "/" + componentId + "/policies/" + POLICY_ID; PolicyDefinition policy = new PolicyDefinition(); policy.setUniqueId(POLICY_ID); - Either<PolicyDefinition, ResponseFormat> successResponse = Either.left(policy); + PolicyDefinition successResponse = policy; when(businessLogic.updatePolicy(eq(ComponentTypeEnum.RESOURCE), eq(componentId), any(PolicyDefinition.class), eq(USER_ID), eq(true))).thenReturn(successResponse); - when(responseFormat.getStatus()).thenReturn(HttpStatus.OK_200.getStatusCode()); Response response = target() .path(path) .request(MediaType.APPLICATION_JSON) @@ -209,8 +227,6 @@ public class PolicyServletTest extends JerseySpringBaseTest{ public void testPutPolicyFailure(){ String path = "/v1/catalog/" + unsupportedComponentType + "/" + componentId + "/policies/" + POLICY_ID; PolicyDefinition policy = new PolicyDefinition(); - when(responseFormat.getStatus()).thenReturn(HttpStatus.BAD_REQUEST_400.getStatusCode()); - when(componentsUtils.getResponseFormat(eq(ActionStatus.UNSUPPORTED_ERROR), eq(unsupportedComponentType))).thenReturn(responseFormat); Response response = target() .path(path) .request(MediaType.APPLICATION_JSON) @@ -223,9 +239,8 @@ public class PolicyServletTest extends JerseySpringBaseTest{ @Test public void testDeletePolicySuccess(){ String path = "/v1/catalog/" + validComponentType + "/" + componentId + "/policies/" + POLICY_ID; - Either<PolicyDefinition, ResponseFormat> successResponse = Either.left(new PolicyDefinition()); + PolicyDefinition successResponse = new PolicyDefinition(); when(businessLogic.deletePolicy(eq(ComponentTypeEnum.RESOURCE), eq(componentId), eq(POLICY_ID), eq(USER_ID), eq(true))).thenReturn(successResponse); - when(responseFormat.getStatus()).thenReturn(HttpStatus.OK_200.getStatusCode()); Response response = target() .path(path) .request(MediaType.APPLICATION_JSON) @@ -238,8 +253,6 @@ public class PolicyServletTest extends JerseySpringBaseTest{ @Test public void testDeletePolicyFailure(){ String path = "/v1/catalog/" + unsupportedComponentType + "/" + componentId + "/policies/" + POLICY_ID; - when(responseFormat.getStatus()).thenReturn(HttpStatus.BAD_REQUEST_400.getStatusCode()); - when(componentsUtils.getResponseFormat(eq(ActionStatus.UNSUPPORTED_ERROR), eq(unsupportedComponentType))).thenReturn(responseFormat); Response response = target() .path(path) .request(MediaType.APPLICATION_JSON) @@ -251,12 +264,14 @@ public class PolicyServletTest extends JerseySpringBaseTest{ @Test public void getPolicyProperties_operationForbidden() { - when(businessLogic.getPolicyProperties(ComponentTypeEnum.SERVICE, SERVICE_ID, POLICY_ID, USER_ID)).thenReturn(Either.right(new ResponseFormat(Response.Status.FORBIDDEN.getStatusCode()))); + // doThrow(new ComponentException(ActionStatus.GENERAL_ERROR)).when(businessLogic).getPolicyProperties(ComponentTypeEnum.SERVICE, SERVICE_ID, POLICY_ID, USER_ID); + when(businessLogic.getPolicyProperties(ComponentTypeEnum.SERVICE, SERVICE_ID, POLICY_ID, USER_ID)) + .thenThrow(new ByActionStatusComponentException(ActionStatus.AUTH_FAILED, USER_ID)); Response response = buildGetPropertiesRequest().get(); assertThat(response.getStatus()).isEqualTo(Response.Status.FORBIDDEN.getStatusCode()); } - @Test + @Test//(expected = ComponentException.class) public void getPolicyProperties_unHandledError_returnGeneralError() { when(businessLogic.getPolicyProperties(ComponentTypeEnum.SERVICE, SERVICE_ID, POLICY_ID, USER_ID)).thenThrow(new RuntimeException()); Response response = buildGetPropertiesRequest().get(); @@ -266,14 +281,14 @@ public class PolicyServletTest extends JerseySpringBaseTest{ @Test public void getPolicyProperties_wrongComponentType() { Response response = buildGetPropertiesRequest("unknownType").get(); - assertThat(response.getStatus()).isEqualTo(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()); + assertThat(response.getStatus()).isEqualTo(Response.Status.BAD_REQUEST.getStatusCode()); //verifyZeroInteractions(businessLogic); } @Test public void getPolicyProperties() { List<PropertyDataDefinition> properties = getPropertiesList(); - when(businessLogic.getPolicyProperties(ComponentTypeEnum.SERVICE, SERVICE_ID, POLICY_ID, USER_ID)).thenReturn(Either.left(properties)); + when(businessLogic.getPolicyProperties(ComponentTypeEnum.SERVICE, SERVICE_ID, POLICY_ID, USER_ID)).thenReturn(properties); List<PropertyDataDefinition> policyProps = buildGetPropertiesRequest().get(new GenericType<List<PropertyDataDefinition>>() {}); assertThat(policyProps) .usingElementComparatorOnFields("uniqueId") @@ -283,7 +298,8 @@ public class PolicyServletTest extends JerseySpringBaseTest{ @Test public void updatePolicyPropertiesSuccess() { List<PropertyDataDefinition> properties = getPropertiesList(); - when(businessLogic.updatePolicyProperties(eq(ComponentTypeEnum.SERVICE), eq(SERVICE_ID), eq(POLICY_ID), any(PropertyDataDefinition[].class), eq(USER_ID), eq(true))).thenReturn(Either.left(properties)); + when(businessLogic.updatePolicyProperties(eq(ComponentTypeEnum.SERVICE), eq(SERVICE_ID), eq(POLICY_ID), + any(PropertyDataDefinition[].class), eq(USER_ID), eq(true))).thenReturn(properties); List<PropertyDataDefinition> policyProps = buildUpdatePropertiesRequest(ComponentTypeEnum.SERVICE_PARAM_NAME, properties).invoke(new GenericType<List<PropertyDataDefinition>>() {}); assertThat(policyProps) .usingElementComparatorOnFields("uniqueId") @@ -293,7 +309,7 @@ public class PolicyServletTest extends JerseySpringBaseTest{ @Test public void updatePolicyTargetsSuccess() { List<PolicyTargetDTO> targets = getTargetDTOList(); - when(businessLogic.updatePolicyTargets(eq(ComponentTypeEnum.RESOURCE), eq(COMPONENT_ID), eq(POLICY_ID), anyMap(), eq(USER_ID))).thenReturn(Either.left(new PolicyDefinition())); + when(businessLogic.updatePolicyTargets(eq(ComponentTypeEnum.RESOURCE), eq(COMPONENT_ID), eq(POLICY_ID), anyMap(), eq(USER_ID))).thenReturn(new PolicyDefinition()); Response policyTargets = buildUpdateTargetsRequest(ComponentTypeEnum.RESOURCE_PARAM_NAME, targets).invoke(); assertThat(policyTargets.getStatus()).isEqualTo(200); } @@ -302,7 +318,7 @@ public class PolicyServletTest extends JerseySpringBaseTest{ public void updatePolicyPropertiesFailure() { List<PropertyDataDefinition> properties = getPropertiesList(); ResponseFormat notFoundResponse = new ResponseFormat(HttpStatus.NOT_FOUND_404.getStatusCode()); - when(businessLogic.updatePolicyProperties(eq(ComponentTypeEnum.SERVICE), eq(SERVICE_ID), eq(POLICY_ID), any(PropertyDataDefinition[].class), eq(USER_ID), eq(true))).thenReturn(Either.right(notFoundResponse)); + when(businessLogic.updatePolicyProperties(eq(ComponentTypeEnum.SERVICE), eq(SERVICE_ID), eq(POLICY_ID), any(PropertyDataDefinition[].class), eq(USER_ID), eq(true))).thenThrow(new ByResponseFormatComponentException(notFoundResponse)); Response policyProps = buildUpdatePropertiesRequest(ComponentTypeEnum.SERVICE_PARAM_NAME, properties).invoke(); assertEquals(HttpStatus.NOT_FOUND_404.getStatusCode(), policyProps.getStatus()); } @@ -338,7 +354,7 @@ public class PolicyServletTest extends JerseySpringBaseTest{ addGetPolicyValueToProperty(origProperty, policyDefinition); - when(businessLogic.deletePolicy(eq(ComponentTypeEnum.SERVICE), eq(SERVICE_ID), eq(policyDefinition.getUniqueId()), eq(USER_ID), eq(true))).thenReturn(Either.left(policyDefinition)); + when(businessLogic.deletePolicy(eq(ComponentTypeEnum.SERVICE), eq(SERVICE_ID), eq(policyDefinition.getUniqueId()), eq(USER_ID), eq(true))).thenReturn(policyDefinition); Response deleteResponse = buildDeletePolicyRequest(policyDefinition).invoke(); assertEquals(HttpStatus.OK_200.getStatusCode(), deleteResponse.getStatus()); @@ -470,7 +486,7 @@ public class PolicyServletTest extends JerseySpringBaseTest{ return componentInstInputsMap; } - + @Override protected ResourceConfig configure() { return super.configure() @@ -495,6 +511,7 @@ public class PolicyServletTest extends JerseySpringBaseTest{ componentsUtils = Mockito.mock(ComponentsUtils.class); servletUtils = Mockito.mock(ServletUtils.class); responseFormat = Mockito.mock(ResponseFormat.class); + roleAuthorizationHandler = Mockito.mock(RoleAuthorizationHandler.class); } private static class BaseBusinessLogicTest extends BaseBusinessLogic { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PolicyTypesEndpointTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PolicyTypesEndpointTest.java index d1510c15b1..d9f00f4f36 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PolicyTypesEndpointTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PolicyTypesEndpointTest.java @@ -28,6 +28,7 @@ import org.openecomp.sdc.be.components.utils.PolicyTypeBuilder; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.model.PolicyTypeDefinition; +import org.openecomp.sdc.be.user.UserBusinessLogic; import org.openecomp.sdc.common.api.Constants; import org.openecomp.sdc.exception.ResponseFormat; @@ -52,8 +53,10 @@ public class PolicyTypesEndpointTest extends JerseySpringBaseTest { protected ResourceConfig configure() { policyTypeBusinessLogic = mock(PolicyTypeBusinessLogic.class); componentUtils = mock(ComponentsUtils.class); + UserBusinessLogic userBusinessLogic = mock(UserBusinessLogic.class); + ComponentsUtils componentsUtils = mock(ComponentsUtils.class); return super.configure() - .register(new PolicyTypesEndpoint(policyTypeBusinessLogic)); + .register(new PolicyTypesEndpoint(userBusinessLogic, componentsUtils, policyTypeBusinessLogic)); } @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ProductServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ProductServletTest.java deleted file mode 100644 index 352c76a3f6..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ProductServletTest.java +++ /dev/null @@ -1,123 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * 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.openecomp.sdc.be.servlets; - -import static org.mockito.Mockito.mock; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - -import org.junit.Test; -import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; -import org.openecomp.sdc.be.components.impl.GroupBusinessLogic; -import org.openecomp.sdc.be.components.impl.ProductBusinessLogic; -import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.user.UserBusinessLogic; - -public class ProductServletTest { - - private ProductServlet createTestSubject() { - UserBusinessLogic userBusinessLogic = mock(UserBusinessLogic.class); - ProductBusinessLogic productBusinessLogic = mock(ProductBusinessLogic.class); - ComponentsUtils componentsUtils = mock(ComponentsUtils.class); - - return new ProductServlet(userBusinessLogic, productBusinessLogic, componentsUtils); - } - - - @Test - public void testCreateProduct() throws Exception { - ProductServlet testSubject; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testGetProductById() throws Exception { - ProductServlet testSubject; - String productId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testGetServiceByNameAndVersion() throws Exception { - ProductServlet testSubject; - String productName = ""; - String productVersion = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testDeleteProduct() throws Exception { - ProductServlet testSubject; - String productId = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testUpdateProductMetadata() throws Exception { - ProductServlet testSubject; - String productId = ""; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testValidateServiceName() throws Exception { - ProductServlet testSubject; - String productName = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } -} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/RepresentationUtilsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/RepresentationUtilsTest.java index 8f520d7d89..3d10bb1199 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/RepresentationUtilsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/RepresentationUtilsTest.java @@ -27,7 +27,9 @@ import org.openecomp.sdc.be.model.Operation; import java.util.HashMap; -import static org.junit.Assert.*; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; public class RepresentationUtilsTest { @@ -56,19 +58,6 @@ public class RepresentationUtilsTest { result = RepresentationUtils.toRepresentation(elementToRepresent); } - - - - @Test - public void testConvertJsonToArtifactDefinition() throws Exception { - String content = ""; - Class<ArtifactDefinition> clazz = null; - ArtifactDefinition result; - - // default test - result = RepresentationUtils.convertJsonToArtifactDefinition(content, clazz); - } - @Test public void checkIsEmptyFiltering() throws Exception { HashMap<String, Operation> op = new HashMap<>(); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/RequirementsServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/RequirementsServletTest.java deleted file mode 100644 index 61f2b15e65..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/RequirementsServletTest.java +++ /dev/null @@ -1,58 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * 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.openecomp.sdc.be.servlets; - -import static org.mockito.Mockito.mock; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - -import org.junit.Test; -import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; -import org.openecomp.sdc.be.components.impl.GroupBusinessLogic; -import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.user.UserBusinessLogic; - -public class RequirementsServletTest { - - private RequirementsServlet createTestSubject() { - UserBusinessLogic userBusinessLogic = mock(UserBusinessLogic.class); - ComponentInstanceBusinessLogic componentInstanceBL = mock(ComponentInstanceBusinessLogic.class); - ComponentsUtils componentsUtils = mock(ComponentsUtils.class); - - return new RequirementsServlet(userBusinessLogic, componentsUtils); - } - - - @Test - public void testUpdateRequirement() throws Exception { - RequirementsServlet testSubject; - String resourceId = ""; - String requirementId = ""; - String requirementData = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } -} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourceArtifactDownloadServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourceArtifactDownloadServletTest.java deleted file mode 100644 index 02a16f86dc..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourceArtifactDownloadServletTest.java +++ /dev/null @@ -1,87 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * 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.openecomp.sdc.be.servlets; - -import static org.mockito.Mockito.mock; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - -import org.junit.Test; - -import ch.qos.logback.classic.Logger; -import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; -import org.openecomp.sdc.be.components.impl.GroupBusinessLogic; -import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.impl.DownloadArtifactLogic; -import org.openecomp.sdc.be.resources.api.IResourceUploader; -import org.openecomp.sdc.be.user.UserBusinessLogic; - -public class ResourceArtifactDownloadServletTest { - - private ResourceArtifactDownloadServlet createTestSubject() { - UserBusinessLogic userBusinessLogic = mock(UserBusinessLogic.class); - ComponentsUtils componentsUtils = mock(ComponentsUtils.class); - IResourceUploader resourceUploader = mock(IResourceUploader.class); - DownloadArtifactLogic downloadArtifactLogic = mock(DownloadArtifactLogic.class); - - return new ResourceArtifactDownloadServlet(userBusinessLogic, componentsUtils, - resourceUploader, downloadArtifactLogic); - } - - - @Test - public void testGetResourceArtifactByName() throws Exception { - ResourceArtifactDownloadServlet testSubject; - String resourceName = ""; - String resourceVersion = ""; - String artifactName = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testGetResourceArtifactMetadata() throws Exception { - ResourceArtifactDownloadServlet testSubject; - String resourceName = ""; - String resourceVersion = ""; - String artifactName = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testGetLogger() throws Exception { - ResourceArtifactDownloadServlet testSubject; - Logger result; - - // default test - testSubject = createTestSubject(); - } -} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourceServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourceServletTest.java index 6344e6f72f..284cc3fb47 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourceServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourceServletTest.java @@ -73,6 +73,7 @@ import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import java.io.IOException; import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -137,13 +138,12 @@ public class ResourceServletTest extends JerseyTest { user = new User(); user.setUserId(userId); user.setRole(Role.ADMIN.name()); - Either<User, ActionStatus> eitherUser = Either.left(user); - when(userAdmin.getUser(userId, false)).thenReturn(eitherUser); + when(userAdmin.getUser(userId)).thenReturn(user); when(request.getHeader(Constants.USER_ID_HEADER)).thenReturn(userId); ImmutablePair<Resource, ActionStatus> pair = new ImmutablePair<>(new Resource(), ActionStatus.OK); - Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> ret = Either.left(pair); - when(resourceImportManager.importUserDefinedResource(Mockito.anyString(), Mockito.any(UploadResourceInfo.class), Mockito.any(User.class), Mockito.anyBoolean())).thenReturn(ret); + when(resourceImportManager.importUserDefinedResource(Mockito.anyString(), Mockito.any(UploadResourceInfo.class), Mockito.any(User.class), Mockito.anyBoolean())).thenReturn(pair); + when(webApplicationContext.getBean(ResourceBusinessLogic.class)).thenReturn(resourceBusinessLogic); } @@ -1001,7 +1001,7 @@ public class ResourceServletTest extends JerseyTest { ret.setVendorRelease("VendorRelease"); ret.setContactId("AT1234"); ret.setIcon("router"); - ret.setTags(Arrays.asList(new String[] { "ciMyCompute" })); + ret.setTags(Collections.singletonList("ciMyCompute")); ret.setPayloadData( "dG9zY2FfZGVmaW5pdGlvbnNfdmVyc2lvbjogdG9zY2Ffc2ltcGxlX3lhbWxfMV8wXzANCm5vZGVfdHlwZXM6IA0KICBvcmcub3BlbmVjb21wLnJlc291cmNlLk15Q29tcHV0ZToNCiAgICBkZXJpdmVkX2Zyb206IHRvc2NhLm5vZGVzLlJvb3QNCiAgICBhdHRyaWJ1dGVzOg0KICAgICAgcHJpdmF0ZV9hZGRyZXNzOg0KICAgICAgICB0eXBlOiBzdHJpbmcNCiAgICAgIHB1YmxpY19hZGRyZXNzOg0KICAgICAgICB0eXBlOiBzdHJpbmcNCiAgICAgIG5ldHdvcmtzOg0KICAgICAgICB0eXBlOiBtYXANCiAgICAgICAgZW50cnlfc2NoZW1hOg0KICAgICAgICAgIHR5cGU6IHRvc2NhLmRhdGF0eXBlcy5uZXR3b3JrLk5ldHdvcmtJbmZvDQogICAgICBwb3J0czoNCiAgICAgICAgdHlwZTogbWFwDQogICAgICAgIGVudHJ5X3NjaGVtYToNCiAgICAgICAgICB0eXBlOiB0b3NjYS5kYXRhdHlwZXMubmV0d29yay5Qb3J0SW5mbw0KICAgIHJlcXVpcmVtZW50czoNCiAgICAgIC0gbG9jYWxfc3RvcmFnZTogDQogICAgICAgICAgY2FwYWJpbGl0eTogdG9zY2EuY2FwYWJpbGl0aWVzLkF0dGFjaG1lbnQNCiAgICAgICAgICBub2RlOiB0b3NjYS5ub2Rlcy5CbG9ja1N0b3JhZ2UNCiAgICAgICAgICByZWxhdGlvbnNoaXA6IHRvc2NhLnJlbGF0aW9uc2hpcHMuQXR0YWNoZXNUbw0KICAgICAgICAgIG9jY3VycmVuY2VzOiBbMCwgVU5CT1VOREVEXSAgDQogICAgY2FwYWJpbGl0aWVzOg0KICAgICAgaG9zdDogDQogICAgICAgIHR5cGU6IHRvc2NhLmNhcGFiaWxpdGllcy5Db250YWluZXINCiAgICAgICAgdmFsaWRfc291cmNlX3R5cGVzOiBbdG9zY2Eubm9kZXMuU29mdHdhcmVDb21wb25lbnRdIA0KICAgICAgZW5kcG9pbnQgOg0KICAgICAgICB0eXBlOiB0b3NjYS5jYXBhYmlsaXRpZXMuRW5kcG9pbnQuQWRtaW4gDQogICAgICBvczogDQogICAgICAgIHR5cGU6IHRvc2NhLmNhcGFiaWxpdGllcy5PcGVyYXRpbmdTeXN0ZW0NCiAgICAgIHNjYWxhYmxlOg0KICAgICAgICB0eXBlOiB0b3NjYS5jYXBhYmlsaXRpZXMuU2NhbGFibGUNCiAgICAgIGJpbmRpbmc6DQogICAgICAgIHR5cGU6IHRvc2NhLmNhcGFiaWxpdGllcy5uZXR3b3JrLkJpbmRhYmxl"); return ret; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourceUploadServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourceUploadServletTest.java deleted file mode 100644 index efe8043ff5..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourceUploadServletTest.java +++ /dev/null @@ -1,151 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 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.openecomp.sdc.be.servlets; - -import com.google.gson.Gson; -import org.glassfish.hk2.utilities.binding.AbstractBinder; -import org.glassfish.jersey.client.ClientConfig; -import org.glassfish.jersey.media.multipart.FormDataBodyPart; -import org.glassfish.jersey.media.multipart.FormDataMultiPart; -import org.glassfish.jersey.media.multipart.MultiPart; -import org.glassfish.jersey.media.multipart.MultiPartFeature; -import org.glassfish.jersey.media.multipart.file.FileDataBodyPart; -import org.glassfish.jersey.server.ResourceConfig; -import org.glassfish.jersey.test.JerseyTest; -import org.junit.Before; -import org.junit.Test; -import org.mockito.Mockito; -import org.openecomp.sdc.be.auditing.impl.AuditingManager; -import org.openecomp.sdc.be.config.ConfigurationManager; -import org.openecomp.sdc.be.config.SpringConfig; -import org.openecomp.sdc.be.dao.api.ResourceUploadStatus; -import org.openecomp.sdc.be.impl.WebAppContextWrapper; -import org.openecomp.sdc.be.model.UploadResourceInfo; -import org.openecomp.sdc.be.resources.api.IResourceUploader; -import org.openecomp.sdc.be.resources.data.ESArtifactData; -import org.openecomp.sdc.common.api.ConfigurationSource; -import org.openecomp.sdc.common.api.Constants; -import org.openecomp.sdc.common.impl.ExternalConfiguration; -import org.openecomp.sdc.common.impl.FSConfigurationSource; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; -import org.springframework.web.context.WebApplicationContext; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; -import javax.ws.rs.client.Entity; -import javax.ws.rs.core.Application; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.when; - -public class ResourceUploadServletTest extends JerseyTest { - private static final Logger log = LoggerFactory.getLogger(ResourceUploadServletTest.class); - final HttpServletRequest request = Mockito.mock(HttpServletRequest.class); - final HttpSession session = Mockito.mock(HttpSession.class); - final ServletContext servletContext = Mockito.mock(ServletContext.class); - final WebAppContextWrapper webAppContextWrapper = Mockito.mock(WebAppContextWrapper.class); - final WebApplicationContext webApplicationContext = Mockito.mock(WebApplicationContext.class); - final IResourceUploader iResourceUploader = Mockito.mock(IResourceUploader.class); - final AuditingManager iAuditingManager = Mockito.mock(AuditingManager.class); - - Gson gson = new Gson(); - - public void zipDirectory() { - - } - - @Before - public void setup() { - ExternalConfiguration.setAppName("catalog-be"); - - when(servletContext.getAttribute(Constants.WEB_APPLICATION_CONTEXT_WRAPPER_ATTR)).thenReturn(webAppContextWrapper); - // when(servletContext.getAttribute(Constants.AUDITING_MANAGER)).thenReturn(iAuditingManager); - when(webAppContextWrapper.getWebAppContext(servletContext)).thenReturn(webApplicationContext); - when(webApplicationContext.getBean(IResourceUploader.class)).thenReturn(iResourceUploader); - when(iResourceUploader.saveArtifact((ESArtifactData) any(), eq(true))).thenReturn(ResourceUploadStatus.OK); - when(webApplicationContext.getBean(AuditingManager.class)).thenReturn(iAuditingManager); - } - - @Override - protected Application configure() { - - ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class); - return new ResourceConfig(ResourceUploadServlet.class) - .register(MultiPartFeature.class) - .register(new AbstractBinder() { - - @Override - protected void configure() { - // The below code was cut-pasted to here from setup() because - // due to it now has - // to be executed during servlet initialization - bind(request).to(HttpServletRequest.class); - when(request.getSession()).thenReturn(session); - when(session.getServletContext()).thenReturn(servletContext); - String appConfigDir = "src/test/resources/config/catalog-be"; - ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir); - ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); - for (String mandatoryHeader : configurationManager.getConfiguration().getIdentificationHeaderFields()) { - - when(request.getHeader(mandatoryHeader)).thenReturn(mandatoryHeader); - - } - - when(servletContext.getAttribute(Constants.CONFIGURATION_MANAGER_ATTR)).thenReturn(configurationManager); - } - }) - .property("contextConfig", context); - - } - - @Override - protected void configureClient(ClientConfig config) { - config.register(MultiPartFeature.class); - } - - @Test - public void testMultipart() { - FileDataBodyPart filePart = new FileDataBodyPart("resourceZip", new File("src/test/resources/config/normative-types-root.zip")); - List<String> tags = new ArrayList<>(); - tags.add("tag1"); - tags.add("tag2"); - UploadResourceInfo resourceInfo = new UploadResourceInfo("payload", "normative-types-root.yml", "my_description", "category/mycategory", tags, null); - - FormDataBodyPart metadataPart = new FormDataBodyPart("resourceMetadata", gson.toJson(resourceInfo), MediaType.APPLICATION_JSON_TYPE); - MultiPart multipartEntity = new FormDataMultiPart(); - multipartEntity.bodyPart(filePart); - multipartEntity.bodyPart(metadataPart); - - Response response = target().path("/v1/catalog/upload/" + ResourceUploadServlet.NORMATIVE_TYPE_RESOURCE).request(MediaType.APPLICATION_JSON).post(Entity.entity(multipartEntity, MediaType.MULTIPART_FORM_DATA), Response.class); - log.debug("{}", response); - } - -} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourcesServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourcesServletTest.java index 42103b0740..239e7232af 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourcesServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourcesServletTest.java @@ -20,17 +20,10 @@ package org.openecomp.sdc.be.servlets; -import static org.mockito.Mockito.mock; - -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - +import com.google.common.base.Equivalence.Wrapper; +import fj.data.Either; import org.junit.Test; import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; -import org.openecomp.sdc.be.components.impl.GroupBusinessLogic; import org.openecomp.sdc.be.components.impl.ResourceBusinessLogic; import org.openecomp.sdc.be.components.impl.ResourceImportManager; import org.openecomp.sdc.be.impl.ComponentsUtils; @@ -41,9 +34,12 @@ import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.user.UserBusinessLogic; import org.openecomp.sdc.exception.ResponseFormat; -import com.google.common.base.Equivalence.Wrapper; +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.core.Response; +import java.util.List; +import java.util.Map; -import fj.data.Either; +import static org.mockito.Mockito.mock; public class ResourcesServletTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ServiceServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ServiceServletTest.java deleted file mode 100644 index c2a8afec85..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ServiceServletTest.java +++ /dev/null @@ -1,300 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * 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.openecomp.sdc.be.servlets; - -import static org.mockito.Mockito.mock; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - -import org.junit.Test; -import org.openecomp.sdc.be.components.impl.*; -import org.openecomp.sdc.be.components.lifecycle.LifecycleChangeInfoWithAction; -import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; -import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.impl.ServletUtils; -import org.openecomp.sdc.be.model.User; -import org.openecomp.sdc.be.user.UserBusinessLogic; -import org.openecomp.sdc.exception.ResponseFormat; - -import com.google.common.base.Equivalence.Wrapper; -import com.google.common.util.concurrent.Service; - -import fj.data.Either; - -public class ServiceServletTest { - - private ServiceServlet createTestSubject() { - UserBusinessLogic userBusinessLogic = mock(UserBusinessLogic.class); - ComponentInstanceBusinessLogic componentInstanceBL = mock(ComponentInstanceBusinessLogic.class); - ComponentsUtils componentsUtils = mock(ComponentsUtils.class); - ServletUtils servletUtils = mock(ServletUtils.class); - ResourceImportManager resourceImportManager = mock(ResourceImportManager.class); - ServiceBusinessLogic serviceBusinessLogic = mock(ServiceBusinessLogic.class); - ResourceBusinessLogic resourceBusinessLogic = mock(ResourceBusinessLogic.class); - - return new ServiceServlet(userBusinessLogic, componentInstanceBL, componentsUtils, servletUtils, - resourceImportManager, serviceBusinessLogic, resourceBusinessLogic); - } - - - @Test - public void testCreateService() throws Exception { - ServiceServlet testSubject; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testParseToService() throws Exception { - ServiceServlet testSubject; - String serviceJson = ""; - User user = null; - Either<Service, ResponseFormat> result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testValidateServiceName() throws Exception { - ServiceServlet testSubject; - String serviceName = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetComponentAuditRecords() throws Exception { - ServiceServlet testSubject; - String componentType = ""; - String componentUniqueId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testFillUUIDAndVersion() throws Exception { - ServiceServlet testSubject;Wrapper<Response> responseWrapper = null; - Wrapper<String> uuidWrapper = null; - Wrapper<String> versionWrapper = null; - User user = null; - ComponentTypeEnum componentTypeEnum = null; - String componentUniqueId = ""; - ServletContext context = null; - - - // default test - } - - - @Test - public void testDeleteService() throws Exception { - ServiceServlet testSubject; - String serviceId = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testDeleteServiceByNameAndVersion() throws Exception { - ServiceServlet testSubject; - String serviceName = ""; - String version = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testUpdateServiceMetadata() throws Exception { - ServiceServlet testSubject; - String serviceId = ""; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testUpdateGroupInstancePropertyValues() throws Exception { - ServiceServlet testSubject; - String serviceId = ""; - String componentInstanceId = ""; - String groupInstanceId = ""; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetServiceById() throws Exception { - ServiceServlet testSubject; - String serviceId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetServiceByNameAndVersion() throws Exception { - ServiceServlet testSubject; - String serviceName = ""; - String serviceVersion = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testUpdateServiceDistributionState() throws Exception { - ServiceServlet testSubject; - LifecycleChangeInfoWithAction jsonChangeInfo = null; - String serviceId = ""; - String state = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testActivateDistribution() throws Exception { - ServiceServlet testSubject; - String serviceId = ""; - String env = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testMarkDistributionAsDeployed() throws Exception { - ServiceServlet testSubject; - String serviceId = ""; - String did = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testTempUrlToBeDeleted() throws Exception { - ServiceServlet testSubject; - String serviceId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testDownloadServiceArtifact() throws Exception { - ServiceServlet testSubject; - String artifactName = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testExecuteCommand() throws Exception { - ServiceServlet testSubject; - String artifactName = ""; - Either<byte[], ResponseFormat> result; - - // default test - testSubject = createTestSubject(); - } -} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesFetchServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesFetchServletTest.java index f27c886e68..2305cd3059 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesFetchServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesFetchServletTest.java @@ -20,17 +20,23 @@ package org.openecomp.sdc.be.servlets; -import static org.mockito.Mockito.mock; +import org.junit.Test; +import org.openecomp.sdc.be.components.impl.CapabilitiesBusinessLogic; +import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; +import org.openecomp.sdc.be.components.impl.InterfaceOperationBusinessLogic; +import org.openecomp.sdc.be.components.impl.PropertyBusinessLogic; +import org.openecomp.sdc.be.components.impl.RelationshipTypeBusinessLogic; +import org.openecomp.sdc.be.components.impl.ResourceBusinessLogic; +import org.openecomp.sdc.be.components.impl.ResourceImportManager; +import org.openecomp.sdc.be.impl.ComponentsUtils; +import org.openecomp.sdc.be.impl.ServletUtils; +import org.openecomp.sdc.be.user.UserBusinessLogic; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.core.Response; -import org.junit.Test; -import org.openecomp.sdc.be.components.impl.*; -import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.impl.ServletUtils; -import org.openecomp.sdc.be.user.UserBusinessLogic; +import static org.mockito.Mockito.mock; public class TypesFetchServletTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesUploadEndpointTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesUploadEndpointTest.java index 39dee258cb..825b4d8883 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesUploadEndpointTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesUploadEndpointTest.java @@ -49,6 +49,7 @@ import org.openecomp.sdc.be.model.operations.impl.CommonTypeOperations; import org.openecomp.sdc.be.model.operations.impl.OperationUtils; import org.openecomp.sdc.be.model.operations.impl.PropertyOperation; import org.openecomp.sdc.be.resources.data.AnnotationTypeData; +import org.openecomp.sdc.be.user.UserBusinessLogic; import org.openecomp.sdc.common.api.Constants; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Import; @@ -68,7 +69,9 @@ import static org.mockito.ArgumentMatchers.anyMap; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.isA; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; public class TypesUploadEndpointTest extends JerseySpringBaseTest { @@ -86,7 +89,9 @@ public class TypesUploadEndpointTest extends JerseySpringBaseTest { @Bean TypesUploadEndpoint typesUploadEndpoint() { - return new TypesUploadEndpoint(commonImportManager(), annotationTypeOperations(), accessValidations); + UserBusinessLogic userBusinessLogic = mock(UserBusinessLogic.class); + ComponentsUtils componentsUtils = mock(ComponentsUtils.class); + return new TypesUploadEndpoint(userBusinessLogic, componentsUtils, commonImportManager(), annotationTypeOperations(), accessValidations); } @Bean diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesUploadServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesUploadServletTest.java index 92652f59d0..a247bd4b35 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesUploadServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesUploadServletTest.java @@ -65,7 +65,6 @@ import java.util.List; import static java.util.Collections.emptyList; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.when; public class TypesUploadServletTest extends JerseyTest { @@ -94,8 +93,7 @@ public class TypesUploadServletTest extends JerseyTest { User user = new User(); user.setUserId(userId); user.setRole(Role.ADMIN.name()); - Either<User, ActionStatus> eitherUser = Either.left(user); - when(userAdmin.getUser(userId, false)).thenReturn(eitherUser); + when(userAdmin.getUser(userId)).thenReturn(user); when(request.getHeader(Constants.USER_ID_HEADER)).thenReturn(userId); when(responseFormat.getStatus()).thenReturn(HttpStatus.CREATED_201); when(componentUtils.getResponseFormat(ActionStatus.CREATED)).thenReturn(responseFormat); @@ -112,7 +110,7 @@ public class TypesUploadServletTest extends JerseyTest { Response response = target().path("/v1/catalog/uploadType/capability").request(MediaType.APPLICATION_JSON).post(Entity.entity(multipartEntity, MediaType.MULTIPART_FORM_DATA), Response.class); - assertEquals(HttpStatus.CREATED_201, response.getStatus()); + assertEquals(response.getStatus(), HttpStatus.CREATED_201); } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/UserAdminServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/UserAdminServletTest.java deleted file mode 100644 index af08992252..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/UserAdminServletTest.java +++ /dev/null @@ -1,122 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 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.openecomp.sdc.be.servlets; - -import com.google.gson.Gson; -import fj.data.Either; -import org.glassfish.hk2.utilities.binding.AbstractBinder; -import org.glassfish.jersey.server.ResourceConfig; -import org.glassfish.jersey.test.JerseyTest; -import org.junit.Before; -import org.junit.BeforeClass; -import org.openecomp.sdc.be.auditing.impl.AuditingManager; -import org.openecomp.sdc.be.dao.api.ActionStatus; -import org.openecomp.sdc.be.dao.utils.UserStatusEnum; -import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.impl.WebAppContextWrapper; -import org.openecomp.sdc.be.model.User; -import org.openecomp.sdc.be.user.UserBusinessLogic; -import org.openecomp.sdc.common.api.Constants; -import org.openecomp.sdc.common.api.UserRoleEnum; -import org.openecomp.sdc.common.impl.ExternalConfiguration; -import org.openecomp.sdc.exception.ResponseFormat; -import org.springframework.http.HttpStatus; -import org.springframework.web.context.WebApplicationContext; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; -import javax.ws.rs.core.Application; - -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.reset; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.when; - -public class UserAdminServletTest extends JerseyTest { - - final static HttpServletRequest request = mock(HttpServletRequest.class); - final static HttpSession session = mock(HttpSession.class); - final static ServletContext servletContext = mock(ServletContext.class); - final static WebAppContextWrapper webAppContextWrapper = mock(WebAppContextWrapper.class); - final static WebApplicationContext webApplicationContext = mock(WebApplicationContext.class); - final static UserBusinessLogic userAdminManager = spy(UserBusinessLogic.class); - final static AuditingManager auditingManager = mock(AuditingManager.class); - final static ComponentsUtils componentsUtils = mock(ComponentsUtils.class); - final static ResponseFormat okResponseFormat = mock(ResponseFormat.class); - - final static String ADMIN_ATT_UID = "jh0003"; - Gson gson = new Gson(); - - @BeforeClass - public static void setup() { - ExternalConfiguration.setAppName("catalog-be"); - - when(session.getServletContext()).thenReturn(servletContext); - when(servletContext.getAttribute(Constants.WEB_APPLICATION_CONTEXT_WRAPPER_ATTR)).thenReturn(webAppContextWrapper); - when(webAppContextWrapper.getWebAppContext(servletContext)).thenReturn(webApplicationContext); - - when(webApplicationContext.getBean(UserBusinessLogic.class)).thenReturn(userAdminManager); - when(webApplicationContext.getBean(ComponentsUtils.class)).thenReturn(componentsUtils); - when(componentsUtils.getAuditingManager()).thenReturn(auditingManager); - when(componentsUtils.getResponseFormat(ActionStatus.OK)).thenReturn(okResponseFormat); - when(okResponseFormat.getStatus()).thenReturn(HttpStatus.OK.value()); - - } - - @Before - public void beforeTest() { - reset(userAdminManager); - doReturn(buildEitherUser(ADMIN_ATT_UID, true)).when(userAdminManager).getUser(ADMIN_ATT_UID, false); - - reset(request); - when(request.getSession()).thenReturn(session); - when(request.getHeader("USER_ID")).thenReturn(ADMIN_ATT_UID); - } - - @Override - protected Application configure() { - - ResourceConfig resourceConfig = new ResourceConfig(UserAdminServlet.class); - - resourceConfig.register(new AbstractBinder() { - - @Override - protected void configure() { - bind(request).to(HttpServletRequest.class); - } - }); - - return resourceConfig; - } - - private static Either<User, ActionStatus> buildEitherUser(String userId, boolean isActive) { - User user = new User(); - user.setUserId(userId); - user.setRole(UserRoleEnum.ADMIN.getName()); - if (!isActive) { - user.setStatus(UserStatusEnum.INACTIVE); - } - return Either.left(user); - } - -} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/UserEndpointTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/UserEndpointTest.java new file mode 100644 index 0000000000..fc18459608 --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/UserEndpointTest.java @@ -0,0 +1,244 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * 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.openecomp.sdc.be.servlets; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import fj.data.Either; +import org.eclipse.jetty.http.HttpStatus; +import org.glassfish.jersey.client.ClientConfig; +import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJaxbJsonProvider; +import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJsonProvider; +import org.glassfish.jersey.logging.LoggingFeature; +import org.glassfish.jersey.media.multipart.MultiPartFeature; +import org.glassfish.jersey.server.ResourceConfig; +import org.janusgraph.graphdb.types.system.EmptyVertex; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.openecomp.sdc.be.components.lifecycle.LifecycleBusinessLogic; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphGenericDao; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; +import org.openecomp.sdc.be.dao.neo4j.GraphEdgeLabels; +import org.openecomp.sdc.be.dao.utils.UserStatusEnum; +import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; +import org.openecomp.sdc.be.facade.operations.UserOperation; +import org.openecomp.sdc.be.impl.ComponentsUtils; +import org.openecomp.sdc.be.model.User; +import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; +import org.openecomp.sdc.be.model.operations.impl.UniqueIdBuilder; +import org.openecomp.sdc.be.model.operations.impl.UserAdminOperation; +import org.openecomp.sdc.be.resources.data.UserData; +import org.openecomp.sdc.be.user.Role; +import org.openecomp.sdc.be.user.UserBusinessLogic; +import org.openecomp.sdc.be.user.UserBusinessLogicExt; +import org.openecomp.sdc.common.api.Constants; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Import; + +import javax.ws.rs.client.Entity; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import java.util.ArrayList; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; +import static org.openecomp.sdc.be.dao.utils.UserStatusEnum.ACTIVE; +import static org.openecomp.sdc.be.dao.utils.UserStatusEnum.INACTIVE; +import static org.openecomp.sdc.be.user.Role.ADMIN; +import static org.openecomp.sdc.be.user.Role.DESIGNER; + +public class UserEndpointTest extends JerseySpringBaseTest { + + static final String USER_ID = "jh0003"; + static final String NEW_USER_ID = "ab0001"; + static final String MODIFIER_ID = "admin1"; + + private static ComponentsUtils componentUtils; + private static JanusGraphGenericDao janusGraphGenericDao; + private static ToscaOperationFacade toscaOperationFacade; + private static LifecycleBusinessLogic lifecycleBusinessLogic; + private static UserOperation facadeUserOperation; + + + private UserData userData = new UserData(); + private UserData modifierData = new UserData(); + + @org.springframework.context.annotation.Configuration + @Import(BaseTestConfig.class) + static class UserTestConfig { + + @Bean + UserAdminServlet userEndpoint() { + ComponentsUtils componentsUtils = mock(ComponentsUtils.class); + return new UserAdminServlet(userBusinessLogic(), componentsUtils, userBusinessLogicExt()); + } + + @Bean + UserBusinessLogic userBusinessLogic() { + return new UserBusinessLogic(userAdminOperation(), componentUtils, facadeUserOperation); + } + + @Bean + UserBusinessLogicExt userBusinessLogicExt() { + return new UserBusinessLogicExt(userBusinessLogic(), userAdminOperation(), lifecycleBusinessLogic, componentUtils); + } + + @Bean + UserAdminOperation userAdminOperation() { + return new UserAdminOperation(janusGraphGenericDao, toscaOperationFacade); + } + } + + @BeforeClass + public static void initClass() { + janusGraphGenericDao = mock(JanusGraphGenericDao.class); + componentUtils = mock(ComponentsUtils.class); + toscaOperationFacade = mock(ToscaOperationFacade.class); + lifecycleBusinessLogic = mock(LifecycleBusinessLogic.class); + facadeUserOperation = mock(UserOperation.class); + } + + @Before + public void setup() { + setUserProperties(userData, USER_ID, DESIGNER, ACTIVE); + setUserProperties(modifierData, MODIFIER_ID, ADMIN, ACTIVE); + Either<UserData, JanusGraphOperationStatus> janusGraphValidUser = Either.left(userData); + Either<UserData, JanusGraphOperationStatus> janusGraphValidModifier = Either.left(modifierData); + when(janusGraphGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.User), USER_ID, UserData.class)) + .thenReturn(janusGraphValidUser); + when(janusGraphGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.User), MODIFIER_ID, UserData.class)) + .thenReturn(janusGraphValidModifier); + when(janusGraphGenericDao.getNode(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.User), NEW_USER_ID, UserData.class)) + .thenReturn(Either.right(JanusGraphOperationStatus.NOT_FOUND)); + } + + private void setUserProperties(UserData user, String userId, Role role, UserStatusEnum statusEnum) { + user.setUserId(userId); + user.setRole(role.name()); + user.setStatus(statusEnum.name()); + } + + @Override + protected void configureClient(ClientConfig config) { + final JacksonJsonProvider jacksonJsonProvider = new JacksonJaxbJsonProvider() + .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + config.register(jacksonJsonProvider); + config.register(MultiPartFeature.class); + } + + @Override + protected ResourceConfig configure() { + return super.configure(UserEndpointTest.UserTestConfig.class) + .register(UserAdminServlet.class) + .property(LoggingFeature.LOGGING_FEATURE_LOGGER_LEVEL_SERVER, "WARNING"); + } + + @Test + public void getUser_success() { + User user = target().path("/v1/user/" + USER_ID) + .request(MediaType.APPLICATION_JSON) + .header(Constants.USER_ID_HEADER, USER_ID) + .get(User.class); + assertThat(user.getUserId()).isEqualTo(USER_ID); + } + + @Test + public void getUserRole_success() { + String result = target().path("/v1/user/" + USER_ID + "/role") + .request(MediaType.APPLICATION_JSON) + .header(Constants.USER_ID_HEADER, MODIFIER_ID) + .get(String.class); + assertThat(result).isEqualTo("{ \"role\" : \"" + DESIGNER.name() + "\" }"); + } + + @Test + public void updateUserRole_success() { + UserAdminServlet.UserRole role = new UserAdminServlet.UserRole(); + role.setRole(ADMIN); + EmptyVertex emptyVertex = new EmptyVertex(); + UserData updatedUser = new UserData(); + setUserProperties(updatedUser, USER_ID, ADMIN, ACTIVE); + when(janusGraphGenericDao.getVertexByProperty(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.User), USER_ID)) + .thenReturn(Either.left(emptyVertex)); + when(janusGraphGenericDao.getOutgoingEdgesByCriteria(eq(emptyVertex), eq(GraphEdgeLabels.STATE), any())) + .thenReturn(Either.left(new ArrayList<>())); + when(janusGraphGenericDao.updateNode(eq(updatedUser), eq(UserData.class))).thenReturn(Either.left(updatedUser)); + User user = target().path("/v1/user/" + USER_ID + "/role") + .request(MediaType.APPLICATION_JSON) + .accept(MediaType.APPLICATION_JSON) + .header(Constants.USER_ID_HEADER, MODIFIER_ID) + .post(Entity.entity(role, MediaType.APPLICATION_JSON),User.class); + assertThat(user.getRole()).isEqualTo(ADMIN.name()); + } + + @Test + public void createUser_success() { + User newUser = new User(); + newUser.setUserId(NEW_USER_ID); + UserData updatedUser = new UserData(); + setUserProperties(updatedUser, NEW_USER_ID, DESIGNER, ACTIVE); + //when(janusGraphGenericDao.updateNode(any(), eq(UserData.class))).thenReturn(Either.left(updatedUser)); + when(janusGraphGenericDao.createNode(any(), eq(UserData.class))).thenReturn(Either.left(updatedUser)); + Response response = target().path("/v1/user") + .request(MediaType.APPLICATION_JSON) + .header(Constants.USER_ID_HEADER, MODIFIER_ID) + .post(Entity.entity(newUser, MediaType.APPLICATION_JSON),Response.class); + assertThat(response.getStatus()).isEqualTo(HttpStatus.CREATED_201); + User createdUser = response.readEntity(User.class); + assertThat(createdUser.getUserId()).isEqualTo(NEW_USER_ID); + assertThat(createdUser.getStatus()).isEqualTo(ACTIVE); + } + + @Test + public void authorizeUser_success() { + when(janusGraphGenericDao.updateNode(any(), eq(UserData.class))).thenReturn(Either.left(userData)); + User user = target().path("/v1/user/authorize") + .request(MediaType.APPLICATION_JSON) + .header(Constants.USER_ID_HEADER, USER_ID) + .header("HTTP_CSP_FIRSTNAME", "Jimmy") + .header("HTTP_CSP_LASTNAME", "Hendrix") + .header("HTTP_CSP_EMAIL", "admin@sdc.com") + .get(User.class); + assertThat(user.getUserId()).isEqualTo(USER_ID); + } + + @Test + public void deactivateUser_success() { + EmptyVertex emptyVertex = new EmptyVertex(); + UserData updatedUser = new UserData(); + setUserProperties(updatedUser, USER_ID, DESIGNER, INACTIVE); + when(janusGraphGenericDao.getVertexByProperty(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.User), USER_ID)) + .thenReturn(Either.left(emptyVertex)); + when(janusGraphGenericDao.getOutgoingEdgesByCriteria(eq(emptyVertex), eq(GraphEdgeLabels.STATE), any())) + .thenReturn(Either.left(new ArrayList<>())); + when(janusGraphGenericDao.updateNode(eq(updatedUser), eq(UserData.class))).thenReturn(Either.left(updatedUser)); + User user = target().path("/v1/user/" + USER_ID) + .request(MediaType.APPLICATION_JSON) + .accept(MediaType.APPLICATION_JSON) + .header(Constants.USER_ID_HEADER, MODIFIER_ID) + .delete(User.class); + assertThat(user.getUserId()).isEqualTo(USER_ID); + } + +} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/switchover/detector/SwitchoverDetectorTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/switchover/detector/SwitchoverDetectorTest.java index 71b4b237a0..f12fb01279 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/switchover/detector/SwitchoverDetectorTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/switchover/detector/SwitchoverDetectorTest.java @@ -22,10 +22,6 @@ package org.openecomp.sdc.be.switchover.detector; -import static org.junit.Assert.assertEquals; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -36,6 +32,11 @@ import org.openecomp.sdc.be.switchover.detector.SwitchoverDetector.SwitchoverDet import org.openecomp.sdc.be.switchover.detector.SwitchoverDetector.SwitchoverDetectorScheduledTask; import org.openecomp.sdc.be.switchover.detector.SwitchoverDetector.SwitchoverDetectorState; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; + +import static org.junit.Assert.assertEquals; + @RunWith(MockitoJUnitRunner.class) public class SwitchoverDetectorTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/togglz/CassandraCustomStateRepositoryTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/togglz/CassandraCustomStateRepositoryTest.java new file mode 100644 index 0000000000..7786f6ef91 --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/togglz/CassandraCustomStateRepositoryTest.java @@ -0,0 +1,145 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * 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.openecomp.sdc.be.togglz; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; +import org.openecomp.sdc.be.dao.cassandra.CassandraOperationStatus; +import org.openecomp.sdc.be.dao.cassandra.FeatureToggleDao; +import org.openecomp.sdc.be.resources.data.togglz.FeatureToggleEvent; +import org.openecomp.sdc.be.resources.data.togglz.ToggleableFeature; +import org.togglz.core.Feature; +import org.togglz.core.repository.FeatureState; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.contains; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +@RunWith(MockitoJUnitRunner.class) +public class CassandraCustomStateRepositoryTest { + private final String strategyId = "strategyId"; + private final String paramName1 = "paramName1"; + private final String paramName2 = "paramName2"; + private final String paramVal1 = "paramVal1"; + private final String paramVal2 = "paramVal2"; + + @Mock + private FeatureToggleDao featureToggleDao; + + @InjectMocks + private CassandraCustomStateRepository cassandraRepo; + + @Before + public void setUp() { + cassandraRepo = new CassandraCustomStateRepository(featureToggleDao); + } + + @Test + public void getFeatureStateSuccess() { + FeatureState stateToReturn = new FeatureState(ToggleableFeature.DEFAULT_FEATURE, true); + when(featureToggleDao.get(any())).thenReturn(new FeatureToggleEvent(stateToReturn)); + FeatureState state = cassandraRepo.getFeatureState(ToggleableFeature.DEFAULT_FEATURE); + assertEquals(state.getFeature().name(), stateToReturn.getFeature().name()); + assertTrue(state.isEnabled()); + assertNull(state.getStrategyId()); + assertEquals(0, state.getParameterMap().size()); + } + + @Test + public void getFeatureStateWithParamsSuccess() { + when(featureToggleDao.get(any())).thenReturn(createEvent(ToggleableFeature.DEFAULT_FEATURE)); + FeatureState state = cassandraRepo.getFeatureState(ToggleableFeature.DEFAULT_FEATURE); + assertEquals(state.getFeature().name(), ToggleableFeature.DEFAULT_FEATURE.name()); + assertEquals(strategyId, state.getStrategyId()); + assertEquals(paramVal1, state.getParameter(paramName1)); + assertEquals(paramVal2, state.getParameter(paramName2)); + assertTrue(state.isEnabled()); + } + + @Test(expected = IllegalArgumentException.class) + public void getFeatureStateForFeatureNull() { + cassandraRepo.getFeatureState(null); + } + + @Test + public void getFeatureStateWhenEntryNotFound() { + when(featureToggleDao.get(any())).thenReturn(null); + cassandraRepo.getFeatureState(ToggleableFeature.DEFAULT_FEATURE); + } + + @Test + public void setFeatureStateSuccess() { + when(featureToggleDao.save(any())).thenReturn(CassandraOperationStatus.OK); + cassandraRepo.setFeatureState(new FeatureState(ToggleableFeature.DEFAULT_FEATURE)); + } + + @Test(expected = IllegalArgumentException.class) + public void setFeatureStateWhenStateIsNull() { + cassandraRepo.setFeatureState(null); + } + + @Test + public void removeUnusedItems() { + List<FeatureToggleEvent> allEvents = Arrays.asList( + createEvent(ToggleableFeature.DEFAULT_FEATURE), + createEvent(() -> "should be deleted1"), + createEvent(() -> "should be deleted2")); + + when(featureToggleDao.getAllFeatures()).thenReturn(allEvents); + cassandraRepo.removeUnusedItems(); + verify(featureToggleDao, times(2)).delete(contains("should be deleted")); + } + + @Test + public void removeUnusedItemsWhenNoStatesStored() { + when(featureToggleDao.getAllFeatures()).thenReturn(Collections.emptyList()); + cassandraRepo.removeUnusedItems(); + verify(featureToggleDao, times(0)).delete(any()); + } + + @Test + public void removeUnusedItemsWhenOnlyExistingStatesStored() { + when(featureToggleDao.getAllFeatures()).thenReturn(Collections.singletonList(createEvent(ToggleableFeature.DEFAULT_FEATURE))); + cassandraRepo.removeUnusedItems(); + verify(featureToggleDao, times(0)).delete(any()); + } + + private FeatureToggleEvent createEvent(Feature feature) { + FeatureState stateToReturn = new FeatureState(feature, true); + stateToReturn.setStrategyId(strategyId); + stateToReturn.setParameter(paramName1, paramVal1); + stateToReturn.setParameter(paramName2, paramVal2); + return new FeatureToggleEvent(stateToReturn); + } +} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/CapabilityRequirementConverterTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/CapabilityRequirementConverterTest.java index ec06c86abf..5d6c98209c 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/CapabilityRequirementConverterTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/CapabilityRequirementConverterTest.java @@ -16,38 +16,24 @@ package org.openecomp.sdc.be.tosca; -import java.util.Iterator; -import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; -import org.openecomp.sdc.be.datatypes.elements.RequirementDataDefinition; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.model.CapabilityDefinition; import org.openecomp.sdc.be.model.Component; import org.openecomp.sdc.be.model.ComponentInstance; import org.openecomp.sdc.be.model.ComponentInstanceProperty; -import org.openecomp.sdc.be.model.ComponentParametersView; -import org.openecomp.sdc.be.model.DataTypeDefinition; -import org.openecomp.sdc.be.model.RequirementDefinition; import org.openecomp.sdc.be.model.Resource; -import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; -import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; -import org.openecomp.sdc.be.tosca.model.SubstitutionMapping; -import org.openecomp.sdc.be.tosca.model.ToscaNodeTemplate; -import org.openecomp.sdc.be.tosca.model.ToscaNodeType; -import org.openecomp.sdc.be.tosca.model.ToscaTemplateCapability; - -import fj.data.Either; -import mockit.Deencapsulation; -import org.openecomp.sdc.be.tosca.model.ToscaRequirement; - -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; import static java.util.Arrays.asList; @@ -56,18 +42,12 @@ import static org.mockito.Mockito.doReturn; public class CapabilityRequirementConverterTest { - @InjectMocks - CapabilityRequirementConverter testSubject; - - @Mock - ToscaOperationFacade toscaOperationFacade; - - CapabilityRequirementConverter capabiltyRequirementConvertor = Mockito.spy(new CapabilityRequirementConverter()); - ComponentInstance instanceProxy = Mockito.spy(new ComponentInstance()); - ComponentInstance vfInstance = Mockito.spy(new ComponentInstance()); - Component vfComponent = Mockito.spy(new Resource()); - ComponentInstance vfcInstance = Mockito.spy(new ComponentInstance()); - Component vfcComponent = Mockito.spy(new Resource()); + CapabilityRequirementConverter capabiltyRequirementConvertor = Mockito.spy(new CapabilityRequirementConverter()); + ComponentInstance instanceProxy = Mockito.spy( new ComponentInstance() ); + ComponentInstance vfInstance = Mockito.spy( new ComponentInstance() ); + Component vfComponent = Mockito.spy( new Resource() ); + ComponentInstance vfcInstance = Mockito.spy( new ComponentInstance() ); + Component vfcComponent = Mockito.spy( new Resource() ); @Before public void setUpMock() throws Exception { @@ -80,377 +60,6 @@ public class CapabilityRequirementConverterTest { } @Test - public void testConvertComponentInstanceCapabilties() { - Map<String, List<CapabilityDefinition>> capabilities = newCapabilities("port"); - vfInstance.setCapabilities(capabilities); - ToscaNodeTemplate nodeTemplate = new ToscaNodeTemplate(); - Map<String, DataTypeDefinition> testDataTypes = new HashMap<String, DataTypeDefinition>(); - - capabilities.get("att.Node").clear(); - testSubject.convertComponentInstanceCapabilities(vfInstance, testDataTypes, nodeTemplate); - - capabilities = newCapabilities("port"); - vfInstance.setCapabilities(capabilities); - vfInstance.setComponentUid("uid"); - - Mockito.when(toscaOperationFacade.getToscaElement(Mockito.any(String.class), - Mockito.any(ComponentParametersView.class))) - .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST)); - - testSubject.convertComponentInstanceCapabilities(vfInstance, testDataTypes, nodeTemplate); - - } - - @Test - public void testConvertComponentInstanceCapabilties_1() { - Map<String, List<CapabilityDefinition>> capabilities = newCapabilities("port"); - ToscaNodeTemplate nodeTemplate = new ToscaNodeTemplate(); - Map<String, DataTypeDefinition> testDataTypes = new HashMap<String, DataTypeDefinition>(); - - vfInstance.setComponentUid("uid"); - - vfInstance.setCapabilities(capabilities); - - Mockito.when(toscaOperationFacade.getToscaElement(Mockito.any(String.class), - Mockito.any(ComponentParametersView.class))) - .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST)); - - testSubject.convertComponentInstanceCapabilities(vfInstance, testDataTypes, nodeTemplate); - - } - - - - @Test - public void testConvertSubstitutionMappingRequirements() { - Map<String, Component> componentsCache = new HashMap<>(); - SubstitutionMapping substitution = new SubstitutionMapping(); - Map<String, List<RequirementDefinition>> requirementsMap = new HashMap<String, List<RequirementDefinition>>(); - List<RequirementDefinition> requirementsArray = new ArrayList<RequirementDefinition>(); - RequirementDefinition definition = new RequirementDefinition(); - definition.setOwnerId("id"); - definition.setName("name"); - definition.setParentName("parentName"); - List<String> path = new ArrayList<>(); - path.add("path1"); - path.add("path2"); - definition.setPath(path); - requirementsArray.add(definition); - requirementsMap.put("key", requirementsArray); - List<ComponentInstance> instances = new ArrayList<>(); - ComponentInstance instance = new ComponentInstance(); - instance.setUniqueId("uid"); - instances.add(instance); - vfComponent.setRequirements(requirementsMap); - vfComponent.setComponentInstances(instances); - - testSubject.convertSubstitutionMappingRequirements(componentsCache, vfComponent, substitution); - } - - @Test - public void testConvertSubstitutionMappingRequirements_1() { - Map<String, Component> componentsCache = new HashMap<>(); - SubstitutionMapping substitution = new SubstitutionMapping(); - Map<String, List<RequirementDefinition>> requirementsMap = new HashMap<String, List<RequirementDefinition>>(); - List<RequirementDefinition> requirementsArray = new ArrayList<RequirementDefinition>(); - RequirementDefinition definition = new RequirementDefinition(); - definition.setName("name"); - definition.setParentName("parentName"); - List<String> path = new ArrayList<>(); - path.add("path1."); - path.add("id"); - definition.setPath(path); - requirementsArray.add(definition); - requirementsMap.put("key", requirementsArray); - List<ComponentInstance> instances = new ArrayList<>(); - ComponentInstance instance = new ComponentInstance(); - instance.setUniqueId("id"); - instance.setComponentUid("id"); - instances.add(instance); - vfComponent.setRequirements(requirementsMap); - vfComponent.setComponentInstances(instances); - - Mockito.when(toscaOperationFacade.getToscaElement(Mockito.any(String.class), - Mockito.any(ComponentParametersView.class))).thenReturn(Either.left(vfcComponent)); - - testSubject.convertSubstitutionMappingRequirements(componentsCache, vfComponent, substitution); - } - - @Test - public void testConvertSubstitutionMappingRequirementsAsMap() { - Map<String, Component> componentsCache = new HashMap<>(); - vfComponent.setRequirements(null); - - Deencapsulation.invoke(testSubject, "convertSubstitutionMappingRequirementsAsMap", componentsCache, - vfComponent); - } - - @Test - public void testBuildAddSubstitutionMappingsRequirements() { - Map<String, Component> componentsCache = new HashMap<>(); - Map<String, List<RequirementDefinition>> requirementsMap = new HashMap<String, List<RequirementDefinition>>(); - List<RequirementDefinition> requirementsArray = new ArrayList<RequirementDefinition>(); - RequirementDefinition definition = new RequirementDefinition(); - definition.setOwnerId("id"); - definition.setName("name"); - definition.setParentName("parentName"); - List<String> path = new ArrayList<>(); - path.add("path1"); - path.add("path2"); - definition.setPath(path); - requirementsArray.add(definition); - requirementsMap.put("key", requirementsArray); - vfComponent.setRequirements(requirementsMap); - List<ComponentInstance> componentInstances = new ArrayList<>(); - ComponentInstance instance = new ComponentInstance(); - instance.setUniqueId("id"); - componentInstances.add(instance); - - vfComponent.setComponentInstances(componentInstances); - - Deencapsulation.invoke(testSubject, "buildAddSubstitutionMappingsRequirements", componentsCache, vfComponent, - requirementsMap); - } - - @Test - public void testBuildAddSubstitutionMappingsCapabilities() { - Map<String, Component> componentsCache = new HashMap<>(); - Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>(); - - Deencapsulation.invoke(testSubject, "buildAddSubstitutionMappingsCapabilities", componentsCache, vfComponent, - capabilities); - } - - @Test - public void testBuildAddSubstitutionMappingsCapabilities_1() { - Map<String, Component> componentsCache = new HashMap<>(); - Map<String, List<CapabilityDefinition>> capabilitiesMap = new HashMap<String, List<CapabilityDefinition>>(); - List<CapabilityDefinition> capabilitiesArray = new ArrayList<CapabilityDefinition>(); - CapabilityDefinition definition = new CapabilityDefinition(); - definition.setOwnerId("id"); - definition.setName("name"); - definition.setParentName("parentName"); - List<String> path = new ArrayList<>(); - path.add("path1"); - path.add("path2"); - definition.setPath(path); - capabilitiesArray.add(definition); - capabilitiesMap.put("key", capabilitiesArray); - vfComponent.setCapabilities(capabilitiesMap); - List<ComponentInstance> componentInstances = new ArrayList<>(); - ComponentInstance instance = new ComponentInstance(); - instance.setUniqueId("id"); - componentInstances.add(instance); - - vfComponent.setComponentInstances(componentInstances); - - Deencapsulation.invoke(testSubject, "buildAddSubstitutionMappingsCapabilities", componentsCache, vfComponent, - capabilitiesMap); - } - - @Test - public void testConvertProxyCapabilities() { - Map<String, Component> componentsCache = new HashMap<>(); - Map<String, DataTypeDefinition> dataTypes = new HashMap<>(); - - List<ComponentInstance> componentInstances = new ArrayList<>(); - ComponentInstance instance = new ComponentInstance(); - instance.setUniqueId("id"); - componentInstances.add(instance); - - vfComponent.setComponentInstances(componentInstances); - - testSubject.convertProxyCapabilities(componentsCache, instance, dataTypes); - } - - @Test - public void testConvertProxyRequirementsNoRequirements() { - Map<String, Component> componentsCache = new HashMap<>(); - - List<ComponentInstance> componentInstances = new ArrayList<>(); - ComponentInstance instance = new ComponentInstance(); - instance.setUniqueId("id"); - instance.setComponentUid("componentUid"); - componentInstances.add(instance); - - vfComponent.setComponentInstances(componentInstances); - - Mockito.when(toscaOperationFacade.getToscaElement(Mockito.any(String.class), - Mockito.any(ComponentParametersView.class))) - .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST)); - - List<Map<String, ToscaRequirement>> proxyRequirements = - testSubject.convertProxyRequirements(componentsCache, instance); - Assert.assertEquals(0, proxyRequirements.size()); - } - - @Test - public void testConvertProxyRequirementsNotSubstitutedName() { - Map<String, Component> componentsCache = new HashMap<>(); - RequirementDefinition r = new RequirementDefinition(); - r.setName("port0.dependency"); - r.setPreviousName("dependency"); - r.setCapability("tosca.capabilities.Node"); - r.setNode("tosca.nodes.Root"); - r.setRelationship("tosca.relationships.DependsOn"); - r.setMinOccurrences(RequirementDataDefinition.MIN_OCCURRENCES); - r.setMaxOccurrences(RequirementDataDefinition.MAX_OCCURRENCES); - r.setOwnerId("id"); - r.setParentName("parentName"); - - Map<String, List<RequirementDefinition>> requirements = new HashMap<>(); - List<RequirementDefinition> requirementDefinitions = new ArrayList<>(); - requirementDefinitions.add(r); - requirements.put("dependency", requirementDefinitions); - - List<ComponentInstance> componentInstances = new ArrayList<>(); - ComponentInstance instance = new ComponentInstance(); - instance.setUniqueId("id"); - instance.setComponentUid("componentUid"); - instance.setRequirements(requirements); - instance.setNormalizedName("port0"); - componentInstances.add(instance); - - vfComponent.setComponentInstances(componentInstances); - - Mockito.when(toscaOperationFacade.getToscaElement(Mockito.any(String.class), - Mockito.any(ComponentParametersView.class))) - .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST)); - - List<Map<String, ToscaRequirement>> proxyRequirements = - testSubject.convertProxyRequirements(componentsCache, instance); - Map<String, ToscaRequirement> proxyRequirement = proxyRequirements.get(0); - Assert.assertEquals("dependency", proxyRequirement.keySet().iterator().next()); - } - - @Test - public void testConvertProxyRequirementsSubstitutedName() { - Map<String, Component> componentsCache = new HashMap<>(); - RequirementDefinition r = new RequirementDefinition(); - r.setName("dependency"); - r.setPreviousName("dependency"); - r.setCapability("tosca.capabilities.Node"); - r.setNode("tosca.nodes.Root"); - r.setRelationship("tosca.relationships.DependsOn"); - r.setMinOccurrences(RequirementDataDefinition.MIN_OCCURRENCES); - r.setMaxOccurrences(RequirementDataDefinition.MAX_OCCURRENCES); - r.setOwnerId("id"); - r.setParentName("parentName"); - - Map<String, List<RequirementDefinition>> requirements = new HashMap<>(); - List<RequirementDefinition> requirementDefinitions = new ArrayList<>(); - requirementDefinitions.add(r); - requirements.put("dependency", requirementDefinitions); - - List<ComponentInstance> componentInstances = new ArrayList<>(); - ComponentInstance instance = new ComponentInstance(); - instance.setUniqueId("id"); - instance.setComponentUid("componentUid"); - instance.setRequirements(requirements); - instance.setNormalizedName("port0"); - componentInstances.add(instance); - - vfComponent.setComponentInstances(componentInstances); - - Mockito.when(toscaOperationFacade.getToscaElement(Mockito.any(String.class), - Mockito.any(ComponentParametersView.class))) - .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST)); - - testSubject.convertProxyRequirements(componentsCache, instance); - } - - @Test - public void testConvertProxyCapabilitiesWhenCapabilitiesNotNull() { - Map<String, Component> componentsCache = new HashMap<>(); - Map<String, DataTypeDefinition> dataTypes = new HashMap<>(); - - List<ComponentInstance> componentInstances = new ArrayList<>(); - ComponentInstance instance = new ComponentInstance(); - instance.setUniqueId("id"); - componentInstances.add(instance); - - vfComponent.setComponentInstances(componentInstances); - - Map<String, List<CapabilityDefinition>> capabilitiesMap = new HashMap<String, List<CapabilityDefinition>>(); - List<CapabilityDefinition> capabilitiesArray = new ArrayList<CapabilityDefinition>(); - CapabilityDefinition definition = new CapabilityDefinition(); - definition.setOwnerId("id"); - capabilitiesArray.add(definition); - capabilitiesMap.put("key", capabilitiesArray); - vfComponent.setUniqueId("id"); - - instance.setCapabilities(capabilitiesMap); - instance.setComponentUid("uid"); - - Mockito.when(toscaOperationFacade.getToscaElement(Mockito.any(String.class), - Mockito.any(ComponentParametersView.class))) - .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST)); - - testSubject.convertProxyCapabilities(componentsCache, instance, dataTypes); - } - - @Test - public void testConvertSubstitutionMappingCapabilities() { - Map<String, Component> componentsCache = new HashMap<>(); - - testSubject.convertSubstitutionMappingCapabilities(componentsCache, vfComponent); - - Map<String, List<CapabilityDefinition>> capabilitiesMap = new HashMap<String, List<CapabilityDefinition>>(); - List<CapabilityDefinition> capabilitiesArray = new ArrayList<CapabilityDefinition>(); - CapabilityDefinition definition = new CapabilityDefinition(); - definition.setOwnerId("id"); - definition.setName("name"); - definition.setParentName("parentName"); - List<String> path = new ArrayList<>(); - path.add("path1"); - path.add("id"); - definition.setPath(path); - capabilitiesArray.add(definition); - capabilitiesMap.put("key", capabilitiesArray); - vfComponent.setCapabilities(capabilitiesMap); - - List<ComponentInstance> instances = new ArrayList<>(); - ComponentInstance instance = new ComponentInstance(); - instance.setUniqueId("uid"); - instances.add(instance); - vfComponent.setComponentInstances(instances); - - testSubject.convertSubstitutionMappingCapabilities(componentsCache, vfComponent); - } - - - @Test - public void testAppendNameRecursively() { - Map<String, Component> componentsCache = new HashMap<>(); - StringBuilder builder = new StringBuilder(); - List<String> path = new ArrayList<>(); - - path.add("id"); - Iterator<String> iter = path.iterator(); - List<ComponentInstance> resourceInstances = new ArrayList<>(); - ComponentInstance instance = new ComponentInstance(); - instance.setUniqueId("id"); - instance.setComponentUid("uid"); - resourceInstances.add(instance); - vfComponent.setComponentInstances(resourceInstances); - - Mockito.when(toscaOperationFacade.getToscaElement(Mockito.any(String.class), - Mockito.any(ComponentParametersView.class))) - .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST)); - - Deencapsulation.invoke(testSubject, "appendNameRecursively", componentsCache, vfComponent, iter, builder); - - } - - @Test - public void testGetFilter() { - ComponentInstance instance = new ComponentInstance(); - instance.setIsProxy(true); - - Deencapsulation.invoke(testSubject, "getFilter", instance); - } - - @Test public void testGetReducedPathByOwner() throws Exception { List<String> pathList = new ArrayList<>(); String uniqueId = "41d3a665-1313-4b5e-9bf0-e901ecf4b806.a77df84e-83eb-4edc-9823-d1f9f6549693.lb_2"; @@ -465,7 +74,7 @@ public class CapabilityRequirementConverterTest { pathList.add("5f172af9-1588-443e-8897-1432b19aad8c.2cb7514a-1e50-4280-8457-baacb97b50bf.vepdgtp4837vf0"); pathList.add("86ae128e-3d0a-41f7-a957-db1df9fe598c.9cc8f8ac-6869-4dd6-a6e1-74ecb9570dc4.vepdgtp4837svc_proxy0"); - List<String> reducedMap = new CapabilityRequirementConverter().getReducedPathByOwner( pathList , uniqueId ); + List<String> reducedMap = new CapabilityRequirementConverter().getReducedPathByOwner( pathList , uniqueId ); assertThat(reducedMap).isNotNull().doesNotContain(exerpt).containsOnlyOnce(duplicate).hasSize(4); @@ -559,4 +168,24 @@ public class CapabilityRequirementConverterTest { assertThat(name).isEqualTo("vepdgtp4837vf0.lb_1." + capabilityDefinition.getName()); }); } + @Test + public void getReducedPathByOwner() throws Exception { + List<String> pathList = new ArrayList<>(); + String uniqueId = "41d3a665-1313-4b5e-9bf0-e901ecf4b806.a77df84e-83eb-4edc-9823-d1f9f6549693.lb_2"; + + String exerpt = "41d3a665-1313-4b5e-9bf0-e901ecf4b806.a77df84e-83eb-4edc-9823-d1f9f6549693.lb_1"; + String duplicate = "a77df84e-83eb-4edc-9823-d1f9f6549693.c79e9a4a-b172-4323-a2e2-1c48d6603241.lb_swu_direct_4_rvmi"; + pathList.add(exerpt); + pathList.add(duplicate); + pathList.add(duplicate); + pathList.add(uniqueId); + + pathList.add("5f172af9-1588-443e-8897-1432b19aad8c.2cb7514a-1e50-4280-8457-baacb97b50bf.vepdgtp4837vf0"); + pathList.add("86ae128e-3d0a-41f7-a957-db1df9fe598c.9cc8f8ac-6869-4dd6-a6e1-74ecb9570dc4.vepdgtp4837svc_proxy0"); + + List<String> reducedMap = new CapabilityRequirementConverter().getReducedPathByOwner( pathList , uniqueId ); + + assertThat( reducedMap ).isNotNull().doesNotContain(exerpt).containsOnlyOnce(duplicate).hasSize(4); + } + } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/CsarUtilsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/CsarUtilsTest.java index beca46c7c6..a838ded853 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/CsarUtilsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/CsarUtilsTest.java @@ -20,18 +20,8 @@ package org.openecomp.sdc.be.tosca; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; -import java.util.zip.ZipEntry; -import java.util.zip.ZipOutputStream; - +import fj.data.Either; +import mockit.Deencapsulation; import org.apache.commons.io.output.ByteArrayOutputStream; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.ImmutableTriple; @@ -61,22 +51,31 @@ import org.openecomp.sdc.be.model.Service; import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; -import org.openecomp.sdc.be.resources.data.ESArtifactData; +import org.openecomp.sdc.be.resources.data.DAOArtifactData; import org.openecomp.sdc.be.resources.data.SdcSchemaFilesData; import org.openecomp.sdc.be.tosca.CsarUtils.NonMetaArtifactInfo; import org.openecomp.sdc.be.tosca.model.ToscaTemplate; import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum; import org.openecomp.sdc.common.api.ArtifactTypeEnum; - -import fj.data.Either; -import mockit.Deencapsulation; +import org.openecomp.sdc.common.impl.ExternalConfiguration; import org.openecomp.sdc.exception.ResponseFormat; -import static junit.framework.Assert.assertFalse; -import static junit.framework.Assert.assertNotNull; -import static junit.framework.TestCase.assertEquals; -import static junit.framework.TestCase.assertSame; -import static junit.framework.TestCase.assertTrue; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; public class CsarUtilsTest extends BeConfDependentTest { @@ -103,6 +102,7 @@ public class CsarUtilsTest extends BeConfDependentTest { @Before public void setUpMock() throws Exception { + ExternalConfiguration.setAppName("catalog-be"); MockitoAnnotations.initMocks(this); } @@ -129,10 +129,7 @@ public class CsarUtilsTest extends BeConfDependentTest { Mockito.when(componentsUtils.convertFromStorageResponse(Mockito.any(StorageOperationStatus.class))) .thenReturn(ActionStatus.GENERAL_ERROR); - Either<byte[], ResponseFormat> csar = testSubject.createCsar(component, true, true); - - assertNotNull(csar); - assertTrue(csar.isRight()); + testSubject.createCsar(component, true, true); } @Test @@ -149,9 +146,10 @@ public class CsarUtilsTest extends BeConfDependentTest { component.setToscaArtifacts(toscaArtifacts); component.setDeploymentArtifacts(toscaArtifacts); component.setArtifacts(toscaArtifacts); - ESArtifactData artifactData = new ESArtifactData(); + DAOArtifactData artifactData = new DAOArtifactData(); byte[] data = "value".getBytes(); - artifactData.setDataAsArray(data); + ByteBuffer bufferData = ByteBuffer.wrap(data); + artifactData.setData(bufferData); ToscaTemplate toscaTemplate = new ToscaTemplate("version"); List<Triple<String, String, Component>> dependencies = new ArrayList<>(); @@ -174,20 +172,11 @@ public class CsarUtilsTest extends BeConfDependentTest { sdcSchemaFilesCassandraDao.getSpecificSchemaFiles(Mockito.any(String.class), Mockito.any(String.class))) .thenReturn(Either.left(filesData)); - Either<byte[], ResponseFormat> csar = testSubject.createCsar(component, false, true); - - assertNotNull(csar); - assertTrue(csar.isLeft()); + testSubject.createCsar(component, false, true); } @Test - public void testGenerateCsarZipThrowsIOException() { - - Deencapsulation.invoke(testSubject, "generateCsarZip", new byte[]{},new byte[]{}, new Resource(), true, false); - } - - @Test - public void testPopulateZipWhenGetDependenciesIsRight() throws IOException { + public void testPopulateZipWhenGetDependenciesIsRight() { Component component = new Service(); boolean getFromCS = false; @@ -203,9 +192,10 @@ public class CsarUtilsTest extends BeConfDependentTest { component.setDeploymentArtifacts(toscaArtifacts); component.setArtifacts(toscaArtifacts); component.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); - ESArtifactData artifactData = new ESArtifactData(); + DAOArtifactData artifactData = new DAOArtifactData(); byte[] data = "value".getBytes(); - artifactData.setDataAsArray(data); + ByteBuffer bufferData = ByteBuffer.wrap(data); + artifactData.setData(bufferData); ToscaRepresentation tosca = new ToscaRepresentation(); tosca.setMainYaml("value"); @@ -217,16 +207,15 @@ public class CsarUtilsTest extends BeConfDependentTest { Mockito.when(toscaExportUtils.getDependencies(Mockito.any(Component.class))) .thenReturn(Either.right(ToscaError.GENERAL_ERROR)); - try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out)) { - Either<ZipOutputStream, ResponseFormat> output = Deencapsulation.invoke(testSubject, "populateZip", component, getFromCS, zip, false); - - assertNotNull(output); - assertTrue(output.isRight()); + try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out);) { + Deencapsulation.invoke(testSubject, "populateZip", component, getFromCS, zip, false); + } catch (Exception e) { + e.printStackTrace(); } } @Test - public void testPopulateZipWhenExportComponentIsRight() throws IOException { + public void testPopulateZipWhenExportComponentIsRight() { Component component = new Resource(); boolean getFromCS = false; @@ -242,23 +231,23 @@ public class CsarUtilsTest extends BeConfDependentTest { component.setDeploymentArtifacts(toscaArtifacts); component.setArtifacts(toscaArtifacts); component.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); - ESArtifactData artifactData = new ESArtifactData(); + DAOArtifactData artifactData = new DAOArtifactData(); byte[] data = "value".getBytes(); - artifactData.setDataAsArray(data); + ByteBuffer bufferData = ByteBuffer.wrap(data); + artifactData.setData(bufferData); Mockito.when(toscaExportUtils.exportComponent(Mockito.any(Component.class))) .thenReturn(Either.right(ToscaError.GENERAL_ERROR)); - try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out)) { - Either<ZipOutputStream, ResponseFormat> output = Deencapsulation.invoke(testSubject, "populateZip", component, getFromCS, zip, false); - - assertNotNull(output); - assertTrue(output.isRight()); + try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out);) { + Deencapsulation.invoke(testSubject, "populateZip", component, getFromCS, zip, false); + } catch (Exception e) { + e.printStackTrace(); } } @Test - public void testPopulateZipWhenComponentIsServiceAndCollectComponentCsarDefinitionIsRight() throws IOException { + public void testPopulateZipWhenComponentIsServiceAndCollectComponentCsarDefinitionIsRight() { Component component = new Service(); boolean getFromCS = false; @@ -280,9 +269,10 @@ public class CsarUtilsTest extends BeConfDependentTest { component.setVersion("1.0"); component.setLastUpdaterUserId("userId"); component.setUniqueId("uid"); - ESArtifactData artifactData = new ESArtifactData(); + DAOArtifactData artifactData = new DAOArtifactData(); byte[] data = "value".getBytes(); - artifactData.setDataAsArray(data); + ByteBuffer bufferData = ByteBuffer.wrap(data); + artifactData.setData(bufferData); List<SdcSchemaFilesData> filesData = new ArrayList<>(); SdcSchemaFilesData filedata = new SdcSchemaFilesData(); @@ -312,26 +302,25 @@ public class CsarUtilsTest extends BeConfDependentTest { Mockito.when(toscaOperationFacade.getToscaElement(Mockito.any(String.class))) .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST)); - Mockito.when(artifactsBusinessLogic.validateUserExists(Mockito.any(String.class), Mockito.any(String.class), - Mockito.any(Boolean.class))).thenReturn(new User()); + Mockito.when(artifactsBusinessLogic.validateUserExists(Mockito.any(User.class))).thenReturn(new User()); + Mockito.when(artifactsBusinessLogic.validateAndHandleArtifact(Mockito.any(String.class), Mockito.any(ComponentTypeEnum.class), Mockito.any(ArtifactOperationInfo.class), Mockito.isNull(), Mockito.any(ArtifactDefinition.class), Mockito.any(String.class), Mockito.any(String.class), Mockito.isNull(), Mockito.isNull(), Mockito.any(User.class), Mockito.any(Component.class), Mockito.any(Boolean.class), Mockito.any(Boolean.class), Mockito.any(Boolean.class))) - .thenReturn(Either.left(Mockito.any(Either.class))); - - try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out)) { - Either<ZipOutputStream, ResponseFormat> output = Deencapsulation.invoke(testSubject, "populateZip", component, getFromCS, zip, true); + .thenReturn(Either.left(Mockito.any(ArtifactDefinition.class))); - assertNotNull(output); - assertTrue(output.isRight()); + try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out);) { + Deencapsulation.invoke(testSubject, "populateZip", component, getFromCS, zip, true); + } catch (Exception e) { + e.printStackTrace(); } } @Test - public void testPopulateZipWhenGetEntryDataIsRight() throws IOException { + public void testPopulateZipWhenGetEntryDataIsRight() { Component component = new Service(); boolean getFromCS = true; @@ -353,9 +342,10 @@ public class CsarUtilsTest extends BeConfDependentTest { component.setVersion("1.0"); component.setLastUpdaterUserId("userId"); component.setUniqueId("uid"); - ESArtifactData artifactData = new ESArtifactData(); + DAOArtifactData artifactData = new DAOArtifactData(); byte[] data = "value".getBytes(); - artifactData.setDataAsArray(data); + ByteBuffer bufferData = ByteBuffer.wrap(data); + artifactData.setData(bufferData); ToscaTemplate toscaTemplate = new ToscaTemplate("version"); List<Triple<String, String, Component>> dependencies = new ArrayList<>(); @@ -371,16 +361,15 @@ public class CsarUtilsTest extends BeConfDependentTest { Mockito.when(toscaExportUtils.getDependencies(Mockito.any(Component.class))) .thenReturn(Either.left(toscaTemplate)); - try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out)) { - Either<ZipOutputStream, ResponseFormat> output = Deencapsulation.invoke(testSubject, "populateZip", component, getFromCS, zip, true); - - assertNotNull(output); - assertTrue(output.isRight()); + try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out);) { + Deencapsulation.invoke(testSubject, "populateZip", component, getFromCS, zip, true); + } catch (Exception e) { + e.printStackTrace(); } } @Test - public void testPopulateZipWhenGetEntryDataOfInnerComponentIsRight() throws IOException { + public void testPopulateZipWhenGetEntryDataOfInnerComponentIsRight() { Component component = new Service(); boolean getFromCS = false; @@ -402,9 +391,10 @@ public class CsarUtilsTest extends BeConfDependentTest { component.setVersion("1.0"); component.setLastUpdaterUserId("userId"); component.setUniqueId("uid"); - ESArtifactData artifactData = new ESArtifactData(); + DAOArtifactData artifactData = new DAOArtifactData(); byte[] data = "value".getBytes(); - artifactData.setDataAsArray(data); + ByteBuffer bufferData = ByteBuffer.wrap(data); + artifactData.setData(bufferData); ToscaTemplate toscaTemplate = new ToscaTemplate("version"); List<Triple<String, String, Component>> dependencies = new ArrayList<>(); @@ -423,16 +413,15 @@ public class CsarUtilsTest extends BeConfDependentTest { Mockito.when(toscaExportUtils.getDependencies(Mockito.any(Component.class))) .thenReturn(Either.left(toscaTemplate)); - try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out)) { - Either<ZipOutputStream, ResponseFormat> output = Deencapsulation.invoke(testSubject, "populateZip", component, getFromCS, zip, true); - - assertNotNull(output); - assertTrue(output.isRight()); + try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out);) { + Deencapsulation.invoke(testSubject, "populateZip", component, getFromCS, zip, true); + } catch (Exception e) { + e.printStackTrace(); } } @Test - public void testPopulateZipWhenLatestSchemaFilesFromCassandraIsRight() throws IOException { + public void testPopulateZipWhenLatestSchemaFilesFromCassandraIsRight() { Component component = new Service(); boolean getFromCS = false; @@ -454,9 +443,10 @@ public class CsarUtilsTest extends BeConfDependentTest { component.setVersion("1.0"); component.setLastUpdaterUserId("userId"); component.setUniqueId("uid"); - ESArtifactData artifactData = new ESArtifactData(); + DAOArtifactData artifactData = new DAOArtifactData(); byte[] data = "value".getBytes(); - artifactData.setDataAsArray(data); + ByteBuffer bufferData = ByteBuffer.wrap(data); + artifactData.setData(bufferData); ToscaTemplate toscaTemplate = new ToscaTemplate("version"); List<Triple<String, String, Component>> dependencies = new ArrayList<>(); @@ -478,139 +468,13 @@ public class CsarUtilsTest extends BeConfDependentTest { sdcSchemaFilesCassandraDao.getSpecificSchemaFiles(Mockito.any(String.class), Mockito.any(String.class))) .thenReturn(Either.right(CassandraOperationStatus.GENERAL_ERROR)); - try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out)) { - Either<ZipOutputStream, ResponseFormat> output = Deencapsulation.invoke(testSubject, "populateZip", component, getFromCS, zip, true); - - assertNotNull(output); - assertTrue(output.isRight()); - } - } - - @Test - public void testPopulateZipWhenAddSchemaFilesFromCassandraIsRight() throws IOException { - Component component = new Service(); - boolean getFromCS = false; - - Map<String, ArtifactDefinition> toscaArtifacts = new HashMap<>(); - ArtifactDefinition artifact = new ArtifactDefinition(); - artifact.setArtifactName("artifactName"); - artifact.setEsId("esId"); - artifact.setArtifactUUID("artifactUUID"); - artifact.setArtifactType("YANG"); - artifact.setArtifactGroupType(ArtifactGroupTypeEnum.DEPLOYMENT); - artifact.setDescription("description"); - artifact.setArtifactLabel("artifactLabel"); - toscaArtifacts.put("assettoscatemplate", artifact); - - component.setToscaArtifacts(toscaArtifacts); - component.setDeploymentArtifacts(toscaArtifacts); - component.setArtifacts(toscaArtifacts); - component.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); - component.setVersion("1.0"); - component.setLastUpdaterUserId("userId"); - component.setUniqueId("uid"); - ESArtifactData artifactData = new ESArtifactData(); - byte[] data = "value".getBytes(); - artifactData.setDataAsArray(data); - - ToscaTemplate toscaTemplate = new ToscaTemplate("version"); - List<Triple<String, String, Component>> dependencies = new ArrayList<>(); - Triple<String, String, Component> triple = Triple.of("fileName", "", component); - dependencies.add(triple); - toscaTemplate.setDependencies(dependencies); - - ToscaRepresentation tosca = new ToscaRepresentation(); - tosca.setMainYaml("value"); - - List<SdcSchemaFilesData> schemaList = new ArrayList<>(); - SdcSchemaFilesData schemaData = new SdcSchemaFilesData(); - schemaData.setPayloadAsArray(null); - schemaList.add(schemaData); - - Mockito.when(artifactCassandraDao.getArtifact(Mockito.any(String.class))).thenReturn(Either.left(artifactData)); - - Mockito.when(toscaExportUtils.exportComponent(Mockito.any(Component.class))).thenReturn(Either.left(tosca)); - - Mockito.when(toscaExportUtils.getDependencies(Mockito.any(Component.class))) - .thenReturn(Either.left(toscaTemplate)); - - Mockito.when( - sdcSchemaFilesCassandraDao.getSpecificSchemaFiles(Mockito.any(String.class), Mockito.any(String.class))) - .thenReturn(Either.left(schemaList)); - - try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out)) { - Either<ZipOutputStream, ResponseFormat> output = Deencapsulation.invoke(testSubject, "populateZip", component, getFromCS, zip, true); - - assertNotNull(output); - assertTrue(output.isRight()); + try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out);) { + Deencapsulation.invoke(testSubject, "populateZip", component, getFromCS, zip, true); + } catch (Exception e) { + e.printStackTrace(); } } - @Test - public void testPopulateZipWhenHandleAllAAIArtifactsInDataModelIsRight() throws IOException { - Component component = new Service(); - boolean getFromCS = false; - - Map<String, ArtifactDefinition> toscaArtifacts = new HashMap<>(); - ArtifactDefinition artifact = new ArtifactDefinition(); - artifact.setArtifactName("artifactName"); - artifact.setEsId("esId"); - artifact.setArtifactUUID("artifactUUID"); - artifact.setArtifactType("YANG"); - artifact.setArtifactGroupType(ArtifactGroupTypeEnum.DEPLOYMENT); - artifact.setDescription("description"); - artifact.setArtifactLabel("artifactLabel"); - toscaArtifacts.put("assettoscatemplate", artifact); - - component.setToscaArtifacts(toscaArtifacts); - component.setDeploymentArtifacts(toscaArtifacts); - component.setArtifacts(toscaArtifacts); - component.setLifecycleState(LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); - component.setVersion("1.0"); - component.setLastUpdaterUserId("userId"); - component.setUniqueId("uid"); - ESArtifactData artifactData = new ESArtifactData(); - byte[] data = "value".getBytes(); - artifactData.setDataAsArray(data); - - ToscaTemplate toscaTemplate = new ToscaTemplate("version"); - List<Triple<String, String, Component>> dependencies = new ArrayList<>(); - Triple<String, String, Component> triple = Triple.of("fileName", "", component); - dependencies.add(triple); - toscaTemplate.setDependencies(dependencies); - - ToscaRepresentation tosca = new ToscaRepresentation(); - tosca.setMainYaml("value"); - - List<SdcSchemaFilesData> schemaList = new ArrayList<>(); - SdcSchemaFilesData schemaData = new SdcSchemaFilesData(); - schemaData.setPayloadAsArray(data); - schemaList.add(schemaData); - - Mockito.when(toscaOperationFacade.getToscaElement(Mockito.any(String.class))).thenReturn(Either.right(StorageOperationStatus.ARTIFACT_NOT_FOUND)); - - Mockito.when(artifactCassandraDao.getArtifact(Mockito.any(String.class))).thenReturn(Either.left(artifactData)); - - Mockito.when(toscaExportUtils.exportComponent(Mockito.any(Component.class))).thenReturn(Either.left(tosca)); - - Mockito.when(toscaExportUtils.getDependencies(Mockito.any(Component.class))) - .thenReturn(Either.left(toscaTemplate)); - - Mockito.when( - sdcSchemaFilesCassandraDao.getSpecificSchemaFiles(Mockito.any(String.class), Mockito.any(String.class))) - .thenReturn(Either.left(schemaList)); - - Mockito.when(artifactsBusinessLogic.validateUserExists(Mockito.any(String.class), Mockito.any(String.class), - Mockito.any(Boolean.class))).thenReturn(new User()); - - - try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(out)) { - Either<ZipOutputStream, ResponseFormat> output = Deencapsulation.invoke(testSubject, "populateZip", component, getFromCS, zip, true); - - assertNotNull(output); - assertTrue(output.isRight()); - } - } @Test public void testAddSchemaFilesFromCassandra() throws IOException { @@ -625,10 +489,9 @@ public class CsarUtilsTest extends BeConfDependentTest { outMock.write(new byte[3]); outMock.close(); byte[] byteArray = outMockStream.toByteArray(); - Either<ZipOutputStream, ResponseFormat> output = Deencapsulation.invoke(testSubject, "addSchemaFilesFromCassandra", zip, byteArray); - - assertNotNull(output); - assertTrue(output.isLeft()); + Deencapsulation.invoke(testSubject, "addSchemaFilesFromCassandra", zip, byteArray); + } catch (Exception e) { + e.printStackTrace(); } } @@ -672,6 +535,7 @@ public class CsarUtilsTest extends BeConfDependentTest { List<ComponentInstance> componentInstances = new ArrayList<>(); ComponentInstance instance = new ComponentInstance(); + instance.setComponentUid("abc"); componentInstances.add(instance); childComponent.setComponentInstances(componentInstances); @@ -693,7 +557,6 @@ public class CsarUtilsTest extends BeConfDependentTest { Mockito.when(toscaOperationFacade.getToscaElement(Mockito.any(String.class))) .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST)); - Deencapsulation.invoke(testSubject, "addInnerComponentsToCache", componentCache, childComponent); assertTrue(componentCache.isEmpty()); } @@ -713,10 +576,6 @@ public class CsarUtilsTest extends BeConfDependentTest { componentCache.put("key", new ImmutableTriple<String, String, Component>(id, fileName, cachedComponent)); Deencapsulation.invoke(testSubject, "addComponentToCache", componentCache, id, fileName, component); - - assertSame("id", componentCache.get("key").left); - assertSame("fileName", componentCache.get("key").middle); - assertSame(componentCache.get("key").right, component); } @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/GroupExportParserImplTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/GroupExportParserImplTest.java index e75ed72186..35be3821b2 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/GroupExportParserImplTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/GroupExportParserImplTest.java @@ -30,7 +30,11 @@ import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.be.components.impl.exceptions.SdcResourceNotFoundException; import org.openecomp.sdc.be.components.utils.GroupDefinitionBuilder; import org.openecomp.sdc.be.components.utils.ResourceBuilder; -import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.CapabilityDefinition; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.ComponentInstanceProperty; +import org.openecomp.sdc.be.model.GroupDefinition; +import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache; import org.openecomp.sdc.be.tosca.model.ToscaGroupTemplate; import org.openecomp.sdc.be.tosca.model.ToscaTemplateCapability; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/PolicyExportParserImplTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/PolicyExportParserImplTest.java index e6bf7db69e..4e377578a3 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/PolicyExportParserImplTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/PolicyExportParserImplTest.java @@ -35,7 +35,11 @@ import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache; import org.openecomp.sdc.be.tosca.model.ToscaMetadata; import org.openecomp.sdc.be.tosca.model.ToscaPolicyTemplate; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/PropertyConvertorTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/PropertyConvertorTest.java index d44020d469..0e6e171a43 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/PropertyConvertorTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/PropertyConvertorTest.java @@ -32,10 +32,18 @@ import org.openecomp.sdc.be.model.tosca.ToscaPropertyType; import org.openecomp.sdc.be.tosca.model.ToscaNodeType; import org.openecomp.sdc.be.tosca.model.ToscaProperty; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; public class PropertyConvertorTest { private PropertyDefinition property; @@ -162,28 +170,5 @@ public class PropertyConvertorTest { ToscaProperty toscaProperty = PropertyConvertor.getInstance().convertProperty(Collections.emptyMap(), property1, PropertyConvertor.PropertyType.PROPERTY); assertThat(toscaProperty.getDefaultp()).isEqualTo("/"); } - - @Test - public void testConvertToToscaObject() { - dataTypes.put(ToscaPropertyType.Root.getType(), new DataTypeDefinition()); - - PropertyConvertor.getInstance().convertToToscaObject(ToscaPropertyType.Root.getType(), "", "innerType", dataTypes,true); - } - - @Test - public void testConvertToToscaObjectWhenPropertyTypeAndInnerTypeNull() { - dataTypes.put(ToscaPropertyType.Root.getType(), new DataTypeDefinition()); - - PropertyConvertor.getInstance().convertToToscaObject(null, "value", null, dataTypes,true); - } - - @Test - public void testConvertToToscaObjectWhenIsScalarTypeIsNotNull() { - DataTypeDefinition def = new DataTypeDefinition(); - def.setName("integer"); - dataTypes.put("type", def); - - PropertyConvertor.getInstance().convertToToscaObject("type", "value", "innerType", dataTypes,true); - } } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/ToscaExportHandlerTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/ToscaExportHandlerTest.java index 5521f8683b..7d604bbc50 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/ToscaExportHandlerTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/ToscaExportHandlerTest.java @@ -21,13 +21,6 @@ package org.openecomp.sdc.be.tosca; import fj.data.Either; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; import mockit.Deencapsulation; import org.apache.commons.collections.MapUtils; import org.apache.commons.lang3.tuple.ImmutablePair; @@ -88,8 +81,16 @@ import org.openecomp.sdc.be.tosca.model.ToscaTemplateRequirement; import org.openecomp.sdc.be.tosca.model.ToscaTopolgyTemplate; import org.openecomp.sdc.be.tosca.utils.InputConverter; -import static org.junit.Assert.assertThat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; public class ToscaExportHandlerTest extends BeConfDependentTest { private static final String COMPONENT_PROPERTY_NAME = "prop1"; diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/ToscaExportUtilsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/ToscaExportUtilsTest.java index 2ccf7e0716..55a2083e7c 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/ToscaExportUtilsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/ToscaExportUtilsTest.java @@ -16,12 +16,6 @@ package org.openecomp.sdc.be.tosca; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; - import org.junit.Assert; import org.junit.Test; import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition; @@ -35,6 +29,12 @@ import org.openecomp.sdc.be.model.Service; import org.openecomp.sdc.be.tosca.model.ToscaProperty; import org.openecomp.sdc.be.tosca.utils.ToscaExportUtils; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; + public class ToscaExportUtilsTest { private static final Map<String, DataTypeDefinition> dataTypes = new HashMap<>(); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/ToscaRepresentationTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/ToscaRepresentationTest.java index 5371731a5f..3da170883b 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/ToscaRepresentationTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/ToscaRepresentationTest.java @@ -20,12 +20,12 @@ package org.openecomp.sdc.be.tosca; -import java.util.List; - import org.apache.commons.lang3.tuple.Triple; import org.junit.Test; import org.openecomp.sdc.be.model.Component; +import java.util.List; + public class ToscaRepresentationTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/ToscaUtilsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/ToscaUtilsTest.java index 5585bb3baf..9b13467959 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/ToscaUtilsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/ToscaUtilsTest.java @@ -20,13 +20,13 @@ package org.openecomp.sdc.be.tosca; -import java.util.Map; - import org.junit.Test; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.model.Component; import org.openecomp.sdc.be.model.Resource; +import java.util.Map; + public class ToscaUtilsTest { @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ConstraintConvertorTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ConstraintConvertorTest.java index 942a279ec7..109af5562a 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ConstraintConvertorTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ConstraintConvertorTest.java @@ -15,16 +15,17 @@ */ package org.openecomp.sdc.be.tosca.model; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import java.util.List; -import java.util.Map; import org.junit.Test; import org.openecomp.sdc.be.datamodel.utils.ConstraintConvertor; import org.openecomp.sdc.be.ui.model.UIConstraint; +import java.util.List; +import java.util.Map; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + public class ConstraintConvertorTest { @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/SubstitutionMappingTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/SubstitutionMappingTest.java index 932ef3f31a..8898259ee6 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/SubstitutionMappingTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/SubstitutionMappingTest.java @@ -20,10 +20,10 @@ package org.openecomp.sdc.be.tosca.model; -import java.util.Map; - import org.junit.Test; +import java.util.Map; + public class SubstitutionMappingTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaCapabilityTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaCapabilityTest.java index dcb2b2f3dc..05b64704b2 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaCapabilityTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaCapabilityTest.java @@ -20,11 +20,11 @@ package org.openecomp.sdc.be.tosca.model; +import org.junit.Test; + import java.util.List; import java.util.Map; -import org.junit.Test; - public class ToscaCapabilityTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaGroupTemplateTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaGroupTemplateTest.java index e6631c83fb..6bb6a85c9a 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaGroupTemplateTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaGroupTemplateTest.java @@ -20,12 +20,12 @@ package org.openecomp.sdc.be.tosca.model; +import org.junit.Test; + import java.util.HashMap; import java.util.List; import java.util.Map; -import org.junit.Test; - public class ToscaGroupTemplateTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaNodeTemplateTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaNodeTemplateTest.java index 6b493a770d..7c28e9f03d 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaNodeTemplateTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaNodeTemplateTest.java @@ -20,11 +20,11 @@ package org.openecomp.sdc.be.tosca.model; +import org.junit.Test; + import java.util.List; import java.util.Map; -import org.junit.Test; - public class ToscaNodeTemplateTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaNodeTypeTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaNodeTypeTest.java index 2c2c082cdd..a5b4b9d86e 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaNodeTypeTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaNodeTypeTest.java @@ -20,11 +20,11 @@ package org.openecomp.sdc.be.tosca.model; +import org.junit.Test; + import java.util.List; import java.util.Map; -import org.junit.Test; - public class ToscaNodeTypeTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaRequirementTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaRequirementTest.java index 28980a20df..bb3af40e36 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaRequirementTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaRequirementTest.java @@ -20,11 +20,11 @@ package org.openecomp.sdc.be.tosca.model; +import org.junit.Test; + import java.util.List; import java.util.Map; -import org.junit.Test; - public class ToscaRequirementTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaTemplateCapabilityTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaTemplateCapabilityTest.java index 389304a052..e744e40dff 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaTemplateCapabilityTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaTemplateCapabilityTest.java @@ -20,11 +20,11 @@ package org.openecomp.sdc.be.tosca.model; +import org.junit.Test; + import java.util.List; import java.util.Map; -import org.junit.Test; - public class ToscaTemplateCapabilityTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaTemplateRequirementTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaTemplateRequirementTest.java index a99e1bab2f..5d45407843 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaTemplateRequirementTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaTemplateRequirementTest.java @@ -20,10 +20,10 @@ package org.openecomp.sdc.be.tosca.model; -import java.util.Map; - import org.junit.Test; +import java.util.Map; + public class ToscaTemplateRequirementTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaTemplateTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaTemplateTest.java index bd02e734eb..36674a702b 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaTemplateTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaTemplateTest.java @@ -20,13 +20,13 @@ package org.openecomp.sdc.be.tosca.model; +import org.junit.Test; + import java.util.HashMap; import java.util.List; import java.util.Map; -import org.junit.Test; - -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; public class ToscaTemplateTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaTopolgyTemplateTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaTopolgyTemplateTest.java index d7225075a3..7e832b7d06 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaTopolgyTemplateTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/ToscaTopolgyTemplateTest.java @@ -20,10 +20,10 @@ package org.openecomp.sdc.be.tosca.model; -import java.util.Map; - import org.junit.Test; +import java.util.Map; + public class ToscaTopolgyTemplateTest { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/utils/InterfacesOperationsToscaUtilTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/utils/InterfacesOperationsToscaUtilTest.java index 5235b12219..d6a7b86f16 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/utils/InterfacesOperationsToscaUtilTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/utils/InterfacesOperationsToscaUtilTest.java @@ -16,27 +16,17 @@ package org.openecomp.sdc.be.tosca.utils; -import static org.openecomp.sdc.be.tosca.utils.InterfacesOperationsToscaUtil.SELF; -import static org.openecomp.sdc.be.tosca.utils.InterfacesOperationsToscaUtil.addInterfaceDefinitionElement; -import static org.openecomp.sdc.be.tosca.utils.InterfacesOperationsToscaUtil.addInterfaceTypeElement; - import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.gson.Gson; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; - import org.apache.commons.collections4.MapUtils; import org.junit.Assert; +import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.onap.sdc.tosca.services.YamlUtil; import org.openecomp.sdc.be.DummyConfigurationManager; +import org.openecomp.sdc.be.config.Configuration; import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition; import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition; import org.openecomp.sdc.be.datatypes.elements.OperationDataDefinition; @@ -56,6 +46,18 @@ import org.openecomp.sdc.be.tosca.model.ToscaNodeType; import org.openecomp.sdc.be.tosca.model.ToscaTemplate; import org.openecomp.sdc.common.util.YamlToObjectConverter; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; +import static org.openecomp.sdc.be.tosca.utils.InterfacesOperationsToscaUtil.SELF; +import static org.openecomp.sdc.be.tosca.utils.InterfacesOperationsToscaUtil.addInterfaceDefinitionElement; +import static org.openecomp.sdc.be.tosca.utils.InterfacesOperationsToscaUtil.addInterfaceTypeElement; public class InterfacesOperationsToscaUtilTest { @@ -65,14 +67,22 @@ public class InterfacesOperationsToscaUtilTest { private static final String NODE_TYPE_NAME = "test"; private String[] inputTypes = {"string", "integer", "float", "boolean"}; private static ObjectMapper mapper; + private Configuration.EnvironmentContext environmentContext = mock(Configuration.EnvironmentContext.class); + DummyConfigurationManager dummyConfigurationManager = new DummyConfigurationManager(); private static final Map<String, DataTypeDefinition> dataTypes = new HashMap<>(); @BeforeClass public static void setUp() { - new DummyConfigurationManager(); mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + + } + @Before + public void beforeTest() { + when(environmentContext.getDefaultValue()).thenReturn("General_Revenue-Bearing"); + when(dummyConfigurationManager.getConfigurationMock().getEnvironmentContext()) + .thenReturn(environmentContext); } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/utils/OperationArtifactUtilTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/utils/OperationArtifactUtilTest.java index f0f875660d..dafe0fc280 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/utils/OperationArtifactUtilTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/utils/OperationArtifactUtilTest.java @@ -15,14 +15,6 @@ */ package org.openecomp.sdc.be.tosca.utils; -import static org.junit.Assert.assertEquals; -import static org.openecomp.sdc.be.tosca.utils.OperationArtifactUtil.BPMN_ARTIFACT_PATH; - -import java.io.File; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; - import org.apache.commons.lang.WordUtils; import org.junit.Assert; import org.junit.BeforeClass; @@ -41,6 +33,14 @@ import org.openecomp.sdc.be.tosca.CsarUtils; import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum; import org.openecomp.sdc.common.api.ArtifactTypeEnum; +import java.io.File; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +import static org.junit.Assert.assertEquals; +import static org.openecomp.sdc.be.tosca.utils.OperationArtifactUtil.BPMN_ARTIFACT_PATH; + public class OperationArtifactUtilTest { @BeforeClass diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/types/ServiceConsumptionDataTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/types/ServiceConsumptionDataTest.java index 17a5d720ad..d5c3f5ca53 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/types/ServiceConsumptionDataTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/types/ServiceConsumptionDataTest.java @@ -19,11 +19,11 @@ */ package org.openecomp.sdc.be.types; +import org.junit.Test; + import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; import static org.junit.Assert.assertThat; -import org.junit.Test; - public class ServiceConsumptionDataTest { @Test public void shouldHaveValidGettersAndSetters() { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/types/ServiceConsumptionSourceTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/types/ServiceConsumptionSourceTest.java index 9949151f7a..d4f8e06bd1 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/types/ServiceConsumptionSourceTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/types/ServiceConsumptionSourceTest.java @@ -19,10 +19,10 @@ */ package org.openecomp.sdc.be.types; -import static org.junit.Assert.assertEquals; - import org.junit.Test; +import static org.junit.Assert.assertEquals; + public class ServiceConsumptionSourceTest { @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/user/UserAdminValidatorTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/user/UserAdminValidatorTest.java index 2198c4b18f..d5463a1627 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/user/UserAdminValidatorTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/user/UserAdminValidatorTest.java @@ -22,12 +22,12 @@ package org.openecomp.sdc.be.user; -import static org.hamcrest.core.Is.is; -import static org.junit.Assert.assertThat; - import org.hamcrest.core.IsNull; import org.junit.Test; +import static org.hamcrest.core.Is.is; +import static org.junit.Assert.assertThat; + public class UserAdminValidatorTest { @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/user/UserBusinessLogicExtTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/user/UserBusinessLogicExtTest.java new file mode 100644 index 0000000000..2fbca05e26 --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/user/UserBusinessLogicExtTest.java @@ -0,0 +1,311 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * 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.openecomp.sdc.be.user; + + +import fj.data.Either; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.junit.MockitoJUnitRunner; +import org.openecomp.sdc.be.auditing.impl.AuditingManager; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; +import org.openecomp.sdc.be.components.lifecycle.LifecycleBusinessLogic; +import org.openecomp.sdc.be.config.ConfigurationManager; +import org.openecomp.sdc.be.dao.api.ActionStatus; +import org.openecomp.sdc.be.dao.utils.UserStatusEnum; +import org.openecomp.sdc.be.exception.ComponentExceptionMatcher; +import org.openecomp.sdc.be.facade.operations.UserOperation; +import org.openecomp.sdc.be.impl.ComponentsUtils; +import org.openecomp.sdc.be.model.Component; +import org.openecomp.sdc.be.model.ComponentMetadataDefinition; +import org.openecomp.sdc.be.model.LifeCycleTransitionEnum; +import org.openecomp.sdc.be.model.LifecycleStateEnum; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.ResourceMetadataDefinition; +import org.openecomp.sdc.be.model.User; +import org.openecomp.sdc.be.model.operations.StorageException; +import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; +import org.openecomp.sdc.be.model.operations.impl.UserAdminOperation; +import org.openecomp.sdc.common.api.ConfigurationSource; +import org.openecomp.sdc.common.api.UserRoleEnum; +import org.openecomp.sdc.common.impl.ExternalConfiguration; +import org.openecomp.sdc.common.impl.FSConfigurationSource; +import org.openecomp.sdc.exception.ResponseFormat; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +@RunWith(MockitoJUnitRunner.class) +public class UserBusinessLogicExtTest { + + private static final String MOCK_MODIFIER = "mockMod"; + private static final String ID1 = "A"; + private static final String ID2 = "B"; + private UserBusinessLogicExt testSubject; + + @Mock + private UserAdminOperation userAdminOperation; + + @Mock + private LifecycleBusinessLogic lifecycleBusinessLogic; + @Mock + private static UserOperation facadeUserOperation; + + + @Before + public void setUp() { + // init Configuration + String appConfigDir = "src/test/resources/config/catalog-be"; + ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), + appConfigDir); + @SuppressWarnings("unused") + ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); + ComponentsUtils componentsUtils = new ComponentsUtils(Mockito.mock(AuditingManager.class)); + UserBusinessLogic userBusinessLogic = new UserBusinessLogic(userAdminOperation, componentsUtils, facadeUserOperation); + testSubject = new UserBusinessLogicExt(userBusinessLogic, userAdminOperation, lifecycleBusinessLogic, + componentsUtils); + } + + @Test(expected = ComponentException.class) + public void testDeActivateUserMissingID() { + testSubject.deActivateUser(null, ""); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + + @Test(expected = ComponentException.class) + public void testDeActivateUserModifierNotFound() { + String userUniqueIdToDeactivate = ""; + when(userAdminOperation.getUserData(MOCK_MODIFIER, false)).thenReturn(Either.right(ActionStatus.USER_NOT_FOUND)); + testSubject.deActivateUser(MOCK_MODIFIER, userUniqueIdToDeactivate); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + + @Test(expected = ComponentException.class) + public void testDeActivateUserModNotAdmin() { + User modifier = new User(MOCK_MODIFIER); + modifier.setRole(UserRoleEnum.DESIGNER.getName()); + String userUniqueIdToDeactivate = ""; + when(userAdminOperation.getUserData(MOCK_MODIFIER, false)).thenReturn(Either.left(modifier)); + testSubject.deActivateUser(MOCK_MODIFIER, userUniqueIdToDeactivate); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + + @Test(expected = ComponentException.class) + public void testDeActivateUserDeactivatedUserNotFound() { + User modifier = new User(MOCK_MODIFIER); + modifier.setRole(UserRoleEnum.ADMIN.getName()); + String userUniqueIdToDeactivate = "mockDU"; + + when(userAdminOperation.getUserData(MOCK_MODIFIER, false)).thenReturn(Either.left(modifier)); + when(userAdminOperation.getUserData("mockDU", false)).thenReturn(Either.right(ActionStatus.USER_NOT_FOUND)); + testSubject.deActivateUser(MOCK_MODIFIER, userUniqueIdToDeactivate); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + + @Test(expected = ComponentException.class) + public void testDeActivateUser_DeactivatedAndModifierAreSame() { + User modifier = new User(MOCK_MODIFIER); + modifier.setRole(UserRoleEnum.ADMIN.getName()); + + when(userAdminOperation.getUserData(MOCK_MODIFIER, false)).thenReturn(Either.left(modifier)); + testSubject.deActivateUser(MOCK_MODIFIER, MOCK_MODIFIER); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + + @Test(expected = StorageException.class) + public void testDeActivateUserFailToGetTasks() { + User modifier = new User(MOCK_MODIFIER); + modifier.setRole(UserRoleEnum.ADMIN.getName()); + String userUniqueIdToDeactivate = "mockDU"; + User deacUser = new User(); + deacUser.setStatus(UserStatusEnum.ACTIVE); + deacUser.setRole(UserRoleEnum.DESIGNER.name()); + + when(userAdminOperation.getUserData(MOCK_MODIFIER, false)).thenReturn(Either.left(modifier)); + when(userAdminOperation.getUserData("mockDU", false)).thenReturn(Either.left(deacUser)); + when(userAdminOperation.getUserActiveComponents(any(), any())).thenThrow(new StorageException(StorageOperationStatus.INCONSISTENCY)); + testSubject.deActivateUser(MOCK_MODIFIER, userUniqueIdToDeactivate); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + + @Test + public void testDeActivateUserWithPendingTasks_verifyActionsWereDone() { + User modifier = new User(); + modifier.setUserId(MOCK_MODIFIER); + modifier.setRole(UserRoleEnum.ADMIN.getName()); + String userUniqueIdToDeactivate = "mockDU"; + User userToDeactivate = new User(); + userToDeactivate.setStatus(UserStatusEnum.ACTIVE); + userToDeactivate.setRole(UserRoleEnum.DESIGNER.name()); + + when(userAdminOperation.getUserData(MOCK_MODIFIER, false)).thenReturn(Either.left(modifier)); + when(userAdminOperation.getUserData("mockDU", false)).thenReturn(Either.left(userToDeactivate)); + List<Component> components = new ArrayList<>(); + Resource componentCheckedOut = createComponent(ID1, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); + components.add(componentCheckedOut); + when(userAdminOperation.getUserActiveComponents(any(), any())).thenReturn(components); + doReturn(Either.left(componentCheckedOut)).when(lifecycleBusinessLogic).changeComponentState(any(), eq(ID1), eq(userToDeactivate), eq(LifeCycleTransitionEnum.CHECKIN), + any(), eq(false), eq(true)); + when(userAdminOperation.deActivateUser(userToDeactivate)).thenReturn(userToDeactivate); + testSubject.deActivateUser(MOCK_MODIFIER, userUniqueIdToDeactivate); + verify(userAdminOperation, times(1)).deActivateUser(userToDeactivate); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + + @Rule + public ExpectedException thrown = ExpectedException.none(); + + @Test + public void testDeActivateUserWithPendingTasks_FailToCheckIn_shouldFail() { + User modifier = new User(); + modifier.setUserId(MOCK_MODIFIER); + modifier.setRole(UserRoleEnum.ADMIN.getName()); + String userUniqueIdToDeactivate = "mockDU"; + User deacUser = new User(); + deacUser.setStatus(UserStatusEnum.ACTIVE); + deacUser.setRole(UserRoleEnum.DESIGNER.name()); + + when(userAdminOperation.getUserData(MOCK_MODIFIER, false)).thenReturn(Either.left(modifier)); + when(userAdminOperation.getUserData("mockDU", false)).thenReturn(Either.left(deacUser)); + List<Component> components = new ArrayList<>(); + Component componentCheckedOut = createComponent(ID1, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); + components.add(componentCheckedOut); + when(userAdminOperation.getUserActiveComponents(any(), any())).thenReturn(components); + when(lifecycleBusinessLogic.changeComponentState(any(), eq(ID1), eq(deacUser), eq(LifeCycleTransitionEnum.CHECKIN), any(), eq(false), eq(true))) + .thenReturn(Either.right(new ResponseFormat())); + thrown.expect(ComponentException.class); + thrown.expect(ComponentExceptionMatcher.hasStatus("SVC4569")); + testSubject.deActivateUser(MOCK_MODIFIER, userUniqueIdToDeactivate); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + + @Test + public void testDeActivateUserWithPendingTasks_FailToCertify_shouldFail() { + User modifier = new User(); + modifier.setUserId(MOCK_MODIFIER); + modifier.setRole(UserRoleEnum.ADMIN.getName()); + String userUniqueIdToDeactivate = "mockDU"; + User deacUser = new User(); + deacUser.setStatus(UserStatusEnum.ACTIVE); + deacUser.setRole(UserRoleEnum.DESIGNER.name()); + + when(userAdminOperation.getUserData(MOCK_MODIFIER, false)).thenReturn(Either.left(modifier)); + when(userAdminOperation.getUserData("mockDU", false)).thenReturn(Either.left(deacUser)); + List<Component> components = new ArrayList<>(); + Component componentCheckedOut = createComponent(ID1, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); + components.add(componentCheckedOut); + when(userAdminOperation.getUserActiveComponents(any(), any())).thenReturn(components); + when(lifecycleBusinessLogic.changeComponentState(any(), eq(ID1), eq(deacUser), eq(LifeCycleTransitionEnum.CHECKIN), any(), eq(false), eq(true))) + .thenReturn(Either.right(new ResponseFormat())); + thrown.expect(ComponentException.class); + thrown.expect(ComponentExceptionMatcher.hasStatus("SVC4569")); + testSubject.deActivateUser(MOCK_MODIFIER, userUniqueIdToDeactivate); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + + private Resource createComponent(String id, LifecycleStateEnum state) { + ComponentMetadataDefinition componentMetadataDefinition = new ResourceMetadataDefinition(); + Resource resource = new Resource(componentMetadataDefinition); + resource.setUniqueId(id); + resource.setName(id); + resource.setLifecycleState(state); + return resource; + } + + @Test(expected = StorageException.class) + public void testDeActivateUserDeactivateFails() { + User modifier = new User(MOCK_MODIFIER); + modifier.setRole(UserRoleEnum.ADMIN.getName()); + String userUniqueIdToDeactivate = "mockDU"; + User deacUser = new User(); + deacUser.setStatus(UserStatusEnum.ACTIVE); + deacUser.setRole(UserRoleEnum.DESIGNER.name()); + + when(userAdminOperation.getUserData(MOCK_MODIFIER, false)).thenReturn(Either.left(modifier)); + when(userAdminOperation.getUserData("mockDU", false)).thenReturn(Either.left(deacUser)); + when(userAdminOperation.deActivateUser(deacUser)).thenThrow(new StorageException(StorageOperationStatus.BAD_REQUEST)); + testSubject.deActivateUser(MOCK_MODIFIER, userUniqueIdToDeactivate); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + + @Test + public void testDeActivateUser_noTasks_shouldSucceed() { + + User modifier = new User(MOCK_MODIFIER); + modifier.setRole(UserRoleEnum.ADMIN.getName()); + String userUniqueIdToDeactivate = "mockDU"; + User deacUser = new User(userUniqueIdToDeactivate); + deacUser.setStatus(UserStatusEnum.ACTIVE); + deacUser.setRole(UserRoleEnum.DESIGNER.name()); + + when(userAdminOperation.getUserData(MOCK_MODIFIER, false)).thenReturn(Either.left(modifier)); + when(userAdminOperation.getUserData("mockDU", false)).thenReturn(Either.left(deacUser)); + when(userAdminOperation.getUserActiveComponents(any(), any())).thenReturn(new LinkedList<>()); + when(userAdminOperation.deActivateUser(deacUser)).thenReturn(deacUser); + User user = testSubject.deActivateUser(MOCK_MODIFIER, userUniqueIdToDeactivate); + assertThat(user.getUserId()).isEqualTo(userUniqueIdToDeactivate); + + verify(facadeUserOperation).updateUserCache(UserOperationEnum.DEACTIVATE, deacUser.getUserId(), deacUser.getRole()); + } + + @Test(expected = ComponentException.class) + public void testDeActivateUser_AlreadyInactive() { + User modifier = new User(MOCK_MODIFIER); + modifier.setRole(UserRoleEnum.ADMIN.getName()); + String userUniqueIdToDeactivate = "mockDU"; + User deacUser = new User(); + deacUser.setStatus(UserStatusEnum.INACTIVE); + + when(userAdminOperation.getUserData(MOCK_MODIFIER, false)).thenReturn(Either.left(modifier)); + when(userAdminOperation.getUserData("mockDU", false)).thenReturn(Either.left(deacUser)); + testSubject.deActivateUser(MOCK_MODIFIER, userUniqueIdToDeactivate); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + + +}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/user/UserBusinessLogicTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/user/UserBusinessLogicTest.java index 06070b2e18..43d2998096 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/user/UserBusinessLogicTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/user/UserBusinessLogicTest.java @@ -20,859 +20,735 @@ package org.openecomp.sdc.be.user; +import com.google.common.collect.Lists; import fj.data.Either; -import mockit.Deencapsulation; +import org.apache.commons.lang3.StringUtils; import org.apache.tinkerpop.gremlin.structure.Edge; import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedEdge; import org.javatuples.Pair; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; +import org.mockito.junit.MockitoJUnitRunner; +import org.openecomp.sdc.be.components.impl.ResponseFormatManager; +import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; +import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.dao.api.ActionStatus; -import org.openecomp.sdc.be.dao.janusgraph.JanusGraphGenericDao; import org.openecomp.sdc.be.dao.utils.UserStatusEnum; +import org.openecomp.sdc.be.facade.operations.UserOperation; import org.openecomp.sdc.be.impl.ComponentsUtils; +import org.openecomp.sdc.be.model.LifecycleStateEnum; import org.openecomp.sdc.be.model.User; -import org.openecomp.sdc.be.model.operations.api.IUserAdminOperation; +import org.openecomp.sdc.be.model.operations.StorageException; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; +import org.openecomp.sdc.be.model.operations.impl.UserAdminOperation; +import org.openecomp.sdc.common.api.ConfigurationSource; import org.openecomp.sdc.common.api.UserRoleEnum; -import org.openecomp.sdc.exception.ResponseFormat; +import org.openecomp.sdc.common.datastructure.UserContext; +import org.openecomp.sdc.common.impl.ExternalConfiguration; +import org.openecomp.sdc.common.impl.FSConfigurationSource; +import org.openecomp.sdc.common.util.ThreadLocalsHolder; -import javax.servlet.ServletContext; +import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.LinkedList; import java.util.List; - +import java.util.Set; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +@RunWith(MockitoJUnitRunner.class) public class UserBusinessLogicTest { - @InjectMocks - UserBusinessLogic testSubject; - @Mock - private IUserAdminOperation userAdminOperation; - @Mock - private ComponentsUtils componentsUtils; - @Mock - private JanusGraphGenericDao janusGraphDao; - - @Before - public void setUp() { - MockitoAnnotations.initMocks(this); - } - - @Test - public void testGetUser() throws Exception { - String userId = ""; - boolean inTransaction = false; - Either<User, ActionStatus> result; - - // default test - result = testSubject.getUser(userId, inTransaction); - } - - @Test - public void testCreateUser() throws Exception { - User modifier = new User(); - User newUser = new User(); - Either<User, ResponseFormat> result; - - // default test - result = testSubject.createUser(modifier, newUser); - } - - @Test - public void testCreateUserErrorGetUser() throws Exception { - User modifier = new User(); - User newUser = new User(); - Either<User, ResponseFormat> result; - - Either<User, ActionStatus> value = Either.right(ActionStatus.USER_NOT_FOUND); - Mockito.when(userAdminOperation.getUserData(Mockito.anyString(), Mockito.anyBoolean())).thenReturn(value); - - // default test - modifier.setUserId("mock"); - result = testSubject.createUser(modifier, newUser); - } - - @Test - public void testCreateUserErrorUserNotAdmin() throws Exception { - User modifier = new User(); - User newUser = new User(); - Either<User, ResponseFormat> result; - - User userFromDb = new User(); - userFromDb.setRole(UserRoleEnum.DESIGNER.getName()); - Either<User, ActionStatus> value = Either.left(userFromDb); - Mockito.when(userAdminOperation.getUserData(Mockito.anyString(), Mockito.anyBoolean())).thenReturn(value); - - // default test - modifier.setUserId("mock"); - result = testSubject.createUser(modifier, newUser); - } - - @Test - public void testCreateErrorCheckingNewUser() throws Exception { - User modifier = new User(); - User newUser = new User(); - Either<User, ResponseFormat> result; - - User userFromDb = new User(); - userFromDb.setRole(UserRoleEnum.ADMIN.getName()); - Either<User, ActionStatus> value = Either.left(userFromDb); - Either<User, ActionStatus> value2 = Either.right(ActionStatus.AUTH_REQUIRED); - Mockito.when(userAdminOperation.getUserData("mockModif", false)).thenReturn(value); - Mockito.when(userAdminOperation.getUserData("mockNewUs", false)).thenReturn(value2); - - // default test - modifier.setUserId("mockModif"); - newUser.setUserId("mockNewUs"); - result = testSubject.createUser(modifier, newUser); - } - - @Test - public void testCreateErrorCheckingNewUser2() throws Exception { - User modifier = new User(); - User newUser = new User(); - Either<User, ResponseFormat> result; - - User userFromDb = new User(); - userFromDb.setRole(UserRoleEnum.ADMIN.getName()); - Either<User, ActionStatus> value = Either.left(userFromDb); - Either<User, ActionStatus> value2 = Either.right(ActionStatus.USER_ALREADY_EXIST); - Mockito.when(userAdminOperation.getUserData("mockModif", false)).thenReturn(value); - Mockito.when(userAdminOperation.getUserData("mockNewUs", false)).thenReturn(value2); - - // default test - modifier.setUserId("mockModif"); - newUser.setUserId("mockNewUs"); - result = testSubject.createUser(modifier, newUser); - } - - @Test - public void testCreate2() throws Exception { - User modifier = new User(); - User newUser = new User(); - Either<User, ResponseFormat> result; - - modifier.setUserId("mockModif"); - newUser.setUserId("mockNewUs"); - - User userFromDb = new User(); - userFromDb.setRole(UserRoleEnum.ADMIN.getName()); - Either<User, ActionStatus> value = Either.left(userFromDb); - - User userFromDb2 = new User(); - Either<User, ActionStatus> value2 = Either.left(userFromDb2); - Mockito.when(userAdminOperation.getUserData("mockModif", false)).thenReturn(value); - Mockito.when(userAdminOperation.getUserData("mockNewUs", false)).thenReturn(value2); - - // default test - result = testSubject.createUser(modifier, newUser); - } - - @Test - public void testCreateInvalidMail() throws Exception { - User modifier = new User(); - User newUser = new User(); - Either<User, ResponseFormat> result; - - modifier.setUserId("mockModif"); - newUser.setUserId("mockNewUs"); - newUser.setEmail("mock"); - - User userFromDbAdmin = new User(); - userFromDbAdmin.setRole(UserRoleEnum.ADMIN.getName()); - Either<User, ActionStatus> value = Either.left(userFromDbAdmin); - - User userFromDbNew = new User(); - userFromDbNew.setStatus(UserStatusEnum.INACTIVE); - Either<User, ActionStatus> value2 = Either.left(userFromDbNew); - Mockito.when(userAdminOperation.getUserData("mockModif", false)).thenReturn(value); - Mockito.when(userAdminOperation.getUserData("mockNewUs", false)).thenReturn(value2); - - // default test - result = testSubject.createUser(modifier, newUser); - } - - @Test - public void testCreateInvalidRole() throws Exception { - User modifier = new User(); - User newUser = new User(); - Either<User, ResponseFormat> result; - - modifier.setUserId("mockModif"); - newUser.setUserId("mockNewUs"); - newUser.setEmail("mock@mock.mock"); - newUser.setRole("mock"); - - User userFromDbAdmin = new User(); - userFromDbAdmin.setRole(UserRoleEnum.ADMIN.getName()); - Either<User, ActionStatus> value = Either.left(userFromDbAdmin); - - User userFromDbNew = new User(); - userFromDbNew.setStatus(UserStatusEnum.INACTIVE); - Either<User, ActionStatus> value2 = Either.left(userFromDbNew); - Mockito.when(userAdminOperation.getUserData("mockModif", false)).thenReturn(value); - Mockito.when(userAdminOperation.getUserData("mockNewUs", false)).thenReturn(value2); - - // default test - result = testSubject.createUser(modifier, newUser); - } - - @Test - public void testUpdateUserRoleNoId() throws Exception { - User modifier = new User(); - String userIdToUpdate = ""; - String userRole = ""; - Either<User, ResponseFormat> result; - - // default test - result = testSubject.updateUserRole(modifier, userIdToUpdate, userRole); - } - - @Test - public void testUpdateUserRoleNotFound() throws Exception { - User modifier = new User(); - modifier.setUserId("mock"); - String userIdToUpdate = ""; - String userRole = ""; - Either<User, ResponseFormat> result; - - Either<User, ActionStatus> value = Either.right(ActionStatus.USER_NOT_FOUND); - Mockito.when(userAdminOperation.getUserData(modifier.getUserId(), false)).thenReturn(value); - - // default test - result = testSubject.updateUserRole(modifier, userIdToUpdate, userRole); - } - - @Test - public void testUpdateUserRoleModifWrongRole() throws Exception { - User modifier = new User(); - modifier.setUserId("mock"); - modifier.setRole(UserRoleEnum.DESIGNER.getName()); - String userIdToUpdate = ""; - String userRole = ""; - Either<User, ResponseFormat> result; - - Either<User, ActionStatus> value = Either.left(modifier); - Mockito.when(userAdminOperation.getUserData(modifier.getUserId(), false)).thenReturn(value); - - // default test - result = testSubject.updateUserRole(modifier, userIdToUpdate, userRole); - } - - @Test - public void testUpdateUserRoleSameId() throws Exception { - User modifier = new User(); - modifier.setUserId("mock"); - modifier.setRole(UserRoleEnum.ADMIN.getName()); - String userIdToUpdate = "mock"; - String userRole = ""; - Either<User, ResponseFormat> result; - - Either<User, ActionStatus> value = Either.left(modifier); - Mockito.when(userAdminOperation.getUserData(modifier.getUserId(), false)).thenReturn(value); - - // default test - result = testSubject.updateUserRole(modifier, userIdToUpdate, userRole); - } - - @Test - public void testUpdateUserRoleUpdatedNotFound() throws Exception { - User modifier = new User(); - modifier.setUserId("mock"); - modifier.setRole(UserRoleEnum.ADMIN.getName()); - String userIdToUpdate = "mock1"; - String userRole = ""; - Either<User, ResponseFormat> result; - - Either<User, ActionStatus> value = Either.left(modifier); - Either<User, ActionStatus> value2 = Either.right(ActionStatus.ECOMP_USER_NOT_FOUND); - Mockito.when(userAdminOperation.getUserData(modifier.getUserId(), false)).thenReturn(value); - Mockito.when(userAdminOperation.getUserData(userIdToUpdate, false)).thenReturn(value2); - - // default test - result = testSubject.updateUserRole(modifier, userIdToUpdate, userRole); - } - - @Test - public void testUpdateUserRoleUpdatedToInvalidRole() throws Exception { - User modifier = new User(); - modifier.setUserId("mock"); - modifier.setRole(UserRoleEnum.ADMIN.getName()); - String userIdToUpdate = "mock1"; - String userRole = ""; - Either<User, ResponseFormat> result; - - Either<User, ActionStatus> value = Either.left(modifier); - Mockito.when(userAdminOperation.getUserData(modifier.getUserId(), false)).thenReturn(value); - Mockito.when(userAdminOperation.getUserData(userIdToUpdate, false)).thenReturn(value); - - // default test - result = testSubject.updateUserRole(modifier, userIdToUpdate, userRole); - } - - @Test - public void testUpdateUserRolePendingTaskFailed() throws Exception { - User modifier = new User(); - modifier.setUserId("mock"); - modifier.setRole(UserRoleEnum.ADMIN.getName()); - String userIdToUpdate = "mock1"; - String userRole = UserRoleEnum.DESIGNER.getName(); - Either<User, ResponseFormat> result; - - User updatedUser = new User(); - updatedUser.setUserId(userIdToUpdate); - updatedUser.setRole(UserRoleEnum.TESTER.getName()); - - Either<User, ActionStatus> value = Either.left(modifier); - Either<User, ActionStatus> value2 = Either.left(updatedUser); - Mockito.when(userAdminOperation.getUserData(modifier.getUserId(), false)).thenReturn(value); - Mockito.when(userAdminOperation.getUserData(userIdToUpdate, false)).thenReturn(value2); - - Either<List<Edge>, StorageOperationStatus> value3 = Either.right(StorageOperationStatus.INCONSISTENCY); - Mockito.when(userAdminOperation.getUserPendingTasksList(Mockito.any(), Mockito.any())).thenReturn(value3); - - // default test - result = testSubject.updateUserRole(modifier, userIdToUpdate, userRole); - } - - @Test - public void testUpdateUserRoleListOfTasksNotEmpty() throws Exception { - User modifier = new User(); - modifier.setUserId("mock"); - modifier.setRole(UserRoleEnum.ADMIN.getName()); - String userIdToUpdate = "mock1"; - String userRole = UserRoleEnum.DESIGNER.getName(); - Either<User, ResponseFormat> result; - - User updatedUser = new User(); - updatedUser.setUserId(userIdToUpdate); - updatedUser.setRole(UserRoleEnum.TESTER.getName()); - - Either<User, ActionStatus> value = Either.left(modifier); - Either<User, ActionStatus> value2 = Either.left(updatedUser); - Mockito.when(userAdminOperation.getUserData(modifier.getUserId(), false)).thenReturn(value); - Mockito.when(userAdminOperation.getUserData(userIdToUpdate, false)).thenReturn(value2); - List<Edge> list = new LinkedList<>(); - - list.add(new DetachedEdge("sdas", "fdfs", new HashMap<>(),"sadas","sadasd", - "sadas","sadasd" )); - Either<List<Edge>, StorageOperationStatus> value3 = Either.left(list); - Mockito.when(userAdminOperation.getUserPendingTasksList(Mockito.any(), Mockito.any())).thenReturn(value3); - - // default test - result = testSubject.updateUserRole(modifier, userIdToUpdate, userRole); - } - - @Test - public void testUpdateUserRoleFailToUpdate() throws Exception { - User modifier = new User(); - modifier.setUserId("mock"); - modifier.setRole(UserRoleEnum.ADMIN.getName()); - String userIdToUpdate = "mock1"; - String userRole = UserRoleEnum.DESIGNER.getName(); - Either<User, ResponseFormat> result; - - User updatedUser = new User(); - updatedUser.setUserId(userIdToUpdate); - updatedUser.setRole(UserRoleEnum.TESTER.getName()); - - Either<User, ActionStatus> value = Either.left(modifier); - Either<User, ActionStatus> value2 = Either.left(updatedUser); - Mockito.when(userAdminOperation.getUserData(modifier.getUserId(), false)).thenReturn(value); - Mockito.when(userAdminOperation.getUserData(userIdToUpdate, false)).thenReturn(value2); - List<Edge> list = new LinkedList<>(); - - Either<List<Edge>, StorageOperationStatus> value3 = Either.left(list); - Mockito.when(userAdminOperation.getUserPendingTasksList(Mockito.any(), Mockito.any())).thenReturn(value3); - Either<User, StorageOperationStatus> value4 = Either.right(StorageOperationStatus.INCONSISTENCY); - Mockito.when(userAdminOperation.updateUserData(Mockito.any())).thenReturn(value4); - // default test - result = testSubject.updateUserRole(modifier, userIdToUpdate, userRole); - } - - @Test - public void testUpdateUserRole() throws Exception { - User modifier = new User(); - modifier.setUserId("mock"); - modifier.setRole(UserRoleEnum.ADMIN.getName()); - String userIdToUpdate = "mock1"; - String userRole = UserRoleEnum.DESIGNER.getName(); - Either<User, ResponseFormat> result; - - User updatedUser = new User(); - updatedUser.setUserId(userIdToUpdate); - updatedUser.setRole(UserRoleEnum.TESTER.getName()); - - Either<User, ActionStatus> value = Either.left(modifier); - Either<User, ActionStatus> value2 = Either.left(updatedUser); - Mockito.when(userAdminOperation.getUserData(modifier.getUserId(), false)).thenReturn(value); - Mockito.when(userAdminOperation.getUserData(userIdToUpdate, false)).thenReturn(value2); - List<Edge> list = new LinkedList<>(); - - Either<List<Edge>, StorageOperationStatus> value3 = Either.left(list); - Mockito.when(userAdminOperation.getUserPendingTasksList(Mockito.any(), Mockito.any())).thenReturn(value3); - Either<User, StorageOperationStatus> value4 = Either.left(updatedUser); - Mockito.when(userAdminOperation.updateUserData(Mockito.any())).thenReturn(value4); - // default test - result = testSubject.updateUserRole(modifier, userIdToUpdate, userRole); - } - - @Test - public void testGetAllAdminUsers() throws Exception { - ServletContext context = null; - Either<List<User>, ResponseFormat> result; - - Either<List<User>, ActionStatus> response = Either.left(new LinkedList<>()); - Mockito.when(userAdminOperation.getAllUsersWithRole(Mockito.anyString(), Mockito.nullable(String.class))) - .thenReturn(response); - // default test - result = testSubject.getAllAdminUsers(); - } - - @Test - public void testGetAllAdminUsersFail() throws Exception { - ServletContext context = null; - Either<List<User>, ResponseFormat> result; - - Either<List<User>, ActionStatus> response = Either.right(ActionStatus.NOT_ALLOWED); - Mockito.when(userAdminOperation.getAllUsersWithRole(Mockito.anyString(), Mockito.nullable(String.class))) - .thenReturn(response); - // default test - result = testSubject.getAllAdminUsers(); - } - - @Test - public void testGetUsersList1() throws Exception { - String modifierAttId = ""; - List<String> roles = null; - String rolesStr = ""; - Either<List<User>, ResponseFormat> result; - - // test 1 - modifierAttId = null; - result = testSubject.getUsersList(modifierAttId, roles, rolesStr); - } - - @Test - public void testGetUsersListFail() throws Exception { - String modifierAttId = "mockMod"; - List<String> roles = null; - String rolesStr = ""; - Either<List<User>, ResponseFormat> result; - - Either<User, ActionStatus> value3 = Either.right(ActionStatus.ILLEGAL_COMPONENT_STATE); - Mockito.when(userAdminOperation.getUserData(modifierAttId, false)).thenReturn(value3); - - result = testSubject.getUsersList(modifierAttId, roles, rolesStr); - } - - @Test - public void testGetUsersListFail2() throws Exception { - String modifierAttId = "mockMod"; - List<String> roles = null; - String rolesStr = ""; - Either<List<User>, ResponseFormat> result; - - Either<User, ActionStatus> value3 = Either.right(ActionStatus.USER_NOT_FOUND); - Mockito.when(userAdminOperation.getUserData(modifierAttId, false)).thenReturn(value3); - - result = testSubject.getUsersList(modifierAttId, roles, rolesStr); - } - - - @Test - public void testGetUsersList() throws Exception { - String modifierAttId = "mockMod"; - List<String> roles = new LinkedList<>(); - String rolesStr = ""; - Either<List<User>, ResponseFormat> result; - - User a = new User(); - Either<User, ActionStatus> value3 = Either.left(a); - Mockito.when(userAdminOperation.getUserData(modifierAttId, false)).thenReturn(value3); - Either<List<User>, ActionStatus> value = Either.left(new LinkedList<>()); - Mockito.when(userAdminOperation.getAllUsersWithRole(Mockito.nullable(String.class), Mockito.anyString())) - .thenReturn(value); - - result = testSubject.getUsersList(modifierAttId, roles, rolesStr); - } - - @Test - public void testGetUsersListInvalidRole() throws Exception { - String modifierAttId = "mockMod"; - List<String> roles = new LinkedList<>(); - roles.add("mock"); - String rolesStr = ""; - Either<List<User>, ResponseFormat> result; - - User a = new User(); - Either<User, ActionStatus> value3 = Either.left(a); - Mockito.when(userAdminOperation.getUserData(modifierAttId, false)).thenReturn(value3); - Either<List<User>, ActionStatus> value = Either.left(new LinkedList<>()); - Mockito.when(userAdminOperation.getAllUsersWithRole(Mockito.nullable(String.class), Mockito.anyString())) - .thenReturn(value); - - result = testSubject.getUsersList(modifierAttId, roles, rolesStr); - } - - @Test - public void testGetUsersList2() throws Exception { - String modifierAttId = "mockMod"; - List<String> roles = new LinkedList<>(); - roles.add(UserRoleEnum.DESIGNER.name()); - String rolesStr = ""; - Either<List<User>, ResponseFormat> result; - - User a = new User(); - Either<User, ActionStatus> value3 = Either.left(a); - Mockito.when(userAdminOperation.getUserData(modifierAttId, false)).thenReturn(value3); - Either<List<User>, ActionStatus> value = Either.left(new LinkedList<>()); - Mockito.when(userAdminOperation.getAllUsersWithRole(Mockito.nullable(String.class), Mockito.anyString())) - .thenReturn(value); - - result = testSubject.getUsersList(modifierAttId, roles, rolesStr); - } - - - @Test - public void testDeActivateUserMissingID() throws Exception { - User modifier = new User(); - modifier.setUserId(null); - String userUniuqeIdToDeactive = ""; - Either<User, ResponseFormat> result; - - // default test - result = testSubject.deActivateUser(modifier, userUniuqeIdToDeactive); - } - - @Test - public void testDeActivateUserModifierNotFound() throws Exception { - User modifier = new User(); - modifier.setUserId("mockMod"); - String userUniuqeIdToDeactive = ""; - Either<User, ResponseFormat> result; - - Either<User, ActionStatus> value = Either.right(ActionStatus.USER_NOT_FOUND); - Mockito.when(userAdminOperation.getUserData("mockMod", false)).thenReturn(value); - - // default test - result = testSubject.deActivateUser(modifier, userUniuqeIdToDeactive); - } - - @Test - public void testDeActivateUserModNotAdmin() throws Exception { - - User modifier = new User(); - modifier.setUserId("mockMod"); - modifier.setRole(UserRoleEnum.DESIGNER.getName()); - String userUniuqeIdToDeactive = ""; - Either<User, ResponseFormat> result; - - Either<User, ActionStatus> value = Either.left(modifier); - Mockito.when(userAdminOperation.getUserData("mockMod", false)).thenReturn(value); - - // default test - result = testSubject.deActivateUser(modifier, userUniuqeIdToDeactive); - } - - @Test - public void testDeActivateUserDeacUserNotFound() throws Exception { - - User modifier = new User(); - modifier.setUserId("mockMod"); - modifier.setRole(UserRoleEnum.ADMIN.getName()); - String userUniuqeIdToDeactive = "mockDU"; - Either<User, ResponseFormat> result; - - Either<User, ActionStatus> value = Either.left(modifier); - Mockito.when(userAdminOperation.getUserData("mockMod", false)).thenReturn(value); - Either<User, ActionStatus> value2 = Either.right(ActionStatus.USER_NOT_FOUND); - Mockito.when(userAdminOperation.getUserData("mockDU", false)).thenReturn(value2); - - // default test - result = testSubject.deActivateUser(modifier, userUniuqeIdToDeactive); - } - - @Test - public void testDeActivateUserDeacAndModSame() throws Exception { - - User modifier = new User(); - modifier.setUserId("mockMod"); - modifier.setRole(UserRoleEnum.ADMIN.getName()); - String userUniuqeIdToDeactive = "mockMod"; - Either<User, ResponseFormat> result; - - Either<User, ActionStatus> value = Either.left(modifier); - Mockito.when(userAdminOperation.getUserData("mockMod", false)).thenReturn(value); - Either<User, ActionStatus> value2 = Either.left(modifier); - Mockito.when(userAdminOperation.getUserData("mockDU", false)).thenReturn(value2); - - // default test - result = testSubject.deActivateUser(modifier, userUniuqeIdToDeactive); - } - - @Test - public void testDeActivateUserAlreadyInactive() throws Exception { - - User modifier = new User(); - modifier.setUserId("mockMod"); - modifier.setRole(UserRoleEnum.ADMIN.getName()); - String userUniuqeIdToDeactive = "mockDU"; - User deacUser = new User(); - deacUser.setStatus(UserStatusEnum.INACTIVE); - Either<User, ResponseFormat> result; - - Either<User, ActionStatus> value = Either.left(modifier); - Mockito.when(userAdminOperation.getUserData("mockMod", false)).thenReturn(value); - Either<User, ActionStatus> value2 = Either.left(deacUser); - Mockito.when(userAdminOperation.getUserData("mockDU", false)).thenReturn(value2); - - // default test - result = testSubject.deActivateUser(modifier, userUniuqeIdToDeactive); - } - - @Test - public void testDeActivateUserFailToGetTasks() throws Exception { - - User modifier = new User(); - modifier.setUserId("mockMod"); - modifier.setRole(UserRoleEnum.ADMIN.getName()); - String userUniuqeIdToDeactive = "mockDU"; - User deacUser = new User(); - deacUser.setStatus(UserStatusEnum.ACTIVE); - deacUser.setRole(UserRoleEnum.DESIGNER.name()); - Either<User, ResponseFormat> result; - - Either<User, ActionStatus> value = Either.left(modifier); - Mockito.when(userAdminOperation.getUserData("mockMod", false)).thenReturn(value); - Either<User, ActionStatus> value2 = Either.left(deacUser); - Mockito.when(userAdminOperation.getUserData("mockDU", false)).thenReturn(value2); - Either<List<Edge>, StorageOperationStatus> value3 = Either.right(StorageOperationStatus.INCONSISTENCY); - Mockito.when(userAdminOperation.getUserPendingTasksList(Mockito.any(), Mockito.any())).thenReturn(value3); - - // default test - result = testSubject.deActivateUser(modifier, userUniuqeIdToDeactive); - } - - @Test - public void testDeActivateUserWithPendingTasks() throws Exception { - - User modifier = new User(); - modifier.setUserId("mockMod"); - modifier.setRole(UserRoleEnum.ADMIN.getName()); - String userUniuqeIdToDeactive = "mockDU"; - User deacUser = new User(); - deacUser.setStatus(UserStatusEnum.ACTIVE); - deacUser.setRole(UserRoleEnum.DESIGNER.name()); - Either<User, ResponseFormat> result; - - Either<User, ActionStatus> value = Either.left(modifier); - Mockito.when(userAdminOperation.getUserData("mockMod", false)).thenReturn(value); - Either<User, ActionStatus> value2 = Either.left(deacUser); - Mockito.when(userAdminOperation.getUserData("mockDU", false)).thenReturn(value2); - LinkedList<Edge> a = new LinkedList<>(); - a.add(new DetachedEdge(userUniuqeIdToDeactive, userUniuqeIdToDeactive, new HashMap<>(), - "dsfds","dsfds", "dsfds", "dsfds")); - Either<List<Edge>, StorageOperationStatus> value3 = Either.left(a); - Mockito.when(userAdminOperation.getUserPendingTasksList(Mockito.any(), Mockito.any())).thenReturn(value3); - - // default test - result = testSubject.deActivateUser(modifier, userUniuqeIdToDeactive); - } - - @Test - public void testDeActivateUserDeacFail() throws Exception { - - User modifier = new User(); - modifier.setUserId("mockMod"); - modifier.setRole(UserRoleEnum.ADMIN.getName()); - String userUniuqeIdToDeactive = "mockDU"; - User deacUser = new User(); - deacUser.setStatus(UserStatusEnum.ACTIVE); - deacUser.setRole(UserRoleEnum.DESIGNER.name()); - Either<User, ResponseFormat> result; - - Either<User, ActionStatus> value = Either.left(modifier); - Mockito.when(userAdminOperation.getUserData("mockMod", false)).thenReturn(value); - Either<User, ActionStatus> value2 = Either.left(deacUser); - Mockito.when(userAdminOperation.getUserData("mockDU", false)).thenReturn(value2); - Either<List<Edge>, StorageOperationStatus> value3 = Either.left(new LinkedList<>()); - Mockito.when(userAdminOperation.getUserPendingTasksList(Mockito.any(), Mockito.any())).thenReturn(value3); - Either<User, StorageOperationStatus> value4 = Either.right(StorageOperationStatus.BAD_REQUEST); - Mockito.when(userAdminOperation.deActivateUser(deacUser)).thenReturn(value4); - // default test - result = testSubject.deActivateUser(modifier, userUniuqeIdToDeactive); - } - - @Test - public void testDeActivateUser() throws Exception { - - User modifier = new User(); - modifier.setUserId("mockMod"); - modifier.setRole(UserRoleEnum.ADMIN.getName()); - String userUniuqeIdToDeactive = "mockDU"; - User deacUser = new User(); - deacUser.setStatus(UserStatusEnum.ACTIVE); - deacUser.setRole(UserRoleEnum.DESIGNER.name()); - Either<User, ResponseFormat> result; - - Either<User, ActionStatus> value = Either.left(modifier); - Mockito.when(userAdminOperation.getUserData("mockMod", false)).thenReturn(value); - Either<User, ActionStatus> value2 = Either.left(deacUser); - Mockito.when(userAdminOperation.getUserData("mockDU", false)).thenReturn(value2); - Either<List<Edge>, StorageOperationStatus> value3 = Either.left(new LinkedList<>()); - Mockito.when(userAdminOperation.getUserPendingTasksList(Mockito.any(), Mockito.any())).thenReturn(value3); - Either<User, StorageOperationStatus> value4 = Either.left(deacUser); - Mockito.when(userAdminOperation.deActivateUser(deacUser)).thenReturn(value4); - // default test - result = testSubject.deActivateUser(modifier, userUniuqeIdToDeactive); - } - - @Test - public void testAuthorizeMissingId() throws Exception { - User authUser = new User(); - Either<User, ResponseFormat> result; - - // default test - result = testSubject.authorize(authUser); - } - - @Test - public void testAuthorizeFail1() throws Exception { - User authUser = new User(); - authUser.setUserId("mockAU"); - Either<User, ResponseFormat> result; - - Either<User, ActionStatus> value = Either.right(ActionStatus.USER_NOT_FOUND); - Mockito.when(userAdminOperation.getUserData("mockAU", false)).thenReturn(value); - // default test - result = testSubject.authorize(authUser); - } - - @Test - public void testAuthorizeFail2() throws Exception { - User authUser = new User(); - authUser.setUserId("mockAU"); - Either<User, ResponseFormat> result; - - Either<User, ActionStatus> value = Either.right(ActionStatus.AAI_ARTIFACT_GENERATION_FAILED); - Mockito.when(userAdminOperation.getUserData("mockAU", false)).thenReturn(value); - // default test - result = testSubject.authorize(authUser); - } - - @Test - public void testAuthorizeFail3() throws Exception { - User authUser = new User(); - authUser.setUserId("mockAU"); - Either<User, ResponseFormat> result; - - Either<User, ActionStatus> value = Either.left(null); - Mockito.when(userAdminOperation.getUserData("mockAU", false)).thenReturn(value); - // default test - result = testSubject.authorize(authUser); - } - - - @Test - public void testAuthorize5() throws Exception { - User authUser = new User(); - authUser.setUserId("mockAU"); - Either<User, ResponseFormat> result; - - Either<User, ActionStatus> value = Either.left(authUser); - Mockito.when(userAdminOperation.getUserData("mockAU", false)).thenReturn(value); - Either<User, StorageOperationStatus> value2 = Either.left(authUser); - Mockito.when(userAdminOperation.updateUserData(Mockito.any(User.class))).thenReturn(value2); - // default test - result = testSubject.authorize(authUser); - } - - @Test - public void testUpdateUserCredentialsMissingId() throws Exception { - User updatedUserCred = new User(); - updatedUserCred.setUserId(null); - Either<User, ResponseFormat> result; - - // default test - result = testSubject.updateUserCredentials(updatedUserCred); - } - - @Test - public void testUpdateUserCredentialsFailedToGet() throws Exception { - User updatedUserCred = new User(); - updatedUserCred.setUserId("mock"); - Either<User, ResponseFormat> result; - - Either<User, ActionStatus> value = Either.right(ActionStatus.USER_NOT_FOUND); - Mockito.when(userAdminOperation.getUserData("mock", false)).thenReturn(value); - - // default test - result = testSubject.updateUserCredentials(updatedUserCred); - } - - @Test - public void testUpdateUserCredentialsFailedToGet2() throws Exception { - User updatedUserCred = new User(); - updatedUserCred.setUserId("mock"); - Either<User, ResponseFormat> result; - - Either<User, ActionStatus> value = Either.right(ActionStatus.ADDITIONAL_INFORMATION_ALREADY_EXISTS); - Mockito.when(userAdminOperation.getUserData("mock", false)).thenReturn(value); - - // default test - result = testSubject.updateUserCredentials(updatedUserCred); - } - - @Test - public void testUpdateUserCredentialsFailedToGet3() throws Exception { - User updatedUserCred = new User(); - updatedUserCred.setUserId("mock"); - Either<User, ResponseFormat> result; - - Either<User, ActionStatus> value = Either.left(null); - Mockito.when(userAdminOperation.getUserData("mock", false)).thenReturn(value); - - // default test - result = testSubject.updateUserCredentials(updatedUserCred); - } - - @Test - public void testUpdateUserCredentials() throws Exception { - User updatedUserCred = new User(); - updatedUserCred.setUserId("mock"); - Either<User, ResponseFormat> result; - - Either<User, ActionStatus> value = Either.left(updatedUserCred); - Mockito.when(userAdminOperation.getUserData("mock", false)).thenReturn(value); - - Either<User, StorageOperationStatus> value2 = Either.left(updatedUserCred); - Mockito.when(userAdminOperation.updateUserData(Mockito.any(User.class))).thenReturn(value2); - - // default test - result = testSubject.updateUserCredentials(updatedUserCred); - } - - @Test - public void testGetPendingUserPendingTasksWithCommit() throws Exception { - Either<List<Edge>, StorageOperationStatus> result; - User user = new User(); - for (UserRoleEnum iterable_element : UserRoleEnum.values()) { - user.setRole(iterable_element.name()); - result = Deencapsulation.invoke(testSubject, "getPendingUserPendingTasksWithCommit", user); - } - - } - - @Test - public void testGetUserPendingTaskStatusByRole() throws Exception { - String result; - for (UserRoleEnum iterable_element : UserRoleEnum.values()) { - result = Deencapsulation.invoke(testSubject, "getUserPendingTaskStatusByRole", iterable_element); - } - } + private static final String MOCK_MAIL = "mock@mock.mock"; + private static final String MOCK_MODIFIER = "mockModif"; + private static final String MOCK_NEW_USER = "mockNewUs"; + @Mock + private UserAdminOperation userAdminOperation; + @Mock + private ComponentsUtils componentsUtils; + @Mock + private UserOperation facadeUserOperation; + @Mock + private User user; + @Mock + private User userNull; + @InjectMocks + private UserBusinessLogic testSubject; + + static ResponseFormatManager responseFormatManager = new ResponseFormatManager(); + private static ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be"); + static ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); + + @Before + public void setUp() { + doThrow(new ByActionStatusComponentException(ActionStatus.GENERAL_ERROR)).when(componentsUtils).auditAdminUserActionAndThrowException(any(), any(), any(), any(), any(), any()); + } + + @Test(expected = ComponentException.class) + public void testCreateUserErrorGetUser() { + User newUser = new User(); + when(userAdminOperation.getUserData(Mockito.anyString(), Mockito.anyBoolean())).thenReturn(Either.right(ActionStatus.USER_NOT_FOUND)); + // default test + testSubject.createUser("mock", newUser); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + +// @Test(expected = ComponentException.class) +// public void testGetUserContextNull() { +// testSubject.getUser("userId"); +// } + + @Test(expected = ComponentException.class) + public void testGetUserContextIdEmpty() { + UserContext userContext = new UserContext(null); + ThreadLocalsHolder.setUserContext(userContext); + + testSubject.getUser(null); + } + + @Test + public void testGetUserContext() { + UserContext originalUserContext = ThreadLocalsHolder.getUserContext(); + String userId = "userId"; + Set<String> userRoles = new HashSet<>(); + userRoles.add(Role.DESIGNER.name()); + UserContext userContext = new UserContext(userId, userRoles, "test" ,"User"); + + User user = new User(); + user.setUserId(userId); + user.setRole(Role.DESIGNER.name()); + user.setStatus(UserStatusEnum.ACTIVE); + user.setFirstName("test"); + user.setLastName("User"); + + getAndValidateUser(originalUserContext, userId, userContext, user); + } + + private void getAndValidateUser(UserContext originalUserContext, String userId, UserContext userContext, User user) { + try { + ThreadLocalsHolder.setUserContext(userContext); + User convertedUser = testSubject.getUser(userId); + assertThat(convertedUser).isEqualTo(user); + } + finally { + ThreadLocalsHolder.setUserContext(originalUserContext); + } + } + + @Test + public void testGetUserContextInActive() { + UserContext originalUserContext = ThreadLocalsHolder.getUserContext(); + String userId = "userId"; + //Set<String> userRoles = new HashSet<>(); + //userRoles.add(Role.DESIGNER.name()); + UserContext userContext = new UserContext(userId, null, "test" ,"User"); + + User user = new User(); + user.setUserId(userId); + user.setRole(null); + user.setStatus(UserStatusEnum.INACTIVE); + user.setFirstName("test"); + user.setLastName("User"); + + getAndValidateUser(originalUserContext, userId, userContext, user); + } + + @Test(expected = ComponentException.class) + public void testCreateUserErrorUserNotAdmin() { + User newUser = new User(); + User userFromDb = new User(); + userFromDb.setRole(UserRoleEnum.DESIGNER.getName()); + when(userAdminOperation.getUserData(Mockito.anyString(), Mockito.anyBoolean())).thenReturn(Either.left(userFromDb)); + testSubject.createUser("mock", newUser); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + + @Test(expected = ComponentException.class) + public void testCreateErrorCheckingNewUser() { + User newUser = new User(MOCK_NEW_USER); + User modifierFromDb = new User(MOCK_MODIFIER); + modifierFromDb.setRole(UserRoleEnum.ADMIN.getName()); + when(userAdminOperation.getUserData(MOCK_MODIFIER, false)).thenReturn(Either.left(modifierFromDb)); + when(userAdminOperation.getUserData(MOCK_NEW_USER, false)).thenReturn(Either.right(ActionStatus.AUTH_REQUIRED)); + + // default test + testSubject.createUser(MOCK_MODIFIER, newUser); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + + @Test(expected = ComponentException.class) + public void testCreateErrorCheckingNewUser2() { + User newUser = new User(MOCK_NEW_USER); + User modifierFromDb = new User(MOCK_MODIFIER); + modifierFromDb.setRole(UserRoleEnum.ADMIN.getName()); + when(userAdminOperation.getUserData(MOCK_MODIFIER, false)).thenReturn(Either.left(modifierFromDb)); + when(userAdminOperation.getUserData(MOCK_NEW_USER, false)).thenReturn(Either.right(ActionStatus.USER_ALREADY_EXIST)); + + // default test + testSubject.createUser(MOCK_MODIFIER, newUser); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + + @Test(expected = ComponentException.class) + public void testCreate_userExists_fails() { + User newUser = new User(MOCK_NEW_USER); + User modifierFromDb = new User(MOCK_MODIFIER); + modifierFromDb.setRole(UserRoleEnum.ADMIN.getName()); + User userFromDb2 = new User(); + when(userAdminOperation.getUserData(MOCK_MODIFIER, false)).thenReturn(Either.left(modifierFromDb)); + when(userAdminOperation.getUserData(MOCK_NEW_USER, false)).thenReturn(Either.left(userFromDb2)); + testSubject.createUser(MOCK_MODIFIER, newUser); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + + @Test(expected = ComponentException.class) + public void testCreateInvalidMail() { + User newUser = new User(MOCK_NEW_USER); + newUser.setEmail("mock"); + + User userFromDbAdmin = new User(MOCK_MODIFIER); + userFromDbAdmin.setRole(UserRoleEnum.ADMIN.getName()); + + User userFromDbNew = new User(); + userFromDbNew.setStatus(UserStatusEnum.INACTIVE); + when(userAdminOperation.getUserData(MOCK_MODIFIER, false)).thenReturn(Either.left(userFromDbAdmin)); + when(userAdminOperation.getUserData(MOCK_NEW_USER, false)).thenReturn(Either.left(userFromDbNew)); + testSubject.createUser(MOCK_MODIFIER, newUser); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + + @Test(expected = ComponentException.class) + public void testCreateInvalidRole() { + User newUser = new User(MOCK_NEW_USER); + newUser.setEmail(MOCK_MAIL); + newUser.setRole("mock"); + + User userFromDbAdmin = new User(MOCK_MODIFIER); + userFromDbAdmin.setRole(UserRoleEnum.ADMIN.getName()); + User userFromDbNew = new User(); + userFromDbNew.setStatus(UserStatusEnum.INACTIVE); + when(userAdminOperation.getUserData(MOCK_MODIFIER, false)).thenReturn(Either.left(userFromDbAdmin)); + when(userAdminOperation.getUserData(MOCK_NEW_USER, false)).thenReturn(Either.left(userFromDbNew)); + testSubject.createUser(MOCK_MODIFIER, newUser); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + + @Test + public void testCreateValidUser() throws Exception { + User newUser = new User(); + newUser.setUserId(MOCK_NEW_USER); + newUser.setEmail(MOCK_MAIL); + newUser.setRole(UserRoleEnum.DESIGNER.name()); + + User userFromDbAdmin = new User(); + userFromDbAdmin.setUserId(MOCK_MODIFIER); + userFromDbAdmin.setRole(UserRoleEnum.ADMIN.getName()); + Either<User, ActionStatus> value = Either.left(userFromDbAdmin); + + User userFromDbNew = new User(); + userFromDbNew.setStatus(UserStatusEnum.INACTIVE); + Either<User, ActionStatus> value2 = Either.right(ActionStatus.USER_NOT_FOUND); + when(userAdminOperation.getUserData(MOCK_MODIFIER, false)).thenReturn(value); + when(userAdminOperation.getUserData(MOCK_NEW_USER, false)).thenReturn(value2); + when(userAdminOperation.saveUserData(newUser)).thenReturn(newUser); + + // test + User resultUser = testSubject.createUser(MOCK_MODIFIER, newUser); + assertThat(resultUser).isEqualTo(newUser); + + verify(facadeUserOperation).updateUserCache(UserOperationEnum.CREATE, newUser.getUserId(), newUser.getRole()); + } + + @Test(expected = ComponentException.class) + public void testUpdateUserRoleNotFound() { + User modifier = new User(MOCK_MODIFIER); + String userIdToUpdate = ""; + String userRole = ""; + + when(userAdminOperation.getUserData(modifier.getUserId(), false)).thenReturn(Either.right(ActionStatus.USER_NOT_FOUND)); + testSubject.updateUserRole(MOCK_MODIFIER, userIdToUpdate, userRole); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + + @Test(expected = ComponentException.class) + public void testUpdateUserRoleModifierWrongRole() { + User modifier = new User(MOCK_MODIFIER); + modifier.setRole(UserRoleEnum.DESIGNER.getName()); + String userIdToUpdate = ""; + String userRole = ""; + + when(userAdminOperation.getUserData(modifier.getUserId(), false)).thenReturn(Either.left(modifier)); + testSubject.updateUserRole(MOCK_MODIFIER, userIdToUpdate, userRole); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + + @Test(expected = ComponentException.class) + public void testUpdateUserRoleSameId() { + User modifier = new User(MOCK_MODIFIER); + modifier.setRole(UserRoleEnum.ADMIN.getName()); + String userRole = ""; + + when(userAdminOperation.getUserData(modifier.getUserId(), false)).thenReturn(Either.left(modifier)); + testSubject.updateUserRole(MOCK_MODIFIER, MOCK_MODIFIER, userRole); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + + @Test(expected = ComponentException.class) + public void testUpdateUserRoleUpdatedNotFound() { + User modifier = new User(MOCK_MODIFIER); + modifier.setRole(UserRoleEnum.ADMIN.getName()); + String userIdToUpdate = "mock1"; + String userRole = ""; + + when(userAdminOperation.getUserData(modifier.getUserId(), false)).thenReturn(Either.left(modifier)); + when(userAdminOperation.getUserData(userIdToUpdate, false)).thenReturn(Either.right(ActionStatus.ECOMP_USER_NOT_FOUND)); + + testSubject.updateUserRole(MOCK_MODIFIER, userIdToUpdate, userRole); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + + @Test(expected = ComponentException.class) + public void testUpdateUserRoleUpdatedToInvalidRole() { + User modifier = new User(MOCK_MODIFIER); + modifier.setRole(UserRoleEnum.ADMIN.getName()); + String userIdToUpdate = "mock1"; + String userRole = ""; + + when(userAdminOperation.getUserData(modifier.getUserId(), false)).thenReturn(Either.left(modifier)); + when(userAdminOperation.getUserData(userIdToUpdate, false)).thenReturn(Either.left(modifier)); + + testSubject.updateUserRole(MOCK_MODIFIER, userIdToUpdate, userRole); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + + @Test(expected = StorageException.class) + public void testUpdateUserRolePendingTaskFetchFailed() { + User modifier = new User(MOCK_MODIFIER); + modifier.setRole(UserRoleEnum.ADMIN.getName()); + String userIdToUpdate = "mock1"; + String userRole = UserRoleEnum.DESIGNER.getName(); + + User updatedUser = new User(); + updatedUser.setUserId(userIdToUpdate); + updatedUser.setRole(UserRoleEnum.TESTER.getName()); + + when(userAdminOperation.getUserData(modifier.getUserId(), false)).thenReturn(Either.left(modifier)); + when(userAdminOperation.getUserData(userIdToUpdate, false)).thenReturn(Either.left(updatedUser)); + when(userAdminOperation.getUserPendingTasksList(Mockito.any(), Mockito.any())).thenThrow(new StorageException(StorageOperationStatus.INCONSISTENCY)); + + // default test + testSubject.updateUserRole(MOCK_MODIFIER, userIdToUpdate, userRole); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + + @Test + public void testUpdateTesterRole_taskStateCriteriaShouldBeEmpty_shouldSucceed() { + User modifier = new User(MOCK_MODIFIER); + modifier.setRole(UserRoleEnum.ADMIN.getName()); + String userIdToUpdate = "mock1"; + String userRole = UserRoleEnum.DESIGNER.getName(); + + User updatedUser = new User(userIdToUpdate); + updatedUser.setRole(UserRoleEnum.TESTER.getName()); + + User newUser = new User(); + newUser.setUserId(userIdToUpdate); + newUser.setRole(UserRoleEnum.DESIGNER.getName()); + List<Object> testerState = new ArrayList<>(); + when(userAdminOperation.getUserData(modifier.getUserId(), false)).thenReturn(Either.left(modifier)); + when(userAdminOperation.getUserData(userIdToUpdate, false)).thenReturn(Either.left(updatedUser)); + when(userAdminOperation.getUserPendingTasksList(eq(updatedUser), eq(testerState))).thenReturn(new LinkedList<>()); + when(userAdminOperation.updateUserData(newUser)).thenReturn(updatedUser); + + // default test + User user = testSubject.updateUserRole(MOCK_MODIFIER, userIdToUpdate, userRole); + assertThat(user).isEqualToComparingFieldByField(updatedUser); + + verify(facadeUserOperation).updateUserCache(UserOperationEnum.CHANGE_ROLE, userIdToUpdate, UserRoleEnum.TESTER.name()); + } + + @Test(expected = ComponentException.class) + public void testUpdateDesignerRoleListOfTasksNotEmpty_shouldFail() { + User modifier = new User(MOCK_MODIFIER); + modifier.setRole(UserRoleEnum.ADMIN.getName()); + String userIdToUpdate = "mock1"; + String userRole = UserRoleEnum.TESTER.getName(); + + User updatedUser = new User(); + updatedUser.setUserId(userIdToUpdate); + updatedUser.setRole(UserRoleEnum.DESIGNER.getName()); + + List<Object> designerState = new ArrayList<>(); + designerState.add(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT.name()); + + when(userAdminOperation.getUserData(modifier.getUserId(), false)).thenReturn(Either.left(modifier)); + when(userAdminOperation.getUserData(userIdToUpdate, false)).thenReturn(Either.left(updatedUser)); + List<Edge> list = new LinkedList<>(); + list.add(new DetachedEdge("sdas", "fdfs", new HashMap<>(), Pair.with("sadas", "sadasd"), "", + Pair.with("sadas", "sadasd"), "")); + testSubject.updateUserRole(MOCK_MODIFIER, userIdToUpdate, userRole); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + + @Test(expected = StorageException.class) + public void testUpdateUserRoleStorageError_shouldFail() { + User modifier = new User(MOCK_MODIFIER); + modifier.setRole(UserRoleEnum.ADMIN.getName()); + String userIdToUpdate = "mock1"; + String userRole = UserRoleEnum.DESIGNER.getName(); + + User updatedUser = new User(userIdToUpdate); + updatedUser.setRole(UserRoleEnum.TESTER.getName()); + + when(userAdminOperation.getUserData(modifier.getUserId(), false)).thenReturn(Either.left(modifier)); + when(userAdminOperation.getUserData(userIdToUpdate, false)).thenReturn(Either.left(updatedUser)); + when(userAdminOperation.getUserPendingTasksList(Mockito.any(), Mockito.any())).thenReturn(new LinkedList<>()); + when(userAdminOperation.updateUserData(Mockito.any())).thenThrow(new StorageException(StorageOperationStatus.INCONSISTENCY)); + // default test + testSubject.updateUserRole(MOCK_MODIFIER, userIdToUpdate, userRole); + + verify(facadeUserOperation, never()).updateUserCache(any(UserOperationEnum.class), anyString(), anyString()); + } + + @Test + public void testUpdateUserRoleEmptyTaskList_shouldSucceed() { + User modifier = new User(MOCK_MODIFIER); + modifier.setRole(UserRoleEnum.ADMIN.getName()); + String userIdToUpdate = "mock1"; + String userRole = UserRoleEnum.DESIGNER.getName(); + + User updatedUser = new User(); + updatedUser.setUserId(userIdToUpdate); + updatedUser.setRole(UserRoleEnum.TESTER.getName()); + + when(userAdminOperation.getUserData(modifier.getUserId(), false)).thenReturn(Either.left(modifier)); + when(userAdminOperation.getUserData(userIdToUpdate, false)).thenReturn(Either.left(updatedUser)); + when(userAdminOperation.getUserPendingTasksList(Mockito.any(), Mockito.any())).thenReturn(new LinkedList<>()); + when(userAdminOperation.updateUserData(Mockito.any())).thenReturn(updatedUser); + testSubject.updateUserRole(MOCK_MODIFIER, userIdToUpdate, userRole); + + verify(facadeUserOperation).updateUserCache(UserOperationEnum.CHANGE_ROLE, userIdToUpdate, UserRoleEnum.TESTER.name()); + } + + @Test(expected = ComponentException.class) + public void testUpdateRoleToTester_shouldFail() { + User modifier = new User(MOCK_MODIFIER); + modifier.setRole(UserRoleEnum.ADMIN.getName()); + String userIdToUpdate = "mock1"; + String userRole = UserRoleEnum.TESTER.getName(); + + User updatedUser = new User(); + updatedUser.setUserId(userIdToUpdate); + updatedUser.setRole(UserRoleEnum.TESTER.getName()); + + when(userAdminOperation.getUserData(modifier.getUserId(), false)).thenReturn(Either.left(modifier)); + when(userAdminOperation.getUserData(userIdToUpdate, false)).thenReturn(Either.left(updatedUser)); + testSubject.updateUserRole(MOCK_MODIFIER, userIdToUpdate, userRole); + } + + @Test + public void testGetAllAdminUsers() { + Either<List<User>, ActionStatus> response = Either.left(new LinkedList<>()); + when(userAdminOperation.getAllUsersWithRole(anyString(), Mockito.nullable(String.class))) + .thenReturn(response); + assertEquals(0, testSubject.getAllAdminUsers().size()); + } + + @Test(expected = ComponentException.class) + public void testGetAllAdminUsersFail() { + Either<List<User>, ActionStatus> response = Either.right(ActionStatus.NOT_ALLOWED); + when(userAdminOperation.getAllUsersWithRole(anyString(), Mockito.nullable(String.class))) + .thenReturn(response); + testSubject.getAllAdminUsers(); + } + + @Test(expected = ComponentException.class) + public void testGetUsersList1() { + // test 1 + testSubject.getUsersList(null, null, ""); + } + + @Test(expected = ComponentException.class) + public void testGetUsersListFail() { + String modifierAttId = "mockMod"; + String rolesStr = ""; + + Either<User, ActionStatus> value3 = Either.right(ActionStatus.ILLEGAL_COMPONENT_STATE); + when(userAdminOperation.getUserData(modifierAttId, false)).thenReturn(value3); + testSubject.getUsersList(modifierAttId, null, rolesStr); + } + + @Test(expected = ComponentException.class) + public void testGetUsersListFail2() { + String modifierAttId = "mockMod"; + String rolesStr = ""; + + Either<User, ActionStatus> value3 = Either.right(ActionStatus.USER_NOT_FOUND); + when(userAdminOperation.getUserData(modifierAttId, false)).thenReturn(value3); + testSubject.getUsersList(modifierAttId, null, rolesStr); + } + + + @Test + public void testGetUsersList() { + String modifierAttId = "mockMod"; + List<String> roles = new LinkedList<>(); + String rolesStr = ""; + + User a = new User(); + Either<User, ActionStatus> value3 = Either.left(a); + when(userAdminOperation.getUserData(modifierAttId, false)).thenReturn(value3); + Either<List<User>, ActionStatus> value = Either.left(new LinkedList<>()); + when(userAdminOperation.getAllUsersWithRole(Mockito.nullable(String.class), anyString())) + .thenReturn(value); + + assertEquals(0, testSubject.getUsersList(modifierAttId, roles, rolesStr).size()); + } + + @Test(expected = ComponentException.class) + public void testGetUsersListInvalidRole() { + String modifierAttId = "mockMod"; + List<String> roles = new LinkedList<>(); + roles.add("mock"); + String rolesStr = ""; + + User a = new User(); + Either<User, ActionStatus> value3 = Either.left(a); + when(userAdminOperation.getUserData(modifierAttId, false)).thenReturn(value3); + testSubject.getUsersList(modifierAttId, roles, rolesStr); + } + + @Test(expected = ComponentException.class) + public void testAuthorizeMissingId() { + User authUser = new User(); + testSubject.authorize(authUser); + } + + @Test + public void testGetUsersList2() { + String modifierAttId = "mockMod"; + List<String> roles = new LinkedList<>(); + roles.add(UserRoleEnum.DESIGNER.name()); + String rolesStr = ""; + + User a = new User(); + Either<User, ActionStatus> value3 = Either.left(a); + when(userAdminOperation.getUserData(modifierAttId, false)).thenReturn(value3); + Either<List<User>, ActionStatus> value = Either.left(new LinkedList<>()); + when(userAdminOperation.getAllUsersWithRole(Mockito.nullable(String.class), anyString())) + .thenReturn(value); + + assertEquals(0, testSubject.getUsersList(modifierAttId, roles, rolesStr).size()); + } + + + @Test(expected = ComponentException.class) + public void testAuthorizeFail1() { + User authUser = new User(); + authUser.setUserId("mockAU"); + + Either<User, ActionStatus> value = Either.right(ActionStatus.USER_NOT_FOUND); + when(userAdminOperation.getUserData("mockAU", false)).thenReturn(value); + testSubject.authorize(authUser); + } + + @Test(expected = ComponentException.class) + public void testAuthorizeFail2() { + User authUser = new User(); + authUser.setUserId("mockAU"); + + Either<User, ActionStatus> value = Either.right(ActionStatus.AAI_ARTIFACT_GENERATION_FAILED); + when(userAdminOperation.getUserData("mockAU", false)).thenReturn(value); + testSubject.authorize(authUser); + } + + @Test(expected = ComponentException.class) + public void testAuthorizeFail3() { + User authUser = new User(); + authUser.setUserId("mockAU"); + + Either<User, ActionStatus> value = Either.left(null); + when(userAdminOperation.getUserData("mockAU", false)).thenReturn(value); + testSubject.authorize(authUser); + } + + + @Test + public void testAuthorize5() { + User authUser = new User(); + authUser.setUserId("mockAU"); + + Either<User, ActionStatus> value = Either.left(authUser); + when(userAdminOperation.getUserData("mockAU", false)).thenReturn(value); + when(userAdminOperation.updateUserData(Mockito.any(User.class))).thenReturn(authUser); + assertEquals(authUser.getUserId(), testSubject.authorize(authUser).getUserId()); + } + + @Test + public void testUpdateUserCredentialsMissingId() { + User updatedUserCred = new User(); + updatedUserCred.setUserId(null); + assertTrue(testSubject.updateUserCredentials(updatedUserCred).isRight()); + } + + @Test(expected = ComponentException.class) + public void testUpdateUserCredentialsFailedToGet() { + User updatedUserCred = new User(); + updatedUserCred.setUserId("mock"); + + Either<User, ActionStatus> value = Either.right(ActionStatus.USER_NOT_FOUND); + when(userAdminOperation.getUserData("mock", false)).thenReturn(value); + testSubject.updateUserCredentials(updatedUserCred); + } + + @Test(expected = ComponentException.class) + public void testUpdateUserCredentialsFailedToGet2() { + User updatedUserCred = new User(); + updatedUserCred.setUserId("mock"); + + Either<User, ActionStatus> value = Either.right(ActionStatus.ADDITIONAL_INFORMATION_ALREADY_EXISTS); + when(userAdminOperation.getUserData("mock", false)).thenReturn(value); + testSubject.updateUserCredentials(updatedUserCred); + } + + @Test(expected = ComponentException.class) + public void testUpdateUserCredentialsFailedToGet3() { + User updatedUserCred = new User(); + updatedUserCred.setUserId("mock"); + + Either<User, ActionStatus> value = Either.left(null); + when(userAdminOperation.getUserData("mock", false)).thenReturn(value); + testSubject.updateUserCredentials(updatedUserCred); + } + + @Test + public void testUpdateUserCredentials() { + User updatedUserCred = new User(); + updatedUserCred.setUserId("mock"); + + Either<User, ActionStatus> value = Either.left(updatedUserCred); + when(userAdminOperation.getUserData("mock", false)).thenReturn(value); + + when(userAdminOperation.updateUserData(Mockito.any(User.class))).thenReturn(updatedUserCred); + assertEquals(updatedUserCred.getUserId(), + testSubject.updateUserCredentials(updatedUserCred).left().value().getUserId()); + } + + @Test + public void getUsersPerRoleWhenListIsEmpty() { + when(userAdminOperation.getAllUsersWithRole(any(), any())) + .thenReturn(Either.left(Lists.newArrayList())); + assertEquals(0, testSubject.getUsersPerRole("all", user, "").left().value().size()); + } + + @Test + public void getUsersPerRoleWhenListHasMixedElements() { + List<User> users = Lists.newArrayList(user, userNull); + when(user.getUserId()).thenReturn("123"); + when(userNull.getUserId()).thenReturn(null); + when(userAdminOperation.getAllUsersWithRole(any(), any())) + .thenReturn(Either.left(users)); + List<User> result = testSubject.getUsersPerRole("all", user, "").left().value(); + + assertEquals(1, result.size()); + assertTrue(StringUtils.isNotEmpty(result.get(0).getUserId())); + } + + @Test + public void getUsersPerRoleWhenListHasNoneNullElements() { + List<User> users = Lists.newArrayList(user, user); + when(user.getUserId()).thenReturn("123"); + when(userAdminOperation.getAllUsersWithRole(any(), any())) + .thenReturn(Either.left(users)); + List<User> result = testSubject.getUsersPerRole("all", user, "").left().value(); + + assertEquals(2, result.size()); + assertTrue(StringUtils.isNotEmpty(result.get(0).getUserId()) && StringUtils.isNotEmpty(result.get(1).getUserId())); + } + + @Test + public void getUsersPerRoleWhenListHasNullElements() { + List<User> users = Lists.newArrayList(userNull); + when(userNull.getUserId()).thenReturn(null); + when(userAdminOperation.getAllUsersWithRole(any(), any())) + .thenReturn(Either.left(users)); + List<User> result = testSubject.getUsersPerRole("all", user, "").left().value(); + + assertEquals(0, result.size()); + } + + @Test + public void testHasActiveUserTrue() { + UserContext originalUserContext = null; + try { + originalUserContext = ThreadLocalsHolder.getUserContext(); + String userId = "mock"; + Set<String> userRoles = new HashSet<>(); + userRoles.add(Role.DESIGNER.name()); + UserContext userContext = new UserContext(userId, userRoles, "test" ,"User"); + ThreadLocalsHolder.setUserContext(userContext); + + assertThat(testSubject.hasActiveUser(userId)).isTrue(); + } finally { + ThreadLocalsHolder.setUserContext(originalUserContext); + } + } + + @Test + public void testHasActiveUserFalseNoRoles() { + UserContext originalUserContext = null; + try { + originalUserContext = ThreadLocalsHolder.getUserContext(); + String userId = "mock"; + Set<String> userRoles = new HashSet<>(); + UserContext userContext = new UserContext(userId, userRoles, "test" ,"User"); + ThreadLocalsHolder.setUserContext(userContext); + + assertThat(testSubject.hasActiveUser(userId)).isFalse(); + } finally { + ThreadLocalsHolder.setUserContext(originalUserContext); + } + } + + @Test + public void testHasActiveUserFalseNullUserContext() { + UserContext originalUserContext = null; + try { + originalUserContext = ThreadLocalsHolder.getUserContext(); + ThreadLocalsHolder.setUserContext(null); + + assertThat(testSubject.hasActiveUser(null)).isFalse(); + } finally { + ThreadLocalsHolder.setUserContext(originalUserContext); + } + } } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/common/transaction/impl/ESActionTest.java b/catalog-be/src/test/java/org/openecomp/sdc/common/transaction/impl/ESActionTest.java deleted file mode 100644 index a5ea7c388a..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/common/transaction/impl/ESActionTest.java +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * 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.openecomp.sdc.common.transaction.impl; - -import org.junit.Test; -import org.openecomp.sdc.be.dao.impl.ESCatalogDAO; -import org.openecomp.sdc.be.resources.data.ESArtifactData; -import org.openecomp.sdc.common.transaction.api.TransactionUtils.DBActionCodeEnum; -import org.openecomp.sdc.common.transaction.api.TransactionUtils.ESActionTypeEnum; -import org.openecomp.sdc.exception.IndexingServiceException; - -public class ESActionTest { - - @Test - public void testDoAction() throws Exception { - ESAction testSubject = new ESAction(new ESCatalogDAO(), new ESArtifactData(), ESActionTypeEnum.ADD_ARTIFACT);; - DBActionCodeEnum result; - - // default test - result = testSubject.doAction(); - } - - @Test(expected = IndexingServiceException.class) - public void testDoAction1() throws Exception { - ESAction testSubject = new ESAction(new ESCatalogDAO(), new ESArtifactData(), ESActionTypeEnum.REMOVE_ARTIFACT);; - DBActionCodeEnum result; - - // default test - result = testSubject.doAction(); - } -} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/common/transaction/impl/ESRollbackHandlerTest.java b/catalog-be/src/test/java/org/openecomp/sdc/common/transaction/impl/ESRollbackHandlerTest.java deleted file mode 100644 index de85b5cdee..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/common/transaction/impl/ESRollbackHandlerTest.java +++ /dev/null @@ -1,117 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * 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.openecomp.sdc.common.transaction.impl; - -import fj.data.Either; -import mockit.Deencapsulation; -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.openecomp.sdc.be.dao.api.ResourceUploadStatus; -import org.openecomp.sdc.be.dao.impl.ESCatalogDAO; -import org.openecomp.sdc.be.resources.data.ESArtifactData; -import org.openecomp.sdc.common.transaction.api.TransactionUtils.DBActionCodeEnum; -import org.openecomp.sdc.common.transaction.api.TransactionUtils.DBTypeEnum; -import org.openecomp.sdc.common.transaction.api.TransactionUtils.ESActionTypeEnum; -import org.openecomp.sdc.common.util.MethodActivationStatusEnum; - -public class ESRollbackHandlerTest { - - @InjectMocks - ESRollbackHandler testSubject; - @Mock - ESCatalogDAO esCatalogDao; - - - @Before - public void setUp() { - MockitoAnnotations.initMocks(this); - } - - private ESRollbackHandler createTestSubject() { - return new ESRollbackHandler(null, "", ""); - } - - @Test - public void testGetDBType() throws Exception { - DBTypeEnum result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getDBType(); - } - - @Test - public void testIsRollbackForPersistenceData() throws Exception { - boolean result; - - // default test - testSubject = createTestSubject(); - result = Deencapsulation.invoke(testSubject, "isRollbackForPersistenceData"); - } - - @Test - public void testIsRollbackResultValid() throws Exception { - boolean result; - - // default test - testSubject = createTestSubject(); - result = testSubject.isRollbackResultValid(DBActionCodeEnum.FAIL_GENERAL); - result = testSubject.isRollbackResultValid(DBActionCodeEnum.SUCCESS); - } - - @Test - public void testBuildEsRollbackAction() throws Exception { - ESArtifactData artifactData = new ESArtifactData(); - artifactData.setId("mock"); - Either<ESAction, MethodActivationStatusEnum> result; - - Either<ESArtifactData, ResourceUploadStatus> value = Either.left(new ESArtifactData()); - Mockito.when(esCatalogDao.getArtifact(Mockito.anyString())).thenReturn(value); - - // default test - for (ESActionTypeEnum iterable_element : ESActionTypeEnum.values()) { - testSubject = createTestSubject(); - result = testSubject.buildEsRollbackAction(esCatalogDao, artifactData, iterable_element); - } - result = testSubject.buildEsRollbackAction(esCatalogDao, null, ESActionTypeEnum.ADD_ARTIFACT); - } - - @Test - public void testBuildEsRollbackAction2() throws Exception { - ESArtifactData artifactData = new ESArtifactData(); - artifactData.setId("mock"); - Either<ESAction, MethodActivationStatusEnum> result; - - Either<ESArtifactData, ResourceUploadStatus> value = Either.right(ResourceUploadStatus.NOT_EXIST); - Mockito.when(esCatalogDao.getArtifact(Mockito.anyString())).thenReturn(value); - - // default test - for (ESActionTypeEnum iterable_element : ESActionTypeEnum.values()) { - testSubject = createTestSubject(); - result = testSubject.buildEsRollbackAction(esCatalogDao, artifactData, iterable_element); - } - result = testSubject.buildEsRollbackAction(esCatalogDao, null, ESActionTypeEnum.ADD_ARTIFACT); - } -} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/common/transaction/mngr/RollbackManagerTest.java b/catalog-be/src/test/java/org/openecomp/sdc/common/transaction/mngr/RollbackManagerTest.java deleted file mode 100644 index 909ba64241..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/common/transaction/mngr/RollbackManagerTest.java +++ /dev/null @@ -1,65 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * 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.openecomp.sdc.common.transaction.mngr; - -import org.junit.Test; -import org.openecomp.sdc.common.transaction.api.RollbackHandler; -import org.openecomp.sdc.common.transaction.api.TransactionUtils.DBActionCodeEnum; -import org.openecomp.sdc.common.transaction.api.TransactionUtils.DBTypeEnum; -import org.openecomp.sdc.common.util.MethodActivationStatusEnum; - -import fj.data.Either; - -public class RollbackManagerTest { - - private RollbackManager createTestSubject() { - return new RollbackManager(null, "", "", null); - } - - - @Test - public void testTransactionRollback() throws Exception { - RollbackManager testSubject; - DBActionCodeEnum result; - - // default test - } - - - @Test - public void testAddRollbackHandler() throws Exception { - RollbackManager testSubject; - RollbackHandler rollbackHandler = null; - Either<RollbackHandler, MethodActivationStatusEnum> result; - - // default test - } - - - @Test - public void testGetRollbackHandler() throws Exception { - RollbackManager testSubject; - DBTypeEnum dbType = null; - Either<RollbackHandler, MethodActivationStatusEnum> result; - - // default test - } -} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/common/transaction/mngr/SdncTransactionTest.java b/catalog-be/src/test/java/org/openecomp/sdc/common/transaction/mngr/SdncTransactionTest.java deleted file mode 100644 index f902f520a6..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/common/transaction/mngr/SdncTransactionTest.java +++ /dev/null @@ -1,410 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 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.openecomp.sdc.common.transaction.mngr; - -import fj.data.Either; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; -import org.mockito.Mockito; -import org.openecomp.sdc.be.config.ConfigurationManager; -import org.openecomp.sdc.be.dao.api.ResourceUploadStatus; -import org.openecomp.sdc.be.dao.impl.ESCatalogDAO; -import org.openecomp.sdc.be.dao.janusgraph.JanusGraphGenericDao; -import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; -import org.openecomp.sdc.be.resources.data.ESArtifactData; -import org.openecomp.sdc.common.api.ConfigurationSource; -import org.openecomp.sdc.common.impl.ExternalConfiguration; -import org.openecomp.sdc.common.impl.FSConfigurationSource; -import org.openecomp.sdc.common.log.wrappers.Logger; -import org.openecomp.sdc.common.transaction.api.IDBAction; -import org.openecomp.sdc.common.transaction.api.RollbackHandler; -import org.openecomp.sdc.common.transaction.api.TransactionUtils; -import org.openecomp.sdc.common.transaction.api.TransactionUtils.*; - -import static org.junit.Assert.assertNotSame; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.*; -import static org.mockito.Mockito.when; - -public class SdncTransactionTest { - private static ESCatalogDAO esCatalogDao = Mockito.mock(ESCatalogDAO.class); - private static JanusGraphGenericDao janusGraphGenericDao = Mockito.mock(JanusGraphGenericDao.class); - private static final Logger log = Mockito.spy(Logger.getLogger(SdncTransactionTest.class)); - private static int transactionId = 0; - private static ConfigurationManager configurationManager; - - public enum TestAction { - JanusGraphAction, Rollback, GeneralAction - } - - public enum TestResponse { - JanusGraphResponseSuccess, GeneralSuccess - } - - @BeforeClass - public static void beforeClass() { - TransactionSdncImpl.setLog(log); - CommitManager.setLog(log); - RollbackHandler.setLog(log); - String appConfigDir = "src/test/resources/config/catalog-be"; - ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir); - configurationManager = new ConfigurationManager(configurationSource); - } - - @Before - public void beforeTest() { - reset(log); - reset(esCatalogDao); - reset(janusGraphGenericDao); - } - - @Test - public void testInvokeJanusGraphAction() { - int transactionId = getNextTransactionId(); - TransactionSdncImpl tx = new TransactionSdncImpl(transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT, esCatalogDao, - janusGraphGenericDao); - - doBasicJanusGraphAction(transactionId, tx, false, true); - assertSame(TransactionStatusEnum.OPEN, tx.getStatus()); - } - - @Test - public void testInvokeESAction() { - int transactionId = getNextTransactionId(); - TransactionSdncImpl tx = new TransactionSdncImpl(transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT, esCatalogDao, - janusGraphGenericDao); - - doESAddArtifactAction(transactionId, tx, true, true); - assertSame(TransactionStatusEnum.OPEN, tx.getStatus()); - } - - @Test - public void testfinishTransaction() { - int transactionId = getNextTransactionId(); - TransactionSdncImpl tx = new TransactionSdncImpl(transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT, esCatalogDao, - janusGraphGenericDao); - doFinishTransaction(transactionId, tx, true); - assertSame(TransactionStatusEnum.CLOSED, tx.getStatus()); - } - - @Test - public void testFinishOnClosedTransaction() { - int transactionId = getNextTransactionId(); - TransactionSdncImpl tx = new TransactionSdncImpl(transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT, esCatalogDao, - janusGraphGenericDao); - doFinishTransaction(transactionId, tx, true); - - TransactionCodeEnum finishTransaction = tx.finishTransaction(); - assertSame(TransactionCodeEnum.TRANSACTION_CLOSED, finishTransaction); - verify(log).info(TransactionUtils.TRANSACTION_MARKER, LogMessages.COMMIT_ON_CLOSED_TRANSACTION, transactionId, TransactionStatusEnum.CLOSED.name(), TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - assertSame(TransactionStatusEnum.CLOSED, tx.getStatus()); - - } - - @Test - public void testCallingLastActionTwice() { - int transactionId = getNextTransactionId(); - TransactionSdncImpl tx = new TransactionSdncImpl(transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT, esCatalogDao, - janusGraphGenericDao); - doBasicJanusGraphAction(transactionId, tx, true, true); - Either<TestResponse, TransactionCodeEnum> doBasicJanusGraphAction = doBasicJanusGraphAction(transactionId, tx, true, false); - assertTrue(doBasicJanusGraphAction.isRight()); - assertNotSame(TransactionStatusEnum.OPEN, tx.getStatus()); - verify(log).info(TransactionUtils.TRANSACTION_MARKER, LogMessages.DOUBLE_FINISH_FLAG_ACTION, transactionId, DBTypeEnum.JANUSGRAPH - .name(), TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - } - - @Test - public void testActionOnClosedTransaction() { - int transactionId = getNextTransactionId(); - TransactionSdncImpl tx = new TransactionSdncImpl(transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT, esCatalogDao, - janusGraphGenericDao); - doFinishTransaction(transactionId, tx, true); - - Either<DBActionCodeEnum, TransactionCodeEnum> eitherESResult = tx.invokeESAction(false, ESActionTypeEnum.ADD_ARTIFACT, createDummyArtifactData()); - assertTrue(eitherESResult.isRight()); - assertSame(TransactionCodeEnum.TRANSACTION_CLOSED, eitherESResult.right().value()); - - Either<Object, TransactionCodeEnum> eitherJanusGraphResult = tx.invokeJanusGraphAction(false, createBasicAction(TestAction.JanusGraphAction, TestResponse.JanusGraphResponseSuccess)); - assertTrue(eitherJanusGraphResult.isRight()); - assertSame(TransactionCodeEnum.TRANSACTION_CLOSED, eitherJanusGraphResult.right().value()); - - Either<Object, TransactionCodeEnum> eitherGeneralDBAction = tx.invokeGeneralDBAction(true, DBTypeEnum.JANUSGRAPH, createBasicAction(TestAction.JanusGraphAction, TestResponse.JanusGraphResponseSuccess), - createBasicAction(TestAction.Rollback, TestResponse.JanusGraphResponseSuccess)); - assertTrue(eitherGeneralDBAction.isRight()); - assertSame(TransactionCodeEnum.TRANSACTION_CLOSED, eitherGeneralDBAction.right().value()); - - assertSame(TransactionStatusEnum.CLOSED, tx.getStatus()); - verify(log, times(3)).info(TransactionUtils.TRANSACTION_MARKER, LogMessages.ACTION_ON_CLOSED_TRANSACTION, transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - - } - - @Test - public void testBasicHappyScenario() { - int transactionId = getNextTransactionId(); - TransactionSdncImpl tx = new TransactionSdncImpl(transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT, esCatalogDao, - janusGraphGenericDao); - - doBasicJanusGraphAction(transactionId, tx, false, true); - assertSame(TransactionStatusEnum.OPEN, tx.getStatus()); - - doESAddArtifactAction(transactionId, tx, true, true); - assertSame(TransactionStatusEnum.OPEN, tx.getStatus()); - - doFinishTransaction(transactionId, tx, true); - - assertSame(TransactionStatusEnum.CLOSED, tx.getStatus()); - - } - - @Test - public void testRollbackSucceededOnAction() { - int transactionId = getNextTransactionId(); - TransactionSdncImpl tx = new TransactionSdncImpl(transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT, esCatalogDao, - janusGraphGenericDao); - doESAddArtifactAction(transactionId, tx, false, true); - - when(janusGraphGenericDao.rollback()).thenReturn(JanusGraphOperationStatus.OK); - String crushMessage = "DB Crush Simulation"; - Either<TestResponse, TransactionCodeEnum> eitherTransactionResult = tx.invokeJanusGraphAction(false, createCrushingAction(TestAction.JanusGraphAction, crushMessage)); - - assertTrue(eitherTransactionResult.isRight()); - assertSame(TransactionCodeEnum.ROLLBACK_SUCCESS, eitherTransactionResult.right().value()); - assertSame(TransactionStatusEnum.CLOSED, tx.getStatus()); - verify(log).info(TransactionUtils.TRANSACTION_MARKER, LogMessages.DB_ACTION_FAILED_WITH_EXCEPTION, DBTypeEnum.JANUSGRAPH - .name(), transactionId, crushMessage, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - - verify(log, times(1)).debug(LogMessages.ROLLBACK_PERSISTENT_ACTION, DBTypeEnum.ELASTIC_SEARCH.name(), transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - verify(log, times(1)).debug(TransactionUtils.TRANSACTION_MARKER, LogMessages.ROLLBACK_PERSISTENT_ACTION, DBTypeEnum.ELASTIC_SEARCH.name(), transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - - verify(log, times(1)).debug(LogMessages.ROLLBACK_NON_PERSISTENT_ACTION, DBTypeEnum.JANUSGRAPH - .name(), transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - verify(log, times(1)).debug(TransactionUtils.TRANSACTION_MARKER, LogMessages.ROLLBACK_NON_PERSISTENT_ACTION, DBTypeEnum.JANUSGRAPH - .name(), transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - - verify(log).info(LogMessages.ROLLBACK_SUCCEEDED_GENERAL, transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - verify(log).info(TransactionUtils.TRANSACTION_MARKER, LogMessages.ROLLBACK_SUCCEEDED_GENERAL, transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - } - - @Test - public void testRollbackFailedOnAction() { - int transactionId = getNextTransactionId(); - TransactionSdncImpl tx = new TransactionSdncImpl(transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT, esCatalogDao, - janusGraphGenericDao); - - doESAddArtifactAction(transactionId, tx, false, true); - - when(janusGraphGenericDao.rollback()).thenReturn(JanusGraphOperationStatus.NOT_CONNECTED); - String crushMessage = "DB Crush Simulation"; - Either<TestResponse, TransactionCodeEnum> eitherTransactionResult = tx.invokeJanusGraphAction(false, createCrushingAction(TestAction.JanusGraphAction, crushMessage)); - - assertTrue(eitherTransactionResult.isRight()); - assertSame(TransactionStatusEnum.FAILED_ROLLBACK, tx.getStatus()); - assertSame(TransactionCodeEnum.ROLLBACK_FAILED, eitherTransactionResult.right().value()); - verify(log).info(TransactionUtils.TRANSACTION_MARKER, LogMessages.DB_ACTION_FAILED_WITH_EXCEPTION, DBTypeEnum.JANUSGRAPH - .name(), transactionId, crushMessage, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - - verify(log, times(1)).debug(LogMessages.ROLLBACK_PERSISTENT_ACTION, DBTypeEnum.ELASTIC_SEARCH.name(), transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - verify(log, times(1)).debug(TransactionUtils.TRANSACTION_MARKER, LogMessages.ROLLBACK_PERSISTENT_ACTION, DBTypeEnum.ELASTIC_SEARCH.name(), transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - - verify(log, times(1)).debug(LogMessages.ROLLBACK_NON_PERSISTENT_ACTION, DBTypeEnum.JANUSGRAPH - .name(), transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - verify(log, times(1)).debug(TransactionUtils.TRANSACTION_MARKER, LogMessages.ROLLBACK_NON_PERSISTENT_ACTION, DBTypeEnum.JANUSGRAPH - .name(), transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - } - - @Test - public void testRollbackSucceededOnCommit() { - int transactionId = getNextTransactionId(); - TransactionSdncImpl tx = new TransactionSdncImpl(transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT, esCatalogDao, - janusGraphGenericDao); - doESAddArtifactAction(transactionId, tx, false, true); - doBasicJanusGraphAction(transactionId, tx, true, true); - - when(janusGraphGenericDao.commit()).thenReturn(JanusGraphOperationStatus.GENERAL_ERROR); - when(janusGraphGenericDao.rollback()).thenReturn(JanusGraphOperationStatus.OK); - // finishTransaction - TransactionCodeEnum transactionCode = tx.finishTransaction(); - assertSame(TransactionCodeEnum.ROLLBACK_SUCCESS, transactionCode); - assertSame(TransactionStatusEnum.CLOSED, tx.getStatus()); - - verify(log, times(1)).debug(LogMessages.ROLLBACK_PERSISTENT_ACTION, DBTypeEnum.ELASTIC_SEARCH.name(), transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - verify(log, times(1)).debug(TransactionUtils.TRANSACTION_MARKER, LogMessages.ROLLBACK_PERSISTENT_ACTION, DBTypeEnum.ELASTIC_SEARCH.name(), transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - - verify(log, times(1)).debug(LogMessages.ROLLBACK_NON_PERSISTENT_ACTION, DBTypeEnum.JANUSGRAPH - .name(), transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - verify(log, times(1)).debug(TransactionUtils.TRANSACTION_MARKER, LogMessages.ROLLBACK_NON_PERSISTENT_ACTION, DBTypeEnum.JANUSGRAPH - .name(), transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - - verify(log).info(LogMessages.ROLLBACK_SUCCEEDED_GENERAL, transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - verify(log).info(TransactionUtils.TRANSACTION_MARKER, LogMessages.ROLLBACK_SUCCEEDED_GENERAL, transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - } - - @Test - public void testRollbackFailedOnCommit() { - int transactionId = getNextTransactionId(); - TransactionSdncImpl tx = new TransactionSdncImpl(transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT, esCatalogDao, - janusGraphGenericDao); - doESAddArtifactAction(transactionId, tx, false, true); - doBasicJanusGraphAction(transactionId, tx, true, true); - - when(janusGraphGenericDao.commit()).thenReturn(JanusGraphOperationStatus.GENERAL_ERROR); - when(janusGraphGenericDao.rollback()).thenReturn(JanusGraphOperationStatus.OK); - String esError = "No Connection to Es"; - Mockito.doThrow(new RuntimeException(esError)).when(esCatalogDao).deleteArtifact(Mockito.anyString()); - // finishTransaction - TransactionCodeEnum transactionCode = tx.finishTransaction(); - assertSame(TransactionCodeEnum.ROLLBACK_FAILED, transactionCode); - assertSame(TransactionStatusEnum.FAILED_ROLLBACK, tx.getStatus()); - - verify(log, times(1)).debug(LogMessages.ROLLBACK_PERSISTENT_ACTION, DBTypeEnum.ELASTIC_SEARCH.name(), transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - verify(log, times(1)).debug(TransactionUtils.TRANSACTION_MARKER, LogMessages.ROLLBACK_PERSISTENT_ACTION, DBTypeEnum.ELASTIC_SEARCH.name(), transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - - verify(log, times(1)).debug(LogMessages.ROLLBACK_NON_PERSISTENT_ACTION, DBTypeEnum.JANUSGRAPH - .name(), transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - verify(log, times(1)).debug(TransactionUtils.TRANSACTION_MARKER, LogMessages.ROLLBACK_NON_PERSISTENT_ACTION, DBTypeEnum.JANUSGRAPH - .name(), transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - } - - @Test - public void testInvokeGeneralAction() { - when(janusGraphGenericDao.rollback()).thenReturn(JanusGraphOperationStatus.OK); - int transactionId = getNextTransactionId(); - TransactionSdncImpl tx = new TransactionSdncImpl(transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT, esCatalogDao, - janusGraphGenericDao); - IDBAction generalAction = createBasicAction(TestAction.GeneralAction, TestResponse.GeneralSuccess); - IDBAction rollbackAction = createBasicAction(TestAction.Rollback, TestResponse.GeneralSuccess); - String crushMessage = "No DB Connection"; - IDBAction crushingAction = createCrushingAction(TestAction.GeneralAction, crushMessage); - - Either<TestResponse, TransactionCodeEnum> eitherResult = tx.invokeGeneralDBAction(false, DBTypeEnum.MYSTERY, generalAction, rollbackAction); - assertTrue(eitherResult.isLeft()); - assertSame(TestResponse.GeneralSuccess, eitherResult.left().value()); - assertSame(TransactionStatusEnum.OPEN, tx.getStatus()); - eitherResult = tx.invokeGeneralDBAction(false, DBTypeEnum.MYSTERY, crushingAction, rollbackAction); - - assertTrue(eitherResult.isRight()); - assertSame(TransactionCodeEnum.ROLLBACK_SUCCESS, eitherResult.right().value()); - assertSame(TransactionStatusEnum.CLOSED, tx.getStatus()); - - verify(log).info(TransactionUtils.TRANSACTION_MARKER, LogMessages.DB_ACTION_FAILED_WITH_EXCEPTION, DBTypeEnum.MYSTERY.name(), transactionId, crushMessage, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - - verify(log, times(2)).debug(LogMessages.ROLLBACK_PERSISTENT_ACTION, DBTypeEnum.MYSTERY.name(), transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - verify(log, times(2)).debug(TransactionUtils.TRANSACTION_MARKER, LogMessages.ROLLBACK_PERSISTENT_ACTION, DBTypeEnum.MYSTERY.name(), transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - - verify(log).info(LogMessages.ROLLBACK_SUCCEEDED_GENERAL, transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - verify(log).info(TransactionUtils.TRANSACTION_MARKER, LogMessages.ROLLBACK_SUCCEEDED_GENERAL, transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - - } - - private Either<TestResponse, TransactionCodeEnum> doBasicJanusGraphAction(int transactionId, TransactionSdncImpl tx, boolean isLastAction, boolean isVerifyAction) { - // Add JanusGraph Action - Either<TestResponse, TransactionCodeEnum> eitherJanusGraphResult = tx.invokeJanusGraphAction(isLastAction, createBasicAction(TestAction.JanusGraphAction, TestResponse.JanusGraphResponseSuccess)); - if (isVerifyAction) { - // Check JanusGraph Action - assertTrue(eitherJanusGraphResult.isLeft()); - assertSame(TestResponse.JanusGraphResponseSuccess, eitherJanusGraphResult.left().value()); - verify(log).debug(TestAction.JanusGraphAction.name()); - verify(log).debug(LogMessages.INVOKE_ACTION, transactionId, DBTypeEnum.JANUSGRAPH.name(), TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - verifyNoErrorsInLog(); - verifyNoInfoInLog(); - } - return eitherJanusGraphResult; - } - - private TransactionCodeEnum doFinishTransaction(int transactionId, TransactionSdncImpl tx, boolean isVerifyAction) { - // Prerequisite finishTransaction - when(janusGraphGenericDao.commit()).thenReturn(JanusGraphOperationStatus.OK); - // finishTransaction - TransactionCodeEnum transactionCode = tx.finishTransaction(); - if (isVerifyAction) { - // Check finishTransaction - verify(log).debug(LogMessages.COMMIT_ACTION_ALL_DB, transactionId, TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - verify(log).debug(LogMessages.COMMIT_ACTION_SPECIFIC_DB, transactionId, DBTypeEnum.JANUSGRAPH - .name(), TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - assertSame(TransactionCodeEnum.SUCCESS, transactionCode); - } - return transactionCode; - } - - private void doESAddArtifactAction(int transactionId, TransactionSdncImpl tx, boolean isLastAction, boolean isVerifyAction) { - // Prerequisite ES Action - Either<ESArtifactData, ResourceUploadStatus> eitherBeforeAddArtifact = Either.right(ResourceUploadStatus.NOT_EXIST); - when(esCatalogDao.getArtifact(Mockito.anyString())).thenReturn(eitherBeforeAddArtifact); - - // Add ES Action - Either<DBActionCodeEnum, TransactionCodeEnum> eitherEsAction = tx.invokeESAction(isLastAction, ESActionTypeEnum.ADD_ARTIFACT, createDummyArtifactData()); - - if (isVerifyAction) { - // Check JanusGraph Action - assertTrue(eitherEsAction.isLeft()); - assertSame(DBActionCodeEnum.SUCCESS, eitherEsAction.left().value()); - verify(log).debug(LogMessages.INVOKE_ACTION, transactionId, DBTypeEnum.ELASTIC_SEARCH.name(), TransactionUtils.DUMMY_USER, ActionTypeEnum.ADD_ARTIFACT.name()); - verifyNoErrorsInLog(); - verifyNoInfoInLog(); - } - } - - private ESArtifactData createDummyArtifactData() { - String strData = "qweqwqweqw34e4wrwer"; - return new ESArtifactData("artifactNewMarina11", strData.getBytes()); - } - - private void verifyNoErrorsInLog() { - verify(log, Mockito.times(0)).error(Mockito.anyString(), Mockito.any(Object[].class)); - verify(log, Mockito.times(0)).error(Mockito.anyString()); - } - - private void verifyNoInfoInLog() { - verify(log, Mockito.times(0)).info(Mockito.anyString(), Mockito.any(Object[].class)); - verify(log, Mockito.times(0)).info(Mockito.anyString()); - } - - private IDBAction createBasicAction(TestAction action, TestResponse resp) { - final TestAction finalAction = action; - final TestResponse finalResp = resp; - return new IDBAction() { - @Override - public TestResponse doAction() { - log.debug(finalAction.name()); - return finalResp; - } - }; - } - - private IDBAction createCrushingAction(TestAction action, final String crushMessage) { - final TestAction finalAction = action; - return new IDBAction() { - @Override - public TestResponse doAction() { - log.debug(finalAction.name()); - throw new RuntimeException(crushMessage); - } - }; - } - - public int getNextTransactionId() { - transactionId++; - return transactionId; - } -} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/common/transaction/mngr/TransactionManagerTest.java b/catalog-be/src/test/java/org/openecomp/sdc/common/transaction/mngr/TransactionManagerTest.java deleted file mode 100644 index 2e685a8ff0..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/common/transaction/mngr/TransactionManagerTest.java +++ /dev/null @@ -1,72 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * 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.openecomp.sdc.common.transaction.mngr; - -import org.junit.Test; -import org.openecomp.sdc.common.transaction.api.ITransactionSdnc; -import org.openecomp.sdc.common.transaction.api.TransactionUtils.ActionTypeEnum; - -public class TransactionManagerTest { - - private TransactionManager createTestSubject() { - return new TransactionManager(); - } - - - @Test - public void testGetTransaction() throws Exception { - TransactionManager testSubject; - String userId = ""; - ActionTypeEnum actionType = null; - ITransactionSdnc result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testGenerateTransactionID() throws Exception { - TransactionManager testSubject; - Integer result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testResetTransactionId() throws Exception { - TransactionManager testSubject; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testInit() throws Exception { - TransactionManager testSubject; - - // default test - testSubject = createTestSubject(); - } -} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/externalupload/utils/ServiceUtilsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/externalupload/utils/ServiceUtilsTest.java index 4f23aa290e..fb012348d5 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/externalupload/utils/ServiceUtilsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/externalupload/utils/ServiceUtilsTest.java @@ -19,14 +19,15 @@ */ package org.openecomp.sdc.externalupload.utils; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertTrue; +import org.junit.Test; import java.util.Map; import java.util.Optional; import java.util.Set; -import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertTrue; public class ServiceUtilsTest { @@ -46,8 +47,8 @@ public class ServiceUtilsTest { public void shouldGetObjectAsMap() { TestModel testModel = getTestModel(); Map<String, Object> objectAsMap = ServiceUtils.getObjectAsMap(testModel); - assertEquals(1, objectAsMap.size()); - assertEquals(OBJ_1, objectAsMap.get(PROP)); + assertEquals(objectAsMap.size(), 1); + assertEquals(objectAsMap.get(PROP), OBJ_1); } @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/test/utils/InterfaceOperationTestUtils.java b/catalog-be/src/test/java/org/openecomp/sdc/test/utils/InterfaceOperationTestUtils.java index 25c0d651c6..301f022de1 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/test/utils/InterfaceOperationTestUtils.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/test/utils/InterfaceOperationTestUtils.java @@ -16,8 +16,6 @@ package org.openecomp.sdc.test.utils; -import java.util.HashMap; -import java.util.Map; import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition; import org.openecomp.sdc.be.datatypes.elements.OperationInputDefinition; import org.openecomp.sdc.be.datatypes.elements.OperationOutputDefinition; @@ -25,6 +23,9 @@ import org.openecomp.sdc.be.model.ArtifactDefinition; import org.openecomp.sdc.be.model.InterfaceDefinition; import org.openecomp.sdc.be.model.Operation; +import java.util.HashMap; +import java.util.Map; + public class InterfaceOperationTestUtils { private static InterfaceDefinition createInterface(String uniqueId, String description, String type, |