Well as I understand it, the problem is with using the persistence specification to verify the mapping. The mapping itself works, its just the the persistence specification isn't sophisticated enough to support the testing of this scenario. Am I missing something?
On Sat, Apr 25, 2009 at 10:45 AM, Action Jackson <crjac...@gmail.com> wrote: > > Is this to say that the mapping for the self-referencing Category > class described in the NHibernate in Action book cannot be duplicated > with Fluent NHibernate? I have a FNH mapping extremely similar to the > one listed by 'aragorn', but I am also getting: > System.ApplicationException: Actual count does not equal expected > count. There are no solutions for this issue? > > On Mar 18, 11:58 pm, Paul Batum <paul.ba...@gmail.com> wrote: > > Good catch Brendan. I need to pay more attention. > > > > > > > > On Thu, Mar 19, 2009 at 2:34 PM, Brendan Erwin <brendanjer...@gmail.com> > wrote: > > > He's not testing the actual object created in his example. He's testing > the > > > Catalog entity which "HasMany" Business entities. > > > Here is an example from my project that works: > > > [Test] > > > public void PayerMapping() > > > { > > > var states = new List<State> { new State { Abbreviation = > "CA", > > > Name = "California" } }; > > > new PersistenceSpecification<PayerModel>(session) > > > .CheckProperty(x => x.Active, true) > > > .CheckProperty(x => x.Name, "asdfgh") > > > .CheckList(x => x.States, states) > > > .VerifyTheMappings(); > > > } > > > The problem is that the Catalog.Businesses association is Inverse but > there > > > is no way to set the Business.Catalog value to the instance that the > > > PersistenceSpecification creates. In my working example, the States > > > association is not inverse. > > > The short answer is that you can't test Inverse collection associations > with > > > PersistenceSpecification. > > > What would the api even look like that would allow you to set that? > Maybe > > > something like : .CheckInverseList(x=>x.Assoc, i=>i.Parent, > ListOfItems) > > > where i is the list item type. Then the PersistenceSpecification could > set > > > the specified property to the instance of the entity under test it > creates. > > > > > On Mar 18, 2009, at 5:38 PM, Paul Batum wrote: > > > > > That is not how it works. The PersistenceSpecification does not test > > > against an object instance that you have created. Here is an example > > > test from the the ConnectedTester: > > > > > [Test] > > > public void MappingTest1() > > > { > > > new PersistenceSpecification<Record>(_source) > > > .CheckProperty(r => r.Age, 22) > > > .CheckProperty(r => r.Name, "somebody") > > > .CheckProperty(r => r.Location, "somewhere") > > > .VerifyTheMappings(); > > > } > > > > > On Wed, Mar 18, 2009 at 11:57 PM, aragorn185 <lionel.mo...@valtech.fr> > > > wrote: > > > > > Hello, > > > > > i would like to use PersistenceSpecification in order to test my > > > > > mapping. > > > > > My mapping is: > > > > > public CatalogMap() > > > > > { > > > > > Id(x => x.Id, "id"); > > > > > Map(x => x.Name, "name"); > > > > > HasMany(x => x.Businesses) > > > > > .Inverse() > > > > > .KeyColumnNames.Add("catalog_id") > > > > > .Cascade.All(); > > > > > } > > > > > public BusinessMap() > > > > > { > > > > > Id(x => x.Id, "id"); > > > > > Map(x => x.Client, "client"); > > > > > Map(x => x.Contact, "contact"); > > > > > Map(x => x.Cost, "cost"); > > > > > Map(x => x.DailyCost, "daily_cost"); > > > > > Map(x => x.Department, "department"); > > > > > Map(x => x.EndDate, "end_date"); > > > > > Map(x => x.Otp, "otp"); > > > > > Map(x => x.StartDate, "start_date"); > > > > > HasMany(x => x.WorkPackages) > > > > > .Inverse() > > > > > .KeyColumnNames.Add("business_id") > > > > > .Cascade.All(); > > > > > HasMany(x => x.Requests) > > > > > .Inverse() > > > > > .KeyColumnNames.Add("business_id") > > > > > .Cascade.All(); > > > > > References(x => x.Catalog, "catalog_id").FetchType.Join(); > > > > > } > > > > > My testing part is: > > > > > [Test] > > > > > public void VerifyCatalogSave() > > > > > { > > > > > IList<Business> businesses = new List<Business>(); > > > > > Business business1 = new Business(); > > > > > business1.Client = "Client"; > > > > > business1.Contact = "Contact"; > > > > > business1.Cost = 100; > > > > > business1.DailyCost = 300; > > > > > business1.Department = "Department"; > > > > > business1.EndDate = DateTime.Now; > > > > > business1.Otp = "Otp"; > > > > > business1.StartDate = DateTime.Now; > > > > > businesses.Add(business1); > > > > > new PersistenceSpecification<Catalog> > > > > > (NHibernateHttpModule.CurrentSession) > > > > > .CheckProperty(x => x.Name, "Catalog 1") > > > > > .CheckList(x => x.Businesses, businesses) > > > > > .VerifyTheMappings(); > > > > > } > > > > > but i have the following error: > > > > > System.ApplicationException : Actual count does not equal expected > > > > > count > > > > > at > > > > > > FluentNHibernate.Testing.PersistenceSpecification`1.ListValue`1.assertGenericListMatches > > > > > [ITEM](IEnumerable`1 actualEnumerable, IEnumerable`1 > > > > > expectedEnumerable) > > > > > at > > > > > > FluentNHibernate.Testing.PersistenceSpecification`1.ListValue`1.CheckValue > > > > > (Object target) > > > > > at > > > > > > FluentNHibernate.Testing.PersistenceSpecification`1.<>c__DisplayClass2.<VerifyTheMappings>b__1 > > > > > (PropertyValue p) > > > > > at System.Collections.Generic.List`1.ForEach(Action`1 action) > > > > > at > > > > > FluentNHibernate.Testing.PersistenceSpecification`1.VerifyTheMappings > > > > > () > > > > > > C:\Svn\T-Systems\T-Rack\trunk\server\TRackTest\TrackingServiceTest.cs > > > > > (52,0): at TRackTest.TrackingServiceTest.VerifyCatalogSave() > > > > > Thnaks in advance for any help- Hide quoted text - > > > > - Show quoted text - > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Fluent NHibernate" group. To post to this group, send email to fluent-nhibernate@googlegroups.com To unsubscribe from this group, send email to fluent-nhibernate+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/fluent-nhibernate?hl=en -~----------~----~----~----~------~----~------~--~---