[rules-users] WorkingMemoryListener & Declared Types
Stephen Masters
stephen.masters at me.com
Wed Aug 7 05:36:04 EDT 2013
I just noticed your explanation of what you're trying to do. You might find these handy:
https://github.com/gratiartis/scattercode-drools-scenarios/blob/master/src/main/java/uk/co/scattercode/beans/BeanMatcher.java
https://github.com/gratiartis/scattercode-drools-scenarios/blob/master/src/main/java/uk/co/scattercode/beans/BeanPropertyFilter.java
https://github.com/gratiartis/scattercode-drools-scenarios/blob/master/src/main/java/uk/co/scattercode/drools/util/FactFinder.java
With those in place, I create JUnit assertions, which expect to find facts in working memory with particular properties.
Steve
On 7 Aug 2013, at 10:27, Stephen Masters <stephen.masters at me.com> wrote:
> Add commons beanutils to your project:
>
> <dependency>
> <groupId>commons-beanutils</groupId>
> <artifactId>commons-beanutils</artifactId>
> <version>1.8.3</version>
> </dependency>
>
> Then all you need is a class with a static method something like this:
>
> public static String objectDetails(Object o) {
> StringBuilder sb = new StringBuilder(o.getClass().getSimpleName());
>
> try {
> @SuppressWarnings("unchecked")
> Map<String, Object> objectProperties = BeanUtils.describe(o);
> for (String k : objectProperties.keySet()) {
> sb.append(", " + k + "=\"" + objectProperties.get(k) + "\"");
> }
> } catch (IllegalAccessException e) {
> return "IllegalAccessException attempting to parse object.";
> } catch (InvocationTargetException e) {
> return "InvocationTargetException attempting to parse object.";
> } catch (NoSuchMethodException e) {
> return "NoSuchMethodException attempting to parse object.";
> }
>
> return sb.toString();
> }
>
>
>
> On 7 Aug 2013, at 10:19, droolster <quant.coder at gmail.com> wrote:
>
>> Hi,
>>
>> I haven't put Foo in my Java code as it is a transient type which I need to
>> the rule processing and not really part of my ontology model. Anything which
>> isn't part of ontology model but which I need to do the rule processing, I
>> put those types in my DRL file.
>>
>> I'll explain what I am trying to achieve:
>>
>> I am writing some JUnit test classes and I would like to test for specific
>> values for some attributes in the declared types in my DRL file. So in the
>> example I gave, I would like to assert that during rule processing the value
>> of Foo.score == 4.
>>
>> So basically I would like to query the working memory for this type and get
>> the value of the score attribute.
>>
>> Is there a good way of doing this?
>>
>>
>>
>> --
>> View this message in context: http://drools.46999.n3.nabble.com/WorkingMemoryListener-Declared-Types-tp4025391p4025396.html
>> Sent from the Drools: User forum mailing list archive at Nabble.com.
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20130807/a1611db6/attachment.html
More information about the rules-users
mailing list