summaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/src/test/java/org/openecomp/sdc/versioning/impl/AsdcItemManagerImplTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/src/test/java/org/openecomp/sdc/versioning/impl/AsdcItemManagerImplTest.java')
-rw-r--r--openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/src/test/java/org/openecomp/sdc/versioning/impl/AsdcItemManagerImplTest.java176
1 files changed, 176 insertions, 0 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/src/test/java/org/openecomp/sdc/versioning/impl/AsdcItemManagerImplTest.java b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/src/test/java/org/openecomp/sdc/versioning/impl/AsdcItemManagerImplTest.java
new file mode 100644
index 0000000000..92d1e7f719
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/src/test/java/org/openecomp/sdc/versioning/impl/AsdcItemManagerImplTest.java
@@ -0,0 +1,176 @@
+package org.openecomp.sdc.versioning.impl;
+
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.openecomp.sdc.common.session.SessionContextProviderFactory;
+import org.openecomp.sdc.itempermissions.PermissionsServices;
+import org.openecomp.sdc.notification.services.SubscriptionService;
+import org.openecomp.sdc.versioning.dao.ItemDao;
+import org.openecomp.sdc.versioning.dao.types.VersionStatus;
+import org.openecomp.sdc.versioning.types.Item;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
+
+public class AsdcItemManagerImplTest {
+
+ private static final String USER = "user1";
+ private static final String ITEM_ID = "item1";
+ private static final String ITEM_NAME = "item 1 name";
+ private static final String ITEM_TYPE_A = "A";
+ private static final String ITEM_TYPE_B = "B";
+ private static final String tenant = "dox";
+ @Mock
+ private ItemDao itemDao;
+ @Mock
+ private PermissionsServices permissionsServices;
+ @Mock
+ private SubscriptionService subscriptionService;
+ @InjectMocks
+ private AsdcItemManagerImpl itemManager;
+
+ @BeforeMethod
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test
+ public void testList() throws Exception {
+ List<Item> returnedItems = Stream.of(createItem(ITEM_ID, ITEM_NAME, ITEM_TYPE_A),
+ createItem("item2", "item2 name", ITEM_TYPE_B),
+ createItem("item3", "item3 name", ITEM_TYPE_B),
+ createItem("item4", "item4 name", ITEM_TYPE_A)).collect(Collectors.toList());
+ doReturn(returnedItems).when(itemDao).list();
+
+ Collection<Item> items = itemManager.list(item -> ITEM_TYPE_B.equals(item.getType()));
+
+ assertEquals(items.size(), 2);
+ assertTrue(
+ items.stream().anyMatch(item -> returnedItems.get(1).getName().equals(item.getName())));
+ assertTrue(
+ items.stream().anyMatch(item -> returnedItems.get(2).getName().equals(item.getName())));
+ }
+
+ @Test
+ public void testGetNotExisting() throws Exception {
+ Item item = itemManager.get(ITEM_ID);
+ assertNull(item);
+ }
+
+ @Test
+ public void testGet() throws Exception {
+ Item toBeReturned = createItem(ITEM_ID, ITEM_NAME, ITEM_TYPE_A);
+ doReturn(toBeReturned).when(itemDao).get(any(Item.class));
+
+ Item item = itemManager.get(ITEM_ID);
+
+ assertItemEquals(item, toBeReturned);
+ }
+
+ @Test
+ public void testCreate() throws Exception {
+ SessionContextProviderFactory.getInstance().createInterface().create(USER, tenant);
+
+ Item returnedItem = createItem(ITEM_ID, ITEM_NAME, ITEM_TYPE_A);
+ doReturn(returnedItem).when(itemDao).create(any(Item.class));
+
+ Item inputItem = createItem(null, returnedItem.getName(), returnedItem.getType());
+ Item item = itemManager.create(inputItem);
+
+ assertItemEquals(item, returnedItem);
+ verify(permissionsServices).execute(ITEM_ID, USER, "Create_Item");
+ verify(subscriptionService).subscribe(USER, ITEM_ID);
+ }
+
+ @Test
+ public void testUpdateNotExistingVersionStatus() throws Exception {
+ itemManager.updateVersionStatus(ITEM_ID, VersionStatus.Certified, VersionStatus.Draft);
+
+ verify(itemDao, never()).update(any(Item.class));
+ }
+
+ @Test
+ public void testUpdateVersionStatusWhenNone() throws Exception {
+ Item item = new Item();
+ item.setId(ITEM_ID);
+ doReturn(item).when(itemDao).get(any(Item.class));
+
+ itemManager.updateVersionStatus(ITEM_ID, VersionStatus.Certified, VersionStatus.Draft);
+
+ verify(itemDao).update(item);
+ assertEquals(item.getVersionStatusCounters().get(VersionStatus.Certified).intValue(), 1);
+ assertNull(item.getVersionStatusCounters().get(VersionStatus.Draft));
+ }
+
+ @Test
+ public void testUpdateVersionStatusAddFirst() throws Exception {
+ Item item = new Item();
+ item.setId(ITEM_ID);
+ doReturn(item).when(itemDao).get(any(Item.class));
+
+ itemManager.updateVersionStatus(ITEM_ID, VersionStatus.Draft, null);
+
+ verify(itemDao).update(item);
+ assertEquals(item.getVersionStatusCounters().size(), 1);
+ assertEquals(item.getVersionStatusCounters().get(VersionStatus.Draft).intValue(), 1);
+ }
+
+ @Test
+ public void testUpdateVersionStatus() throws Exception {
+ Item item = new Item();
+ item.setId(ITEM_ID);
+ item.getVersionStatusCounters().put(VersionStatus.Certified, 2);
+ item.getVersionStatusCounters().put(VersionStatus.Draft, 3);
+ doReturn(item).when(itemDao).get(any(Item.class));
+
+ itemManager.updateVersionStatus(ITEM_ID, VersionStatus.Certified, VersionStatus.Draft);
+
+ verify(itemDao).update(item);
+ assertEquals(item.getVersionStatusCounters().size(), 2);
+ assertEquals(item.getVersionStatusCounters().get(VersionStatus.Certified).intValue(), 3);
+ assertEquals(item.getVersionStatusCounters().get(VersionStatus.Draft).intValue(), 2);
+ }
+
+ @Test
+ public void testUpdateVersionStatusRemoveLast() throws Exception {
+ Item item = new Item();
+ item.setId(ITEM_ID);
+ item.getVersionStatusCounters().put(VersionStatus.Certified, 2);
+ item.getVersionStatusCounters().put(VersionStatus.Draft, 1);
+ doReturn(item).when(itemDao).get(any(Item.class));
+
+ itemManager.updateVersionStatus(ITEM_ID, VersionStatus.Certified, VersionStatus.Draft);
+
+ verify(itemDao).update(item);
+ assertEquals(item.getVersionStatusCounters().size(), 1);
+ assertEquals(item.getVersionStatusCounters().get(VersionStatus.Certified).intValue(), 3);
+ assertNull(item.getVersionStatusCounters().get(VersionStatus.Draft));
+ }
+
+ private Item createItem(String id, String name, String type) {
+ Item item = new Item();
+ item.setId(id);
+ item.setName(name);
+ item.setType(type);
+ return item;
+ }
+
+ private void assertItemEquals(Item actual, Item expected) {
+ assertEquals(actual.getId(), expected.getId());
+ assertEquals(actual.getName(), expected.getName());
+ assertEquals(actual.getType(), expected.getType());
+ }
+} \ No newline at end of file