From b86fbc87516250b0267cf35479cd8deb7ef42326 Mon Sep 17 00:00:00 2001 From: Tomasz Golabek Date: Wed, 7 Aug 2019 16:43:54 +0200 Subject: Additional unit tests Tests for ConflictsDaoImpl Change-Id: I7fd472b55a96a314992be0e49725d8844167ff4d Issue-ID: SDC-2326 Signed-off-by: Tomasz Golabek --- .../dao/impl/zusammen/ConflictsDaoImplTest.java | 134 +++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 openecomp-be/lib/openecomp-conflict-lib/openecomp-conflict-core/src/test/java/org/openecomp/conflicts/dao/impl/zusammen/ConflictsDaoImplTest.java (limited to 'openecomp-be/lib/openecomp-conflict-lib/openecomp-conflict-core/src/test/java/org/openecomp') diff --git a/openecomp-be/lib/openecomp-conflict-lib/openecomp-conflict-core/src/test/java/org/openecomp/conflicts/dao/impl/zusammen/ConflictsDaoImplTest.java b/openecomp-be/lib/openecomp-conflict-lib/openecomp-conflict-core/src/test/java/org/openecomp/conflicts/dao/impl/zusammen/ConflictsDaoImplTest.java new file mode 100644 index 0000000000..cb912642bd --- /dev/null +++ b/openecomp-be/lib/openecomp-conflict-lib/openecomp-conflict-core/src/test/java/org/openecomp/conflicts/dao/impl/zusammen/ConflictsDaoImplTest.java @@ -0,0 +1,134 @@ +/*- + * ============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.conflicts.dao.impl.zusammen; + +import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element; +import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementConflict; +import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementConflictInfo; +import com.amdocs.zusammen.adaptor.inbound.api.types.item.ItemVersionConflict; +import com.amdocs.zusammen.datatypes.Id; +import com.amdocs.zusammen.datatypes.SessionContext; +import com.amdocs.zusammen.datatypes.item.ElementContext; +import com.amdocs.zusammen.datatypes.item.Info; +import com.amdocs.zusammen.datatypes.item.ItemVersionDataConflict; +import java.util.Collection; +import java.util.Optional; +import java.util.function.Supplier; +import org.junit.Assert; +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.conflicts.types.Conflict; +import org.openecomp.core.zusammen.api.ZusammenAdaptor; +import org.openecomp.sdc.versioning.dao.types.Version; +import org.openecomp.types.ElementPropertyName; + +@RunWith(MockitoJUnitRunner.Silent.class) +public class ConflictsDaoImplTest { + + private static final String ITEM_ID = "itemId"; + private static final String CONFLICT_ID = "conflictId"; + private static final Object PROPERTY = "itemVersion"; + + @Mock + private ZusammenAdaptor zusammenAdaptor; + @Mock + private Version version; + @Mock + private Supplier sessionContextSupplier; + @Mock + private SessionContext sessionContext; + @Mock + private ItemVersionConflict itemVersionConflict; + @Mock + private ItemVersionDataConflict versionDataConflict; + @Mock + private Collection conflictsInfos; + @Mock + private Element element; + @Mock + private Info info; + + + @Test + public void shouldItemBeConflicted() { + ConflictsDaoImpl conflictsDao = new ConflictsDaoImpl(zusammenAdaptor, sessionContextSupplier); + Mockito.when(sessionContextSupplier.get()).thenReturn(sessionContext); + Mockito.when(zusammenAdaptor + .getVersionConflict(Mockito.any(SessionContext.class), Mockito.any(Id.class), Mockito.any(Id.class))) + .thenReturn(itemVersionConflict); + Mockito.when(itemVersionConflict.getVersionDataConflict()).thenReturn(versionDataConflict); + Mockito.when(itemVersionConflict.getElementConflictInfos()).thenReturn(conflictsInfos); + + boolean conflicted = conflictsDao.isConflicted(ITEM_ID, version); + Assert.assertTrue(conflicted); + } + + @Test + public void shouldItemBeNotConflicted() { + ConflictsDaoImpl conflictsDao = new ConflictsDaoImpl(zusammenAdaptor, sessionContextSupplier); + Mockito.when(sessionContextSupplier.get()).thenReturn(sessionContext); + Mockito.when(zusammenAdaptor + .getVersionConflict(Mockito.any(SessionContext.class), Mockito.any(Id.class), Mockito.any(Id.class))) + .thenReturn(itemVersionConflict); + Mockito.when(itemVersionConflict.getVersionDataConflict()).thenReturn(null); + + boolean conflicted = conflictsDao.isConflicted(ITEM_ID, version); + Assert.assertFalse(conflicted); + } + + @Test + public void shouldGetItemVersionConflict() { + ConflictsDaoImpl conflictsDao = new ConflictsDaoImpl(zusammenAdaptor, sessionContextSupplier); + Mockito.when(sessionContextSupplier.get()).thenReturn(sessionContext); + Mockito.when(zusammenAdaptor + .getVersionConflict(Mockito.any(SessionContext.class), Mockito.any(Id.class), Mockito.any(Id.class))) + .thenReturn(itemVersionConflict); + Mockito.when(itemVersionConflict.getVersionDataConflict()).thenReturn(versionDataConflict); + Mockito.when(itemVersionConflict.getElementConflictInfos()).thenReturn(conflictsInfos); + org.openecomp.conflicts.types.ItemVersionConflict conflict = conflictsDao.getConflict(ITEM_ID, version); + Assert.assertNotNull(conflict); + } + + @Test + public void shouldGetConflict() { + ConflictsDaoImpl conflictsDao = new ConflictsDaoImpl(zusammenAdaptor, sessionContextSupplier); + Mockito.when(sessionContextSupplier.get()).thenReturn(sessionContext); + Optional elementConflict = Optional.ofNullable(getElementConflict()); + Mockito.when(zusammenAdaptor + .getElementConflict(Mockito.any(SessionContext.class), Mockito.any(ElementContext.class), + Mockito.any(Id.class))).thenReturn(elementConflict); + Mockito.when(itemVersionConflict.getVersionDataConflict()).thenReturn(versionDataConflict); + Mockito.when(itemVersionConflict.getElementConflictInfos()).thenReturn(conflictsInfos); + Conflict conflict = conflictsDao.getConflict(ITEM_ID, version, CONFLICT_ID); + Assert.assertNotNull(conflict); + } + + private ElementConflict getElementConflict() { + Mockito.when(element.getInfo()).thenReturn(info); + Mockito.when(info.getProperty(ElementPropertyName.elementType.name())).thenReturn(PROPERTY); + + ElementConflict elementConflict = new ElementConflict(); + elementConflict.setLocalElement(element); + return elementConflict; + } +} \ No newline at end of file -- cgit 1.2.3-korg