Skip to content

Commit

Permalink
NH-952 - AddAssembly doesn't order subclasses correctly in some cases.
Browse files Browse the repository at this point in the history
SVN: branches/1.2.x@2728
  • Loading branch information
Sergey Koshcheyev committed Apr 5, 2007
1 parent 7d78d16 commit d85ec9c
Show file tree
Hide file tree
Showing 14 changed files with 287 additions and 125 deletions.
1 change: 1 addition & 0 deletions src/NHibernate.Test/NHSpecificTest/NH845/Fixture.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ public void HbmOrdererForgetsMappingFilesWithoutClassesIfExtendsIsUsed()
Assembly domain = typeof(Master).Assembly;
AssemblyHbmOrderer orderer = new AssemblyHbmOrderer(domain);
orderer.AddResource("NHibernate.DomainModel.MultiExtends.hbm.xml");
orderer.AddResource("NHibernate.DomainModel.Multi.hbm.xml");
orderer.AddResource("NHibernate.DomainModel.Query.hbm.xml");

IList files = orderer.GetHbmFiles();
Expand Down
6 changes: 6 additions & 0 deletions src/NHibernate.Test/NHSpecificTest/NH952/Asset.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
namespace NHibernate.Test.NHSpecificTest.NH952
{
public class Asset : PhysicalItem
{
}
}
16 changes: 16 additions & 0 deletions src/NHibernate.Test/NHSpecificTest/NH952/Asset.hbm.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8" ?>

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
namespace="NHibernate.Test.NHSpecificTest.NH952"
assembly="NHibernate.Test"
default-cascade="save-update">

<joined-subclass name="Asset"
extends="PhysicalItem"
table="ASSET">

<key column="UNIQUE_ID" />

</joined-subclass>

</hibernate-mapping>
13 changes: 13 additions & 0 deletions src/NHibernate.Test/NHSpecificTest/NH952/Item.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
namespace NHibernate.Test.NHSpecificTest.NH952
{
public class Item
{
private int uniqueId;

public virtual int UniqueId
{
get { return uniqueId; }
set { uniqueId = value; }
}
}
}
16 changes: 16 additions & 0 deletions src/NHibernate.Test/NHSpecificTest/NH952/Item.hbm.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8" ?>

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
namespace="NHibernate.Test.NHSpecificTest.NH952"
assembly="NHibernate.Test"
default-cascade="save-update">

<class name="Item" table="ITEM">

<id name="UniqueId" column="UNIQUE_ID">
<generator class="increment"/>
</id>

</class>

</hibernate-mapping>
46 changes: 46 additions & 0 deletions src/NHibernate.Test/NHSpecificTest/NH952/NH952Fixture.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
using System;
using System.Collections;
using System.Reflection;

using NHibernate.Cfg;

using NUnit.Framework;

namespace NHibernate.Test.NHSpecificTest.NH952
{
[TestFixture]
public class NH952Fixture
{
private static readonly Assembly MyAssembly = typeof(NH952Fixture).Assembly;
private static readonly string MyNamespace = typeof(NH952Fixture).Namespace;

private static readonly string[] Resources = new string[]
{
// Order is important!
MyNamespace + ".Asset.hbm.xml",
MyNamespace + ".SellableItem.hbm.xml",
MyNamespace + ".PhysicalItem.hbm.xml",
MyNamespace + ".Item.hbm.xml"
};

[Test]
public void OrderingAssemblyOrderer()
{
AssemblyHbmOrderer orderer = AssemblyHbmOrderer.CreateWithResources(MyAssembly, Resources);
IList orderedResources = orderer.GetHbmFiles();
Assert.AreEqual(Resources.Length, orderedResources.Count);
Assert.AreEqual(Resources[3], orderedResources[0]);
Assert.AreEqual(Resources[1], orderedResources[1]);
Assert.AreEqual(Resources[2], orderedResources[2]);
Assert.AreEqual(Resources[0], orderedResources[3]);
}

[Test]
public void OrderingAddResources()
{
Configuration cfg = new Configuration();
cfg.AddResources(MyAssembly, Resources, false);
cfg.BuildSessionFactory().Close();
}
}
}
6 changes: 6 additions & 0 deletions src/NHibernate.Test/NHSpecificTest/NH952/PhysicalItem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
namespace NHibernate.Test.NHSpecificTest.NH952
{
public class PhysicalItem : SellableItem
{
}
}
16 changes: 16 additions & 0 deletions src/NHibernate.Test/NHSpecificTest/NH952/PhysicalItem.hbm.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8" ?>

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
namespace="NHibernate.Test.NHSpecificTest.NH952"
assembly="NHibernate.Test"
default-cascade="save-update">

<joined-subclass name="PhysicalItem"
extends="SellableItem"
table="PHYSICALITEM">

<key column="UNIQUE_ID" />

</joined-subclass>

</hibernate-mapping>
6 changes: 6 additions & 0 deletions src/NHibernate.Test/NHSpecificTest/NH952/SellableItem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
namespace NHibernate.Test.NHSpecificTest.NH952
{
public class SellableItem : Item
{
}
}
16 changes: 16 additions & 0 deletions src/NHibernate.Test/NHSpecificTest/NH952/SellableItem.hbm.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8" ?>

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
namespace="NHibernate.Test.NHSpecificTest.NH952"
assembly="NHibernate.Test"
default-cascade="save-update">

<joined-subclass name="SellableItem"
extends="Item"
table="SELLABLEITEM">

<key column="UNIQUE_ID" />

</joined-subclass>

</hibernate-mapping>
11 changes: 11 additions & 0 deletions src/NHibernate.Test/NHibernate.Test-2.0.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -403,6 +403,11 @@
<Compile Include="NHSpecificTest\NH940\B.cs" />
<Compile Include="NHSpecificTest\NH940\MyException.cs" />
<Compile Include="NHSpecificTest\NH940\NH940Fixture.cs" />
<Compile Include="NHSpecificTest\NH952\Asset.cs" />
<Compile Include="NHSpecificTest\NH952\Item.cs" />
<Compile Include="NHSpecificTest\NH952\NH952Fixture.cs" />
<Compile Include="NHSpecificTest\NH952\PhysicalItem.cs" />
<Compile Include="NHSpecificTest\NH952\SellableItem.cs" />
<Compile Include="NHSpecificTest\NH958\Female.cs" />
<Compile Include="NHSpecificTest\NH958\Hobby.cs" />
<Compile Include="NHSpecificTest\NH958\Male.cs" />
Expand Down Expand Up @@ -872,6 +877,12 @@
<ItemGroup>
<EmbeddedResource Include="NHSpecificTest\NH940\Mappings.hbm.xml" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="NHSpecificTest\NH952\Asset.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH952\Item.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH952\PhysicalItem.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH952\SellableItem.hbm.xml" />
</ItemGroup>
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
Expand Down
Loading

0 comments on commit d85ec9c

Please sign in to comment.