19
19
package org .jbpm .bpmn2 ;
20
20
21
21
import java .io .ByteArrayInputStream ;
22
+ import java .util .ArrayList ;
22
23
import java .util .HashMap ;
23
24
import java .util .List ;
24
25
import java .util .Map ;
75
76
import org .kie .kogito .process .ProcessInstance ;
76
77
import org .w3c .dom .Document ;
77
78
import org .w3c .dom .Element ;
79
+ import org .w3c .dom .NodeList ;
78
80
79
81
import static org .assertj .core .api .Assertions .assertThat ;
80
82
@@ -388,6 +390,8 @@ public void executeWorkItem(KogitoWorkItem workItem,
388
390
@ Test
389
391
public void testDataOutputAssociationsforHumanTask () {
390
392
Application app = ProcessTestHelper .newApplication ();
393
+ List <org .w3c .dom .Document > documents = new ArrayList <>();
394
+ List <KogitoWorkItem > workItems = new ArrayList <>();
391
395
ProcessTestHelper .registerHandler (app , "Human Task" , new KogitoWorkItemHandler () {
392
396
@ Override
393
397
public void abortWorkItem (KogitoWorkItem workItem , KogitoWorkItemManager mgr ) {
@@ -408,7 +412,9 @@ public void executeWorkItem(KogitoWorkItem workItem, KogitoWorkItemManager mgr)
408
412
org .w3c .dom .Element processMetadata = processMetadaDoc .createElement ("previoustasksowner" );
409
413
processMetadaDoc .appendChild (processMetadata );
410
414
processMetadata .setAttribute ("primaryname" , "my_result" );
415
+ documents .add (processMetadaDoc );
411
416
results .put ("output" , processMetadata );
417
+ workItems .add (workItem );
412
418
mgr .completeWorkItem (workItem .getStringId (), results );
413
419
}
414
420
});
@@ -418,6 +424,16 @@ public void executeWorkItem(KogitoWorkItem workItem, KogitoWorkItemManager mgr)
418
424
419
425
org .kie .kogito .process .ProcessInstance <DataOutputAssociationsHumanTaskModel > instance = processDefinition .createInstance (model );
420
426
instance .start ();
427
+ assertThat (instance .status ()).isEqualTo (KogitoProcessInstance .STATE_COMPLETED );
428
+ assertThat (documents .size ()).isEqualTo (1 );
429
+ NodeList nodeList = documents .get (0 ).getElementsByTagName ("previoustasksowner" );
430
+ assertThat (nodeList .getLength ()).isEqualTo (1 );
431
+ assertThat (nodeList .item (0 ).getAttributes ().getNamedItem ("primaryname" )).isNotNull ();
432
+ assertThat (nodeList .item (0 ).getAttributes ().getNamedItem ("primaryname" ).getNodeValue ()).isEqualTo ("my_result" );
433
+ assertThat (workItems .size ()).isGreaterThanOrEqualTo (1 );
434
+ KogitoWorkItem workItem = workItems .get (0 );
435
+ assertThat (workItem .getResults ().get ("output" )).isInstanceOf (org .w3c .dom .Node .class );
436
+ assertThat ((org .w3c .dom .Node ) (workItem .getResults ().get ("output" ))).isEqualTo (nodeList .item (0 ));
421
437
}
422
438
423
439
@ Test
@@ -454,6 +470,8 @@ public void executeWorkItem(KogitoWorkItem workItem, KogitoWorkItemManager mgr)
454
470
@ Test
455
471
public void testDataOutputAssociationsXmlNode () {
456
472
Application app = ProcessTestHelper .newApplication ();
473
+ List <KogitoWorkItem > workItems = new ArrayList <>();
474
+ List <org .w3c .dom .Document > documents = new ArrayList <>();
457
475
ProcessTestHelper .registerHandler (app , "Human Task" , new KogitoWorkItemHandler () {
458
476
@ Override
459
477
public void abortWorkItem (KogitoWorkItem workItem , KogitoWorkItemManager mgr ) {
@@ -468,6 +486,8 @@ public void executeWorkItem(KogitoWorkItem workItem, KogitoWorkItemManager mgr)
468
486
.parse (new ByteArrayInputStream ("<user hello='hello world' />" .getBytes ()));
469
487
Map <String , Object > params = new HashMap <>();
470
488
params .put ("output" , document .getFirstChild ());
489
+ workItems .add (workItem );
490
+ documents .add (document );
471
491
mgr .completeWorkItem (workItem .getStringId (), params );
472
492
} catch (Throwable e ) {
473
493
throw new RuntimeException (e );
@@ -480,6 +500,14 @@ public void executeWorkItem(KogitoWorkItem workItem, KogitoWorkItemManager mgr)
480
500
481
501
org .kie .kogito .process .ProcessInstance <DataOutputAssociationsXmlNodeModel > instance = processDefinition .createInstance (model );
482
502
instance .start ();
503
+ assertThat (instance .status ()).isEqualTo (KogitoProcessInstance .STATE_COMPLETED );
504
+ assertThat (workItems .size ()).isGreaterThanOrEqualTo (1 );
505
+ KogitoWorkItem workItem = workItems .get (0 );
506
+ assertThat (workItem ).isNotNull ();
507
+ assertThat (documents .size ()).isGreaterThanOrEqualTo (1 );
508
+ org .w3c .dom .Node node = documents .get (0 ).getFirstChild ();
509
+ assertThat (workItem .getResults ().get ("output" )).isInstanceOf (org .w3c .dom .Node .class );
510
+ assertThat ((org .w3c .dom .Node ) (workItem .getResults ().get ("output" ))).isEqualTo (node );
483
511
}
484
512
485
513
@ Test
0 commit comments