Second part of onap rename
[appc.git] / appc-oam / appc-oam-bundle / src / test / java / org / openecomp / appc / oam / AppcOamTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP : APPC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Copyright (C) 2017 Amdocs
8  * =============================================================================
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  * 
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  * 
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  * 
21  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
22  * ============LICENSE_END=========================================================
23  */
24
25 package org.onap.appc.oam;
26
27 import org.junit.Assert;
28 import org.junit.Before;
29 import org.junit.Test;
30 import org.junit.runner.RunWith;
31 import org.mockito.Mockito;
32 import org.opendaylight.yang.gen.v1.org.onap.appc.oam.rev170303.AppcState;
33 import org.opendaylight.yang.gen.v1.org.onap.appc.oam.rev170303.GetAppcStateOutput;
34 import org.opendaylight.yang.gen.v1.org.onap.appc.oam.rev170303.MaintenanceModeInput;
35 import org.opendaylight.yang.gen.v1.org.onap.appc.oam.rev170303.MaintenanceModeOutput;
36 import org.opendaylight.yang.gen.v1.org.onap.appc.oam.rev170303.RestartInput;
37 import org.opendaylight.yang.gen.v1.org.onap.appc.oam.rev170303.RestartOutput;
38 import org.opendaylight.yang.gen.v1.org.onap.appc.oam.rev170303.StartInput;
39 import org.opendaylight.yang.gen.v1.org.onap.appc.oam.rev170303.StartOutput;
40 import org.opendaylight.yang.gen.v1.org.onap.appc.oam.rev170303.StopInput;
41 import org.opendaylight.yang.gen.v1.org.onap.appc.oam.rev170303.StopOutput;
42 import org.opendaylight.yang.gen.v1.org.onap.appc.oam.rev170303.common.header.CommonHeader;
43 import org.opendaylight.yang.gen.v1.org.onap.appc.oam.rev170303.status.Status;
44 import org.opendaylight.yangtools.yang.common.RpcResult;
45 import org.onap.appc.oam.processor.OamMmodeProcessor;
46 import org.onap.appc.oam.processor.OamRestartProcessor;
47 import org.onap.appc.oam.processor.OamStartProcessor;
48 import org.onap.appc.oam.processor.OamStopProcessor;
49 import org.onap.appc.oam.util.OperationHelper;
50 import org.onap.appc.oam.util.StateHelper;
51 import org.osgi.framework.FrameworkUtil;
52 import org.powermock.api.mockito.PowerMockito;
53 import org.powermock.core.classloader.annotations.PrepareForTest;
54 import org.powermock.modules.junit4.PowerMockRunner;
55 import org.powermock.reflect.Whitebox;
56
57 import java.util.concurrent.Executors;
58 import java.util.concurrent.Future;
59
60 import static org.mockito.Mockito.mock;
61 import static org.powermock.api.mockito.PowerMockito.spy;
62
63 @RunWith(PowerMockRunner.class)
64 @PrepareForTest({AppcOam.class, FrameworkUtil.class, Executors.class})
65 public class AppcOamTest {
66
67     private AppcOam appcOam;
68     private CommonHeader mockCommonHeader = mock(CommonHeader.class);
69     private Status mockStatus = mock(Status.class);
70     private OperationHelper mockOperationHelper = mock(OperationHelper.class);
71     private StateHelper mockStateHelper = mock(StateHelper.class);
72
73     @Before
74     public void setUp() throws Exception {
75         appcOam = spy(new AppcOam(null, null, null));
76
77         Whitebox.setInternalState(appcOam, "stateHelper", mockStateHelper);
78         Whitebox.setInternalState(appcOam, "operationHelper", mockOperationHelper);
79     }
80
81     @Test
82     public void testMaintenanceMode() throws Exception {
83         // mock processor creation
84         OamMmodeProcessor mockProcessor = mock(OamMmodeProcessor.class);
85         PowerMockito.mockStatic(OamMmodeProcessor.class);
86         PowerMockito.whenNew(OamMmodeProcessor.class).withAnyArguments().thenReturn(mockProcessor);
87         // mock input
88         MaintenanceModeInput mockInput = mock(MaintenanceModeInput.class);
89         Mockito.doReturn(mockCommonHeader).when(mockInput).getCommonHeader();
90         // mock processor result
91         Mockito.doReturn(mockStatus).when(mockProcessor).processRequest(mockInput);
92
93         Future<RpcResult<MaintenanceModeOutput>> response = appcOam.maintenanceMode(mockInput);
94
95         Assert.assertEquals("Should have common header", mockCommonHeader,
96                 response.get().getResult().getCommonHeader());
97         Assert.assertEquals("Should have status", mockStatus, response.get().getResult().getStatus());
98     }
99
100     @Test
101     public void testStart()  throws Exception {
102         // mock processor creation
103         OamStartProcessor mockProcessor = mock(OamStartProcessor.class);
104         PowerMockito.mockStatic(OamStartProcessor.class);
105         PowerMockito.whenNew(OamStartProcessor.class).withAnyArguments().thenReturn(mockProcessor);
106         // mock input
107         StartInput mockInput = mock(StartInput.class);
108         Mockito.doReturn(mockCommonHeader).when(mockInput).getCommonHeader();
109         // mock processor result
110         Mockito.doReturn(mockStatus).when(mockProcessor).processRequest(mockInput);
111
112         Future<RpcResult<StartOutput>> response = appcOam.start(mockInput);
113
114         Assert.assertEquals("Should have common header", mockCommonHeader,
115                 response.get().getResult().getCommonHeader());
116         Assert.assertEquals("Should have status", mockStatus, response.get().getResult().getStatus());
117     }
118
119     @Test
120     public void testStop()  throws Exception {
121         // mock processor creation
122         OamStopProcessor mockProcessor = mock(OamStopProcessor.class);
123         PowerMockito.mockStatic(OamStopProcessor.class);
124         PowerMockito.whenNew(OamStopProcessor.class).withAnyArguments().thenReturn(mockProcessor);
125         // mock input
126         StopInput mockInput = mock(StopInput.class);
127         Mockito.doReturn(mockCommonHeader).when(mockInput).getCommonHeader();
128         // mock processor result
129         Mockito.doReturn(mockStatus).when(mockProcessor).processRequest(mockInput);
130
131         Future<RpcResult<StopOutput>> response = appcOam.stop(mockInput);
132
133         Assert.assertEquals("Should have common header", mockCommonHeader,
134                 response.get().getResult().getCommonHeader());
135         Assert.assertEquals("Should have status", mockStatus, response.get().getResult().getStatus());
136     }
137
138     @Test
139     public void testRestart()  throws Exception {
140         // mock processor creation
141         OamRestartProcessor mockProcessor = mock(OamRestartProcessor.class);
142         PowerMockito.mockStatic(OamRestartProcessor.class);
143         PowerMockito.whenNew(OamRestartProcessor.class).withAnyArguments().thenReturn(mockProcessor);
144         // mock input
145         RestartInput mockInput = mock(RestartInput.class);
146         Mockito.doReturn(mockCommonHeader).when(mockInput).getCommonHeader();
147         // mock processor result
148         Mockito.doReturn(mockStatus).when(mockProcessor).processRequest(mockInput);
149
150         Future<RpcResult<RestartOutput>> response = appcOam.restart(mockInput);
151
152         Assert.assertEquals("Should have common header", mockCommonHeader,
153                 response.get().getResult().getCommonHeader());
154         Assert.assertEquals("Should have status", mockStatus, response.get().getResult().getStatus());
155     }
156
157     @Test
158     public void testGetAppcState() throws Exception {
159         AppcState appcState = AppcState.Started;
160         Mockito.doReturn(appcState).when(mockStateHelper).getCurrentOamYangState();
161
162         Future<RpcResult<GetAppcStateOutput>> state = appcOam.getAppcState();
163         Assert.assertEquals("Should return the same state",
164                 appcState, state.get().getResult().getState());
165     }
166 }