Remove usage of outdated library JMockit (catalog-dao)
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / components / impl / AdditionalInformationBusinessLogicTest.java
index ea4df1e..0b2d1ba 100644 (file)
+/*
+
+ * Copyright (c) 2018 AT&T Intellectual Property.
+
+ *
+
+ * Licensed under the Apache License, Version 2.0 (the "License");
+
+ * you may not use this file except in compliance with the License.
+
+ * You may obtain a copy of the License at
+
+ *
+
+ *     http://www.apache.org/licenses/LICENSE-2.0
+
+ *
+
+ * Unless required by applicable law or agreed to in writing, software
+
+ * distributed under the License is distributed on an "AS IS" BASIS,
+
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
+ * See the License for the specific language governing permissions and
+
+ * limitations under the License.
+
+ */
 package 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.ArgumentMatchers;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.openecomp.sdc.be.components.validation.UserValidations;
+import org.openecomp.sdc.be.config.Configuration;
+import org.openecomp.sdc.be.config.ConfigurationManager;
+import org.openecomp.sdc.be.dao.janusgraph.JanusGraphDao;
+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.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.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;
 import org.openecomp.sdc.exception.ResponseFormat;
 
-import fj.data.Either;
+import java.util.ArrayList;
+import java.util.List;
 
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.when;
 
+@RunWith(MockitoJUnitRunner.class)
 public class AdditionalInformationBusinessLogicTest {
+       @InjectMocks
+       private AdditionalInformationBusinessLogic additionalInformationBusinessLogic;
+       @Mock
+       private IGraphLockOperation graphLockOperation;
+       @Mock
+       private UserValidations userValidations;
+       @Mock
+       private ToscaOperationFacade toscaOperationFacade;
+       @Mock
+       private ComponentsUtils componentsUtils;
+       @Mock
+       private JanusGraphDao janusGraphDao;
+       @Mock
+       private AdditionalInformationOperation additionalInformationOperation;
+       @Mock
+       private Resource resource;
+
+       NodeTypeEnum nodeType = NodeTypeEnum.Resource;
+       static ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be");
 
-       private AdditionalInformationBusinessLogic createTestSubject() {
-               return new AdditionalInformationBusinessLogic();
+       @Before
+       public void setUp() throws Exception {
+               additionalInformationBusinessLogic.setUserValidations(userValidations);
+               additionalInformationBusinessLogic.setJanusGraphDao(janusGraphDao);
+               additionalInformationBusinessLogic.setComponentsUtils(componentsUtils);
+               additionalInformationBusinessLogic.setToscaOperationFacade(toscaOperationFacade);
+               additionalInformationBusinessLogic.setGraphLockOperation(graphLockOperation);
        }
 
-       
        @Test
-       public void testCreateAdditionalInformation() throws Exception {
-               AdditionalInformationBusinessLogic testSubject;
-               NodeTypeEnum nodeType = null;
-               String resourceId = "";
-               AdditionalInfoParameterInfo additionalInfoParameterInfo = null;
-               String additionalInformationUid = "";
-               String userId = "";
+       public void testCreateAdditionalInformation() {
                Either<AdditionalInfoParameterInfo, ResponseFormat> result;
+               String resourceId = "resourceId";
+               AdditionalInfoParameterInfo additionalInfoParameterInfo = getAdditionalInfoParamInfo();
+               AdditionalInformationDefinition additionalInformationDefinition = getAdditionalInfoDef(additionalInfoParameterInfo);
+               User user = new User();
+               String userId = "userId";
+               user.setUserId(userId);
+               ConfigurationManager configurationManager = new ConfigurationManager(configurationSource);
+               configurationManager.setConfiguration(new Configuration());
+               configurationManager.getConfiguration().setAdditionalInformationMaxNumberOfKeys(0);
+               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));
+               when(additionalInformationOperation.createAdditionalInformationParameter(nodeType, resourceId, additionalInfoParameterInfo.getKey(),additionalInfoParameterInfo.getValue(), true)).thenReturn(Either.left(additionalInformationDefinition));
 
-               // default test
-               testSubject = createTestSubject();
+               result = additionalInformationBusinessLogic.createAdditionalInformation(nodeType,resourceId,additionalInfoParameterInfo,userId);
+               Assert.assertTrue(result.isLeft());
        }
 
-       
        @Test
-       public void testUpdateAdditionalInformation() throws Exception {
-               AdditionalInformationBusinessLogic testSubject;
-               NodeTypeEnum nodeType = null;
-               String resourceId = "";
-               AdditionalInfoParameterInfo additionalInfoParameterInfo = null;
-               String additionalInformationUid = "";
-               String userId = "";
+       public void testUpdateAdditionalInformation() {
                Either<AdditionalInfoParameterInfo, ResponseFormat> result;
+               String resourceId = "resourceId";
+               AdditionalInfoParameterInfo additionalInfoParameterInfo = getAdditionalInfoParamInfo();
+               additionalInfoParameterInfo.setUniqueId(resourceId);
+               AdditionalInformationDefinition additionalInformationDefinition = getAdditionalInfoDef(additionalInfoParameterInfo);
+               User user = new User();
+               String userId = "userId";
+               user.setUserId(userId);
+               when(toscaOperationFacade.getToscaElement(ArgumentMatchers.eq("resourceId"), ArgumentMatchers.eq(JsonParseFlagEnum.ParseMetadata))).thenReturn(Either.left(resource));
+               when(graphLockOperation.lockComponent(resourceId, nodeType)).thenReturn(StorageOperationStatus.OK);
+               when(additionalInformationOperation.updateAdditionalInformationParameter(nodeType, resourceId, additionalInfoParameterInfo.getUniqueId(), additionalInfoParameterInfo.getKey(), additionalInfoParameterInfo.getValue(), true)).thenReturn(Either.left(additionalInformationDefinition));
 
-               // default test
-               testSubject = createTestSubject();
+               result = additionalInformationBusinessLogic.updateAdditionalInformation(nodeType, resourceId, additionalInfoParameterInfo, userId);
+               Assert.assertTrue(result.isLeft());
        }
 
-       
        @Test
-       public void testDeleteAdditionalInformation() throws Exception {
-               AdditionalInformationBusinessLogic testSubject;
-               NodeTypeEnum nodeType = null;
-               String resourceId = "";
-               AdditionalInfoParameterInfo additionalInfoParameterInfo = null;
-               String additionalInformationUid = "";
-               String userId = "";
+       public void testDeleteAdditionalInformation() {
                Either<AdditionalInfoParameterInfo, ResponseFormat> result;
+               String resourceId = "resourceId";
+               String userId = "userId";
+               AdditionalInfoParameterInfo additionalInfoParameterInfo = getAdditionalInfoParamInfo();
+               AdditionalInformationDefinition additionalInformationDefinition = getAdditionalInfoDef(additionalInfoParameterInfo);
+               when(toscaOperationFacade.getToscaElement(ArgumentMatchers.eq("resourceId"), ArgumentMatchers.eq(JsonParseFlagEnum.ParseMetadata))).thenReturn(Either.left(resource));
+               when(graphLockOperation.lockComponent(resourceId, nodeType)).thenReturn(StorageOperationStatus.OK);
+               when(additionalInformationOperation.getAdditionalInformationParameter(nodeType, resourceId, additionalInfoParameterInfo.getUniqueId(), true)).thenReturn(Either.left(additionalInfoParameterInfo));
+               when(additionalInformationOperation.deleteAdditionalInformationParameter(nodeType, resourceId, additionalInfoParameterInfo.getUniqueId(), true)).thenReturn(Either.left(additionalInformationDefinition));
 
-               // default test
-               testSubject = createTestSubject();
+               result = additionalInformationBusinessLogic.deleteAdditionalInformation(nodeType, resourceId, additionalInfoParameterInfo, userId);
+               Assert.assertTrue(result.isLeft());
        }
 
-       
        @Test
-       public void testGetAdditionalInformation() throws Exception {
-               AdditionalInformationBusinessLogic testSubject;
-               NodeTypeEnum nodeType = null;
-               String resourceId = "";
-               AdditionalInfoParameterInfo additionalInfoParameterInfo = null;
-               String additionalInformationUid = "";
-               String userId = "";
+       public void testGetAdditionalInformation() {
                Either<AdditionalInfoParameterInfo, ResponseFormat> result;
+               String resourceId = "resourceId";
+               String userId = "userId";
+               AdditionalInfoParameterInfo additionalInfoParameterInfo = getAdditionalInfoParamInfo();
+               when(additionalInformationOperation.getAdditionalInformationParameter(nodeType, resourceId, additionalInfoParameterInfo.getUniqueId(), true)).thenReturn(Either.left(additionalInfoParameterInfo));
 
-               // default test
-               testSubject = createTestSubject();
+               result = additionalInformationBusinessLogic.getAdditionalInformation(nodeType, resourceId, additionalInfoParameterInfo, userId);
+               Assert.assertTrue(result.isLeft());
        }
 
-       
        @Test
-       public void testGetAllAdditionalInformation() throws Exception {
-               AdditionalInformationBusinessLogic testSubject;
-               NodeTypeEnum nodeType = null;
-               String resourceId = "";
-               String additionalInformationUid = "";
-               String userId = "";
+       public void testGetAllAdditionalInformation() {
                Either<AdditionalInformationDefinition, ResponseFormat> result;
+               String resourceId = "resourceId";
+               String userId = "userId";
+               AdditionalInfoParameterInfo additionalInfoParameterInfo = getAdditionalInfoParamInfo();
+               AdditionalInformationDefinition additionalInformationDefinition = getAdditionalInfoDef(additionalInfoParameterInfo);
+               when(additionalInformationOperation.getAllAdditionalInformationParameters(nodeType, resourceId, false)).thenReturn(Either.left(additionalInformationDefinition));
+               result = additionalInformationBusinessLogic.getAllAdditionalInformation(nodeType, resourceId, userId);
+               Assert.assertTrue(result.isLeft());
+       }
+
+       private AdditionalInfoParameterInfo getAdditionalInfoParamInfo() {
+               AdditionalInfoParameterInfo additionalInfoParameterInfo = new AdditionalInfoParameterInfo();
+               additionalInfoParameterInfo.setKey("key");
+               additionalInfoParameterInfo.setValue("value");
+               return additionalInfoParameterInfo;
+       }
 
-               // default test
-               testSubject = createTestSubject();
+       private AdditionalInformationDefinition getAdditionalInfoDef(AdditionalInfoParameterInfo additionalInfoParameterInfo) {
+               AdditionalInformationDefinition additionalInformationDefinition = new AdditionalInformationDefinition();
+               List<AdditionalInfoParameterInfo> parameters = new ArrayList<>();
+               parameters.add(additionalInfoParameterInfo);
+               additionalInformationDefinition.setParameters(parameters);
+               return additionalInformationDefinition;
        }
-}
\ No newline at end of file
+}