From: <fab...@us...> - 2011-05-03 11:21:00
|
Revision: 5796 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5796&view=rev Author: fabiomaulo Date: 2011-05-03 11:20:54 +0000 (Tue, 03 May 2011) Log Message: ----------- Demonstration NH-2587 was fixed Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2587/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2587/CachingWithLinq.cs Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2587/CachingWithLinq.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2587/CachingWithLinq.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2587/CachingWithLinq.cs 2011-05-03 11:20:54 UTC (rev 5796) @@ -0,0 +1,117 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using NHibernate.Cache; +using NHibernate.Cfg; +using NHibernate.Cfg.MappingSchema; +using NHibernate.Linq; +using NHibernate.Mapping.ByCode; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH2587 +{ + public class Foo + { + public Foo() + { + Bars = new List<Bar>(); + } + public virtual Guid Id { get; set; } + public virtual ICollection<Bar> Bars { get; set; } + } + + public class Bar + { + public virtual Guid Id { get; set; } + public virtual Foo Foo { get; set; } + } + + public class CachingWithLinq : TestCaseMappingByCode + { + protected override HbmMapping GetMappings() + { + var mapper = new ModelMapper(); + mapper.BeforeMapClass += (inspector, type, map) => map.Id(x=> x.Generator(Generators.GuidComb)); + mapper.Class<Foo>(mc => + { + mc.Id(x => x.Id); + mc.Bag(x => x.Bars, map => + { + map.Inverse(true); + map.Cascade(Mapping.ByCode.Cascade.All); + map.Key(km => + { + km.Column("FooId"); + km.OnDelete(OnDeleteAction.Cascade); + }); + }, rel => rel.OneToMany()); + }); + mapper.Class<Bar>(mc => + { + mc.Id(x => x.Id); + mc.ManyToOne(x=> x.Foo, map=> map.Column("FooId")); + }); + var mappings = mapper.CompileMappingForAllExplicitAddedEntities(); + return mappings; + } + + protected override void Configure(Cfg.Configuration configuration) + { + configuration.Cache(x => + { + x.Provider<HashtableCacheProvider>(); + x.UseQueryCache = true; + }); + } + + public class Scenario: IDisposable + { + private readonly ISessionFactory factory; + + public Scenario(ISessionFactory factory) + { + this.factory = factory; + using (ISession session = factory.OpenSession()) + using (ITransaction tx = session.BeginTransaction()) + { + var foo1 = new Foo(); + foo1.Bars.Add(new Bar {Foo = foo1}); + foo1.Bars.Add(new Bar { Foo = foo1 }); + var foo2 = new Foo(); + foo2.Bars.Add(new Bar { Foo = foo2 }); + + session.Persist(foo1); + session.Persist(foo2); + tx.Commit(); + } + } + + public void Dispose() + { + using (ISession session = factory.OpenSession()) + using (ITransaction tx = session.BeginTransaction()) + { + session.CreateQuery("delete from Foo").ExecuteUpdate(); + tx.Commit(); + } + } + } + [Test] + public void TestMethod1() + { + using (new Scenario(Sfi)) + { + // The test provided is only about Not-Throw + using (ISession session = OpenSession()) + using (ITransaction transaction = session.BeginTransaction()) + { + + session.Query<Foo>().Cacheable().ToList(); + session.Query<Bar>().Cacheable().ToList(); + session.Query<Foo>().Cacheable().Fetch(x => x.Bars).ToList(); + session.Query<Bar>().Cacheable().Fetch(x => x.Foo).ToList(); + } + } + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-02 15:41:52 UTC (rev 5795) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-03 11:20:54 UTC (rev 5796) @@ -804,6 +804,7 @@ <Compile Include="NHSpecificTest\NH2583\MassTestingThreeOrTreesSideBySideFixture.cs" /> <Compile Include="NHSpecificTest\NH2583\MassTestingTwoOrTreesSideBySideFixture.cs" /> <Compile Include="NHSpecificTest\NH2583\SelfJoinTestFixture.cs" /> + <Compile Include="NHSpecificTest\NH2587\CachingWithLinq.cs" /> <Compile Include="NHSpecificTest\NH2603\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2603\Model.cs" /> <Compile Include="NHSpecificTest\NH2632\Domain.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |