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;
37 import static org.junit.Assert.assertEquals;
38 import static org.junit.Assert.assertTrue;
40 @RunWith(JMockit.class)
41 public class RequestsDatabaseTest {
43 RequestsDatabase requestsDatabase = RequestsDatabase.getInstance();
46 public void getInstanceTest() throws Exception {
47 RequestsDatabase instance = RequestsDatabase.getInstance();
48 assertEquals(RequestsDatabase.class, instance.getClass());
52 public void healthCheckTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
53 @Mocked Session session,
54 @Mocked SQLQuery query) throws Exception {
56 sessionFactoryManager.getSessionFactory().openSession(); result = session;
57 session.createSQLQuery(" show tables "); result = query;
58 query.list(); result = Arrays.asList("table1", "table2");
61 assertTrue(requestsDatabase.healthCheck());
65 public void updateInfraStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
66 @Mocked Session session,
67 @Mocked Query query) throws Exception {
69 sessionFactoryManager.getSessionFactory().openSession(); result = session;
70 query.executeUpdate(); result = 1;
72 assertEquals(1, requestsDatabase.updateInfraStatus("123", "unknown", "unknown"));
76 public void updateInfraStatus1Test(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
77 @Mocked Session session,
78 @Mocked Query query) throws Exception {
80 sessionFactoryManager.getSessionFactory().openSession(); result = session;
81 query.executeUpdate(); result = 1;
83 assertEquals(1, requestsDatabase.updateInfraStatus("123", "unknown", 0, "unknown"));
87 public void updateInfraFinalStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
88 @Mocked Session session,
89 @Mocked Query query) throws Exception {
91 sessionFactoryManager.getSessionFactory().openSession(); result = session;
92 query.executeUpdate(); result = 1;
94 assertEquals(1, requestsDatabase.updateInfraFinalStatus("123",
103 public void getRequestFromInfraActiveTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
104 @Mocked Session session,
105 @Mocked Query query) throws Exception {
106 new Expectations() {{
107 sessionFactoryManager.getSessionFactory().openSession(); result = session;
108 query.uniqueResult(); result = new InfraActiveRequests("123", "action");
111 requestsDatabase.getRequestFromInfraActive("123").getRequestId());
115 public void getOrchestrationFiltersFromInfraActiveTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
116 @Mocked Session session,
117 @Mocked Criteria criteria) throws Exception {
119 new Expectations() {{
120 sessionFactoryManager.getSessionFactory().openSession(); result = session;
121 session.createCriteria(InfraActiveRequests.class); result = criteria;
122 criteria.list(); result = Arrays.asList(new InfraActiveRequests("123", "action"));
125 requestsDatabase.getRequestListFromInfraActive("queryattr",
131 public void getRequestListFromInfraActiveTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
132 @Mocked Session session,
133 @Mocked Query query) throws Exception {
134 new Expectations() {{
135 sessionFactoryManager.getSessionFactory().openSession(); result = session;
136 session.createQuery("from InfraActiveRequests where (requestId = :requestId OR clientRequestId = :requestId) and requestType = :requestType"); result = query;
137 query.uniqueResult(); result = new InfraActiveRequests("123", "action");
140 requestsDatabase.getRequestFromInfraActive("123", "requestType").getRequestId());
144 public void getRequestFromInfraActive1Test(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
145 @Mocked Session session,
146 @Mocked Criteria criteria) throws Exception {
147 new Expectations() {{
148 sessionFactoryManager.getSessionFactory().openSession(); result = session;
149 session.createCriteria(InfraActiveRequests.class); result = criteria;
150 criteria.list(); result = Arrays.asList(new InfraActiveRequests());
153 requestsDatabase.getRequestListFromInfraActive("queryAttr",
159 @Ignore // 1802 merge
160 public void checkDuplicateByVnfNameTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
161 @Mocked Session session,
162 @Mocked Query query) throws Exception {
163 new Expectations() {{
164 sessionFactoryManager.getSessionFactory().openSession(); result = session;
165 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;
166 query.list(); result = Arrays.asList(new InfraActiveRequests("123", "action"));
169 requestsDatabase.checkDuplicateByVnfName("vnfname",
171 "requesttype").getRequestId());
175 @Ignore // 1802 merge
176 public void checkDuplicateByVnfIdTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
177 @Mocked Session session,
178 @Mocked Query query) throws Exception {
179 new Expectations() {{
180 sessionFactoryManager.getSessionFactory().openSession(); result = session;
181 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;
182 query.list(); result = Arrays.asList(new InfraActiveRequests("123", "action"));
185 requestsDatabase.checkDuplicateByVnfId("vnfname",
187 "requesttype").getRequestId());
191 public void setMockDBTest() throws Exception {
192 requestsDatabase.setMockDB(null);
196 public void getSiteStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
197 @Mocked Session session,
198 @Mocked Query query) throws Exception {
199 new Expectations() {{
200 sessionFactoryManager.getSessionFactory().openSession(); result = session;
201 session.createQuery("FROM SiteStatus WHERE siteName = :site_name"); result = query;
202 query.uniqueResult(); result = new SiteStatus();
204 assertEquals(SiteStatus.class,
205 requestsDatabase.getSiteStatus("site").getClass());
209 public void updateSiteStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
210 @Mocked Session session,
211 @Mocked Query query) throws Exception {
212 new Expectations() {{
213 sessionFactoryManager.getSessionFactory().openSession(); result = session;
214 session.createQuery("FROM SiteStatus WHERE siteName = :site_name"); result = query;
215 query.uniqueResult(); result = new SiteStatus();
217 requestsDatabase.updateSiteStatus("site", true);
221 public void getOperationStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
222 @Mocked Session session,
223 @Mocked Query query) throws Exception {
224 new Expectations() {{
225 sessionFactoryManager.getSessionFactory().openSession(); result = session;
226 session.createQuery("FROM OperationStatus WHERE SERVICE_ID = :service_id and OPERATION_ID = :operation_id"); result = query;
227 query.uniqueResult(); result = new OperationStatus();
229 assertEquals(OperationStatus.class,
230 requestsDatabase.getOperationStatus("123",
231 "Unknown").getClass());
235 public void getOperationStatusByServiceIdTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
236 @Mocked Session session,
237 @Mocked Query query) throws Exception {
238 new Expectations() {{
239 sessionFactoryManager.getSessionFactory().openSession(); result = session;
240 session.createQuery("FROM OperationStatus WHERE SERVICE_ID = :service_id"); result = query;
241 query.uniqueResult(); result = new OperationStatus();
243 assertEquals(OperationStatus.class,
244 requestsDatabase.getOperationStatusByServiceId("123").getClass());
248 public void getOperationStatusByServiceNameTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
249 @Mocked Session session,
250 @Mocked Query query) throws Exception {
251 new Expectations() {{
252 sessionFactoryManager.getSessionFactory().openSession(); result = session;
253 session.createQuery("FROM OperationStatus WHERE SERVICE_NAME = :service_name"); result = query;
254 query.uniqueResult(); result = new OperationStatus();
256 assertEquals(OperationStatus.class,
257 requestsDatabase.getOperationStatusByServiceName("servicename").getClass());
261 public void updateOperationStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
262 @Mocked Session session,
263 @Mocked Query query) throws Exception {
264 new Expectations() {{
265 sessionFactoryManager.getSessionFactory().openSession(); result = session;
266 session.createQuery("FROM OperationStatus WHERE SERVICE_ID = :service_id and OPERATION_ID = :operation_id"); result = query;
267 query.uniqueResult(); result = new OperationStatus();
269 requestsDatabase.updateOperationStatus(new OperationStatus());
273 public void getResourceOperationStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
274 @Mocked Session session,
275 @Mocked Query query) throws Exception {
276 new Expectations() {{
277 sessionFactoryManager.getSessionFactory().openSession(); result = session;
278 session.createQuery("FROM ResourceOperationStatus WHERE serviceId = :service_id and operationId = :operation_id and resourceTemplateUUID= :uuid"); result = query;
279 query.uniqueResult(); result = new ResourceOperationStatus();
281 assertEquals(ResourceOperationStatus.class,
282 requestsDatabase.getResourceOperationStatus("serviceId",
284 "123-uuid").getClass());