2 * Copyright 2016-2017 ZTE Corporation.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package org.onap.usecaseui.server.service.lcm.impl;
20 import org.hibernate.Query;
21 import org.hibernate.Session;
22 import org.hibernate.SessionFactory;
23 import org.hibernate.Transaction;
24 import org.junit.Assert;
25 import org.junit.Before;
26 import org.junit.Test;
27 import org.onap.usecaseui.server.bean.ServiceBean;
28 import org.onap.usecaseui.server.service.lcm.ServiceLcmService;
29 import org.onap.usecaseui.server.service.lcm.domain.so.SOService;
30 import org.onap.usecaseui.server.service.lcm.domain.so.bean.DeleteOperationRsp;
31 import org.onap.usecaseui.server.service.lcm.domain.so.bean.Operation;
32 import org.onap.usecaseui.server.service.lcm.domain.so.bean.OperationProgressInformation;
33 import org.onap.usecaseui.server.service.lcm.domain.so.bean.SaveOrUpdateOperationRsp;
34 import org.onap.usecaseui.server.service.lcm.domain.so.bean.ServiceOperation;
35 import org.onap.usecaseui.server.service.lcm.domain.so.exceptions.SOException;
37 import javax.servlet.ReadListener;
38 import javax.servlet.ServletInputStream;
39 import javax.servlet.http.HttpServletRequest;
40 import java.io.IOException;
41 import java.io.Serializable;
42 import java.util.Arrays;
43 import java.util.Date;
44 import java.util.List;
46 import static org.mockito.Matchers.anyObject;
47 import static org.mockito.Matchers.eq;
48 import static org.mockito.Mockito.mock;
49 import static org.mockito.Mockito.when;
50 import static org.onap.usecaseui.server.util.CallStub.emptyBodyCall;
51 import static org.onap.usecaseui.server.util.CallStub.failedCall;
52 import static org.onap.usecaseui.server.util.CallStub.successfulCall;
54 public class DefaultServiceLcmServiceTest {
56 private static final long serialVersionUID = 1L;
58 ServiceLcmService service = null;
61 public void before() throws Exception {
62 SOService soService = mock(SOService.class);
63 service = new DefaultServiceLcmService(soService);
65 MockUp<Transaction> mockUpTransaction = new MockUp<Transaction>() {
67 public void commit() {
70 MockUp<Query> mockUpQuery = new MockUp<Query>() {
74 public Query setString(String name, String value) {
75 return mockUpQuery.getMockInstance();
78 public Query setDate(String name, Date value) {
79 return mockUpQuery.getMockInstance();
82 public Query setInteger(String name, int value) {
83 return mockUpQuery.getMockInstance();
86 public int executeUpdate() {
90 public Query setMaxResults(int value) {
91 return mockUpQuery.getMockInstance();
94 public Query setFirstResult(int firstResult) {
95 return mockUpQuery.getMockInstance();
98 public Query setParameterList(String name, Object[] values) {
99 return mockUpQuery.getMockInstance();
102 public List<ServiceBean> list() {
103 ServiceBean ah = new ServiceBean();
104 return Arrays.asList(ah);
107 public Object uniqueResult() {
111 MockUp<Session> mockedSession = new MockUp<Session>() {
113 public Query createQuery(String sql) {
114 return mockUpQuery.getMockInstance();
117 public Transaction beginTransaction() {
118 return mockUpTransaction.getMockInstance();
121 public Transaction getTransaction() {
122 return mockUpTransaction.getMockInstance();
125 public Serializable save(Object object) {
126 return (Serializable) serialVersionUID;
129 public void flush() {
132 public void update(Object object) {
135 new MockUp<SessionFactory>() {
137 public Session openSession() {
138 return mockedSession.getMockInstance();
141 new MockUp<DefaultServiceLcmService>() {
143 private Session getSession() {
144 return mockedSession.getMockInstance();
150 public void itCanInstantiateService() throws IOException {
151 SOService soService = mock(SOService.class);
152 Operation op = new Operation();
153 op.setOperationId("1");
154 op.setServiceId("1");
155 ServiceOperation operation = new ServiceOperation();
156 operation.setService(op);
157 when(soService.instantiateService(anyObject())).thenReturn(successfulCall(operation));
159 HttpServletRequest request = mockRequest();
161 ServiceLcmService service = new DefaultServiceLcmService(soService);
163 Assert.assertSame(operation, service.instantiateService(request));
166 private HttpServletRequest mockRequest() throws IOException {
167 HttpServletRequest request = mock(HttpServletRequest.class);
168 when(request.getContentLength()).thenReturn(0);
169 ServletInputStream inStream = new ServletInputStream() {
171 public boolean isFinished() {
176 public boolean isReady() {
181 public void setReadListener(ReadListener readListener) {
186 public int read() throws IOException {
190 when(request.getInputStream()).thenReturn(inStream);
194 @Test(expected = SOException.class)
195 public void instantiateServiceWillThrowExceptionWhenSOIsNotAvailable() throws IOException {
196 SOService soService = mock(SOService.class);
197 when(soService.instantiateService(anyObject())).thenReturn(failedCall("SO is not available!"));
198 HttpServletRequest request = mockRequest();
200 ServiceLcmService service = new DefaultServiceLcmService(soService);
202 service.instantiateService(request);
205 @Test(expected = SOException.class)
206 public void instantiateServiceWillThrowExceptionWhenSOResponseError() throws IOException {
207 SOService soService = mock(SOService.class);
208 when(soService.instantiateService(anyObject())).thenReturn(emptyBodyCall());
209 HttpServletRequest request = mockRequest();
211 ServiceLcmService service = new DefaultServiceLcmService(soService);
213 service.instantiateService(request);
217 public void itCanTerminateService() throws IOException {
218 SOService soService = mock(SOService.class);
219 String serviceId = "1";
220 DeleteOperationRsp rsp = new DeleteOperationRsp();
221 rsp.setOperationId("1");
222 when(soService.terminateService(eq(serviceId), anyObject())).thenReturn(successfulCall(rsp));
223 HttpServletRequest request = mockRequest();
225 ServiceLcmService service = new DefaultServiceLcmService(soService);
227 Assert.assertSame(rsp, service.terminateService(serviceId, request));
230 @Test(expected = SOException.class)
231 public void terminateServiceWillThrowExceptionWhenSOIsNotAvailable() throws IOException {
232 SOService soService = mock(SOService.class);
233 String serviceId = "1";
234 when(soService.terminateService(eq(serviceId), anyObject())).thenReturn(failedCall("SO is not available!"));
235 HttpServletRequest request = mockRequest();
237 ServiceLcmService service = new DefaultServiceLcmService(soService);
239 service.terminateService(serviceId, request);
242 @Test(expected = SOException.class)
243 public void terminateServiceWillThrowExceptionWhenSOResponseError() throws IOException {
244 SOService soService = mock(SOService.class);
245 String serviceId = "1";
246 when(soService.terminateService(eq(serviceId), anyObject())).thenReturn(emptyBodyCall());
247 HttpServletRequest request = mockRequest();
249 ServiceLcmService service = new DefaultServiceLcmService(soService);
251 service.terminateService(serviceId, request);
255 public void itCanQueryOperationProgress() {
256 SOService soService = mock(SOService.class);
257 String serviceId = "1";
258 String operationId = "1";
259 OperationProgressInformation progress = new OperationProgressInformation();
260 when(soService.queryOperationProgress(serviceId, operationId)).thenReturn(successfulCall(progress));
262 ServiceLcmService service = new DefaultServiceLcmService(soService);
264 Assert.assertSame(progress, service.queryOperationProgress(serviceId, operationId));
267 @Test(expected = SOException.class)
268 public void queryOperationProgressWillThrowExceptionWhenSOIsNotAvailable() {
269 SOService soService = mock(SOService.class);
270 String serviceId = "1";
271 String operationId = "1";
272 when(soService.queryOperationProgress(serviceId, operationId)).thenReturn(failedCall("SO is not available!"));
274 ServiceLcmService service = new DefaultServiceLcmService(soService);
276 service.queryOperationProgress(serviceId, operationId);
279 @Test(expected = SOException.class)
280 public void queryOperationProgressWillThrowExceptionWhenSOResponseError() {
281 SOService soService = mock(SOService.class);
282 String serviceId = "1";
283 String operationId = "1";
284 when(soService.queryOperationProgress(serviceId, operationId)).thenReturn(emptyBodyCall());
286 ServiceLcmService service = new DefaultServiceLcmService(soService);
288 service.queryOperationProgress(serviceId, operationId);
291 @Test(expected = SOException.class)
292 public void scaleServiceWillThrowExceptionWhenSOIsNotAvailable() throws IOException {
293 SOService soService = mock(SOService.class);
294 String serviceId = "1";
295 when(soService.scaleService(eq(serviceId), anyObject())).thenReturn(failedCall("SO is not available!"));
296 HttpServletRequest request = mockRequest();
298 ServiceLcmService service = new DefaultServiceLcmService(soService);
300 service.scaleService(serviceId, request);
303 @Test(expected = SOException.class)
304 public void scaleServiceWillThrowExceptionWhenSOResponseError() throws IOException {
305 SOService soService = mock(SOService.class);
306 String serviceId = "1";
307 when(soService.scaleService(eq(serviceId), anyObject())).thenReturn(emptyBodyCall());
308 HttpServletRequest request = mockRequest();
310 ServiceLcmService service = new DefaultServiceLcmService(soService);
312 service.scaleService(serviceId, request);
316 public void itCanScaleService() throws IOException {
317 SOService soService = mock(SOService.class);
318 String serviceId = "1";
319 SaveOrUpdateOperationRsp rsp = new SaveOrUpdateOperationRsp();
320 rsp.setOperationId("1");
321 when(soService.scaleService(eq(serviceId), anyObject())).thenReturn(successfulCall(rsp));
322 HttpServletRequest request = mockRequest();
324 ServiceLcmService service = new DefaultServiceLcmService(soService);
326 Assert.assertSame(rsp, service.scaleService(serviceId, request));
329 @Test(expected = SOException.class)
330 public void updateServiceWillThrowExceptionWhenSOIsNotAvailable() throws IOException {
331 SOService soService = mock(SOService.class);
332 String serviceId = "1";
333 when(soService.updateService(eq(serviceId), anyObject())).thenReturn(failedCall("SO is not available!"));
334 HttpServletRequest request = mockRequest();
336 ServiceLcmService service = new DefaultServiceLcmService(soService);
338 service.updateService(serviceId, request);
341 @Test(expected = SOException.class)
342 public void updateServiceWillThrowExceptionWhenSOResponseError() throws IOException {
343 SOService soService = mock(SOService.class);
344 String serviceId = "1";
345 when(soService.updateService(eq(serviceId), anyObject())).thenReturn(emptyBodyCall());
346 HttpServletRequest request = mockRequest();
348 ServiceLcmService service = new DefaultServiceLcmService(soService);
350 service.updateService(serviceId, request);
354 public void itCanUpdateService() throws IOException {
355 SOService soService = mock(SOService.class);
356 String serviceId = "1";
357 SaveOrUpdateOperationRsp rsp = new SaveOrUpdateOperationRsp();
358 rsp.setOperationId("1");
359 when(soService.updateService(eq(serviceId), anyObject())).thenReturn(successfulCall(rsp));
360 HttpServletRequest request = mockRequest();
362 ServiceLcmService service = new DefaultServiceLcmService(soService);
364 Assert.assertSame(rsp, service.updateService(serviceId, request));
368 public void itCanGetServiceInstanceIdByParentId() throws IOException {
370 String parentServiceInstanceId = "1";
372 service.getServiceInstanceIdByParentId(parentServiceInstanceId);
374 service.getServiceInstanceIdByParentId(null);
378 public void itCanGetServiceBeanByServiceInStanceId() throws IOException {
380 String serviceInstanceId = "1";
382 service.getServiceBeanByServiceInStanceId(serviceInstanceId);
384 service.getServiceBeanByServiceInStanceId(null);
388 public void itCanUpdateServiceInstanceStatusById() throws IOException {
390 String serviceInstanceId = "1";
392 String status="active";
394 service.updateServiceInstanceStatusById(status,serviceInstanceId);
396 service.updateServiceInstanceStatusById(null,null);
400 public void itCanSaveOrUpdateServiceBean() throws IOException {
402 ServiceBean serviceBean = new ServiceBean();
404 service.saveOrUpdateServiceBean(serviceBean);
406 service.saveOrUpdateServiceBean(null);