2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2016-2018 Ericsson. All rights reserved.
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
21 package org.onap.policy.apex.model.policymodel.concepts;
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertFalse;
25 import static org.junit.Assert.assertNotEquals;
26 import static org.junit.Assert.assertNotNull;
27 import static org.junit.Assert.assertTrue;
28 import static org.junit.Assert.fail;
31 import java.util.TreeMap;
32 import java.util.TreeSet;
34 import org.junit.Test;
35 import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
36 import org.onap.policy.apex.model.basicmodel.concepts.AxKey;
37 import org.onap.policy.apex.model.basicmodel.concepts.AxReferenceKey;
38 import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult;
39 import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult.ValidationResult;
44 * @author Liam Fallon (liam.fallon@ericsson.com)
46 public class StateTest {
49 public void testState() {
50 final TreeMap<String, AxStateOutput> soEmptyMap = new TreeMap<>();
51 final TreeSet<AxArtifactKey> ctxtEmptySet = new TreeSet<>();
52 final TreeMap<String, AxStateFinalizerLogic> sflEmptyMap = new TreeMap<>();
53 final TreeMap<AxArtifactKey, AxStateTaskReference> trEmptyMap = new TreeMap<>();
55 final TreeMap<String, AxStateOutput> soMap = new TreeMap<>();
56 final TreeSet<AxArtifactKey> ctxtSet = new TreeSet<>();
57 final TreeMap<String, AxStateFinalizerLogic> sflMap = new TreeMap<>();
58 final TreeMap<AxArtifactKey, AxStateTaskReference> trMap = new TreeMap<>();
60 assertNotNull(new AxState());
61 assertNotNull(new AxState(new AxReferenceKey()));
62 assertNotNull(new AxState(new AxStateParamsBuilder().key(new AxReferenceKey()).trigger(new AxArtifactKey())
63 .stateOutputs(soEmptyMap).contextAlbumReferenceSet(ctxtEmptySet)
64 .taskSelectionLogic(new AxTaskSelectionLogic()).stateFinalizerLogicMap(sflEmptyMap)
65 .defaultTask(new AxArtifactKey()).taskReferenceMap(trEmptyMap)));
67 final AxState state = new AxState();
69 final AxReferenceKey stateKey = new AxReferenceKey("PolicyName", "0.0.1", "StateName");
70 final AxReferenceKey stateKeyNext = new AxReferenceKey("PolicyName", "0.0.1", "StateNameNext");
71 final AxReferenceKey stateKeyBad = new AxReferenceKey("PolicyName", "0.0.1", "BadStateName");
72 final AxArtifactKey triggerKey = new AxArtifactKey("TriggerName", "0.0.1");
73 final AxTaskSelectionLogic tsl = new AxTaskSelectionLogic(stateKey, "TSL", "LogicFlavour", "Some Logic");
74 final AxArtifactKey defTaskKey = new AxArtifactKey("TaskName", "0.0.1");
75 final AxArtifactKey taskKey1 = new AxArtifactKey("Task1", "0.0.1");
76 final AxArtifactKey taskKey2 = new AxArtifactKey("Task2", "0.0.1");
77 final AxArtifactKey taskKeyBad = new AxArtifactKey("TaskBad", "0.0.1");
81 fail("test should throw an exception here");
82 } catch (final Exception e) {
83 assertEquals("key may not be null", e.getMessage());
86 state.setKey(stateKey);
87 assertEquals("PolicyName:0.0.1:NULL:StateName", state.getKey().getId());
88 assertEquals("PolicyName:0.0.1:NULL:StateName", state.getKeys().get(0).getId());
90 final AxStateOutput so0 = new AxStateOutput(new AxReferenceKey(stateKey, "SO0"), triggerKey,
91 new AxReferenceKey());
92 final AxStateOutput soU = new AxStateOutput(new AxReferenceKey(stateKey, "SOU"), triggerKey, stateKeyNext);
93 final AxStateOutput soSame = new AxStateOutput(new AxReferenceKey(stateKey, "SOU"), triggerKey, stateKey);
94 final AxArtifactKey cr0 = new AxArtifactKey("ContextReference", "0.0.1");
95 final AxStateFinalizerLogic sfl = new AxStateFinalizerLogic(stateKey, "SFLogicName", "LogicFlavour", "Logic");
96 final AxStateFinalizerLogic sflU = new AxStateFinalizerLogic(stateKey, "UnusedSFLogicName", "LogicFlavour",
98 final AxStateTaskReference str0 = new AxStateTaskReference(new AxReferenceKey(stateKey, "STR0"),
99 AxStateTaskOutputType.DIRECT, so0.getKey());
100 final AxStateTaskReference str1 = new AxStateTaskReference(new AxReferenceKey(stateKey, "STR1"),
101 AxStateTaskOutputType.DIRECT, so0.getKey());
102 final AxStateTaskReference str2 = new AxStateTaskReference(new AxReferenceKey(stateKey, "STR2"),
103 AxStateTaskOutputType.LOGIC, sfl.getKey());
105 final AxStateTaskReference strBadState = new AxStateTaskReference(new AxReferenceKey(stateKeyBad, "STR2"),
106 AxStateTaskOutputType.LOGIC, sfl.getKey());
107 final AxStateTaskReference strBadStateOutput = new AxStateTaskReference(new AxReferenceKey(stateKey, "STR2"),
108 AxStateTaskOutputType.UNDEFINED, sfl.getKey());
109 final AxStateTaskReference strBadStateFinalizerLogic = new AxStateTaskReference(
110 new AxReferenceKey(stateKeyBad, "STR2"), AxStateTaskOutputType.LOGIC,
111 new AxReferenceKey(stateKey, "SomeSFL"));
113 soMap.put(so0.getKey().getLocalName(), so0);
115 sflMap.put(sfl.getKey().getLocalName(), sfl);
116 trMap.put(defTaskKey.getKey(), str0);
117 trMap.put(taskKey1.getKey(), str1);
118 trMap.put(taskKey2.getKey(), str2);
121 state.setTrigger(null);
122 fail("test should throw an exception here");
123 } catch (final Exception e) {
124 assertEquals("trigger may not be null", e.getMessage());
127 state.setTrigger(triggerKey);
128 assertEquals(triggerKey, state.getTrigger());
131 state.setStateOutputs(null);
132 fail("test should throw an exception here");
133 } catch (final Exception e) {
134 assertEquals("stateOutputs may not be null", e.getMessage());
137 state.setStateOutputs(soMap);
138 assertEquals(soMap, state.getStateOutputs());
141 state.setContextAlbumReferences(null);
142 fail("test should throw an exception here");
143 } catch (final Exception e) {
144 assertEquals("contextAlbumReferenceSet may not be null", e.getMessage());
147 state.setContextAlbumReferences(ctxtSet);
148 assertEquals(ctxtSet, state.getContextAlbumReferences());
151 state.setTaskSelectionLogic(null);
152 fail("test should throw an exception here");
153 } catch (final Exception e) {
154 assertEquals("taskSelectionLogic may not be null", e.getMessage());
157 assertEquals(false, state.checkSetTaskSelectionLogic());
158 state.setTaskSelectionLogic(tsl);
159 assertEquals(tsl, state.getTaskSelectionLogic());
160 assertEquals(true, state.checkSetTaskSelectionLogic());
163 state.setStateFinalizerLogicMap(null);
164 fail("test should throw an exception here");
165 } catch (final Exception e) {
166 assertEquals("stateFinalizerLogic may not be null", e.getMessage());
169 state.setStateFinalizerLogicMap(sflMap);
170 assertEquals(sflMap, state.getStateFinalizerLogicMap());
173 state.setDefaultTask(null);
174 fail("test should throw an exception here");
175 } catch (final Exception e) {
176 assertEquals("defaultTask may not be null", e.getMessage());
179 state.setDefaultTask(defTaskKey);
180 assertEquals(defTaskKey, state.getDefaultTask());
183 state.setTaskReferences(null);
184 fail("test should throw an exception here");
185 } catch (final Exception e) {
186 assertEquals("taskReferenceMap may not be null", e.getMessage());
189 state.setTaskReferences(trMap);
190 assertEquals(trMap, state.getTaskReferences());
192 state.afterUnmarshal(null, null);
193 assertEquals(state.getKey(), state.getKeys().get(0));
194 state.getTaskSelectionLogic().getKey().setLocalName(AxKey.NULL_KEY_NAME);
195 state.afterUnmarshal(null, null);
196 assertEquals(state.getKey(), state.getKeys().get(0));
198 final Set<String> stateSet = state.getNextStateSet();
199 assertEquals(1, stateSet.size());
201 AxValidationResult result = new AxValidationResult();
202 result = state.validate(result);
203 assertEquals(ValidationResult.VALID, result.getValidationResult());
205 state.setKey(AxReferenceKey.getNullKey());
206 result = new AxValidationResult();
207 result = state.validate(result);
208 assertEquals(ValidationResult.INVALID, result.getValidationResult());
210 state.setKey(stateKey);
211 result = new AxValidationResult();
212 result = state.validate(result);
213 assertEquals(ValidationResult.VALID, result.getValidationResult());
215 state.setTrigger(AxArtifactKey.getNullKey());
216 result = new AxValidationResult();
217 result = state.validate(result);
218 assertEquals(ValidationResult.INVALID, result.getValidationResult());
220 state.setTrigger(triggerKey);
221 result = new AxValidationResult();
222 result = state.validate(result);
223 assertEquals(ValidationResult.VALID, result.getValidationResult());
225 state.setStateOutputs(soEmptyMap);
226 result = new AxValidationResult();
227 result = state.validate(result);
228 assertEquals(ValidationResult.INVALID, result.getValidationResult());
230 state.setStateOutputs(soMap);
231 result = new AxValidationResult();
232 result = state.validate(result);
233 assertEquals(ValidationResult.VALID, result.getValidationResult());
235 so0.getKey().setParentLocalName("Zooby");
236 result = new AxValidationResult();
237 result = state.validate(result);
238 assertEquals(ValidationResult.INVALID, result.getValidationResult());
240 so0.getKey().setParentLocalName("StateName");
241 state.setStateOutputs(soMap);
242 result = new AxValidationResult();
243 result = state.validate(result);
244 assertEquals(ValidationResult.VALID, result.getValidationResult());
246 soMap.put("NullOutput", null);
247 result = new AxValidationResult();
248 result = state.validate(result);
249 assertEquals(ValidationResult.INVALID, result.getValidationResult());
251 soMap.remove("NullOutput");
252 state.setStateOutputs(soMap);
253 result = new AxValidationResult();
254 result = state.validate(result);
255 assertEquals(ValidationResult.VALID, result.getValidationResult());
257 soMap.put("DupOutput", so0);
258 result = new AxValidationResult();
259 result = state.validate(result);
260 assertEquals(ValidationResult.INVALID, result.getValidationResult());
262 soMap.remove("DupOutput");
263 state.setStateOutputs(soMap);
264 result = new AxValidationResult();
265 result = state.validate(result);
266 assertEquals(ValidationResult.VALID, result.getValidationResult());
268 soMap.put("UnusedOutput", soU);
269 result = new AxValidationResult();
270 result = state.validate(result);
271 assertEquals(ValidationResult.OBSERVATION, result.getValidationResult());
273 soMap.remove("UnusedOutput");
274 state.setStateOutputs(soMap);
275 result = new AxValidationResult();
276 result = state.validate(result);
277 assertEquals(ValidationResult.VALID, result.getValidationResult());
279 soMap.put("OutputToSameState", soSame);
280 result = new AxValidationResult();
281 result = state.validate(result);
282 assertEquals(ValidationResult.INVALID, result.getValidationResult());
284 soMap.remove("OutputToSameState");
285 state.setStateOutputs(soMap);
286 result = new AxValidationResult();
287 result = state.validate(result);
288 assertEquals(ValidationResult.VALID, result.getValidationResult());
290 // Empty context reference set is OK
291 state.setContextAlbumReferences(ctxtEmptySet);
292 result = new AxValidationResult();
293 result = state.validate(result);
294 assertEquals(ValidationResult.VALID, result.getValidationResult());
296 state.setContextAlbumReferences(ctxtSet);
297 result = new AxValidationResult();
298 result = state.validate(result);
299 assertEquals(ValidationResult.VALID, result.getValidationResult());
301 ctxtSet.add(AxArtifactKey.getNullKey());
302 result = new AxValidationResult();
303 result = state.validate(result);
304 assertEquals(ValidationResult.INVALID, result.getValidationResult());
306 ctxtSet.remove(AxArtifactKey.getNullKey());
307 result = new AxValidationResult();
308 result = state.validate(result);
309 assertEquals(ValidationResult.VALID, result.getValidationResult());
312 state.getTaskSelectionLogic().setKey(AxReferenceKey.getNullKey());
313 result = new AxValidationResult();
314 result = state.validate(result);
315 assertEquals(ValidationResult.VALID, result.getValidationResult());
317 state.getTaskSelectionLogic().setKey(new AxReferenceKey(stateKey, "TSL"));
318 result = new AxValidationResult();
319 result = state.validate(result);
320 assertEquals(ValidationResult.VALID, result.getValidationResult());
322 state.setDefaultTask(AxArtifactKey.getNullKey());
323 result = new AxValidationResult();
324 result = state.validate(result);
325 assertEquals(ValidationResult.INVALID, result.getValidationResult());
327 state.setDefaultTask(defTaskKey);
328 result = new AxValidationResult();
329 result = state.validate(result);
330 assertEquals(ValidationResult.VALID, result.getValidationResult());
332 state.setTaskReferences(trEmptyMap);
333 result = new AxValidationResult();
334 result = state.validate(result);
335 assertEquals(ValidationResult.INVALID, result.getValidationResult());
337 state.setTaskReferences(trMap);
338 result = new AxValidationResult();
339 result = state.validate(result);
340 assertEquals(ValidationResult.VALID, result.getValidationResult());
342 trMap.put(AxArtifactKey.getNullKey(), null);
343 result = new AxValidationResult();
344 result = state.validate(result);
345 assertEquals(ValidationResult.INVALID, result.getValidationResult());
347 trMap.remove(AxArtifactKey.getNullKey());
348 result = new AxValidationResult();
349 result = state.validate(result);
350 assertEquals(ValidationResult.VALID, result.getValidationResult());
352 trMap.put(AxArtifactKey.getNullKey(), str0);
353 result = new AxValidationResult();
354 result = state.validate(result);
355 assertEquals(ValidationResult.INVALID, result.getValidationResult());
357 trMap.remove(AxArtifactKey.getNullKey());
358 result = new AxValidationResult();
359 result = state.validate(result);
360 assertEquals(ValidationResult.VALID, result.getValidationResult());
362 trMap.put(taskKeyBad, strBadStateOutput);
363 result = new AxValidationResult();
364 result = state.validate(result);
365 assertEquals(ValidationResult.INVALID, result.getValidationResult());
367 trMap.remove(taskKeyBad);
368 result = new AxValidationResult();
369 result = state.validate(result);
370 assertEquals(ValidationResult.VALID, result.getValidationResult());
372 trMap.put(taskKeyBad, strBadState);
373 result = new AxValidationResult();
374 result = state.validate(result);
375 assertEquals(ValidationResult.INVALID, result.getValidationResult());
377 trMap.remove(taskKeyBad);
378 result = new AxValidationResult();
379 result = state.validate(result);
380 assertEquals(ValidationResult.VALID, result.getValidationResult());
382 trMap.put(taskKeyBad, strBadStateFinalizerLogic);
383 result = new AxValidationResult();
384 result = state.validate(result);
385 assertEquals(ValidationResult.INVALID, result.getValidationResult());
387 trMap.remove(taskKeyBad);
388 result = new AxValidationResult();
389 result = state.validate(result);
390 assertEquals(ValidationResult.VALID, result.getValidationResult());
392 state.setDefaultTask(new AxArtifactKey("NonExistantTask", "0.0.1"));
393 result = new AxValidationResult();
394 result = state.validate(result);
395 assertEquals(ValidationResult.INVALID, result.getValidationResult());
397 state.setDefaultTask(defTaskKey);
398 result = new AxValidationResult();
399 result = state.validate(result);
400 assertEquals(ValidationResult.VALID, result.getValidationResult());
402 sflMap.put("NullSFL", null);
403 result = new AxValidationResult();
404 result = state.validate(result);
405 assertEquals(ValidationResult.INVALID, result.getValidationResult());
407 sflMap.remove("NullSFL");
408 result = new AxValidationResult();
409 result = state.validate(result);
410 assertEquals(ValidationResult.VALID, result.getValidationResult());
412 sflMap.put(sflU.getKey().getLocalName(), sflU);
413 result = new AxValidationResult();
414 result = state.validate(result);
415 assertEquals(ValidationResult.OBSERVATION, result.getValidationResult());
417 sflMap.remove(sflU.getKey().getLocalName());
418 result = new AxValidationResult();
419 result = state.validate(result);
420 assertEquals(ValidationResult.VALID, result.getValidationResult());
424 final AxState clonedState = new AxState(state);
425 assertEquals("AxState:(stateKey=AxReferenceKey:(parent", clonedState.toString().substring(0, 40));
427 assertFalse(state.hashCode() == 0);
429 assertTrue(state.equals(state));
430 assertTrue(state.equals(clonedState));
431 assertFalse(state.equals(null));
432 assertFalse(state.equals((Object)"Hello"));
433 assertFalse(state.equals(new AxState(new AxStateParamsBuilder().key(new AxReferenceKey()).trigger(triggerKey)
434 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet).taskSelectionLogic(tsl)
435 .stateFinalizerLogicMap(sflMap).defaultTask(defTaskKey).taskReferenceMap(trMap))));
436 assertFalse(state.equals(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(new AxArtifactKey())
437 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet).taskSelectionLogic(tsl)
438 .stateFinalizerLogicMap(sflMap).defaultTask(defTaskKey).taskReferenceMap(trMap))));
439 assertFalse(state.equals(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
440 .stateOutputs(soEmptyMap).contextAlbumReferenceSet(ctxtSet).taskSelectionLogic(tsl)
441 .stateFinalizerLogicMap(sflMap).defaultTask(defTaskKey).taskReferenceMap(trMap))));
442 assertFalse(state.equals(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
443 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtEmptySet).taskSelectionLogic(tsl)
444 .stateFinalizerLogicMap(sflMap).defaultTask(defTaskKey).taskReferenceMap(trMap))));
445 assertFalse(state.equals(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
446 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet)
447 .taskSelectionLogic(new AxTaskSelectionLogic()).stateFinalizerLogicMap(sflMap)
448 .defaultTask(defTaskKey).taskReferenceMap(trMap))));
449 assertFalse(state.equals(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
450 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet).taskSelectionLogic(tsl)
451 .stateFinalizerLogicMap(sflEmptyMap).defaultTask(defTaskKey).taskReferenceMap(trMap))));
452 assertFalse(state.equals(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
453 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet).taskSelectionLogic(tsl)
454 .stateFinalizerLogicMap(sflMap).defaultTask(new AxArtifactKey()).taskReferenceMap(trMap))));
455 assertFalse(state.equals(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
456 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet).taskSelectionLogic(tsl)
457 .stateFinalizerLogicMap(sflMap).defaultTask(defTaskKey).taskReferenceMap(trEmptyMap))));
458 assertTrue(state.equals(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
459 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet).taskSelectionLogic(tsl)
460 .stateFinalizerLogicMap(sflMap).defaultTask(defTaskKey).taskReferenceMap(trMap))));
462 assertEquals(0, state.compareTo(state));
463 assertEquals(0, state.compareTo(clonedState));
464 assertNotEquals(0, state.compareTo(new AxArtifactKey()));
465 assertNotEquals(0, state.compareTo(null));
467 state.compareTo(new AxState(new AxStateParamsBuilder().key(new AxReferenceKey())
468 .trigger(triggerKey).stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet)
469 .taskSelectionLogic(tsl).stateFinalizerLogicMap(sflMap).defaultTask(defTaskKey)
470 .taskReferenceMap(trMap))));
471 assertNotEquals(0, state.compareTo(new AxState(new AxStateParamsBuilder().key(stateKey)
472 .trigger(new AxArtifactKey()).stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet)
473 .taskSelectionLogic(tsl).stateFinalizerLogicMap(sflMap).defaultTask(defTaskKey)
474 .taskReferenceMap(trMap))));
475 assertNotEquals(0, state.compareTo(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
476 .stateOutputs(soEmptyMap).contextAlbumReferenceSet(ctxtSet).taskSelectionLogic(tsl)
477 .stateFinalizerLogicMap(sflMap).defaultTask(defTaskKey).taskReferenceMap(trMap))));
478 assertNotEquals(0, state.compareTo(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
479 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtEmptySet).taskSelectionLogic(tsl)
480 .stateFinalizerLogicMap(sflMap).defaultTask(defTaskKey).taskReferenceMap(trMap))));
482 state.compareTo(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
483 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet)
484 .taskSelectionLogic(new AxTaskSelectionLogic()).stateFinalizerLogicMap(sflMap)
485 .defaultTask(defTaskKey).taskReferenceMap(trMap))));
486 assertNotEquals(0, state.compareTo(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
487 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet).taskSelectionLogic(tsl)
488 .stateFinalizerLogicMap(sflEmptyMap).defaultTask(defTaskKey).taskReferenceMap(trMap))));
489 assertNotEquals(0, state.compareTo(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
490 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet).taskSelectionLogic(tsl)
491 .stateFinalizerLogicMap(sflMap).defaultTask(new AxArtifactKey()).taskReferenceMap(trMap))));
492 assertNotEquals(0, state.compareTo(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
493 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet).taskSelectionLogic(tsl)
494 .stateFinalizerLogicMap(sflMap).defaultTask(defTaskKey).taskReferenceMap(trEmptyMap))));
495 assertEquals(0, state.compareTo(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
496 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet).taskSelectionLogic(tsl)
497 .stateFinalizerLogicMap(sflMap).defaultTask(defTaskKey).taskReferenceMap(trMap))));
499 assertNotNull(state.getKeys());