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.Ignore;
31 import org.junit.Test;
32 import org.junit.runner.RunWith;
33 import org.openecomp.mso.db.AbstractSessionFactoryManager;
35 import java.util.Arrays;
36 import java.util.List;
38 import static org.junit.Assert.assertEquals;
39 import static org.junit.Assert.assertTrue;
41 @RunWith(JMockit.class)
42 public class RequestsDatabaseTest {
44 RequestsDatabase requestsDatabase = RequestsDatabase.getInstance();
47 public void getInstanceTest() throws Exception {
48 RequestsDatabase instance = RequestsDatabase.getInstance();
49 assertEquals(RequestsDatabase.class, instance.getClass());
53 public void healthCheckTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
54 @Mocked Session session,
55 @Mocked SQLQuery query) throws Exception {
57 sessionFactoryManager.getSessionFactory().openSession(); result = session;
58 session.createSQLQuery(" show tables "); result = query;
59 query.list(); result = Arrays.asList("table1", "table2");
62 assertTrue(requestsDatabase.healthCheck());
66 public void updateInfraStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
67 @Mocked Session session,
68 @Mocked Query query) throws Exception {
70 sessionFactoryManager.getSessionFactory().openSession(); result = session;
71 query.executeUpdate(); result = 1;
73 assertEquals(1, requestsDatabase.updateInfraStatus("123", "unknown", "unknown"));
77 public void updateInfraStatus1Test(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
78 @Mocked Session session,
79 @Mocked Query query) throws Exception {
81 sessionFactoryManager.getSessionFactory().openSession(); result = session;
82 query.executeUpdate(); result = 1;
84 assertEquals(1, requestsDatabase.updateInfraStatus("123", "unknown", 0, "unknown"));
88 public void updateInfraFinalStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
89 @Mocked Session session,
90 @Mocked Query query) throws Exception {
92 sessionFactoryManager.getSessionFactory().openSession(); result = session;
93 query.executeUpdate(); result = 1;
95 assertEquals(1, requestsDatabase.updateInfraFinalStatus("123",
104 public void getRequestFromInfraActiveTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
105 @Mocked Session session,
106 @Mocked Query query) throws Exception {
107 new Expectations() {{
108 sessionFactoryManager.getSessionFactory().openSession(); result = session;
109 query.uniqueResult(); result = new InfraActiveRequests("123", "action");
112 requestsDatabase.getRequestFromInfraActive("123").getRequestId());
116 public void getOrchestrationFiltersFromInfraActiveTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
117 @Mocked Session session,
118 @Mocked Criteria criteria) throws Exception {
120 new Expectations() {{
121 sessionFactoryManager.getSessionFactory().openSession(); result = session;
122 session.createCriteria(InfraActiveRequests.class); result = criteria;
123 criteria.list(); result = Arrays.asList(new InfraActiveRequests("123", "action"));
126 requestsDatabase.getRequestListFromInfraActive("queryattr",
132 public void getRequestListFromInfraActiveTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
133 @Mocked Session session,
134 @Mocked Query query) throws Exception {
135 new Expectations() {{
136 sessionFactoryManager.getSessionFactory().openSession(); result = session;
137 session.createQuery("from InfraActiveRequests where (requestId = :requestId OR clientRequestId = :requestId) and requestType = :requestType"); result = query;
138 query.uniqueResult(); result = new InfraActiveRequests("123", "action");
141 requestsDatabase.getRequestFromInfraActive("123", "requestType").getRequestId());
145 public void getRequestFromInfraActive1Test(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
146 @Mocked Session session,
147 @Mocked Criteria criteria) throws Exception {
148 new Expectations() {{
149 sessionFactoryManager.getSessionFactory().openSession(); result = session;
150 session.createCriteria(InfraActiveRequests.class); result = criteria;
151 criteria.list(); result = Arrays.asList(new InfraActiveRequests());
154 requestsDatabase.getRequestListFromInfraActive("queryAttr",
160 @Ignore // 1802 merge
161 public void checkDuplicateByVnfNameTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
162 @Mocked Session session,
163 @Mocked Query query) throws Exception {
164 new Expectations() {{
165 sessionFactoryManager.getSessionFactory().openSession(); result = session;
166 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"); result = query;
167 query.list(); result = Arrays.asList(new InfraActiveRequests("123", "action"));
170 requestsDatabase.checkDuplicateByVnfName("vnfname",
172 "requesttype").getRequestId());
176 @Ignore // 1802 merge
177 public void checkDuplicateByVnfIdTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
178 @Mocked Session session,
179 @Mocked Query query) throws Exception {
180 new Expectations() {{
181 sessionFactoryManager.getSessionFactory().openSession(); result = session;
182 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"); result = query;
183 query.list(); result = Arrays.asList(new InfraActiveRequests("123", "action"));
186 requestsDatabase.checkDuplicateByVnfId("vnfname",
188 "requesttype").getRequestId());
192 public void setMockDBTest() throws Exception {
193 requestsDatabase.setMockDB(null);
197 public void getSiteStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
198 @Mocked Session session,
199 @Mocked Query query) throws Exception {
200 new Expectations() {{
201 sessionFactoryManager.getSessionFactory().openSession(); result = session;
202 session.createQuery("FROM SiteStatus WHERE siteName = :site_name"); result = query;
203 query.uniqueResult(); result = new SiteStatus();
205 assertEquals(SiteStatus.class,
206 requestsDatabase.getSiteStatus("site").getClass());
210 public void updateSiteStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
211 @Mocked Session session,
212 @Mocked Query query) throws Exception {
213 new Expectations() {{
214 sessionFactoryManager.getSessionFactory().openSession(); result = session;
215 session.createQuery("FROM SiteStatus WHERE siteName = :site_name"); result = query;
216 query.uniqueResult(); result = new SiteStatus();
218 requestsDatabase.updateSiteStatus("site", true);
222 public void getOperationStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
223 @Mocked Session session,
224 @Mocked Query query) throws Exception {
225 new Expectations() {{
226 sessionFactoryManager.getSessionFactory().openSession(); result = session;
227 session.createQuery("FROM OperationStatus WHERE SERVICE_ID = :service_id and OPERATION_ID = :operation_id"); result = query;
228 query.uniqueResult(); result = new OperationStatus();
230 assertEquals(OperationStatus.class,
231 requestsDatabase.getOperationStatus("123",
232 "Unknown").getClass());
236 public void getOperationStatusByServiceIdTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
237 @Mocked Session session,
238 @Mocked Query query) throws Exception {
239 new Expectations() {{
240 sessionFactoryManager.getSessionFactory().openSession(); result = session;
241 session.createQuery("FROM OperationStatus WHERE SERVICE_ID = :service_id order by OPERATE_AT desc"); result = query;
242 List<Object>list = query.list(); result = new OperationStatus();
244 assertEquals(OperationStatus.class,
245 requestsDatabase.getOperationStatusByServiceId("123").getClass());
249 public void getOperationStatusByServiceNameTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
250 @Mocked Session session,
251 @Mocked Query query) throws Exception {
252 new Expectations() {{
253 sessionFactoryManager.getSessionFactory().openSession(); result = session;
254 session.createQuery("FROM OperationStatus WHERE SERVICE_NAME = :service_name"); result = query;
255 query.uniqueResult(); result = new OperationStatus();
257 assertEquals(OperationStatus.class,
258 requestsDatabase.getOperationStatusByServiceName("servicename").getClass());
262 public void updateOperationStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
263 @Mocked Session session,
264 @Mocked Query query) throws Exception {
265 new Expectations() {{
266 sessionFactoryManager.getSessionFactory().openSession(); result = session;
267 session.createQuery("FROM OperationStatus WHERE SERVICE_ID = :service_id and OPERATION_ID = :operation_id"); result = query;
268 query.uniqueResult(); result = new OperationStatus();
270 requestsDatabase.updateOperationStatus(new OperationStatus());
274 public void getResourceOperationStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
275 @Mocked Session session,
276 @Mocked Query query) throws Exception {
277 new Expectations() {{
278 sessionFactoryManager.getSessionFactory().openSession(); result = session;
279 session.createQuery("FROM ResourceOperationStatus WHERE serviceId = :service_id and operationId = :operation_id and resourceTemplateUUID= :uuid"); result = query;
280 query.uniqueResult(); result = new ResourceOperationStatus();
282 assertEquals(ResourceOperationStatus.class,
283 requestsDatabase.getResourceOperationStatus("serviceId",
285 "123-uuid").getClass());