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(); result = session;
56 session.createSQLQuery(" show tables "); result = query;
57 query.list(); result = Arrays.asList("table1", "table2");
60 assertTrue(requestsDatabase.healthCheck());
64 public void updateInfraStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
65 @Mocked Session session,
66 @Mocked Query query) throws Exception {
68 sessionFactoryManager.getSessionFactory().openSession(); result = session;
69 query.executeUpdate(); result = 1;
71 assertEquals(1, requestsDatabase.updateInfraStatus("123", "unknown", "unknown"));
75 public void updateInfraStatus1Test(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
76 @Mocked Session session,
77 @Mocked Query query) throws Exception {
79 sessionFactoryManager.getSessionFactory().openSession(); result = session;
80 query.executeUpdate(); result = 1;
82 assertEquals(1, requestsDatabase.updateInfraStatus("123", "unknown", 0, "unknown"));
86 public void updateInfraFinalStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
87 @Mocked Session session,
88 @Mocked Query query) throws Exception {
90 sessionFactoryManager.getSessionFactory().openSession(); result = session;
91 query.executeUpdate(); result = 1;
93 assertEquals(1, requestsDatabase.updateInfraFinalStatus("123",
102 public void getRequestFromInfraActiveTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
103 @Mocked Session session,
104 @Mocked Query query) throws Exception {
105 new Expectations() {{
106 sessionFactoryManager.getSessionFactory().openSession(); result = session;
107 query.uniqueResult(); result = new InfraActiveRequests("123", "action");
110 requestsDatabase.getRequestFromInfraActive("123").getRequestId());
114 public void getOrchestrationFiltersFromInfraActiveTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
115 @Mocked Session session,
116 @Mocked Criteria criteria) throws Exception {
118 new Expectations() {{
119 sessionFactoryManager.getSessionFactory().openSession(); result = session;
120 session.createCriteria(InfraActiveRequests.class); result = criteria;
121 criteria.list(); result = Arrays.asList(new InfraActiveRequests("123", "action"));
124 requestsDatabase.getRequestListFromInfraActive("queryattr",
130 public void getRequestListFromInfraActiveTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
131 @Mocked Session session,
132 @Mocked Query query) throws Exception {
133 new Expectations() {{
134 sessionFactoryManager.getSessionFactory().openSession(); result = session;
135 session.createQuery("from InfraActiveRequests where (requestId = :requestId OR clientRequestId = :requestId) and requestType = :requestType"); result = query;
136 query.uniqueResult(); result = new InfraActiveRequests("123", "action");
139 requestsDatabase.getRequestFromInfraActive("123", "requestType").getRequestId());
143 public void getRequestFromInfraActive1Test(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
144 @Mocked Session session,
145 @Mocked Criteria criteria) throws Exception {
146 new Expectations() {{
147 sessionFactoryManager.getSessionFactory().openSession(); result = session;
148 session.createCriteria(InfraActiveRequests.class); result = criteria;
149 criteria.list(); result = Arrays.asList(new InfraActiveRequests());
152 requestsDatabase.getRequestListFromInfraActive("queryAttr",
158 public void checkDuplicateByVnfNameTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
159 @Mocked Session session,
160 @Mocked Query query) throws Exception {
161 new Expectations() {{
162 sessionFactoryManager.getSessionFactory().openSession(); result = session;
163 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;
164 query.list(); result = Arrays.asList(new InfraActiveRequests("123", "action"));
167 requestsDatabase.checkDuplicateByVnfName("vnfname",
169 "requesttype").getRequestId());
173 public void checkDuplicateByVnfIdTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
174 @Mocked Session session,
175 @Mocked Query query) throws Exception {
176 new Expectations() {{
177 sessionFactoryManager.getSessionFactory().openSession(); result = session;
178 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;
179 query.list(); result = Arrays.asList(new InfraActiveRequests("123", "action"));
182 requestsDatabase.checkDuplicateByVnfId("vnfname",
184 "requesttype").getRequestId());
188 public void setMockDBTest() throws Exception {
189 requestsDatabase.setMockDB(null);
193 public void getSiteStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
194 @Mocked Session session,
195 @Mocked Query query) throws Exception {
196 new Expectations() {{
197 sessionFactoryManager.getSessionFactory().openSession(); result = session;
198 session.createQuery("FROM SiteStatus WHERE siteName = :site_name"); result = query;
199 query.uniqueResult(); result = new SiteStatus();
201 assertEquals(SiteStatus.class,
202 requestsDatabase.getSiteStatus("site").getClass());
206 public void updateSiteStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
207 @Mocked Session session,
208 @Mocked Query query) throws Exception {
209 new Expectations() {{
210 sessionFactoryManager.getSessionFactory().openSession(); result = session;
211 session.createQuery("FROM SiteStatus WHERE siteName = :site_name"); result = query;
212 query.uniqueResult(); result = new SiteStatus();
214 requestsDatabase.updateSiteStatus("site", true);
218 public void getOperationStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
219 @Mocked Session session,
220 @Mocked Query query) throws Exception {
221 new Expectations() {{
222 sessionFactoryManager.getSessionFactory().openSession(); result = session;
223 session.createQuery("FROM OperationStatus WHERE SERVICE_ID = :service_id and OPERATION_ID = :operation_id"); result = query;
224 query.uniqueResult(); result = new OperationStatus();
226 assertEquals(OperationStatus.class,
227 requestsDatabase.getOperationStatus("123",
228 "Unknown").getClass());
232 public void getOperationStatusByServiceIdTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
233 @Mocked Session session,
234 @Mocked Query query) throws Exception {
235 new Expectations() {{
236 sessionFactoryManager.getSessionFactory().openSession(); result = session;
237 session.createQuery("FROM OperationStatus WHERE SERVICE_ID = :service_id"); result = query;
238 query.uniqueResult(); result = new OperationStatus();
240 assertEquals(OperationStatus.class,
241 requestsDatabase.getOperationStatusByServiceId("123").getClass());
245 public void getOperationStatusByServiceNameTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
246 @Mocked Session session,
247 @Mocked Query query) throws Exception {
248 new Expectations() {{
249 sessionFactoryManager.getSessionFactory().openSession(); result = session;
250 session.createQuery("FROM OperationStatus WHERE SERVICE_NAME = :service_name"); result = query;
251 query.uniqueResult(); result = new OperationStatus();
253 assertEquals(OperationStatus.class,
254 requestsDatabase.getOperationStatusByServiceName("servicename").getClass());
258 public void updateOperationStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
259 @Mocked Session session,
260 @Mocked Query query) throws Exception {
261 new Expectations() {{
262 sessionFactoryManager.getSessionFactory().openSession(); result = session;
263 session.createQuery("FROM OperationStatus WHERE SERVICE_ID = :service_id and OPERATION_ID = :operation_id"); result = query;
264 query.uniqueResult(); result = new OperationStatus();
266 requestsDatabase.updateOperationStatus(new OperationStatus());
270 public void getResourceOperationStatusTest(@Mocked AbstractSessionFactoryManager sessionFactoryManager,
271 @Mocked Session session,
272 @Mocked Query query) throws Exception {
273 new Expectations() {{
274 sessionFactoryManager.getSessionFactory().openSession(); result = session;
275 session.createQuery("FROM ResourceOperationStatus WHERE serviceId = :service_id and operationId = :operation_id and resourceTemplateUUID= :uuid"); result = query;
276 query.uniqueResult(); result = new ResourceOperationStatus();
278 assertEquals(ResourceOperationStatus.class,
279 requestsDatabase.getResourceOperationStatus("serviceId",
281 "123-uuid").getClass());