From: <fab...@us...> - 2011-04-23 20:42:33
|
Revision: 5754 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5754&view=rev Author: fabiomaulo Date: 2011-04-23 20:42:26 +0000 (Sat, 23 Apr 2011) Log Message: ----------- Test to check NH-1642 was fixed too Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/AbstractRule.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/Mappings.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/TrafficRule.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/TrafficRuleSet.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/TrafficRuleSetDAOTest.cs Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/AbstractRule.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/AbstractRule.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/AbstractRule.cs 2011-04-23 20:42:26 UTC (rev 5754) @@ -0,0 +1,9 @@ +namespace NHibernate.Test.NHSpecificTest.NH1642 +{ + public abstract class AbstractRule + { + public virtual int id { get; set; } + public virtual string name { get; set; } + public virtual string description { get; set; } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/Mappings.hbm.xml 2011-04-23 20:42:26 UTC (rev 5754) @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.NHSpecificTest.NH1642" + assembly="NHibernate.Test"> + <class name="AbstractRule" table="GENERIC_RULE"> + <id name="id" column="RULE_ID"> + <generator class="identity"/> + </id> + <discriminator column="RULE_TYPE" type="string"/> + + <property name="name" /> + <property name="description"/> + + <subclass name="TrafficRule" discriminator-value="TRAFFIC"> + <join table="TRAFFIC_RULE"> + <key column="RULE_ID"/> + + <property name="effectiveStartDate" column="start_date" /> + <property name="effectiveEndDate" column="end_date" /> + + <many-to-one name="ruleSet" class="TrafficRuleSet" column="RULESET_ID"/> + </join> + + </subclass> + </class> + <class name="TrafficRuleSet" table="TRAFFIC_RULSET"> + <id name="id" column="RULESET_ID"> + <generator class="identity"/> + </id> + + <property name="name"/> + <property name="description" /> + + <bag name="rules" inverse="true" cascade="all"> + <key column="RULESET_ID" on-delete="cascade" /> + <one-to-many class="TrafficRule"/> + </bag> + </class> + +</hibernate-mapping> Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/TrafficRule.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/TrafficRule.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/TrafficRule.cs 2011-04-23 20:42:26 UTC (rev 5754) @@ -0,0 +1,17 @@ +using System; + +namespace NHibernate.Test.NHSpecificTest.NH1642 +{ + public class TrafficRule : AbstractRule + { + public TrafficRule() + { + effectiveStartDate = DateTime.Today; + effectiveEndDate = DateTime.Today; + } + public virtual DateTime effectiveStartDate { get; set; } + public virtual DateTime effectiveEndDate { get; set; } + + public virtual TrafficRuleSet ruleSet { get; set; } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/TrafficRuleSet.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/TrafficRuleSet.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/TrafficRuleSet.cs 2011-04-23 20:42:26 UTC (rev 5754) @@ -0,0 +1,12 @@ +using System.Collections.Generic; + +namespace NHibernate.Test.NHSpecificTest.NH1642 +{ + public class TrafficRuleSet + { + public virtual int id { get; set; } + public virtual string name { get; set; } + public virtual string description { get; set; } + public virtual IList<TrafficRule> rules { get; set; } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/TrafficRuleSetDAOTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/TrafficRuleSetDAOTest.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/TrafficRuleSetDAOTest.cs 2011-04-23 20:42:26 UTC (rev 5754) @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH1642 +{ + [TestFixture] + public class TrafficRuleSetDAOTest: BugTestCase + { + private class Scenario: IDisposable + { + private readonly ISessionFactory sessionFactory; + private int ruleSetId; + private string ruleSetName; + + public Scenario(ISessionFactory sessionFactory) + { + this.sessionFactory = sessionFactory; + ruleSetId = 2; + ruleSetName = "RuleSet" + ruleSetId.ToString(); + + using (var session = sessionFactory.OpenSession()) + { + using (var tr = session.BeginTransaction()) + { + TrafficRuleSet ruleSet = new TrafficRuleSet { name = ruleSetName, description = ruleSetName }; + TrafficRule rule = new TrafficRule { ruleSet = ruleSet, name = ruleSetName + "-a", description = "Some description" }; + + ruleSet.rules = new List<TrafficRule> { rule }; + + ruleSetId = (int)session.Save(ruleSet); + tr.Commit(); + } + } + } + + public int RuleSetId + { + get { return ruleSetId; } + } + + public string RuleSetName + { + get { return ruleSetName; } + } + + public void Dispose() + { + using (var session = sessionFactory.OpenSession()) + { + using (var tr = session.BeginTransaction()) + { + session.CreateQuery("delete from TrafficRule").ExecuteUpdate(); + session.CreateQuery("delete from TrafficRuleSet").ExecuteUpdate(); + tr.Commit(); + } + } + } + } + [Test] + public void addRuleSet() + { + using (var scenario = new Scenario(Sfi)) + { + using (var session = OpenSession()) + { + using (var tr = session.BeginTransaction()) + { + TrafficRuleSet fromDb = session.Get<TrafficRuleSet>(scenario.RuleSetId); + Assert.IsNotNull(fromDb); + Assert.AreEqual(fromDb.name, scenario.RuleSetName); + Assert.AreEqual(fromDb.rules[0].name, scenario.RuleSetName + "-a"); + } + } + } + } + + } +} Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-23 20:10:49 UTC (rev 5753) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-23 20:42:26 UTC (rev 5754) @@ -626,6 +626,10 @@ <Compile Include="NHSpecificTest\NH1323\Domain.cs" /> <Compile Include="NHSpecificTest\NH1421\AnEntity.cs" /> <Compile Include="NHSpecificTest\NH1421\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH1642\AbstractRule.cs" /> + <Compile Include="NHSpecificTest\NH1642\TrafficRule.cs" /> + <Compile Include="NHSpecificTest\NH1642\TrafficRuleSet.cs" /> + <Compile Include="NHSpecificTest\NH1642\TrafficRuleSetDAOTest.cs" /> <Compile Include="NHSpecificTest\NH1836\Entity.cs" /> <Compile Include="NHSpecificTest\NH1836\EntityDTO.cs" /> <Compile Include="NHSpecificTest\NH1836\Fixture.cs" /> @@ -2627,6 +2631,7 @@ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> + <EmbeddedResource Include="NHSpecificTest\NH1642\Mappings.hbm.xml" /> <EmbeddedResource Include="Stateless\Contact.hbm.xml" /> <EmbeddedResource Include="Stateless\Fetching\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2660And2661\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |