unit tests - openecomp-be
[sdc.git] / openecomp-be / api / openecomp-sdc-rest-webapp / item-rest / item-rest-services / src / test / java / org / openecomp / sdcrests / item / rest / services / ItemsImplTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2019 Nokia. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20 package org.openecomp.sdcrests.item.rest.services;
21
22 import static org.junit.Assert.assertEquals;
23 import static org.openecomp.sdcrests.item.types.ItemAction.ARCHIVE;
24 import static org.openecomp.sdcrests.item.types.ItemAction.RESTORE;
25
26 import java.util.ArrayList;
27 import java.util.List;
28 import javax.ws.rs.core.Response;
29 import org.junit.Test;
30 import org.junit.runner.RunWith;
31 import org.mockito.Mock;
32 import org.mockito.Mockito;
33 import org.mockito.junit.MockitoJUnitRunner;
34 import org.openecomp.sdc.activitylog.ActivityLogManager;
35 import org.openecomp.sdc.versioning.ItemManager;
36 import org.openecomp.sdc.versioning.VersioningManager;
37 import org.openecomp.sdc.versioning.dao.types.Version;
38 import org.openecomp.sdc.versioning.types.Item;
39 import org.openecomp.sdcrests.item.types.ItemActionRequestDto;
40
41 @RunWith(MockitoJUnitRunner.class)
42 public class ItemsImplTest {
43
44     private static final String ITEM_ID = "ITEM_ID";
45     private static final String USER = "USER";
46
47     @Mock
48     private ManagersProvider managersProvider;
49     @Mock
50     private ItemManager itemManager;
51     @Mock
52     private ItemActionRequestDto request;
53     @Mock
54     private Item item;
55     @Mock
56     private VersioningManager versioningManager;
57     @Mock
58     private ActivityLogManager activityManager;
59
60     @Test
61     public void shouldInitActionSideAffectsMap() {
62         ItemsImpl items = new ItemsImpl();
63         items.initActionSideAffectsMap();
64         assertEquals(items.getActionSideAffectsMap().size(),2);
65     }
66
67     @Test
68     public void shouldActOnEmptyItem() {
69         ItemsImpl items = new ItemsImpl();
70         items.initActionSideAffectsMap();
71         items.setManagersProvider(managersProvider);
72         Mockito.when(managersProvider.getItemManager()).thenReturn(itemManager);
73         Mockito.when(itemManager.get(Mockito.any())).thenReturn(null);
74         Response response = items.actOn(request, ITEM_ID, USER);
75         assertEquals(response.getStatus(), Response.Status.NOT_FOUND.getStatusCode());
76     }
77
78     @Test
79     public void shouldActOnARCHIVE() {
80         ItemsImpl items = new ItemsImpl();
81         items.initActionSideAffectsMap();
82         items.setManagersProvider(managersProvider);
83         Mockito.when(itemManager.get(Mockito.any())).thenReturn(item);
84         Mockito.when(request.getAction()).thenReturn(ARCHIVE);
85         Mockito.when(managersProvider.getItemManager()).thenReturn(itemManager);
86         Mockito.when(managersProvider.getVersioningManager()).thenReturn(versioningManager);
87         Mockito.when(versioningManager.list(Mockito.any())).thenReturn(getVersions());
88         Mockito.when(managersProvider.getActivityLogManager()).thenReturn(activityManager);
89         items.actOn(request, ITEM_ID, USER);
90         Mockito.verify(itemManager).archive(Mockito.any());
91     }
92
93     @Test
94     public void shouldActOnRESTORE() {
95         ItemsImpl items = new ItemsImpl();
96         items.initActionSideAffectsMap();
97         items.setManagersProvider(managersProvider);
98         Mockito.when(itemManager.get(Mockito.any())).thenReturn(item);
99         Mockito.when(request.getAction()).thenReturn(RESTORE);
100         Mockito.when(managersProvider.getItemManager()).thenReturn(itemManager);
101         Mockito.when(managersProvider.getVersioningManager()).thenReturn(versioningManager);
102         Mockito.when(versioningManager.list(Mockito.any())).thenReturn(getVersions());
103         Mockito.when(managersProvider.getActivityLogManager()).thenReturn(activityManager);
104         items.actOn(request, ITEM_ID, USER);
105         Mockito.verify(itemManager).restore(Mockito.any());
106     }
107
108     @Test
109     public void shouldGetItem() {
110         ItemsImpl items = new ItemsImpl();
111         items.initActionSideAffectsMap();
112         items.setManagersProvider(managersProvider);
113         Mockito.when(managersProvider.getItemManager()).thenReturn(itemManager);
114         Response response = items.getItem(ITEM_ID, USER);
115         assertEquals(response.getStatus(), Response.Status.OK.getStatusCode());
116     }
117
118     @Test
119     public void shouldList() {
120         ItemsImpl items = new ItemsImpl();
121         items.initActionSideAffectsMap();
122         items.setManagersProvider(managersProvider);
123         Mockito.when(managersProvider.getItemManager()).thenReturn(itemManager);
124         Response response = items.list(null, null, null, null, null, USER);
125         assertEquals(response.getStatus(), Response.Status.OK.getStatusCode());
126     }
127
128     private List<Version> getVersions() {
129         List<Version> versions = new ArrayList<>();
130         versions.add(new Version("1"));
131         versions.add(new Version("2"));
132         versions.add(new Version("3"));
133         return versions;
134     }
135 }