Hi Kieran,

On 28/03/2012, at 16:07, Kieran Kelleher wrote:

> IIRC, EOQualifier is the problem here. The semantics of in memory evaluation 
> on a keyPath that has a toMany key is different to the SQL result when using 
> the same qualifier in a FetchSpec.
> 
> In memory is going to call valueForKeyPath( "pages.empty" ) on each Book 
> object. The result of that valueForKeyPath is probably an NSArray of Booleans 
> and NSArray will never be equal to Boolean.TRUE. Debug step the code and see 
> if that is the case.
> 

That is exactly the problem. As soon as WOUnit uses the in-memory evaluation, 
this misbehavior leads to inaccurate test results. This is really not cool. :(

I'll try to make a fix in WOUnit.

> See the thread from Feb 6/7 with subject 
> "EOKeyValueQualifier.evaluateWithObject on EOQualifier.QualifierContains 
> selector?"
> 

Thanks for the reference.

Cheers,

Henrique

> 
> 
> On Mar 28, 2012, at 2:00 PM, Henrique Prange wrote:
> 
>> Hi there,
>> 
>> I'm trying to fix a problem in WOUnit, but it seems to be a bug in the core 
>> qualifier evaluation for objects in memory. Here is a sample code that 
>> demonstrates the problem:
>> 
>> Page page = Page.createPage(editingContext);
>> 
>> page.setEmpty(true);
>> 
>> Book book = Book.createBook(editingContext);
>> 
>> book.addToPagesRelationship(page);
>> 
>> // Get all books with empty pages
>> EOQualifier qualifier = Book.PAGES.append(Page.EMPTY).isTrue();
>> 
>> NSArray<Book> result = ERXQ.filtered(new NSArray<Book>(book), qualifier);
>> 
>> The result array should contain the Book I've just created, but the array 
>> returned is empty. :(
>> 
>> Is there an alternative way to evaluate the qualifier in memory? Should I 
>> create the qualifier in a different manner? Any clues on how could I fix 
>> this problem without writing my own qualifier evaluator?
>> 
>> Cheers,
>> 
>> Henrique
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
>> Help/Unsubscribe/Update your Subscription:
>> https://lists.apple.com/mailman/options/webobjects-dev/kelleherk%40gmail.com
>> 
>> This email sent to kelleh...@gmail.com
> 


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to