Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DROOLS-6258] Fix drools-test-coverage for KieBaseTestConfiguration m… #3502

Merged
merged 1 commit into from
Apr 2, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -771,8 +771,8 @@ private void testCollectExpiredEvent(boolean expired) {
final KieSessionConfiguration sessionConfig = new SessionConfigurationImpl();
sessionConfig.setOption(ClockTypeOption.get(ClockType.PSEUDO_CLOCK.getId()));

kieBaseTestConfiguration.setIdentity(false); // EQUALITY
KieBase kieBase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, drl);
KieBaseTestConfiguration equalityConfig = TestParametersUtil.getEqualityInstanceOf(kieBaseTestConfiguration);
KieBase kieBase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", equalityConfig, drl);
final KieSession kieSession = kieBase.newKieSession(sessionConfig, null);

//clock init to current time
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1107,8 +1107,8 @@ public void testForallWithSlidingWindow() throws Exception {
final KieSessionConfiguration conf = KnowledgeBaseFactory.newKnowledgeSessionConfiguration();
conf.setOption( ClockTypeOption.get( ClockType.PSEUDO_CLOCK.getId() ) );

kieBaseTestConfiguration.setStreamMode(true);
KieBase kbase = KieBaseUtil.getKieBaseFromClasspathResources(getClass(), kieBaseTestConfiguration, "test_ForallSlidingWindow.drl");
KieBaseTestConfiguration streamConfig = TestParametersUtil.getStreamInstanceOf(kieBaseTestConfiguration);
KieBase kbase = KieBaseUtil.getKieBaseFromClasspathResources(getClass(), streamConfig, "test_ForallSlidingWindow.drl");
KieSession ksession = kbase.newKieSession(conf, null);

final SessionPseudoClock clock = (SessionPseudoClock) ksession.<SessionClock>getSessionClock();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -889,8 +889,8 @@ public void testMVELTypeCoercion() {
" list.add( \"OK\" ); \n" +
"end";

kieBaseTestConfiguration.setIdentity(false); // EQUALITY
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, str);
KieBaseTestConfiguration equalityConfig = TestParametersUtil.getEqualityInstanceOf(kieBaseTestConfiguration);
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", equalityConfig, str);
KieSession ksession = kbase.newKieSession();

final List list = new ArrayList();
Expand Down Expand Up @@ -934,8 +934,8 @@ public void testModifyObjectWithMutableHashCodeInEqualityMode() {
" }\n" +
"end";

kieBaseTestConfiguration.setIdentity(false); // EQUALITY
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, str);
KieBaseTestConfiguration equalityConfig = TestParametersUtil.getEqualityInstanceOf(kieBaseTestConfiguration);
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", equalityConfig, str);
KieSession ksession = kbase.newKieSession();
Human h = new Human(2);
ksession.insert(h);
Expand All @@ -960,8 +960,8 @@ public void testModifyObjectWithMutableHashCodeInEqualityMode2() {
" }\n" +
"end";

kieBaseTestConfiguration.setIdentity(false); // EQUALITY
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, str);
KieBaseTestConfiguration equalityConfig = TestParametersUtil.getEqualityInstanceOf(kieBaseTestConfiguration);
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", equalityConfig, str);
KieSession ksession = kbase.newKieSession();
Human h = new Human(2);
ksession.insert(h);
Expand Down Expand Up @@ -1020,8 +1020,8 @@ public void test2ndDashInMvelConsequnence() {
" System.out.println( $fact );\n" +
"end";

kieBaseTestConfiguration.setIdentity(false); // EQUALITY
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, str);
KieBaseTestConfiguration equalityConfig = TestParametersUtil.getEqualityInstanceOf(kieBaseTestConfiguration);
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", equalityConfig, str);
KieSession ksession = kbase.newKieSession();

Fact f = new Fact();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2722,8 +2722,8 @@ public void testBetaNodeInSubnetworkInStreamMode() {
" $f.setX( 2 );\n" +
"end";

kieBaseTestConfiguration.setStreamMode(true);
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, str);
KieBaseTestConfiguration streamConfig = TestParametersUtil.getStreamInstanceOf(kieBaseTestConfiguration);
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", streamConfig, str);
Comment on lines -2725 to +2726
Copy link
Contributor Author

@tkobayas tkobayas Apr 2, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for example, instead of modifying kieBaseTestConfiguration, get the expected kieBaseTestConfiguration instance (Stream mode while other properties are the same)

KieSession ksession = kbase.newKieSession();

ksession.setGlobal( "context", new ArrayList() {{
Expand Down Expand Up @@ -4544,8 +4544,8 @@ public void testMatchingEventsInStreamMode() {
"then\n" +
"end\n";

kieBaseTestConfiguration.setStreamMode(true);
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, drl);
KieBaseTestConfiguration streamConfig = TestParametersUtil.getStreamInstanceOf(kieBaseTestConfiguration);
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", streamConfig, drl);
KieSession ksession = kbase.newKieSession();

final AtomicInteger i = new AtomicInteger( 0 );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -240,8 +240,8 @@ public void testBindingToNullFieldWithEquality() {
" list.add( \"OK\" ); \n" +
"end";

kieBaseTestConfiguration.setIdentity(false); // EQUALITY
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, str);
KieBaseTestConfiguration equalityConfig = TestParametersUtil.getEqualityInstanceOf(kieBaseTestConfiguration);
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", equalityConfig, str);
KieSession ksession = kbase.newKieSession();

final java.util.List list = new java.util.ArrayList();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -453,9 +453,9 @@ public void testEventsExpiration() {
KieSessionConfiguration sessionConfig = KnowledgeBaseFactory.newKnowledgeSessionConfiguration();
sessionConfig.setOption( ClockTypeOption.get( ClockType.PSEUDO_CLOCK.getId() ) );

kieBaseTestConfiguration.setStreamMode(true);
final KieModule kieModule = KieUtil.getKieModuleFromDrls("test", kieBaseTestConfiguration, sb.toString());
final KieBase kbase = KieBaseUtil.newKieBaseFromKieModuleWithAdditionalOptions(kieModule, kieBaseTestConfiguration, MultithreadEvaluationOption.YES );
KieBaseTestConfiguration streamConfig = TestParametersUtil.getStreamInstanceOf(kieBaseTestConfiguration);
final KieModule kieModule = KieUtil.getKieModuleFromDrls("test", streamConfig, sb.toString());
final KieBase kbase = KieBaseUtil.newKieBaseFromKieModuleWithAdditionalOptions(kieModule, streamConfig, MultithreadEvaluationOption.YES );
KieSession ksession = kbase.newKieSession(sessionConfig, null);

assertTrue( ( (InternalWorkingMemory) ksession ).getAgenda().isParallelAgenda() );
Expand Down Expand Up @@ -496,9 +496,9 @@ public void testImmediateEventsExpiration() {

KieSessionConfiguration sessionConfig = KnowledgeBaseFactory.newKnowledgeSessionConfiguration();

kieBaseTestConfiguration.setStreamMode(true);
final KieModule kieModule = KieUtil.getKieModuleFromDrls("test", kieBaseTestConfiguration, sb.toString());
final KieBase kbase = KieBaseUtil.newKieBaseFromKieModuleWithAdditionalOptions(kieModule, kieBaseTestConfiguration, MultithreadEvaluationOption.YES );
KieBaseTestConfiguration streamConfig = TestParametersUtil.getStreamInstanceOf(kieBaseTestConfiguration);
final KieModule kieModule = KieUtil.getKieModuleFromDrls("test", streamConfig, sb.toString());
final KieBase kbase = KieBaseUtil.newKieBaseFromKieModuleWithAdditionalOptions(kieModule, streamConfig, MultithreadEvaluationOption.YES );
KieSession ksession = kbase.newKieSession(sessionConfig, null);

assertTrue( ( (InternalWorkingMemory) ksession ).getAgenda().isParallelAgenda() );
Expand Down Expand Up @@ -574,9 +574,9 @@ public void testFireUntilHaltWithExpiration() {
KieSessionConfiguration sessionConfig = KnowledgeBaseFactory.newKnowledgeSessionConfiguration();
sessionConfig.setOption( ClockTypeOption.get( ClockType.PSEUDO_CLOCK.getId() ) );

kieBaseTestConfiguration.setStreamMode(true);
final KieModule kieModule = KieUtil.getKieModuleFromDrls("test", kieBaseTestConfiguration, sb.toString());
final KieBase kbase = KieBaseUtil.newKieBaseFromKieModuleWithAdditionalOptions(kieModule, kieBaseTestConfiguration, MultithreadEvaluationOption.YES );
KieBaseTestConfiguration streamConfig = TestParametersUtil.getStreamInstanceOf(kieBaseTestConfiguration);
final KieModule kieModule = KieUtil.getKieModuleFromDrls("test", streamConfig, sb.toString());
final KieBase kbase = KieBaseUtil.newKieBaseFromKieModuleWithAdditionalOptions(kieModule, streamConfig, MultithreadEvaluationOption.YES );
KieSession ksession = kbase.newKieSession(sessionConfig, null);

assertTrue( ( (InternalWorkingMemory) ksession ).getAgenda().isParallelAgenda() );
Expand Down Expand Up @@ -684,9 +684,9 @@ public void testFireUntilHaltWithExpiration2() throws InterruptedException {
KieSessionConfiguration sessionConfig = KnowledgeBaseFactory.newKnowledgeSessionConfiguration();
sessionConfig.setOption( ClockTypeOption.get( ClockType.PSEUDO_CLOCK.getId() ) );

kieBaseTestConfiguration.setStreamMode(true);
final KieModule kieModule = KieUtil.getKieModuleFromDrls("test", kieBaseTestConfiguration, drl);
final KieBase kbase = KieBaseUtil.newKieBaseFromKieModuleWithAdditionalOptions(kieModule, kieBaseTestConfiguration, MultithreadEvaluationOption.YES );
KieBaseTestConfiguration streamConfig = TestParametersUtil.getStreamInstanceOf(kieBaseTestConfiguration);
final KieModule kieModule = KieUtil.getKieModuleFromDrls("test", streamConfig, drl);
final KieBase kbase = KieBaseUtil.newKieBaseFromKieModuleWithAdditionalOptions(kieModule, streamConfig, MultithreadEvaluationOption.YES );
KieSession ksession = kbase.newKieSession(sessionConfig, null);

try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -210,8 +210,8 @@ public void testParallelQueryCallFromRuleAndAPI() {
" myGlobal.add(drools.getKieRuntime().getQueryResults(\"myQuery\"));\n"+
"end\n";

kieBaseTestConfiguration.setStreamMode(false); // CLOUD
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, drl);
KieBaseTestConfiguration cloudConfig = TestParametersUtil.getCloudInstanceOf(kieBaseTestConfiguration);
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", cloudConfig, drl);
KieSession kSession = kbase.newKieSession();

myGlobal = new ArrayList<>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,8 @@ public void testSlidingTimeWindows() {

final List<Exception> errors = new ArrayList<>();

kieBaseTestConfiguration.setStreamMode(true);
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, str);
KieBaseTestConfiguration streamConfig = TestParametersUtil.getStreamInstanceOf(kieBaseTestConfiguration);
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", streamConfig, str);

final KieSession ksession = kbase.newKieSession();
final EntryPoint ep = ksession.getEntryPoint("X");
Expand Down Expand Up @@ -275,8 +275,8 @@ public void testRaceOnAccumulateNodeSimple() throws InterruptedException {
"end\n" +
"\n";

kieBaseTestConfiguration.setStreamMode(true);
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, drl);
KieBaseTestConfiguration streamConfig = TestParametersUtil.getStreamInstanceOf(kieBaseTestConfiguration);
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", streamConfig, drl);


final KieSession session = kbase.newKieSession();
Expand Down Expand Up @@ -348,8 +348,8 @@ public void testConcurrencyWithChronThreads() throws InterruptedException {
" list.add( $count ); \n" +
"end";

kieBaseTestConfiguration.setStreamMode(true);
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, drl);
KieBaseTestConfiguration streamConfig = TestParametersUtil.getStreamInstanceOf(kieBaseTestConfiguration);
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", streamConfig, drl);

final KieSessionConfiguration conf = KnowledgeBaseFactory.newKnowledgeSessionConfiguration();
conf.setOption(ClockTypeOption.REALTIME);
Expand Down Expand Up @@ -562,8 +562,8 @@ public void testConcurrentFireAndDispose() throws InterruptedException {
"then\n" +
"end";

kieBaseTestConfiguration.setStreamMode(true);
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, drl);
KieBaseTestConfiguration streamConfig = TestParametersUtil.getStreamInstanceOf(kieBaseTestConfiguration);
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", streamConfig, drl);

final KieSessionConfiguration ksconf = KieServices.Factory.get().newKieSessionConfiguration();
ksconf.setOption(TimedRuleExecutionOption.YES);
Expand Down Expand Up @@ -612,8 +612,8 @@ public void testFireUntilHaltAndDispose() throws InterruptedException {
"then\n" +
"end";

kieBaseTestConfiguration.setStreamMode(true);
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration, drl);
KieBaseTestConfiguration streamConfig = TestParametersUtil.getStreamInstanceOf(kieBaseTestConfiguration);
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", streamConfig, drl);

final KieSessionConfiguration ksconf = KieServices.Factory.get().newKieSessionConfiguration();
ksconf.setOption(TimedRuleExecutionOption.YES);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,8 +133,8 @@ public void testGetFactHandle() throws Exception {

@Test
public void testGetFactHandleEqualityBehavior() throws Exception {
kieBaseTestConfiguration.setIdentity(false); // EQUALITY
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration);
KieBaseTestConfiguration equalityConfig = TestParametersUtil.getEqualityInstanceOf(kieBaseTestConfiguration);
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", equalityConfig);
KieSession ksession = kbase.newKieSession();

final CheeseEqual cheese = new CheeseEqual("stilton", 10);
Expand All @@ -145,8 +145,8 @@ public void testGetFactHandleEqualityBehavior() throws Exception {

@Test
public void testGetFactHandleIdentityBehavior() throws Exception {
kieBaseTestConfiguration.setIdentity(true); // IDENTITY
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration);
KieBaseTestConfiguration identityConfig = TestParametersUtil.getIdentityInstanceOf(kieBaseTestConfiguration);
KieBase kbase = KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", identityConfig);
KieSession ksession = kbase.newKieSession();

final CheeseEqual cheese = new CheeseEqual("stilton", 10);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -261,21 +261,11 @@ public boolean isIdentity() {
return identity;
}

// identity is mutable for test convenience but basically we don't need to use this (One test class should focus on identity or equality)
public void setIdentity(boolean identity) {
this.identity = identity;
}

@Override
public boolean isStreamMode() {
return streamMode;
}

// streamMode is mutable for test convenience but basically we don't need to use this (One test class should focus on cloud or stream)
public void setStreamMode(boolean streamMode) {
this.streamMode = streamMode;
}

@Override
public boolean useAlphaNetworkCompiler() {
return alphaNetworkCompiler;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,66 @@ public static Collection<Object[]> getStreamKieBaseAndStatefulKieSessionConfigur
return parameters;
}

/**
* Returns KieBaseTestConfiguration instance with Equality while other properties are the same as original.
*/
public static KieBaseTestConfiguration getEqualityInstanceOf(KieBaseTestConfiguration orig) {
for (final KieBaseTestConfiguration config : KieBaseTestConfiguration.values()) {
if (!config.isIdentity()
&& config.isStreamMode() == orig.isStreamMode()
&& config.useAlphaNetworkCompiler() == orig.useAlphaNetworkCompiler()
&& config.getExecutableModelProjectClass().equals(orig.getExecutableModelProjectClass())) {
return config;
}
}
throw new RuntimeException("Cannot find Equality instance of " + orig);
}

/**
* Returns KieBaseTestConfiguration instance with Identity while other properties are the same as original.
*/
public static KieBaseTestConfiguration getIdentityInstanceOf(KieBaseTestConfiguration orig) {
for (final KieBaseTestConfiguration config : KieBaseTestConfiguration.values()) {
if (config.isIdentity()
&& config.isStreamMode() == orig.isStreamMode()
&& config.useAlphaNetworkCompiler() == orig.useAlphaNetworkCompiler()
&& config.getExecutableModelProjectClass().equals(orig.getExecutableModelProjectClass())) {
return config;
}
}
throw new RuntimeException("Cannot find Identity instance of " + orig);
}

/**
* Returns KieBaseTestConfiguration instance with Stream while other properties are the same as original.
*/
public static KieBaseTestConfiguration getStreamInstanceOf(KieBaseTestConfiguration orig) {
for (final KieBaseTestConfiguration config : KieBaseTestConfiguration.values()) {
if (config.isStreamMode()
&& config.isIdentity() == orig.isIdentity()
&& config.useAlphaNetworkCompiler() == orig.useAlphaNetworkCompiler()
&& config.getExecutableModelProjectClass().equals(orig.getExecutableModelProjectClass())) {
return config;
}
}
throw new RuntimeException("Cannot find Stream instance of " + orig);
}

/**
* Returns KieBaseTestConfiguration instance with Cloud while other properties are the same as original.
*/
public static KieBaseTestConfiguration getCloudInstanceOf(KieBaseTestConfiguration orig) {
for (final KieBaseTestConfiguration config : KieBaseTestConfiguration.values()) {
if (!config.isStreamMode()
&& config.isIdentity() == orig.isIdentity()
&& config.useAlphaNetworkCompiler() == orig.useAlphaNetworkCompiler()
&& config.getExecutableModelProjectClass().equals(orig.getExecutableModelProjectClass())) {
return config;
}
}
throw new RuntimeException("Cannot find Cloud instance of " + orig);
}

private TestParametersUtil() {
// Creating instances of util classes should not be possible.
}
Expand Down
Loading