cfe642a4baae13d5880dabb0b376dc56f9154b4b
[appc.git] / appc-inbound / appc-design-services / provider / src / test / java / org / onap / appc / design / services / impl / TestDesignServicesImpl.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * Copyright (C) 2019 Ericsson. All rights reserved.
4  * ================================================================================
5  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
6  * file except in compliance with the License. You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software distributed under the License
11  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12  * or implied. See the License for the specific language governing permissions and limitations under
13  * the License.
14  *
15  * SPDX-License-Identifier: Apache-2.0
16  * ============LICENSE_END=========================================================
17  */
18
19 package org.onap.appc.design.services.impl;
20
21 import static org.junit.Assert.assertEquals;
22 import static org.mockito.Matchers.anyString;
23 import static org.mockito.Matchers.eq;
24 import static org.mockito.Mockito.when;
25
26 import org.junit.Before;
27 import org.junit.Test;
28 import org.junit.runner.RunWith;
29 import org.mockito.Mockito;
30 import org.onap.appc.design.dbervices.DesignDBService;
31 import org.onap.appc.design.xinterface.XInterfaceService;
32 import org.onap.appc.design.xinterface.XResponseProcessor;
33 import org.opendaylight.yang.gen.v1.org.onap.appc.rev170627.DbserviceInput;
34 import org.opendaylight.yang.gen.v1.org.onap.appc.rev170627.ValidatorInput;
35 import org.opendaylight.yang.gen.v1.org.onap.appc.rev170627.XinterfaceserviceInput;
36 import org.opendaylight.yang.gen.v1.org.onap.appc.rev170627.design.request.DesignRequest;
37 import org.powermock.api.mockito.PowerMockito;
38 import org.powermock.core.classloader.annotations.PrepareForTest;
39 import org.powermock.modules.junit4.PowerMockRunner;
40
41 @RunWith(PowerMockRunner.class)
42 @PrepareForTest({DesignDBService.class,XInterfaceService.class,XResponseProcessor.class})
43 public class TestDesignServicesImpl {
44
45   private DesignServicesImpl designServicesImpl;
46   private DbserviceInput dbserviceInput;
47   private XinterfaceserviceInput xinterfaceserviceInput;
48   private ValidatorInput validatorInput;
49   private DesignRequest designRequest;
50   private DesignDBService designDBService;
51   private XInterfaceService xInterfaceService;
52   private XResponseProcessor xResponseProcessor;
53
54
55   @Before
56   public void setUp() throws Exception {
57     designServicesImpl = new DesignServicesImpl();
58     dbserviceInput = Mockito.mock(DbserviceInput.class);
59     designRequest = Mockito.mock(DesignRequest.class);
60     designDBService = Mockito.mock(DesignDBService.class);
61     xInterfaceService = Mockito.mock(XInterfaceService.class);
62     PowerMockito.mockStatic(DesignDBService.class);
63     PowerMockito.mockStatic(XResponseProcessor.class);
64     PowerMockito.mockStatic(XInterfaceService.class);
65     xResponseProcessor = PowerMockito.mock(XResponseProcessor.class);
66     xinterfaceserviceInput = Mockito.mock(XinterfaceserviceInput.class);
67     validatorInput = Mockito.mock(ValidatorInput.class);
68     when(dbserviceInput.getDesignRequest()).thenReturn(designRequest);
69     when(xinterfaceserviceInput.getDesignRequest()).thenReturn(designRequest);
70     when(validatorInput.getDesignRequest()).thenReturn(designRequest);
71     when(designRequest.getRequestId()).thenReturn("123");
72     when(designRequest.getAction()).thenReturn("getDesigns");
73     when(designRequest.getPayload()).thenReturn("{\"artifact-contents\":\"\",\"userID\":\"user\"}");
74   }
75
76   @Test
77   public void testDbService() throws Exception {
78     PowerMockito.when(DesignDBService.initialise()).thenReturn(designDBService);
79     when(designDBService.execute(eq("getDesigns"), anyString(), eq("123"))).thenReturn("success");
80     assertEquals("400",
81         designServicesImpl.dbservice(dbserviceInput).get().getResult().getStatus().getCode());
82   }
83
84   @Test
85   public void testDbServiceWithException() throws Exception {
86     PowerMockito.when(DesignDBService.initialise()).thenReturn(designDBService);
87     when(designDBService.execute(eq("getDesigns"), anyString(), eq("123")))
88         .thenThrow(new Exception());
89     assertEquals("401",
90         designServicesImpl.dbservice(dbserviceInput).get().getResult().getStatus().getCode());
91   }
92
93   @Test
94   public void testXinterfaceservice() throws Exception {
95     PowerMockito.when(XInterfaceService.getInstance()).thenReturn(xInterfaceService);
96     PowerMockito.when(XResponseProcessor.getInstance()).thenReturn(xResponseProcessor);
97     when(xResponseProcessor.parseResponse(anyString(), eq("getDesigns"))).thenReturn("success");
98     assertEquals("400", designServicesImpl.xinterfaceservice(xinterfaceserviceInput).get()
99         .getResult().getStatus().getCode());
100   }
101   
102   @Test
103   public void testXinterfaceserviceWithException() throws Exception {
104     PowerMockito.when(XInterfaceService.getInstance()).thenReturn(xInterfaceService);
105     PowerMockito.when(XResponseProcessor.getInstance()).thenReturn(xResponseProcessor);
106     when(xResponseProcessor.parseResponse(anyString(), eq("getDesigns"))).thenThrow(new Exception());
107     assertEquals("401", designServicesImpl.xinterfaceservice(xinterfaceserviceInput).get()
108         .getResult().getStatus().getCode());
109   }
110
111   @Test
112   public void testValidatorJson() throws Exception {
113     when(designRequest.getDataType()).thenReturn("JSON");
114     assertEquals("400",
115         designServicesImpl.validator(validatorInput).get().getResult().getStatus().getCode());
116   }
117
118   @Test
119   public void testValidatorXml() throws Exception {
120     when(designRequest.getPayload()).thenReturn("<artifact-contents></artifact-contents>");
121     when(designRequest.getDataType()).thenReturn("XML");
122     assertEquals("400",
123         designServicesImpl.validator(validatorInput).get().getResult().getStatus().getCode());
124   }
125
126   @Test
127   public void testValidatorYaml() throws Exception {
128     when(designRequest.getPayload()).thenReturn("artifact-contents: 34843");
129     when(designRequest.getDataType()).thenReturn("YAML");
130     assertEquals("400",
131         designServicesImpl.validator(validatorInput).get().getResult().getStatus().getCode());
132   }
133
134   @Test
135   public void testValidatorVelocity() throws Exception {
136     when(designRequest.getPayload()).thenReturn("artifact-contents: 34843");
137     when(designRequest.getDataType()).thenReturn("VELOCITY");
138     assertEquals("400",
139         designServicesImpl.validator(validatorInput).get().getResult().getStatus().getCode());
140   }
141
142   @Test
143   public void testValidatorInvalid() throws Exception {
144     when(designRequest.getDataType()).thenReturn("XYZ");
145     assertEquals("401",
146         designServicesImpl.validator(validatorInput).get().getResult().getStatus().getCode());
147   }
148
149 }