|
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.
|