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;
33 import org.junit.Test;
34 import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
35 import org.onap.policy.apex.model.basicmodel.concepts.AxKey;
36 import org.onap.policy.apex.model.basicmodel.concepts.AxReferenceKey;
37 import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult;
38 import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult.ValidationResult;
43 * @author Liam Fallon (liam.fallon@ericsson.com)
45 public class StateTest {
48 public void testState() {
49 final TreeMap<String, AxStateOutput> soEmptyMap = new TreeMap<>();
50 final TreeSet<AxArtifactKey> ctxtEmptySet = new TreeSet<>();
51 final TreeMap<String, AxStateFinalizerLogic> sflEmptyMap = new TreeMap<>();
52 final TreeMap<AxArtifactKey, AxStateTaskReference> trEmptyMap = new TreeMap<>();
54 final TreeMap<String, AxStateOutput> soMap = new TreeMap<>();
55 final TreeSet<AxArtifactKey> ctxtSet = new TreeSet<>();
56 final TreeMap<String, AxStateFinalizerLogic> sflMap = new TreeMap<>();
57 final TreeMap<AxArtifactKey, AxStateTaskReference> trMap = new TreeMap<>();
59 assertNotNull(new AxState());
60 assertNotNull(new AxState(new AxReferenceKey()));
61 assertNotNull(new AxState(new AxStateParamsBuilder().key(new AxReferenceKey()).trigger(new AxArtifactKey())
62 .stateOutputs(soEmptyMap).contextAlbumReferenceSet(ctxtEmptySet)
63 .taskSelectionLogic(new AxTaskSelectionLogic()).stateFinalizerLogicMap(sflEmptyMap)
64 .defaultTask(new AxArtifactKey()).taskReferenceMap(trEmptyMap)));
66 final AxState state = new AxState();
68 final AxReferenceKey stateKey = new AxReferenceKey("PolicyName", "0.0.1", "StateName");
69 final AxReferenceKey stateKeyNext = new AxReferenceKey("PolicyName", "0.0.1", "StateNameNext");
70 final AxReferenceKey stateKeyBad = new AxReferenceKey("PolicyName", "0.0.1", "BadStateName");
71 final AxArtifactKey triggerKey = new AxArtifactKey("TriggerName", "0.0.1");
72 final AxTaskSelectionLogic tsl = new AxTaskSelectionLogic(stateKey, "TSL", "LogicFlavour", "Some Logic");
73 final AxArtifactKey defTaskKey = new AxArtifactKey("TaskName", "0.0.1");
74 final AxArtifactKey taskKey1 = new AxArtifactKey("Task1", "0.0.1");
75 final AxArtifactKey taskKey2 = new AxArtifactKey("Task2", "0.0.1");
76 final AxArtifactKey taskKeyBad = new AxArtifactKey("TaskBad", "0.0.1");
80 fail("test should throw an exception here");
81 } catch (final Exception e) {
82 assertEquals("key may not be null", e.getMessage());
85 state.setKey(stateKey);
86 assertEquals("PolicyName:0.0.1:NULL:StateName", state.getKey().getId());
87 assertEquals("PolicyName:0.0.1:NULL:StateName", state.getKeys().get(0).getId());
89 final AxStateOutput so0 = new AxStateOutput(new AxReferenceKey(stateKey, "SO0"), triggerKey,
90 new AxReferenceKey());
91 final AxStateOutput soU = new AxStateOutput(new AxReferenceKey(stateKey, "SOU"), triggerKey, stateKeyNext);
92 final AxStateOutput soSame = new AxStateOutput(new AxReferenceKey(stateKey, "SOU"), triggerKey, stateKey);
93 final AxArtifactKey cr0 = new AxArtifactKey("ContextReference", "0.0.1");
94 final AxStateFinalizerLogic sfl = new AxStateFinalizerLogic(stateKey, "SFLogicName", "LogicFlavour", "Logic");
95 final AxStateFinalizerLogic sflU = new AxStateFinalizerLogic(stateKey, "UnusedSFLogicName", "LogicFlavour",
97 final AxStateTaskReference str0 = new AxStateTaskReference(new AxReferenceKey(stateKey, "STR0"),
98 AxStateTaskOutputType.DIRECT, so0.getKey());
99 final AxStateTaskReference str1 = new AxStateTaskReference(new AxReferenceKey(stateKey, "STR1"),
100 AxStateTaskOutputType.DIRECT, so0.getKey());
101 final AxStateTaskReference str2 = new AxStateTaskReference(new AxReferenceKey(stateKey, "STR2"),
102 AxStateTaskOutputType.LOGIC, sfl.getKey());
104 final AxStateTaskReference strBadState = new AxStateTaskReference(new AxReferenceKey(stateKeyBad, "STR2"),
105 AxStateTaskOutputType.LOGIC, sfl.getKey());
106 final AxStateTaskReference strBadStateOutput = new AxStateTaskReference(new AxReferenceKey(stateKey, "STR2"),
107 AxStateTaskOutputType.UNDEFINED, sfl.getKey());
108 final AxStateTaskReference strBadStateFinalizerLogic = new AxStateTaskReference(
109 new AxReferenceKey(stateKeyBad, "STR2"), AxStateTaskOutputType.LOGIC,
110 new AxReferenceKey(stateKey, "SomeSFL"));
112 soMap.put(so0.getKey().getLocalName(), so0);
114 sflMap.put(sfl.getKey().getLocalName(), sfl);
115 trMap.put(defTaskKey.getKey(), str0);
116 trMap.put(taskKey1.getKey(), str1);
117 trMap.put(taskKey2.getKey(), str2);
120 state.setTrigger(null);
121 fail("test should throw an exception here");
122 } catch (final Exception e) {
123 assertEquals("trigger may not be null", e.getMessage());
126 state.setTrigger(triggerKey);
127 assertEquals(triggerKey, state.getTrigger());
130 state.setStateOutputs(null);
131 fail("test should throw an exception here");
132 } catch (final Exception e) {
133 assertEquals("stateOutputs may not be null", e.getMessage());
136 state.setStateOutputs(soMap);
137 assertEquals(soMap, state.getStateOutputs());
140 state.setContextAlbumReferences(null);
141 fail("test should throw an exception here");
142 } catch (final Exception e) {
143 assertEquals("contextAlbumReferenceSet may not be null", e.getMessage());
146 state.setContextAlbumReferences(ctxtSet);
147 assertEquals(ctxtSet, state.getContextAlbumReferences());
150 state.setTaskSelectionLogic(null);
151 fail("test should throw an exception here");
152 } catch (final Exception e) {
153 assertEquals("taskSelectionLogic may not be null", e.getMessage());
156 assertEquals(false, state.checkSetTaskSelectionLogic());
157 state.setTaskSelectionLogic(tsl);
158 assertEquals(tsl, state.getTaskSelectionLogic());
159 assertEquals(true, state.checkSetTaskSelectionLogic());
162 state.setStateFinalizerLogicMap(null);
163 fail("test should throw an exception here");
164 } catch (final Exception e) {
165 assertEquals("stateFinalizerLogic may not be null", e.getMessage());
168 state.setStateFinalizerLogicMap(sflMap);
169 assertEquals(sflMap, state.getStateFinalizerLogicMap());
172 state.setDefaultTask(null);
173 fail("test should throw an exception here");
174 } catch (final Exception e) {
175 assertEquals("defaultTask may not be null", e.getMessage());
178 state.setDefaultTask(defTaskKey);
179 assertEquals(defTaskKey, state.getDefaultTask());
182 state.setTaskReferences(null);
183 fail("test should throw an exception here");
184 } catch (final Exception e) {
185 assertEquals("taskReferenceMap may not be null", e.getMessage());
188 state.setTaskReferences(trMap);
189 assertEquals(trMap, state.getTaskReferences());
191 state.afterUnmarshal(null, null);
192 assertEquals(state.getKey(), state.getKeys().get(0));
193 state.getTaskSelectionLogic().getKey().setLocalName(AxKey.NULL_KEY_NAME);
194 state.afterUnmarshal(null, null);
195 assertEquals(state.getKey(), state.getKeys().get(0));
197 final Set<String> stateSet = state.getNextStateSet();
198 assertEquals(1, stateSet.size());
200 AxValidationResult result = new AxValidationResult();
201 result = state.validate(result);
202 assertEquals(ValidationResult.VALID, result.getValidationResult());
204 state.setKey(AxReferenceKey.getNullKey());
205 result = new AxValidationResult();
206 result = state.validate(result);
207 assertEquals(ValidationResult.INVALID, result.getValidationResult());
209 state.setKey(stateKey);
210 result = new AxValidationResult();
211 result = state.validate(result);
212 assertEquals(ValidationResult.VALID, result.getValidationResult());
214 state.setTrigger(AxArtifactKey.getNullKey());
215 result = new AxValidationResult();
216 result = state.validate(result);
217 assertEquals(ValidationResult.INVALID, result.getValidationResult());
219 state.setTrigger(triggerKey);
220 result = new AxValidationResult();
221 result = state.validate(result);
222 assertEquals(ValidationResult.VALID, result.getValidationResult());
224 state.setStateOutputs(soEmptyMap);
225 result = new AxValidationResult();
226 result = state.validate(result);
227 assertEquals(ValidationResult.INVALID, result.getValidationResult());
229 state.setStateOutputs(soMap);
230 result = new AxValidationResult();
231 result = state.validate(result);
232 assertEquals(ValidationResult.VALID, result.getValidationResult());
234 so0.getKey().setParentLocalName("Zooby");
235 result = new AxValidationResult();
236 result = state.validate(result);
237 assertEquals(ValidationResult.INVALID, result.getValidationResult());
239 so0.getKey().setParentLocalName("StateName");
240 state.setStateOutputs(soMap);
241 result = new AxValidationResult();
242 result = state.validate(result);
243 assertEquals(ValidationResult.VALID, result.getValidationResult());
245 soMap.put("NullOutput", null);
246 result = new AxValidationResult();
247 result = state.validate(result);
248 assertEquals(ValidationResult.INVALID, result.getValidationResult());
250 soMap.remove("NullOutput");
251 state.setStateOutputs(soMap);
252 result = new AxValidationResult();
253 result = state.validate(result);
254 assertEquals(ValidationResult.VALID, result.getValidationResult());
256 soMap.put("DupOutput", so0);
257 result = new AxValidationResult();
258 result = state.validate(result);
259 assertEquals(ValidationResult.INVALID, result.getValidationResult());
261 soMap.remove("DupOutput");
262 state.setStateOutputs(soMap);
263 result = new AxValidationResult();
264 result = state.validate(result);
265 assertEquals(ValidationResult.VALID, result.getValidationResult());
267 soMap.put("UnusedOutput", soU);
268 result = new AxValidationResult();
269 result = state.validate(result);
270 assertEquals(ValidationResult.OBSERVATION, result.getValidationResult());
272 soMap.remove("UnusedOutput");
273 state.setStateOutputs(soMap);
274 result = new AxValidationResult();
275 result = state.validate(result);
276 assertEquals(ValidationResult.VALID, result.getValidationResult());
278 soMap.put("OutputToSameState", soSame);
279 result = new AxValidationResult();
280 result = state.validate(result);
281 assertEquals(ValidationResult.INVALID, result.getValidationResult());
283 soMap.remove("OutputToSameState");
284 state.setStateOutputs(soMap);
285 result = new AxValidationResult();
286 result = state.validate(result);
287 assertEquals(ValidationResult.VALID, result.getValidationResult());
289 // Empty context reference set is OK
290 state.setContextAlbumReferences(ctxtEmptySet);
291 result = new AxValidationResult();
292 result = state.validate(result);
293 assertEquals(ValidationResult.VALID, result.getValidationResult());
295 state.setContextAlbumReferences(ctxtSet);
296 result = new AxValidationResult();
297 result = state.validate(result);
298 assertEquals(ValidationResult.VALID, result.getValidationResult());
300 ctxtSet.add(AxArtifactKey.getNullKey());
301 result = new AxValidationResult();
302 result = state.validate(result);
303 assertEquals(ValidationResult.INVALID, result.getValidationResult());
305 ctxtSet.remove(AxArtifactKey.getNullKey());
306 result = new AxValidationResult();
307 result = state.validate(result);
308 assertEquals(ValidationResult.VALID, result.getValidationResult());
311 state.getTaskSelectionLogic().setKey(AxReferenceKey.getNullKey());
312 result = new AxValidationResult();
313 result = state.validate(result);
314 assertEquals(ValidationResult.VALID, result.getValidationResult());
316 state.getTaskSelectionLogic().setKey(new AxReferenceKey(stateKey, "TSL"));
317 result = new AxValidationResult();
318 result = state.validate(result);
319 assertEquals(ValidationResult.VALID, result.getValidationResult());
321 state.setDefaultTask(AxArtifactKey.getNullKey());
322 result = new AxValidationResult();
323 result = state.validate(result);
324 assertEquals(ValidationResult.INVALID, result.getValidationResult());
326 state.setDefaultTask(defTaskKey);
327 result = new AxValidationResult();
328 result = state.validate(result);
329 assertEquals(ValidationResult.VALID, result.getValidationResult());
331 state.setTaskReferences(trEmptyMap);
332 result = new AxValidationResult();
333 result = state.validate(result);
334 assertEquals(ValidationResult.INVALID, result.getValidationResult());
336 state.setTaskReferences(trMap);
337 result = new AxValidationResult();
338 result = state.validate(result);
339 assertEquals(ValidationResult.VALID, result.getValidationResult());
341 trMap.put(AxArtifactKey.getNullKey(), null);
342 result = new AxValidationResult();
343 result = state.validate(result);
344 assertEquals(ValidationResult.INVALID, result.getValidationResult());
346 trMap.remove(AxArtifactKey.getNullKey());
347 result = new AxValidationResult();
348 result = state.validate(result);
349 assertEquals(ValidationResult.VALID, result.getValidationResult());
351 trMap.put(AxArtifactKey.getNullKey(), str0);
352 result = new AxValidationResult();
353 result = state.validate(result);
354 assertEquals(ValidationResult.INVALID, result.getValidationResult());
356 trMap.remove(AxArtifactKey.getNullKey());
357 result = new AxValidationResult();
358 result = state.validate(result);
359 assertEquals(ValidationResult.VALID, result.getValidationResult());
361 trMap.put(taskKeyBad, strBadStateOutput);
362 result = new AxValidationResult();
363 result = state.validate(result);
364 assertEquals(ValidationResult.INVALID, result.getValidationResult());
366 trMap.remove(taskKeyBad);
367 result = new AxValidationResult();
368 result = state.validate(result);
369 assertEquals(ValidationResult.VALID, result.getValidationResult());
371 trMap.put(taskKeyBad, strBadState);
372 result = new AxValidationResult();
373 result = state.validate(result);
374 assertEquals(ValidationResult.INVALID, result.getValidationResult());
376 trMap.remove(taskKeyBad);
377 result = new AxValidationResult();
378 result = state.validate(result);
379 assertEquals(ValidationResult.VALID, result.getValidationResult());
381 trMap.put(taskKeyBad, strBadStateFinalizerLogic);
382 result = new AxValidationResult();
383 result = state.validate(result);
384 assertEquals(ValidationResult.INVALID, result.getValidationResult());
386 trMap.remove(taskKeyBad);
387 result = new AxValidationResult();
388 result = state.validate(result);
389 assertEquals(ValidationResult.VALID, result.getValidationResult());
391 state.setDefaultTask(new AxArtifactKey("NonExistantTask", "0.0.1"));
392 result = new AxValidationResult();
393 result = state.validate(result);
394 assertEquals(ValidationResult.INVALID, result.getValidationResult());
396 state.setDefaultTask(defTaskKey);
397 result = new AxValidationResult();
398 result = state.validate(result);
399 assertEquals(ValidationResult.VALID, result.getValidationResult());
401 sflMap.put("NullSFL", null);
402 result = new AxValidationResult();
403 result = state.validate(result);
404 assertEquals(ValidationResult.INVALID, result.getValidationResult());
406 sflMap.remove("NullSFL");
407 result = new AxValidationResult();
408 result = state.validate(result);
409 assertEquals(ValidationResult.VALID, result.getValidationResult());
411 sflMap.put(sflU.getKey().getLocalName(), sflU);
412 result = new AxValidationResult();
413 result = state.validate(result);
414 assertEquals(ValidationResult.OBSERVATION, result.getValidationResult());
416 sflMap.remove(sflU.getKey().getLocalName());
417 result = new AxValidationResult();
418 result = state.validate(result);
419 assertEquals(ValidationResult.VALID, result.getValidationResult());
423 final AxState clonedState = new AxState(state);
424 assertEquals("AxState:(stateKey=AxReferenceKey:(parent", clonedState.toString().substring(0, 40));
426 assertFalse(state.hashCode() == 0);
428 assertTrue(state.equals(state));
429 assertTrue(state.equals(clonedState));
430 assertFalse(state.equals(null));
431 assertFalse(state.equals((Object) "Hello"));
432 assertFalse(state.equals(new AxState(new AxStateParamsBuilder().key(new AxReferenceKey()).trigger(triggerKey)
433 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet).taskSelectionLogic(tsl)
434 .stateFinalizerLogicMap(sflMap).defaultTask(defTaskKey).taskReferenceMap(trMap))));
435 assertFalse(state.equals(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(new AxArtifactKey())
436 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet).taskSelectionLogic(tsl)
437 .stateFinalizerLogicMap(sflMap).defaultTask(defTaskKey).taskReferenceMap(trMap))));
438 assertFalse(state.equals(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
439 .stateOutputs(soEmptyMap).contextAlbumReferenceSet(ctxtSet).taskSelectionLogic(tsl)
440 .stateFinalizerLogicMap(sflMap).defaultTask(defTaskKey).taskReferenceMap(trMap))));
441 assertFalse(state.equals(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
442 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtEmptySet).taskSelectionLogic(tsl)
443 .stateFinalizerLogicMap(sflMap).defaultTask(defTaskKey).taskReferenceMap(trMap))));
444 assertFalse(state.equals(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
445 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet)
446 .taskSelectionLogic(new AxTaskSelectionLogic()).stateFinalizerLogicMap(sflMap)
447 .defaultTask(defTaskKey).taskReferenceMap(trMap))));
448 assertFalse(state.equals(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
449 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet).taskSelectionLogic(tsl)
450 .stateFinalizerLogicMap(sflEmptyMap).defaultTask(defTaskKey).taskReferenceMap(trMap))));
451 assertFalse(state.equals(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
452 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet).taskSelectionLogic(tsl)
453 .stateFinalizerLogicMap(sflMap).defaultTask(new AxArtifactKey()).taskReferenceMap(trMap))));
454 assertFalse(state.equals(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
455 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet).taskSelectionLogic(tsl)
456 .stateFinalizerLogicMap(sflMap).defaultTask(defTaskKey).taskReferenceMap(trEmptyMap))));
457 assertTrue(state.equals(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
458 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet).taskSelectionLogic(tsl)
459 .stateFinalizerLogicMap(sflMap).defaultTask(defTaskKey).taskReferenceMap(trMap))));
461 assertEquals(0, state.compareTo(state));
462 assertEquals(0, state.compareTo(clonedState));
463 assertNotEquals(0, state.compareTo(new AxArtifactKey()));
464 assertNotEquals(0, state.compareTo(null));
466 state.compareTo(new AxState(new AxStateParamsBuilder().key(new AxReferenceKey())
467 .trigger(triggerKey).stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet)
468 .taskSelectionLogic(tsl).stateFinalizerLogicMap(sflMap).defaultTask(defTaskKey)
469 .taskReferenceMap(trMap))));
470 assertNotEquals(0, state.compareTo(new AxState(new AxStateParamsBuilder().key(stateKey)
471 .trigger(new AxArtifactKey()).stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet)
472 .taskSelectionLogic(tsl).stateFinalizerLogicMap(sflMap).defaultTask(defTaskKey)
473 .taskReferenceMap(trMap))));
474 assertNotEquals(0, state.compareTo(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
475 .stateOutputs(soEmptyMap).contextAlbumReferenceSet(ctxtSet).taskSelectionLogic(tsl)
476 .stateFinalizerLogicMap(sflMap).defaultTask(defTaskKey).taskReferenceMap(trMap))));
477 assertNotEquals(0, state.compareTo(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
478 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtEmptySet).taskSelectionLogic(tsl)
479 .stateFinalizerLogicMap(sflMap).defaultTask(defTaskKey).taskReferenceMap(trMap))));
481 state.compareTo(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
482 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet)
483 .taskSelectionLogic(new AxTaskSelectionLogic()).stateFinalizerLogicMap(sflMap)
484 .defaultTask(defTaskKey).taskReferenceMap(trMap))));
485 assertNotEquals(0, state.compareTo(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
486 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet).taskSelectionLogic(tsl)
487 .stateFinalizerLogicMap(sflEmptyMap).defaultTask(defTaskKey).taskReferenceMap(trMap))));
488 assertNotEquals(0, state.compareTo(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
489 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet).taskSelectionLogic(tsl)
490 .stateFinalizerLogicMap(sflMap).defaultTask(new AxArtifactKey()).taskReferenceMap(trMap))));
491 assertNotEquals(0, state.compareTo(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
492 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet).taskSelectionLogic(tsl)
493 .stateFinalizerLogicMap(sflMap).defaultTask(defTaskKey).taskReferenceMap(trEmptyMap))));
494 assertEquals(0, state.compareTo(new AxState(new AxStateParamsBuilder().key(stateKey).trigger(triggerKey)
495 .stateOutputs(soMap).contextAlbumReferenceSet(ctxtSet).taskSelectionLogic(tsl)
496 .stateFinalizerLogicMap(sflMap).defaultTask(defTaskKey).taskReferenceMap(trMap))));
498 assertNotNull(state.getKeys());