I'm a little bit confused on the best way to test the mappings in the sample application on the wiki. It would be cool to update the example with a set of unit and integration tests that document the capabilites and short commings of PersistanceSpecification.
I have found this page: http://blogs.hibernatingrhinos.com/nhibernate/archive/2008/08/15/a-fluent-interface-to-nhibernate-part-3-mapping.aspx Does anyone have some good links on testing mappings? Maybe a page needs to be added to the wiki :) Cheers Jake On Apr 2, 9:57 am, epitka <[email protected]> wrote: > Maybe this can help you in some way, as I run into kinda similar > problem > > http://forum.hibernate.org/viewtopic.php?t=992593&highlight=proxy+ref... > > On Apr 1, 3:24 pm, jakescott <[email protected]> wrote: > > > Hi Jon inheriting from the fluent Entity class does not solve the > > problem out of the box. > > > The problem is: > > > public override bool Equals(object obj) > > { > > if (ReferenceEquals(null, obj)) return false; > > if (ReferenceEquals(this, obj)) return true; > > if (GetType() != obj.GetType()) return false; // this line > > always evaluates to false because the type of obj.GetType() is the > > proxy object eg StoreProxy6c0bc5809d5049799f62c7a4c08f45de > > return Equals((Entity) obj); > > } > > > If I comment out those lines then the tests pass. Here is a link to > > the working testhttp://pastie.org/434198 > > > So I guess my question now is what is the best way to solve this > > problem? Change the Entities Equals method or pass in a test > > IEqualityComparer into the PersistanceSpecification? > > > On Apr 2, 1:18 am, Jon Kruger <[email protected]> wrote: > > > > I've had the same problem before. One way to get around this is to pass > > > an > > > IEqualityComparer into the PersistenceSpecification constructor, and then > > > in > > > there you can compare that the two Store objects are equal. > > > > The other thing you can do is override Equals() on your entity objects and > > > have Equals() return true if the objects are of the same entity type and > > > the > > > Ids are the same. If you derive all of your entity classes from > > > FluentNHibernate.Data.Entity you will get all of this for free. (I think > > > this should work, I haven't actually tried it yet.) > > > > Jon > > > > On Wed, Apr 1, 2009 at 1:30 AM, jakescott <[email protected]> wrote: > > > > > Just wondering if I am doing something wrong here. I am trying to run > > > > an integration test based on the example code on the wiki and example > > > > application. Hoping somebody can help me out :) > > > > > I have saved the example code here: > > > > >http://pastie.org/433518 > > > > > var store = new Store { Name = "Bakery" }; > > > > > new PersistenceSpecification<Employee>(session) > > > > .CheckProperty(x => x.FirstName, "Jake") > > > > .CheckProperty(x => x.LastName, "Scott") > > > > .CheckReference(x => x.Store, store) > > > > .VerifyTheMappings(); > > > > > System.ApplicationException: Expected 'fluent_muck_around.Store' but > > > > got 'StoreProxy4a9aef614d8e4f91a1329920a5592084' for Property 'Store' > > > > at > > > > > FluentNHibernate.Testing.PersistenceSpecification`1.PropertyValue.CheckValu > > > > e > > > > (Object target) in C:\mvc\fluent-nhibernate\src\FluentNHibernate > > > > \Testing\PersistenceSpecification.cs: line 265 > > > > at > > > > > FluentNHibernate.Testing.PersistenceSpecification`1.<>c__DisplayClass2.<Ver > > > > ifyTheMappings>b__1 > > > > (PropertyValue p) in C:\mvc\fluent-nhibernate\src\FluentNHibernate > > > > \Testing\PersistenceSpecification.cs: line 119 > > > > at System.Collections.Generic.List`1.ForEach(Action`1 action) > > > > at > > > > FluentNHibernate.Testing.PersistenceSpecification`1.VerifyTheMappings > > > > () in C:\mvc\fluent-nhibernate\src\FluentNHibernate\Testing > > > > \PersistenceSpecification.cs: line 119 > > > > at > > > > > fluent_muck_around.IntegrationTests.should_save_and_load_an_employee_with_a > > > > _store_reference > > > > () in Entities.cs: line 134 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Fluent NHibernate" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/fluent-nhibernate?hl=en -~----------~----~----~----~------~----~------~--~---
