Hi everybody,
i'm trying to mock a global using Mockito but Drools is always complaining:
Caused by: java.lang.ClassCastException:
de.lvm.verteilung.monitoring.VerteilungServicesMonitoringMBean$$EnhancerByMockitoWithCGLIB$$df2ff492
incompatible with
de.lvm.vorverteilung.monitoring.VorverteilungServicesMonitoringMBean
at
ServiceProzesse.Verteilung.Vertreterregeln.Rule_Vertretung_nach_Endnummer_0DefaultConsequenceInvoker.evaluate(Rule_Vertretung_nach_Endnummer_0DefaultConsequenceInvoker.java:22)
at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:917)
... 31 more
It seems that it has problems with the created subclass from Mockito. I get
the same
ClassCastException when trying this with EasyMock.
Here is my Unit-Test:
KnowledgeBase knowledgeBase = createKnowledgeBase();
StatelessKnowledgeSession ksession =
knowledgeBase.newStatelessKnowledgeSession();
VerteilungServicesMonitoringMBean monitoring =
mock(VerteilungServicesMonitoringMBean.class);
Arbeitsanstoss arbeitsanstoss = new ArbeitsanstossImpl();
arbeitsanstoss.setBenutzerId("m500516");
VerteilSperreController verteilSperreService =
mock(VerteilSperreController.class);
when(verteilSperreService.istVerteilSperreAktiv("m500516",
Ausgangskanal.LAS_BRIEFKASTEN)).thenReturn(true);
ksession.setGlobal("monitoring", monitoring);
ksession.setGlobal("verteilSperreService", verteilSperreService);
ksession.execute(arbeitsanstoss);
And my drl:
package ServiceProzesse.Verteilung.Vertreterregeln
import de.lvm.vorverteilung.services.types.SystemseitigerAnstoss;
import de.lvm.vorverteilung.services.types.Arbeitsanstoss;
import de.lvm.vorverteilung.monitoring.VorverteilungServicesMonitoringMBean;
import de.lvm.verteilung.sperre.VerteilSperreController;
import de.lvm.verteilung.sperre.Ausgangskanal;
global VorverteilungServicesMonitoringMBean monitoring;
global VerteilSperreController verteilSperreService;
rule "Vertretung nach Endnummer"
when
$a : Arbeitsanstoss()
eval( verteilSperreService.istVerteilSperreAktiv($a.getBenutzerId(),
Ausgangskanal.LAS_BRIEFKASTEN) )
then
monitoring.log("Vertretung nach Endnummer");
System.out.println("hello2");
end
Any ideas?
Thanks in advance,
Dirk
--
View this message in context:
http://drools-java-rules-engine.46999.n3.nabble.com/Isn-t-it-possible-to-...
Sent from the Drools - User mailing list archive at
Nabble.com.