Bug 1121985
| Summary: | Test scenario: Not working with Java enums | ||
|---|---|---|---|
| Product: | [Retired] JBoss BRMS Platform 6 | Reporter: | Toni Rikkola <trikkola> |
| Component: | Business Central | Assignee: | Toni Rikkola <trikkola> |
| Status: | CLOSED EOL | QA Contact: | Lukáš Petrovický <lpetrovi> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | high | ||
| Version: | 6.0.0 | CC: | bingalee7, fspolti, kverlaen, lpetrovi |
| Target Milestone: | ER3 | ||
| Target Release: | 6.1.0 | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2020-03-27 20:00:46 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
The same test was made in the following versions: 5.3.1 -> worked as expected 6.0.2 -> same problem 6.0.3 -> same problem master: https://github.com/droolsjbpm/drools/commit/451eebede 6.2.x: https://github.com/droolsjbpm/drools/commit/42e1d67e2 Similar use case - trying to set the value of an enum, I got an error:
testdrl : [Error: could not access/write property (gender) in: au.gov.tas.test.Person] [Near : {... __fact__.gender= __val__ ....}] ^ [Line: 1, Column: 15]
When creating the test scenario, the workbench correctly interprets the enumeration, allowing the appropriate value to be selected but is obviously passing the string because, I needed to add a setter that accepted a string value.
|
Description of problem: Test scenario fails to run when using enums. Tested with the setup below. Email from the rules-users mailing list: "Hi all, I'm defining a test scenario within guvnor (now called kie-workbench) and I'm experiencing some issues about using java enums. The case is simple, I have a java model (deploying a jar) with a class having a member of enum type. The enum is defined in the same package but in a different java file, not an inner class. This is packed in a jar that I deploy manually uploading the file to the embedded maven repo using the workbench. / public class ClassWithMemberAsEnum { private EnumType enumMember; /*getters/setters included*/} public enum EnumType {HELLO, BYE} / Then I write a dummy rule with the guided editor like this: / import es.shin.test.ClassWithMemberAsEnum; import es.shin.test.EnumType; rule "DummyRule" dialect "mvel" when x : ClassWithMemberAsEnum( enumMember == EnumType.HELLO ) then x.setEnumMember( EnumType.BYE ); end / And finally a test scenario inserting a ClassWithMemberAsEnum initialized with enumMember=EnumType.HELLO and checking that it is changed to EnumType.BYE after firing all rules. The error message returned in the reporting console is: / EnumTest : [Error: unable to resolve method using strict-mode: java.lang.Object.es()] [Near : {... es.shin.test.EnumType.HELLO ....}] ^ [Line: 1, Column: 1] / I have tried the same case but defining the class in the data modeler and the enum with the enumeration editor, without using any jar artifact. The case worked as expected."