1 package org.openecomp.sdc.versioning.impl;
3 import org.mockito.InjectMocks;
4 import org.mockito.Mock;
5 import org.mockito.MockitoAnnotations;
6 import org.openecomp.sdc.common.session.SessionContextProviderFactory;
7 import org.openecomp.sdc.itempermissions.PermissionsServices;
8 import org.openecomp.sdc.notification.services.SubscriptionService;
9 import org.openecomp.sdc.versioning.dao.ItemDao;
10 import org.openecomp.sdc.versioning.dao.types.VersionStatus;
11 import org.openecomp.sdc.versioning.types.Item;
12 import org.testng.Assert;
13 import org.testng.annotations.BeforeMethod;
14 import org.testng.annotations.Test;
16 import java.util.Collection;
17 import java.util.stream.Collectors;
18 import java.util.stream.Stream;
20 import static org.mockito.Matchers.any;
21 import static org.mockito.Mockito.doReturn;
22 import static org.mockito.Mockito.never;
23 import static org.mockito.Mockito.verify;
25 public class ItemManagerImplTest {
28 private ItemDao itemDao;
30 private PermissionsServices permissionsServices;
32 private SubscriptionService subscriptionService;
34 private ItemManagerImpl itemManager;
37 public void setUp() throws Exception {
38 MockitoAnnotations.initMocks(this);
42 public void testList() throws Exception {
44 createItem("item1", "A"),
45 createItem("item2", "B"),
46 createItem("item3", "B"),
47 createItem("item4", "A"))
48 .collect(Collectors.toList())).when(itemDao).list();
50 Collection<Item> items = itemManager.list(item -> "B".equals(item.getType()));
51 Assert.assertEquals(items.size(), 2);
52 Assert.assertTrue(items.stream().anyMatch(item -> "item2".equals(item.getName())));
53 Assert.assertTrue(items.stream().anyMatch(item -> "item3".equals(item.getName())));
57 public void testGetNotExisting() throws Exception {
58 Item item = itemManager.get("item1");
59 Assert.assertNull(item);
63 public void testGet() throws Exception {
64 Item toBeReturned = new Item();
65 toBeReturned.setId("itemId");
66 doReturn(toBeReturned).when(itemDao).get(any(Item.class));
68 Item item = itemManager.get("itemId");
69 Assert.assertEquals(item.getId(), "itemId");
73 public void testCreate() throws Exception {
74 SessionContextProviderFactory.getInstance().createInterface().create("user1");
76 Item toBeReturned = new Item();
77 toBeReturned.setId("itemId");
78 doReturn(toBeReturned).when(itemDao).create(any(Item.class));
80 Item item = itemManager.create(createItem("item1", "A"));
81 Assert.assertEquals(item.getId(), "itemId");
85 public void testUpdateNotExistingVersionStatus() throws Exception {
86 itemManager.updateVersionStatus("itemId", VersionStatus.Certified, VersionStatus.Draft);
87 verify(itemDao, never()).update(any(Item.class));
91 public void testUpdateVersionStatusWhenNone() throws Exception {
92 Item item = new Item();
94 doReturn(item).when(itemDao).get(any(Item.class));
96 itemManager.updateVersionStatus("itemId", VersionStatus.Certified, VersionStatus.Draft);
97 verify(itemDao).update(item);
98 Assert.assertEquals(item.getVersionStatusCounters().get(VersionStatus.Certified).intValue(), 1);
99 Assert.assertNull(item.getVersionStatusCounters().get(VersionStatus.Draft));
103 public void testUpdateVersionStatus() throws Exception {
104 Item item = new Item();
105 item.setId("itemId");
106 item.getVersionStatusCounters().put(VersionStatus.Certified, 2);
107 item.getVersionStatusCounters().put(VersionStatus.Draft, 5);
108 doReturn(item).when(itemDao).get(any(Item.class));
110 itemManager.updateVersionStatus("itemId", VersionStatus.Certified, VersionStatus.Draft);
111 verify(itemDao).update(item);
112 Assert.assertEquals(item.getVersionStatusCounters().get(VersionStatus.Certified).intValue(), 3);
113 Assert.assertEquals(item.getVersionStatusCounters().get(VersionStatus.Draft).intValue(), 4);
116 private Item createItem(String name, String type) {
117 Item item = new Item();