Skip to content

Commit 5b56edb

Browse files
committed
Merge pull request #295 from rjperes/NH-3404
NH-3404
2 parents 71994bd + 7e05d83 commit 5b56edb

File tree

3 files changed

+375
-0
lines changed

3 files changed

+375
-0
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
using System.Linq;
2+
using NHibernate.Id;
3+
using NHibernate.Mapping.ByCode;
4+
using NHibernate.Mapping.ByCode.Impl;
5+
using NUnit.Framework;
6+
using SharpTestsEx;
7+
8+
namespace NHibernate.Test.MappingByCode
9+
{
10+
public class A { public int Id { get; set; } }
11+
12+
public class B { public int Id { get; set; } }
13+
14+
public class C { public int Id { get; set; } }
15+
16+
public class D { public int Id { get; set; } }
17+
18+
public class E { public int Id { get; set; } }
19+
20+
public class F { public int Id { get; set; } }
21+
22+
public class G { public int Id { get; set; } }
23+
24+
public class H { public int Id { get; set; } }
25+
26+
public class I { public int Id { get; set; } }
27+
28+
public class GeneratorTests
29+
{
30+
[Test]
31+
public void TestGenerators()
32+
{
33+
var mapper = new ModelMapper();
34+
35+
mapper.Class<A>(e => { e.Id(c => c.Id, c => c.Generator(Generators.Counter)); });
36+
mapper.Class<B>(e => { e.Id(c => c.Id, c => c.Generator(Generators.UUIDHex)); });
37+
mapper.Class<C>(e => { e.Id(c => c.Id, c => c.Generator(Generators.UUIDString)); });
38+
mapper.Class<D>(e => { e.Id(c => c.Id, c => c.Generator(Generators.Increment)); });
39+
mapper.Class<E>(e => { e.Id(c => c.Id, c => c.Generator(Generators.Select)); });
40+
mapper.Class<F>(e => { e.Id(c => c.Id, c => c.Generator(Generators.SequenceHiLo)); });
41+
mapper.Class<G>(e => { e.Id(c => c.Id, c => c.Generator(Generators.SequenceIdentity)); });
42+
mapper.Class<H>(e => { e.Id(c => c.Id, c => c.Generator(Generators.Table)); });
43+
mapper.Class<I>(e => { e.Id(c => c.Id, c => c.Generator(Generators.TriggerIdentity)); });
44+
45+
var hbmMapping = mapper.CompileMappingForAllExplicitlyAddedEntities();
46+
Assert.AreEqual(hbmMapping.RootClasses.Single(x => x.Name == typeof(A).Name).Id.generator.@class, Generators.Counter.Class);
47+
Assert.AreEqual(hbmMapping.RootClasses.Single(x => x.Name == typeof(B).Name).Id.generator.@class, Generators.UUIDHex.Class);
48+
Assert.AreEqual(hbmMapping.RootClasses.Single(x => x.Name == typeof(C).Name).Id.generator.@class, Generators.UUIDString.Class);
49+
Assert.AreEqual(hbmMapping.RootClasses.Single(x => x.Name == typeof(D).Name).Id.generator.@class, Generators.Increment.Class);
50+
Assert.AreEqual(hbmMapping.RootClasses.Single(x => x.Name == typeof(E).Name).Id.generator.@class, Generators.Select.Class);
51+
Assert.AreEqual(hbmMapping.RootClasses.Single(x => x.Name == typeof(F).Name).Id.generator.@class, Generators.SequenceHiLo.Class);
52+
Assert.AreEqual(hbmMapping.RootClasses.Single(x => x.Name == typeof(G).Name).Id.generator.@class, Generators.SequenceIdentity.Class);
53+
Assert.AreEqual(hbmMapping.RootClasses.Single(x => x.Name == typeof(H).Name).Id.generator.@class, Generators.Table.Class);
54+
Assert.AreEqual(hbmMapping.RootClasses.Single(x => x.Name == typeof(I).Name).Id.generator.@class, Generators.TriggerIdentity.Class);
55+
}
56+
}
57+
}

src/NHibernate.Test/NHibernate.Test.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -590,6 +590,7 @@
590590
<Compile Include="MappingByCode\ExplicitMappingTests\SubclassPropertiesSplitsTests.cs" />
591591
<Compile Include="MappingByCode\ExplicitMappingTests\VersionTests.cs" />
592592
<Compile Include="MappingByCode\For.cs" />
593+
<Compile Include="MappingByCode\GeneratorTests.cs" />
593594
<Compile Include="MappingByCode\ImportTests.cs" />
594595
<Compile Include="MappingByCode\IntegrationTests\NH3041\Domain.cs" />
595596
<Compile Include="MappingByCode\IntegrationTests\NH3657\OneToOneToPropertyReferenceWithExplicitClassSet.cs" />

0 commit comments

Comments
 (0)