2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. 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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
20 package org.openecomp.mso.requestsdb;
23 import mockit.Expectations;
25 import mockit.integration.junit4.JMockit;
26 import org.hibernate.Criteria;
27 import org.hibernate.Query;
28 import org.hibernate.SQLQuery;
29 import org.hibernate.Session;
30 import org.junit.Test;
31 import org.junit.runner.RunWith;
32 import org.openecomp.mso.db.AbstractSessionFactoryManager;
34 import java.util.Arrays;
36 import static org.junit.Assert.assertEquals;
37 import static org.junit.Assert.assertTrue;
39 @RunWith(JMockit.class)
40 public class RequestsDatabaseTest {
42 RequestsDatabase requestsDatabase = RequestsDatabase.getInstance();
45 public void getInstanceTest() throws Exception {
46 RequestsDatabase instance = RequestsDatabase.getInstance();
47 assertEquals(RequestsDatabase.class, instance.getClass());
51 public void healthCheckTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
52 @Mocked Session session,
53 @Mocked SQLQuery query) throws Exception {
55 sessionFactoryManager.getSessionFactory().openSession();
57 session.createSQLQuery(" show tables ");
60 result = Arrays.asList("table1", "table2");
63 assertTrue(requestsDatabase.healthCheck());
67 public void updateInfraStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
68 @Mocked Session session,
69 @Mocked Query query) throws Exception {
71 sessionFactoryManager.getSessionFactory().openSession();
73 query.executeUpdate();
76 assertEquals(1, requestsDatabase.updateInfraStatus("123", "unknown", "unknown"));
80 public void updateInfraStatus1Test(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
81 @Mocked Session session,
82 @Mocked Query query) throws Exception {
84 sessionFactoryManager.getSessionFactory().openSession();
86 query.executeUpdate();
89 assertEquals(1, requestsDatabase.updateInfraStatus("123", "unknown", 0, "unknown"));
93 public void updateInfraFinalStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
94 @Mocked Session session,
95 @Mocked Query query) throws Exception {
97 sessionFactoryManager.getSessionFactory().openSession();
99 query.executeUpdate();
102 assertEquals(1, requestsDatabase.updateInfraFinalStatus("123",
111 public void getRequestFromInfraActiveTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
112 @Mocked Session session,
113 @Mocked Query query) throws Exception {
114 new Expectations() {{
115 sessionFactoryManager.getSessionFactory().openSession();
117 query.uniqueResult();
118 result = new InfraActiveRequests("123", "action");
121 requestsDatabase.getRequestFromInfraActive("123").getRequestId());
125 public void getOrchestrationFiltersFromInfraActiveTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
126 @Mocked Session session,
127 @Mocked Criteria criteria) throws Exception {
129 new Expectations() {{
130 sessionFactoryManager.getSessionFactory().openSession();
132 session.createCriteria(InfraActiveRequests.class);
135 result = Arrays.asList(new InfraActiveRequests("123", "action"));
138 requestsDatabase.getRequestListFromInfraActive("queryattr",
144 public void getRequestListFromInfraActiveTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
145 @Mocked Session session,
146 @Mocked Query query) throws Exception {
147 new Expectations() {{
148 sessionFactoryManager.getSessionFactory().openSession();
150 session.createQuery("from InfraActiveRequests where (requestId = :requestId OR clientRequestId = :requestId) and requestType = :requestType");
152 query.uniqueResult();
153 result = new InfraActiveRequests("123", "action");
156 requestsDatabase.getRequestFromInfraActive("123", "requestType").getRequestId());
160 public void getRequestFromInfraActive1Test(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
161 @Mocked Session session,
162 @Mocked Criteria criteria) throws Exception {
163 new Expectations() {{
164 sessionFactoryManager.getSessionFactory().openSession();
166 session.createCriteria(InfraActiveRequests.class);
169 result = Arrays.asList(new InfraActiveRequests());
172 requestsDatabase.getRequestListFromInfraActive("queryAttr",
178 public void checkDuplicateByVnfNameTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
179 @Mocked Session session,
180 @Mocked Query query) throws Exception {
181 new Expectations() {{
182 sessionFactoryManager.getSessionFactory().openSession();
184 session.createQuery("from InfraActiveRequests where vnfName = :vnfName and action = :action and (requestStatus = 'PENDING' or requestStatus = 'IN_PROGRESS' or requestStatus = 'TIMEOUT') and requestType = :requestType ORDER BY startTime DESC");
187 result = Arrays.asList(new InfraActiveRequests("123", "action"));
190 requestsDatabase.checkDuplicateByVnfName("vnfname",
192 "requesttype").getRequestId());
196 public void checkDuplicateByVnfIdTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
197 @Mocked Session session,
198 @Mocked Query query) throws Exception {
199 new Expectations() {{
200 sessionFactoryManager.getSessionFactory().openSession();
202 session.createQuery("from InfraActiveRequests where vnfId = :vnfId and action = :action and (requestStatus = 'PENDING' or requestStatus = 'IN_PROGRESS' or requestStatus = 'TIMEOUT') and requestType = :requestType ORDER BY startTime DESC");
205 result = Arrays.asList(new InfraActiveRequests("123", "action"));
208 requestsDatabase.checkDuplicateByVnfId("vnfname",
210 "requesttype").getRequestId());
214 public void setMockDBTest() throws Exception {
215 requestsDatabase.setMockDB(null);
219 public void getSiteStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
220 @Mocked Session session,
221 @Mocked Query query) throws Exception {
222 new Expectations() {{
223 sessionFactoryManager.getSessionFactory().openSession();
225 session.createQuery("FROM SiteStatus WHERE siteName = :site_name");
227 query.uniqueResult();
228 result = new SiteStatus();
230 assertEquals(SiteStatus.class,
231 requestsDatabase.getSiteStatus("site").getClass());
235 public void updateSiteStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
236 @Mocked Session session,
237 @Mocked Query query) throws Exception {
238 new Expectations() {{
239 sessionFactoryManager.getSessionFactory().openSession();
241 session.createQuery("FROM SiteStatus WHERE siteName = :site_name");
243 query.uniqueResult();
244 result = new SiteStatus();
246 requestsDatabase.updateSiteStatus("site", true);
250 public void getOperationStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
251 @Mocked Session session,
252 @Mocked Query query) throws Exception {
253 new Expectations() {{
254 sessionFactoryManager.getSessionFactory().openSession();
256 session.createQuery("FROM OperationStatus WHERE SERVICE_ID = :service_id and OPERATION_ID = :operation_id");
258 query.uniqueResult();
259 result = new OperationStatus();
261 assertEquals(OperationStatus.class,
262 requestsDatabase.getOperationStatus("123",
263 "Unknown").getClass());
267 public void getOperationStatusByServiceIdTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
268 @Mocked Session session,
269 @Mocked Query query) throws Exception {
270 new Expectations() {{
271 sessionFactoryManager.getSessionFactory().openSession();
273 session.createQuery("FROM OperationStatus WHERE SERVICE_ID = :service_id");
275 query.uniqueResult();
276 result = new OperationStatus();
278 assertEquals(OperationStatus.class,
279 requestsDatabase.getOperationStatusByServiceId("123").getClass());
283 public void getOperationStatusByServiceNameTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
284 @Mocked Session session,
285 @Mocked Query query) throws Exception {
286 new Expectations() {{
287 sessionFactoryManager.getSessionFactory().openSession();
289 session.createQuery("FROM OperationStatus WHERE SERVICE_NAME = :service_name");
291 query.uniqueResult();
292 result = new OperationStatus();
294 assertEquals(OperationStatus.class,
295 requestsDatabase.getOperationStatusByServiceName("servicename").getClass());
299 public void updateOperationStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
300 @Mocked Session session,
301 @Mocked Query query) throws Exception {
302 new Expectations() {{
303 sessionFactoryManager.getSessionFactory().openSession();
305 session.createQuery("FROM OperationStatus WHERE SERVICE_ID = :service_id and OPERATION_ID = :operation_id");
307 query.uniqueResult();
308 result = new OperationStatus();
310 requestsDatabase.updateOperationStatus(new OperationStatus());
314 public void getResourceOperationStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
315 @Mocked Session session,
316 @Mocked Query query) throws Exception {
317 new Expectations() {{
318 sessionFactoryManager.getSessionFactory().openSession();
320 session.createQuery("FROM ResourceOperationStatus WHERE serviceId = :service_id and operationId = :operation_id and resourceTemplateUUID= :uuid");
322 query.uniqueResult();
323 result = new ResourceOperationStatus();
325 assertEquals(ResourceOperationStatus.class,
326 requestsDatabase.getResourceOperationStatus("serviceId",
328 "123-uuid").getClass());