From 643fba49913b8e01449981f7298ae1c58092b1e0 Mon Sep 17 00:00:00 2001 From: Geoffrey De Smet Date: Thu, 30 Aug 2012 14:04:44 +0200 Subject: [PATCH] JBRULES-2438 - BUGZILLA: Test case to prove that multiple sheets are possible (still TODO: it should fail gracefully if multiple sheets use the same RuleTable name) --- .../drools/decisiontable/ChangeSetTest.java | 29 ++++++++++++++++++ .../drools/decisiontable/multipleSheets.xls | Bin 0 -> 24064 bytes .../decisiontable/multipleSheetsChangeSet.xml | 13 ++++++++ 3 files changed, 42 insertions(+) create mode 100644 drools-decisiontables/src/test/resources/org/drools/decisiontable/multipleSheets.xls create mode 100644 drools-decisiontables/src/test/resources/org/drools/decisiontable/multipleSheetsChangeSet.xml diff --git a/drools-decisiontables/src/test/java/org/drools/decisiontable/ChangeSetTest.java b/drools-decisiontables/src/test/java/org/drools/decisiontable/ChangeSetTest.java index 3d98111778d..0ed7246e151 100644 --- a/drools-decisiontables/src/test/java/org/drools/decisiontable/ChangeSetTest.java +++ b/drools-decisiontables/src/test/java/org/drools/decisiontable/ChangeSetTest.java @@ -89,6 +89,35 @@ public void testIntegration() { list.get( 2 ) ); } + @Test + public void multipleSheets() { + KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); + kbuilder.add( ResourceFactory.newClassPathResource( "multipleSheetsChangeSet.xml", getClass()), ResourceType.CHANGE_SET ); + assertFalse( kbuilder.hasErrors() ); + KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); + kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() ); + StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); + List list = new ArrayList(); + ksession.setGlobal( "list", list ); + + ksession.insert( new Cheese( "cheddar", + 42 ) ); + ksession.insert( new Person( "michael", + "stilton", + 25 ) ); + ksession.insert( new Person( "Jane", + "stilton", + 55 ) ); + + ksession.fireAllRules(); + ksession.dispose(); + + assertEquals( 2, list.size() ); + + assertTrue(list.contains("Young man cheddar")); + assertTrue(list.contains("Jane eats cheddar")); + } + @Test public void testCSV() { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); diff --git a/drools-decisiontables/src/test/resources/org/drools/decisiontable/multipleSheets.xls b/drools-decisiontables/src/test/resources/org/drools/decisiontable/multipleSheets.xls new file mode 100644 index 0000000000000000000000000000000000000000..8d69de34cfd054d02412b4233fca4d1dd868874c GIT binary patch literal 24064 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 literal 0 HcmV?d00001 diff --git a/drools-decisiontables/src/test/resources/org/drools/decisiontable/multipleSheetsChangeSet.xml b/drools-decisiontables/src/test/resources/org/drools/decisiontable/multipleSheetsChangeSet.xml new file mode 100644 index 00000000000..cac3721ae39 --- /dev/null +++ b/drools-decisiontables/src/test/resources/org/drools/decisiontable/multipleSheetsChangeSet.xml @@ -0,0 +1,13 @@ + + + + + + + + + + +