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 java.util.HashMap;
26 import org.camunda.bpm.engine.RuntimeService;
27 import org.camunda.bpm.engine.delegate.DelegateExecution;
28 import org.camunda.bpm.engine.delegate.Expression;
29 import org.camunda.bpm.engine.test.Deployment;
30 import org.camunda.bpm.engine.test.ProcessEngineRule;
31 import org.junit.Assert;
32 import org.junit.Before;
33 import org.junit.Rule;
34 import org.junit.Test;
36 import org.openecomp.mso.bpmn.test.CamundaDBSetup;
37 import org.openecomp.mso.bpmn.test.PropertyConfigurationSetup;
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 processEngineRule.getTaskService();
65 runtimeService.startProcessInstanceByKey("BaseTaskTest", variables);
69 * Unit test code for BaseTask.
71 public static class TestTask extends BaseTask {
72 private static MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL);
74 private Expression existingString;
75 private Expression nonExistingString;
76 private Expression existingStringFromVar;
77 private Expression nonExistingStringFromVar;
79 private Expression existingInteger;
80 private Expression nonExistingInteger;
81 private Expression existingIntegerFromVar;
82 private Expression nonExistingIntegerFromVar;
84 private Expression existingLong;
85 private Expression nonExistingLong;
86 private Expression existingLongFromVar;
87 private Expression nonExistingLongFromVar;
89 private Expression existingOutputVar;
90 private Expression nonExistingOutputVar;
91 private Expression existingBadOutputVar;
93 public void execute(DelegateExecution execution) throws Exception {
94 msoLogger.debug("Started executing " + getClass().getSimpleName());
96 /*********************************************************************/
97 msoLogger.debug("Running String Field Tests");
98 /*********************************************************************/
100 String s = getStringField(existingString, execution, "existingString");
101 Assert.assertEquals("Hello World", s);
104 s = getStringField(nonExistingString, execution, "nonExistingString");
105 Assert.fail("Expected BadInjectedFieldException for nonExistingString");
106 } catch (Exception e) {
107 if (!(e instanceof BadInjectedFieldException)) {
108 Assert.fail("Expected BadInjectedFieldException for nonExistingString");
112 s = getOptionalStringField(existingString, execution, "existingString");
113 Assert.assertEquals("Hello World", s);
115 s = getOptionalStringField(nonExistingString, execution, "nonExistingString");
116 Assert.assertEquals(null, s);
118 /*********************************************************************/
119 msoLogger.debug("Running String Expression Tests");
120 /*********************************************************************/
122 s = getStringField(existingStringFromVar, execution, "existingStringFromVar");
123 Assert.assertEquals("Jane", s);
126 s = getStringField(nonExistingStringFromVar, execution, "nonExistingStringFromVar");
127 Assert.fail("Expected BadInjectedFieldException for nonExistingString");
128 } catch (Exception e) {
129 if (!(e instanceof BadInjectedFieldException)) {
130 Assert.fail("Expected BadInjectedFieldException for nonExistingStringFromVar");
134 s = getOptionalStringField(existingStringFromVar, execution, "existingStringFromVar");
135 Assert.assertEquals("Jane", s);
137 s = getOptionalStringField(nonExistingStringFromVar, execution, "nonExistingStringFromVar");
138 Assert.assertEquals(null, s);
140 /*********************************************************************/
141 msoLogger.debug("Running Integer Field Tests");
142 /*********************************************************************/
144 Integer i = getIntegerField(existingInteger, execution, "existingInteger");
145 Assert.assertEquals((Integer)42, i);
148 i = getIntegerField(nonExistingInteger, execution, "nonExistingInteger");
149 Assert.fail("Expected BadInjectedFieldException for nonExistingInteger");
150 } catch (Exception e) {
151 if (!(e instanceof BadInjectedFieldException)) {
152 Assert.fail("Expected BadInjectedFieldException for nonExistingInteger");
156 i = getOptionalIntegerField(existingInteger, execution, "existingInteger");
157 Assert.assertEquals((Integer)42, i);
159 i = getOptionalIntegerField(nonExistingInteger, execution, "nonExistingInteger");
160 Assert.assertEquals(null, i);
162 /*********************************************************************/
163 msoLogger.debug("Running Integer Expression Tests");
164 /*********************************************************************/
166 i = getIntegerField(existingIntegerFromVar, execution, "existingIntegerFromVar");
167 Assert.assertEquals((Integer)25, i);
170 i = getIntegerField(nonExistingIntegerFromVar, execution, "nonExistingIntegerFromVar");
171 Assert.fail("Expected BadInjectedFieldException for nonExistingInteger");
172 } catch (Exception e) {
173 if (!(e instanceof BadInjectedFieldException)) {
174 Assert.fail("Expected BadInjectedFieldException for nonExistingIntegerFromVar");
178 i = getOptionalIntegerField(existingIntegerFromVar, execution, "existingIntegerFromVar");
179 Assert.assertEquals((Integer)25, i);
181 i = getOptionalIntegerField(nonExistingIntegerFromVar, execution, "nonExistingIntegerFromVar");
182 Assert.assertEquals(null, i);
184 /*********************************************************************/
185 msoLogger.debug("Running Long Field Tests");
186 /*********************************************************************/
188 Long l = getLongField(existingLong, execution, "existingLong");
189 Assert.assertEquals((Long)123456789L, l);
192 l = getLongField(nonExistingLong, execution, "nonExistingLong");
193 Assert.fail("Expected BadInjectedFieldException for nonExistingLong");
194 } catch (Exception e) {
195 if (!(e instanceof BadInjectedFieldException)) {
196 Assert.fail("Expected BadInjectedFieldException for nonExistingLong");
200 l = getOptionalLongField(existingLong, execution, "existingLong");
201 Assert.assertEquals((Long)123456789L, l);
203 l = getOptionalLongField(nonExistingLong, execution, "nonExistingLong");
204 Assert.assertEquals(null, l);
206 /*********************************************************************/
207 msoLogger.debug("Running Long Expression Tests");
208 /*********************************************************************/
210 l = getLongField(existingLongFromVar, execution, "existingLongFromVar");
211 Assert.assertEquals((Long)1438270117000L, l);
214 l = getLongField(nonExistingLongFromVar, execution, "nonExistingLongFromVar");
215 Assert.fail("Expected BadInjectedFieldException for nonExistingLong");
216 } catch (Exception e) {
217 if (!(e instanceof BadInjectedFieldException)) {
218 Assert.fail("Expected BadInjectedFieldException for nonExistingLongFromVar");
222 l = getOptionalLongField(existingLongFromVar, execution, "existingLongFromVar");
223 Assert.assertEquals((Long)1438270117000L, l);
225 l = getOptionalLongField(nonExistingLongFromVar, execution, "nonExistingLongFromVar");
226 Assert.assertEquals(null, i);
228 /*********************************************************************/
229 msoLogger.debug("Running Output Variable Field Tests");
230 /*********************************************************************/
232 String var = getOutputField(existingOutputVar, execution, "existingOutputVar");
233 Assert.assertEquals("goodVariable", var);
236 var = getOutputField(nonExistingOutputVar, execution, "nonExistingOutputVar");
237 Assert.fail("Expected BadInjectedFieldException for nonExistingString");
238 } catch (Exception e) {
239 if (!(e instanceof BadInjectedFieldException)) {
240 Assert.fail("Expected BadInjectedFieldException for nonExistingString");
244 var = getOptionalOutputField(existingOutputVar, execution, "existingOutputVar");
245 Assert.assertEquals("goodVariable", var);
247 var = getOptionalOutputField(nonExistingOutputVar, execution, "nonExistingOutputVar");
248 Assert.assertEquals(null, var);
251 var = getOutputField(existingBadOutputVar, execution, "existingBadOutputVar");
252 Assert.fail("Expected BadInjectedFieldException for nonExistingString");
253 } catch (Exception e) {
254 if (!(e instanceof BadInjectedFieldException)) {
255 Assert.fail("Expected BadInjectedFieldException for nonExistingString");
259 msoLogger.debug("Finished executing " + getClass().getSimpleName());