1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
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.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.Collection;
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;
public class ItemManagerImplTest {
@Mock
private ItemDao itemDao;
@Mock
private PermissionsServices permissionsServices;
@Mock
private SubscriptionService subscriptionService;
@InjectMocks
private ItemManagerImpl itemManager;
@BeforeMethod
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
}
@Test
public void testList() throws Exception {
doReturn(Stream.of(
createItem("item1", "A"),
createItem("item2", "B"),
createItem("item3", "B"),
createItem("item4", "A"))
.collect(Collectors.toList())).when(itemDao).list();
Collection<Item> items = itemManager.list(item -> "B".equals(item.getType()));
Assert.assertEquals(items.size(), 2);
Assert.assertTrue(items.stream().anyMatch(item -> "item2".equals(item.getName())));
Assert.assertTrue(items.stream().anyMatch(item -> "item3".equals(item.getName())));
}
@Test
public void testGetNotExisting() throws Exception {
Item item = itemManager.get("item1");
Assert.assertNull(item);
}
@Test
public void testGet() throws Exception {
Item toBeReturned = new Item();
toBeReturned.setId("itemId");
doReturn(toBeReturned).when(itemDao).get(any(Item.class));
Item item = itemManager.get("itemId");
Assert.assertEquals(item.getId(), "itemId");
}
@Test
public void testCreate() throws Exception {
SessionContextProviderFactory.getInstance().createInterface().create("user1");
Item toBeReturned = new Item();
toBeReturned.setId("itemId");
doReturn(toBeReturned).when(itemDao).create(any(Item.class));
Item item = itemManager.create(createItem("item1", "A"));
Assert.assertEquals(item.getId(), "itemId");
}
@Test
public void testUpdateNotExistingVersionStatus() throws Exception {
itemManager.updateVersionStatus("itemId", VersionStatus.Certified, VersionStatus.Draft);
verify(itemDao, never()).update(any(Item.class));
}
@Test
public void testUpdateVersionStatusWhenNone() throws Exception {
Item item = new Item();
item.setId("itemId");
doReturn(item).when(itemDao).get(any(Item.class));
itemManager.updateVersionStatus("itemId", VersionStatus.Certified, VersionStatus.Draft);
verify(itemDao).update(item);
Assert.assertEquals(item.getVersionStatusCounters().get(VersionStatus.Certified).intValue(), 1);
Assert.assertNull(item.getVersionStatusCounters().get(VersionStatus.Draft));
}
@Test
public void testUpdateVersionStatus() throws Exception {
Item item = new Item();
item.setId("itemId");
item.getVersionStatusCounters().put(VersionStatus.Certified, 2);
item.getVersionStatusCounters().put(VersionStatus.Draft, 5);
doReturn(item).when(itemDao).get(any(Item.class));
itemManager.updateVersionStatus("itemId", VersionStatus.Certified, VersionStatus.Draft);
verify(itemDao).update(item);
Assert.assertEquals(item.getVersionStatusCounters().get(VersionStatus.Certified).intValue(), 3);
Assert.assertEquals(item.getVersionStatusCounters().get(VersionStatus.Draft).intValue(), 4);
}
private Item createItem(String name, String type) {
Item item = new Item();
item.setId(name);
item.setName(name);
item.setType(type);
return item;
}
}
|