Pārlūkot izejas kodu

implemented sanity checks

Grega Bremec 2 gadi atpakaļ
vecāks
revīzija
fadff21fbf

+ 38 - 18
pom.xml

@@ -8,47 +8,72 @@
   <packaging>kjar</packaging>
   <name>claims</name>
   <description></description>
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <maven.compiler.source>11</maven.compiler.source>
+    <maven.compiler.target>11</maven.compiler.target>
+    <kie.version>7.59.0.Final-redhat-00006</kie.version>
+  </properties>
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.kie</groupId>
+        <artifactId>kie-bom</artifactId>
+        <version>${kie.version}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.drools</groupId>
+        <artifactId>drools-bom</artifactId>
+        <version>${kie.version}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.jbpm</groupId>
+        <artifactId>jbpm-bom</artifactId>
+        <version>${kie.version}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
   <dependencies>
     <dependency>
       <groupId>org.kie</groupId>
       <artifactId>kie-api</artifactId>
-      <version>7.59.0.Final-redhat-00006</version>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.kie</groupId>
       <artifactId>kie-internal</artifactId>
-      <version>7.59.0.Final-redhat-00006</version>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.drools</groupId>
       <artifactId>drools-compiler</artifactId>
-      <version>7.59.0.Final-redhat-00006</version>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.drools</groupId>
       <artifactId>drools-mvel</artifactId>
-      <version>7.59.0.Final-redhat-00006</version>
       <scope>provided</scope>
     </dependency>
     <dependency>
-      <groupId>org.optaplanner</groupId>
-      <artifactId>optaplanner-core</artifactId>
-      <version>7.59.0.Final-redhat-00006</version>
+      <groupId>org.jbpm</groupId>
+      <artifactId>jbpm-bpmn2</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
-      <groupId>org.optaplanner</groupId>
-      <artifactId>optaplanner-persistence-jaxb</artifactId>
-      <version>7.59.0.Final-redhat-00006</version>
-      <scope>provided</scope>
+      <groupId>com.redhat.training</groupId>
+      <artifactId>claims-model</artifactId>
+      <version>1.0.1</version>
     </dependency>
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
-      <version>4.13.1</version>
+      <version>4.13</version>
       <scope>test</scope>
     </dependency>
     <dependency>
@@ -57,18 +82,13 @@
       <version>1.4.18.redhat-00001</version>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>com.redhat.training</groupId>
-      <artifactId>claims-model</artifactId>
-      <version>1.0.0</version>
-    </dependency>
   </dependencies>
   <build>
     <plugins>
       <plugin>
         <groupId>org.kie</groupId>
         <artifactId>kie-maven-plugin</artifactId>
-        <version>7.59.0.Final-redhat-00006</version>
+        <version>${kie.version}</version>
         <extensions>true</extensions>
       </plugin>
     </plugins>

+ 94 - 70
src/main/resources/com/redhat/training/claims/ClaimRuleFlow.bpmn

@@ -1,103 +1,127 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.omg.org/bpmn20" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:bpsim="http://www.bpsim.org/schemas/1.0" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:drools="http://www.jboss.org/drools" id="_ueuBEPLJEey6LMbgsXJwpw" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd http://www.jboss.org/drools drools.xsd http://www.bpsim.org/schemas/1.0 bpsim.xsd http://www.omg.org/spec/DD/20100524/DC DC.xsd http://www.omg.org/spec/DD/20100524/DI DI.xsd " exporter="jBPM Process Modeler" exporterVersion="2.0" targetNamespace="http://www.omg.org/bpmn20">
-  <bpmn2:itemDefinition id="__14D34BA6-32E3-4628-AA9D-663A65FE7918_namespaceInputXItem" structureRef="java.lang.String"/>
-  <bpmn2:itemDefinition id="__14D34BA6-32E3-4628-AA9D-663A65FE7918_modelInputXItem" structureRef="java.lang.String"/>
-  <bpmn2:itemDefinition id="__14D34BA6-32E3-4628-AA9D-663A65FE7918_decisionInputXItem" structureRef="java.lang.String"/>
+<bpmn2:definitions xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:bpsim="http://www.bpsim.org/schemas/1.0" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:drools="http://www.jboss.org/drools" xmlns:xsi="xsi" id="_hapNANUYEDq6p6MjaZUHRA" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd http://www.jboss.org/drools drools.xsd http://www.bpsim.org/schemas/1.0 bpsim.xsd http://www.omg.org/spec/DD/20100524/DC DC.xsd http://www.omg.org/spec/DD/20100524/DI DI.xsd " exporter="jBPM Process Modeler" exporterVersion="2.0" targetNamespace="http://www.omg.org/bpmn20">
+  <bpmn2:itemDefinition id="_claimantItem" structureRef="com.redhat.training.claims.model.Claimant"/>
+  <bpmn2:itemDefinition id="_claimItem" structureRef="com.redhat.training.claims.model.Claim"/>
+  <bpmn2:itemDefinition id="_claimResultsItem" structureRef="com.redhat.training.claims.model.ClaimResults"/>
+  <bpmn2:itemDefinition id="__40A79752-23EE-4959-9C2C-FCF16AC32CAD_namespaceInputXItem" structureRef="java.lang.String"/>
+  <bpmn2:itemDefinition id="__40A79752-23EE-4959-9C2C-FCF16AC32CAD_modelInputXItem" structureRef="java.lang.String"/>
+  <bpmn2:itemDefinition id="__40A79752-23EE-4959-9C2C-FCF16AC32CAD_decisionInputXItem" structureRef="java.lang.String"/>
+  <bpmn2:itemDefinition id="__40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimantInputXItem" structureRef="com.redhat.training.claims.model.Claimant"/>
+  <bpmn2:itemDefinition id="__40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimInputXItem" structureRef="com.redhat.training.claims.model.Claim"/>
+  <bpmn2:itemDefinition id="__40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimResultsInputXItem" structureRef="com.redhat.training.claims.model.ClaimResults"/>
+  <bpmn2:itemDefinition id="__40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimResultsOutputXItem" structureRef="com.redhat.training.claims.model.ClaimResults"/>
+  <bpmn2:collaboration id="_2E56C795-D351-400F-8F6E-8CFFC8A78EC1" name="Default Collaboration">
+    <bpmn2:participant id="_4B4C9794-E44E-4601-AAD1-933CB8B63DBE" name="Pool Participant" processRef="claims.ClaimRuleFlow"/>
+  </bpmn2:collaboration>
   <bpmn2:process id="claims.ClaimRuleFlow" drools:packageName="com.redhat.training.claims" drools:version="1.0" drools:adHoc="false" name="ClaimRuleFlow" isExecutable="true" processType="Public">
-    <bpmn2:sequenceFlow id="_ED172CDF-6CC9-40B3-AD6D-7AEA2666570D" sourceRef="_69928F5A-82C2-45EE-9DE1-E54DC9C81260" targetRef="_14D34BA6-32E3-4628-AA9D-663A65FE7918">
-      <bpmn2:extensionElements>
-        <drools:metaData name="isAutoConnection.source">
-          <drools:metaValue><![CDATA[true]]></drools:metaValue>
-        </drools:metaData>
-        <drools:metaData name="isAutoConnection.target">
-          <drools:metaValue><![CDATA[true]]></drools:metaValue>
-        </drools:metaData>
-      </bpmn2:extensionElements>
-    </bpmn2:sequenceFlow>
-    <bpmn2:sequenceFlow id="_4EF1401B-576A-4F79-B7DC-E4469A632CB6" sourceRef="_14D34BA6-32E3-4628-AA9D-663A65FE7918" targetRef="_006D4A8C-DF0F-4342-BB59-9A722B80462B">
-      <bpmn2:extensionElements>
-        <drools:metaData name="isAutoConnection.source">
-          <drools:metaValue><![CDATA[true]]></drools:metaValue>
-        </drools:metaData>
-        <drools:metaData name="isAutoConnection.target">
-          <drools:metaValue><![CDATA[true]]></drools:metaValue>
-        </drools:metaData>
-      </bpmn2:extensionElements>
-    </bpmn2:sequenceFlow>
-    <bpmn2:startEvent id="_69928F5A-82C2-45EE-9DE1-E54DC9C81260">
-      <bpmn2:outgoing>_ED172CDF-6CC9-40B3-AD6D-7AEA2666570D</bpmn2:outgoing>
-    </bpmn2:startEvent>
-    <bpmn2:businessRuleTask id="_14D34BA6-32E3-4628-AA9D-663A65FE7918" drools:ruleFlowGroup="sanity" name="Sanity Checks" implementation="http://www.jboss.org/drools/rule">
+    <bpmn2:property id="claimant" itemSubjectRef="_claimantItem" name="claimant"/>
+    <bpmn2:property id="claim" itemSubjectRef="_claimItem" name="claim"/>
+    <bpmn2:property id="claimResults" itemSubjectRef="_claimResultsItem" name="claimResults"/>
+    <bpmn2:sequenceFlow id="_9C05D7CC-30F3-4EEB-87D9-939E0F7A850A" sourceRef="_69928F5A-82C2-45EE-9DE1-E54DC9C81260" targetRef="_40A79752-23EE-4959-9C2C-FCF16AC32CAD"/>
+    <bpmn2:sequenceFlow id="_9964CDC3-192D-49C0-8EC3-70068E134F6B" sourceRef="_40A79752-23EE-4959-9C2C-FCF16AC32CAD" targetRef="_006D4A8C-DF0F-4342-BB59-9A722B80462B"/>
+    <bpmn2:businessRuleTask id="_40A79752-23EE-4959-9C2C-FCF16AC32CAD" drools:ruleFlowGroup="sanity" name="Sanity Checks" implementation="http://www.jboss.org/drools/rule">
       <bpmn2:extensionElements>
         <drools:metaData name="elementname">
           <drools:metaValue><![CDATA[Sanity Checks]]></drools:metaValue>
         </drools:metaData>
       </bpmn2:extensionElements>
-      <bpmn2:incoming>_ED172CDF-6CC9-40B3-AD6D-7AEA2666570D</bpmn2:incoming>
-      <bpmn2:outgoing>_4EF1401B-576A-4F79-B7DC-E4469A632CB6</bpmn2:outgoing>
+      <bpmn2:incoming>_9C05D7CC-30F3-4EEB-87D9-939E0F7A850A</bpmn2:incoming>
+      <bpmn2:outgoing>_9964CDC3-192D-49C0-8EC3-70068E134F6B</bpmn2:outgoing>
+      <bpmn2:ioSpecification>
+        <bpmn2:dataInput id="_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimantInputX" drools:dtype="com.redhat.training.claims.model.Claimant" itemSubjectRef="__40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimantInputXItem" name="tClaimant"/>
+        <bpmn2:dataInput id="_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimInputX" drools:dtype="com.redhat.training.claims.model.Claim" itemSubjectRef="__40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimInputXItem" name="tClaim"/>
+        <bpmn2:dataInput id="_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimResultsInputX" drools:dtype="com.redhat.training.claims.model.ClaimResults" itemSubjectRef="__40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimResultsInputXItem" name="tClaimResults"/>
+        <bpmn2:dataOutput id="_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimResultsOutputX" drools:dtype="com.redhat.training.claims.model.ClaimResults" itemSubjectRef="__40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimResultsOutputXItem" name="tClaimResults"/>
+        <bpmn2:inputSet>
+          <bpmn2:dataInputRefs>_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimantInputX</bpmn2:dataInputRefs>
+          <bpmn2:dataInputRefs>_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimInputX</bpmn2:dataInputRefs>
+          <bpmn2:dataInputRefs>_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimResultsInputX</bpmn2:dataInputRefs>
+        </bpmn2:inputSet>
+        <bpmn2:outputSet>
+          <bpmn2:dataOutputRefs>_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimResultsOutputX</bpmn2:dataOutputRefs>
+        </bpmn2:outputSet>
+      </bpmn2:ioSpecification>
+      <bpmn2:dataInputAssociation>
+        <bpmn2:sourceRef>claimant</bpmn2:sourceRef>
+        <bpmn2:targetRef>_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimantInputX</bpmn2:targetRef>
+      </bpmn2:dataInputAssociation>
+      <bpmn2:dataInputAssociation>
+        <bpmn2:sourceRef>claim</bpmn2:sourceRef>
+        <bpmn2:targetRef>_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimInputX</bpmn2:targetRef>
+      </bpmn2:dataInputAssociation>
+      <bpmn2:dataInputAssociation>
+        <bpmn2:sourceRef>claimResults</bpmn2:sourceRef>
+        <bpmn2:targetRef>_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimResultsInputX</bpmn2:targetRef>
+      </bpmn2:dataInputAssociation>
+      <bpmn2:dataOutputAssociation>
+        <bpmn2:sourceRef>_40A79752-23EE-4959-9C2C-FCF16AC32CAD_tClaimResultsOutputX</bpmn2:sourceRef>
+        <bpmn2:targetRef>claimResults</bpmn2:targetRef>
+      </bpmn2:dataOutputAssociation>
     </bpmn2:businessRuleTask>
+    <bpmn2:startEvent id="_69928F5A-82C2-45EE-9DE1-E54DC9C81260">
+      <bpmn2:outgoing>_9C05D7CC-30F3-4EEB-87D9-939E0F7A850A</bpmn2:outgoing>
+    </bpmn2:startEvent>
     <bpmn2:endEvent id="_006D4A8C-DF0F-4342-BB59-9A722B80462B">
-      <bpmn2:incoming>_4EF1401B-576A-4F79-B7DC-E4469A632CB6</bpmn2:incoming>
+      <bpmn2:incoming>_9964CDC3-192D-49C0-8EC3-70068E134F6B</bpmn2:incoming>
     </bpmn2:endEvent>
   </bpmn2:process>
-  <bpmndi:BPMNDiagram id="_ueuoIPLJEey6LMbgsXJwpw">
-    <bpmndi:BPMNPlane id="_ueuoIfLJEey6LMbgsXJwpw" bpmnElement="claims.ClaimRuleFlow">
+  <bpmndi:BPMNDiagram>
+    <bpmndi:BPMNPlane bpmnElement="claims.ClaimRuleFlow">
       <bpmndi:BPMNShape id="shape__006D4A8C-DF0F-4342-BB59-9A722B80462B" bpmnElement="_006D4A8C-DF0F-4342-BB59-9A722B80462B">
-        <dc:Bounds height="56.0" width="56.0" x="544.0" y="316.0"/>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="shape__14D34BA6-32E3-4628-AA9D-663A65FE7918" bpmnElement="_14D34BA6-32E3-4628-AA9D-663A65FE7918">
-        <dc:Bounds height="102.0" width="154.0" x="310.0" y="293.0"/>
+        <dc:Bounds height="56" width="56" x="795" y="256"/>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="shape__69928F5A-82C2-45EE-9DE1-E54DC9C81260" bpmnElement="_69928F5A-82C2-45EE-9DE1-E54DC9C81260">
-        <dc:Bounds height="56.0" width="56.0" x="174.0" y="151.0"/>
+        <dc:Bounds height="56" width="56" x="51" y="99"/>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="edge_shape__14D34BA6-32E3-4628-AA9D-663A65FE7918_to_shape__006D4A8C-DF0F-4342-BB59-9A722B80462B" bpmnElement="_4EF1401B-576A-4F79-B7DC-E4469A632CB6">
-        <di:waypoint xsi:type="dc:Point" x="464.0" y="344.0"/>
-        <di:waypoint xsi:type="dc:Point" x="544.0" y="344.0"/>
+      <bpmndi:BPMNShape id="shape__40A79752-23EE-4959-9C2C-FCF16AC32CAD" bpmnElement="_40A79752-23EE-4959-9C2C-FCF16AC32CAD">
+        <dc:Bounds height="102" width="154" x="155" y="76"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="edge_shape__40A79752-23EE-4959-9C2C-FCF16AC32CAD_to_shape__006D4A8C-DF0F-4342-BB59-9A722B80462B" bpmnElement="_9964CDC3-192D-49C0-8EC3-70068E134F6B">
+        <di:waypoint x="232" y="127"/>
+        <di:waypoint x="795" y="284"/>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="edge_shape__69928F5A-82C2-45EE-9DE1-E54DC9C81260_to_shape__14D34BA6-32E3-4628-AA9D-663A65FE7918" bpmnElement="_ED172CDF-6CC9-40B3-AD6D-7AEA2666570D">
-        <di:waypoint xsi:type="dc:Point" x="230.0" y="179.0"/>
-        <di:waypoint xsi:type="dc:Point" x="202.0" y="344.0"/>
-        <di:waypoint xsi:type="dc:Point" x="310.0" y="344.0"/>
+      <bpmndi:BPMNEdge id="edge_shape__69928F5A-82C2-45EE-9DE1-E54DC9C81260_to_shape__40A79752-23EE-4959-9C2C-FCF16AC32CAD" bpmnElement="_9C05D7CC-30F3-4EEB-87D9-939E0F7A850A">
+        <di:waypoint x="79" y="127"/>
+        <di:waypoint x="232" y="127"/>
       </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
-  <bpmn2:relationship id="_uevPMPLJEey6LMbgsXJwpw" type="BPSimData">
+  <bpmn2:relationship type="BPSimData">
     <bpmn2:extensionElements>
       <bpsim:BPSimData>
-        <bpsim:Scenario xsi:type="bpsim:Scenario" id="default" name="Simulationscenario">
-          <bpsim:ScenarioParameters xsi:type="bpsim:ScenarioParameters"/>
-          <bpsim:ElementParameters xsi:type="bpsim:ElementParameters" elementRef="_14D34BA6-32E3-4628-AA9D-663A65FE7918" id="_uevPMfLJEey6LMbgsXJwpw">
-            <bpsim:TimeParameters xsi:type="bpsim:TimeParameters">
-              <bpsim:ProcessingTime xsi:type="bpsim:Parameter">
-                <bpsim:NormalDistribution mean="0.0" standardDeviation="0.0"/>
+        <bpsim:Scenario id="default" name="Simulationscenario">
+          <bpsim:ScenarioParameters/>
+          <bpsim:ElementParameters elementRef="_69928F5A-82C2-45EE-9DE1-E54DC9C81260">
+            <bpsim:TimeParameters>
+              <bpsim:ProcessingTime>
+                <bpsim:NormalDistribution mean="0" standardDeviation="0"/>
+              </bpsim:ProcessingTime>
+            </bpsim:TimeParameters>
+          </bpsim:ElementParameters>
+          <bpsim:ElementParameters elementRef="_40A79752-23EE-4959-9C2C-FCF16AC32CAD">
+            <bpsim:TimeParameters>
+              <bpsim:ProcessingTime>
+                <bpsim:NormalDistribution mean="0" standardDeviation="0"/>
               </bpsim:ProcessingTime>
             </bpsim:TimeParameters>
-            <bpsim:ResourceParameters xsi:type="bpsim:ResourceParameters">
-              <bpsim:Availability xsi:type="bpsim:Parameter">
-                <bpsim:FloatingParameter value="0.0"/>
+            <bpsim:ResourceParameters>
+              <bpsim:Availability>
+                <bpsim:FloatingParameter value="0"/>
               </bpsim:Availability>
-              <bpsim:Quantity xsi:type="bpsim:Parameter">
-                <bpsim:FloatingParameter value="0.0"/>
+              <bpsim:Quantity>
+                <bpsim:FloatingParameter value="0"/>
               </bpsim:Quantity>
             </bpsim:ResourceParameters>
-            <bpsim:CostParameters xsi:type="bpsim:CostParameters">
-              <bpsim:UnitCost xsi:type="bpsim:Parameter">
-                <bpsim:FloatingParameter value="0.0"/>
+            <bpsim:CostParameters>
+              <bpsim:UnitCost>
+                <bpsim:FloatingParameter value="0"/>
               </bpsim:UnitCost>
             </bpsim:CostParameters>
           </bpsim:ElementParameters>
-          <bpsim:ElementParameters xsi:type="bpsim:ElementParameters" elementRef="_69928F5A-82C2-45EE-9DE1-E54DC9C81260" id="_uevPMvLJEey6LMbgsXJwpw">
-            <bpsim:TimeParameters xsi:type="bpsim:TimeParameters">
-              <bpsim:ProcessingTime xsi:type="bpsim:Parameter">
-                <bpsim:NormalDistribution mean="0.0" standardDeviation="0.0"/>
-              </bpsim:ProcessingTime>
-            </bpsim:TimeParameters>
-          </bpsim:ElementParameters>
         </bpsim:Scenario>
       </bpsim:BPSimData>
     </bpmn2:extensionElements>
-    <bpmn2:source>_ueuBEPLJEey6LMbgsXJwpw</bpmn2:source>
-    <bpmn2:target>_ueuBEPLJEey6LMbgsXJwpw</bpmn2:target>
+    <bpmn2:source>_hapNANUYEDq6p6MjaZUHRA</bpmn2:source>
+    <bpmn2:target>_hapNANUYEDq6p6MjaZUHRA</bpmn2:target>
   </bpmn2:relationship>
-</bpmn2:definitions>
+</bpmn2:definitions>

+ 16 - 6
src/main/resources/com/redhat/training/claims/sanity.drl

@@ -6,18 +6,29 @@ query "Get ClaimResults"
     cr: ClaimResults()
 end
 
+rule "Create a ClaimResults for each Claim without one"
+ruleflow-group "sanity"
+salience 100000
+when
+    c: Claim()
+    not ClaimResults(claimId == c.getId())
+then
+    ClaimResults r = new ClaimResults();
+    r.setClaimId(c.getId());
+    insert(r);
+end
+
 rule "Check whether Claimant is not Involved"
 ruleflow-group "sanity"
 when
     claimant: Claimant()
     claim: Claim(!(involvedPersons contains claimant))
     Claimant(this == claimant, claims contains claim)
+    r: ClaimResults(claimId == claim.getId())
 then
-    ClaimResults r = new ClaimResults();
-    r.setClaimId(claim.getId());
     r.setApproved(false);
     r.getReasons().add("Can't file claim on behalf of someone else.");
-    insert(r);
+    update(r);
     System.out.println("Claimant " + claimant.getName() + " not involved " +
                         "in claim " + claim.getId() + "!");
 end
@@ -28,11 +39,10 @@ when
     claimant: Claimant()
     claim: Claim(involvedPersons contains claimant)
     Claimant(this == claimant, claims contains claim)
+    r: ClaimResults(claimId == claim.getId())
 then
-    ClaimResults r = new ClaimResults();
-    r.setClaimId(claim.getId());
     r.getReasons().add("Claim owner properly listed as involved.");
-    insert(r);
+    update(r);
     System.out.println("Claimant " + claimant.getName() + " is involved " +
                         "in claim " + claim.getId() + "!");
 end

+ 2 - 34
src/test/java/com/redhat/training/claims/ClaimantInvolvedTest.java

@@ -10,48 +10,16 @@ import com.redhat.training.claims.model.ClaimResults;
 import com.redhat.training.claims.model.Claimant;
 import com.redhat.training.claims.model.Gender;
 
-import org.junit.After;
-import org.junit.Before;
 import org.junit.Test;
-import org.kie.api.KieServices;
-import org.kie.api.runtime.KieContainer;
-import org.kie.api.runtime.KieSession;
 import org.kie.api.runtime.rule.QueryResults;
 import org.kie.api.runtime.rule.QueryResultsRow;
 
-public class ClaimantInvolvedTest {
-    KieSession session;
-
-    @Before
-    public void setup() {
-        KieContainer kc = KieServices.Factory.get().getKieClasspathContainer();
-        session = kc.newKieSession();
-        System.out.println("Created new session...");
-    }
-    @After
-    public void tearDown() {
-        if (session != null) {
-            session.dispose();
-        }
-        System.out.println("Destroyed session after test.");
-    }
+public class ClaimantInvolvedTest extends ClaimsTestSupport {
     @Test
     public void testClaimantInvolved() {
         System.out.println("Running testClaimantInvolved...");
-        Claimant c = new Claimant();
-        c.setName("John Doe");
-        c.setGender(Gender.MALE);
-
-        Claim cl = new Claim();
-        cl.setId(123);
-        cl.setAmount(1000.00);
-        cl.setReason("Crash");
-        cl.getInvolvedPersons().add(c);
 
-        c.getClaims().add(cl);
-
-        session.insert(c);
-        session.insert(cl);
+        this.insertValidClaimantAndClaim(123, 1000.00, "John Doe", Gender.MALE, "Crash");
 
         session.fireAllRules();