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=========================================================
21 package org.openecomp.mso.bpmn.core;
23 import static org.junit.Assert.assertNotNull;
25 import java.util.HashMap;
28 import org.camunda.bpm.engine.RuntimeService;
29 import org.camunda.bpm.engine.delegate.DelegateExecution;
30 import org.camunda.bpm.engine.delegate.Expression;
31 import org.camunda.bpm.engine.test.Deployment;
32 import org.camunda.bpm.engine.test.ProcessEngineRule;
33 import org.junit.Assert;
34 import org.junit.Before;
35 import org.junit.Rule;
36 import org.junit.Test;
38 import org.openecomp.mso.logger.MsoLogger;
41 * Unit test for BaseTask class.
43 public class TestBaseTask {
46 public ProcessEngineRule processEngineRule = new ProcessEngineRule();
49 public void beforeTest() throws Exception {
50 CamundaDBSetup.configure();
51 PropertyConfigurationSetup.init();
55 @Deployment(resources={"BaseTaskTest.bpmn"})
56 public void shouldInvokeService() {
57 Map<String, Object> variables = new HashMap<String, Object>();
58 variables.put("firstName", "Jane");
59 variables.put("lastName", "Doe");
60 variables.put("age", (Integer)25);
61 variables.put("lastVisit", (Long)1438270117000L);
63 RuntimeService runtimeService = processEngineRule.getRuntimeService();
64 assertNotNull(runtimeService);
65 processEngineRule.getTaskService();
66 runtimeService.startProcessInstanceByKey("BaseTaskTest", variables);
70 * Unit test code for BaseTask.
72 public static class TestTask extends BaseTask {
73 private static MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL);
75 private Expression existingString;
76 private Expression nonExistingString;
77 private Expression existingStringFromVar;
78 private Expression nonExistingStringFromVar;
80 private Expression existingInteger;
81 private Expression nonExistingInteger;
82 private Expression existingIntegerFromVar;
83 private Expression nonExistingIntegerFromVar;
85 private Expression existingLong;
86 private Expression nonExistingLong;
87 private Expression existingLongFromVar;
88 private Expression nonExistingLongFromVar;
90 private Expression existingOutputVar;
91 private Expression nonExistingOutputVar;
92 private Expression existingBadOutputVar;
94 public void execute(DelegateExecution execution) throws Exception {
95 msoLogger.debug("Started executing " + getClass().getSimpleName());
97 /*********************************************************************/
98 msoLogger.debug("Running String Field Tests");
99 /*********************************************************************/
101 String s = getStringField(existingString, execution, "existingString");
102 Assert.assertEquals("Hello World", s);
105 s = getStringField(nonExistingString, execution, "nonExistingString");
106 Assert.fail("Expected BadInjectedFieldException for nonExistingString");
107 } catch (Exception e) {
108 if (!(e instanceof BadInjectedFieldException)) {
109 Assert.fail("Expected BadInjectedFieldException for nonExistingString");
113 s = getOptionalStringField(existingString, execution, "existingString");
114 Assert.assertEquals("Hello World", s);
116 s = getOptionalStringField(nonExistingString, execution, "nonExistingString");
117 Assert.assertEquals(null, s);
119 /*********************************************************************/
120 msoLogger.debug("Running String Expression Tests");
121 /*********************************************************************/
123 s = getStringField(existingStringFromVar, execution, "existingStringFromVar");
124 Assert.assertEquals("Jane", s);
127 s = getStringField(nonExistingStringFromVar, execution, "nonExistingStringFromVar");
128 Assert.fail("Expected BadInjectedFieldException for nonExistingString");
129 } catch (Exception e) {
130 if (!(e instanceof BadInjectedFieldException)) {
131 Assert.fail("Expected BadInjectedFieldException for nonExistingStringFromVar");
135 s = getOptionalStringField(existingStringFromVar, execution, "existingStringFromVar");
136 Assert.assertEquals("Jane", s);
138 s = getOptionalStringField(nonExistingStringFromVar, execution, "nonExistingStringFromVar");
139 Assert.assertEquals(null, s);
141 /*********************************************************************/
142 msoLogger.debug("Running Integer Field Tests");
143 /*********************************************************************/
145 Integer i = getIntegerField(existingInteger, execution, "existingInteger");
146 Assert.assertEquals((Integer)42, i);
149 i = getIntegerField(nonExistingInteger, execution, "nonExistingInteger");
150 Assert.fail("Expected BadInjectedFieldException for nonExistingInteger");
151 } catch (Exception e) {
152 if (!(e instanceof BadInjectedFieldException)) {
153 Assert.fail("Expected BadInjectedFieldException for nonExistingInteger");
157 i = getOptionalIntegerField(existingInteger, execution, "existingInteger");
158 Assert.assertEquals((Integer)42, i);
160 i = getOptionalIntegerField(nonExistingInteger, execution, "nonExistingInteger");
161 Assert.assertEquals(null, i);
163 /*********************************************************************/
164 msoLogger.debug("Running Integer Expression Tests");
165 /*********************************************************************/
167 i = getIntegerField(existingIntegerFromVar, execution, "existingIntegerFromVar");
168 Assert.assertEquals((Integer)25, i);
171 i = getIntegerField(nonExistingIntegerFromVar, execution, "nonExistingIntegerFromVar");
172 Assert.fail("Expected BadInjectedFieldException for nonExistingInteger");
173 } catch (Exception e) {
174 if (!(e instanceof BadInjectedFieldException)) {
175 Assert.fail("Expected BadInjectedFieldException for nonExistingIntegerFromVar");
179 i = getOptionalIntegerField(existingIntegerFromVar, execution, "existingIntegerFromVar");
180 Assert.assertEquals((Integer)25, i);
182 i = getOptionalIntegerField(nonExistingIntegerFromVar, execution, "nonExistingIntegerFromVar");
183 Assert.assertEquals(null, i);
185 /*********************************************************************/
186 msoLogger.debug("Running Long Field Tests");
187 /*********************************************************************/
189 Long l = getLongField(existingLong, execution, "existingLong");
190 Assert.assertEquals((Long)123456789L, l);
193 l = getLongField(nonExistingLong, execution, "nonExistingLong");
194 Assert.fail("Expected BadInjectedFieldException for nonExistingLong");
195 } catch (Exception e) {
196 if (!(e instanceof BadInjectedFieldException)) {
197 Assert.fail("Expected BadInjectedFieldException for nonExistingLong");
201 l = getOptionalLongField(existingLong, execution, "existingLong");
202 Assert.assertEquals((Long)123456789L, l);
204 l = getOptionalLongField(nonExistingLong, execution, "nonExistingLong");
205 Assert.assertEquals(null, l);
207 /*********************************************************************/
208 msoLogger.debug("Running Long Expression Tests");
209 /*********************************************************************/
211 l = getLongField(existingLongFromVar, execution, "existingLongFromVar");
212 Assert.assertEquals((Long)1438270117000L, l);
215 l = getLongField(nonExistingLongFromVar, execution, "nonExistingLongFromVar");
216 Assert.fail("Expected BadInjectedFieldException for nonExistingLong");
217 } catch (Exception e) {
218 if (!(e instanceof BadInjectedFieldException)) {
219 Assert.fail("Expected BadInjectedFieldException for nonExistingLongFromVar");
223 l = getOptionalLongField(existingLongFromVar, execution, "existingLongFromVar");
224 Assert.assertEquals((Long)1438270117000L, l);
226 l = getOptionalLongField(nonExistingLongFromVar, execution, "nonExistingLongFromVar");
227 Assert.assertEquals(null, i);
229 /*********************************************************************/
230 msoLogger.debug("Running Output Variable Field Tests");
231 /*********************************************************************/
233 String var = getOutputField(existingOutputVar, execution, "existingOutputVar");
234 Assert.assertEquals("goodVariable", var);
237 var = getOutputField(nonExistingOutputVar, execution, "nonExistingOutputVar");
238 Assert.fail("Expected BadInjectedFieldException for nonExistingString");
239 } catch (Exception e) {
240 if (!(e instanceof BadInjectedFieldException)) {
241 Assert.fail("Expected BadInjectedFieldException for nonExistingString");
245 var = getOptionalOutputField(existingOutputVar, execution, "existingOutputVar");
246 Assert.assertEquals("goodVariable", var);
248 var = getOptionalOutputField(nonExistingOutputVar, execution, "nonExistingOutputVar");
249 Assert.assertEquals(null, var);
252 var = getOutputField(existingBadOutputVar, execution, "existingBadOutputVar");
253 Assert.fail("Expected BadInjectedFieldException for nonExistingString");
254 } catch (Exception e) {
255 if (!(e instanceof BadInjectedFieldException)) {
256 Assert.fail("Expected BadInjectedFieldException for nonExistingString");
260 msoLogger.debug("Finished executing " + getClass().getSimpleName());