|
@@ -0,0 +1,152 @@
|
|
|
+package com.redhat.training.claims;
|
|
|
+
|
|
|
+import static org.junit.Assert.assertEquals;
|
|
|
+import static org.junit.Assert.assertTrue;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+
|
|
|
+import com.redhat.training.claims.model.Claim;
|
|
|
+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.");
|
|
|
+ }
|
|
|
+ @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);
|
|
|
+
|
|
|
+ session.fireAllRules();
|
|
|
+
|
|
|
+ ArrayList<ClaimResults> crs = new ArrayList<ClaimResults>();
|
|
|
+ QueryResults qr = session.getQueryResults("Get ClaimResults");
|
|
|
+ for (QueryResultsRow qrr : qr) {
|
|
|
+ ClaimResults cr = (ClaimResults)qrr.get("cr");
|
|
|
+ crs.add(cr);
|
|
|
+ }
|
|
|
+ assertTrue("Unexpected number of claim results", crs.size() == 1);
|
|
|
+ assertTrue("Expected reason not in claim result", crs.get(0).getReasons().contains("Claim owner properly listed as involved."));
|
|
|
+ }
|
|
|
+ @Test
|
|
|
+ public void testClaimantNotInvolved() {
|
|
|
+ System.out.println("Running testClaimantNotInvolved...");
|
|
|
+ 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);
|
|
|
+
|
|
|
+ session.fireAllRules();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testMultipleClaimsOneClaimant() {
|
|
|
+ System.out.println("Running testMultipleClaimsOneClaimant...");
|
|
|
+ Claimant c = new Claimant();
|
|
|
+ c.setName("John Doe");
|
|
|
+ c.setGender(Gender.MALE);
|
|
|
+
|
|
|
+ Claim cl1 = new Claim();
|
|
|
+ cl1.setId(123);
|
|
|
+ cl1.setAmount(1000.00);
|
|
|
+ cl1.setReason("Crash");
|
|
|
+ cl1.getInvolvedPersons().add(c);
|
|
|
+
|
|
|
+ Claim cl2 = new Claim();
|
|
|
+ cl2.setId(234);
|
|
|
+ cl2.setAmount(1000.00);
|
|
|
+ cl2.setReason("Crash");
|
|
|
+ //cl.getInvolvedPersons().add(c);
|
|
|
+
|
|
|
+ c.getClaims().add(cl1);
|
|
|
+ c.getClaims().add(cl2);
|
|
|
+
|
|
|
+ session.insert(c);
|
|
|
+ session.insert(cl1);
|
|
|
+ session.insert(cl2);
|
|
|
+
|
|
|
+ session.fireAllRules();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testMultipleClaimsMultiClaimants() {
|
|
|
+ System.out.println("Running testMultipleClaimsMultiClaimants...");
|
|
|
+ Claimant c1 = new Claimant();
|
|
|
+ c1.setName("John Doe");
|
|
|
+ c1.setGender(Gender.MALE);
|
|
|
+
|
|
|
+ Claim cl1 = new Claim();
|
|
|
+ cl1.setId(123);
|
|
|
+ cl1.setAmount(1000.00);
|
|
|
+ cl1.setReason("Crash");
|
|
|
+ cl1.getInvolvedPersons().add(c1);
|
|
|
+
|
|
|
+ c1.getClaims().add(cl1);
|
|
|
+
|
|
|
+ session.insert(c1);
|
|
|
+ session.insert(cl1);
|
|
|
+
|
|
|
+ Claimant c2 = new Claimant();
|
|
|
+ c2.setName("Jane Doe");
|
|
|
+ c2.setGender(Gender.FEMALE);
|
|
|
+
|
|
|
+ Claim cl2 = new Claim();
|
|
|
+ cl2.setId(234);
|
|
|
+ cl2.setAmount(2000.00);
|
|
|
+ cl2.setReason("Breakdown");
|
|
|
+ cl2.getInvolvedPersons().add(c2);
|
|
|
+
|
|
|
+ c2.getClaims().add(cl2);
|
|
|
+
|
|
|
+ session.insert(c2);
|
|
|
+ session.insert(cl2);
|
|
|
+
|
|
|
+ session.fireAllRules();
|
|
|
+ }
|
|
|
+}
|