Skip to content

Commit 18ba35f

Browse files
committed
NH-3759
1 parent bea9bc9 commit 18ba35f

File tree

2 files changed

+38
-5
lines changed

2 files changed

+38
-5
lines changed

src/NHibernate.Test/MappingByCode/GeneratorTests.cs

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,32 @@ public class I { public int Id { get; set; } }
2626

2727
public class GeneratorTests
2828
{
29+
[Test]
30+
public void TestUUIDHexWithParameters()
31+
{
32+
//NH-3759
33+
var mapper = new ModelMapper();
34+
35+
mapper.Class<A>(e => { e.Id(c => c.Id, c => c.Generator(Generators.UUIDHex("X", "."))); });
36+
mapper.Class<B>(e => { e.Id(c => c.Id, c => c.Generator(Generators.UUIDHex("X"))); });
37+
38+
var hbmMapping = mapper.CompileMappingForAllExplicitlyAddedEntities();
39+
40+
var aGenerator = hbmMapping.RootClasses.Single(x => x.Name == typeof(A).Name).Id.generator;
41+
Assert.AreEqual("X", aGenerator.param[0].Text[0]);
42+
Assert.AreEqual(".", aGenerator.param[1].Text[0]);
43+
44+
var bGenerator = hbmMapping.RootClasses.Single(x => x.Name == typeof(B).Name).Id.generator;
45+
Assert.AreEqual("X", bGenerator.param[0].Text[0]);
46+
}
47+
2948
[Test]
3049
public void TestGenerators()
3150
{
3251
var mapper = new ModelMapper();
3352

3453
mapper.Class<A>(e => { e.Id(c => c.Id, c => c.Generator(Generators.Counter)); });
35-
mapper.Class<B>(e => { e.Id(c => c.Id, c => c.Generator(Generators.UUIDHex)); });
54+
mapper.Class<B>(e => { e.Id(c => c.Id, c => c.Generator(Generators.UUIDHex())); });
3655
mapper.Class<C>(e => { e.Id(c => c.Id, c => c.Generator(Generators.UUIDString)); });
3756
mapper.Class<D>(e => { e.Id(c => c.Id, c => c.Generator(Generators.Increment)); });
3857
mapper.Class<E>(e => { e.Id(c => c.Id, c => c.Generator(Generators.Select)); });
@@ -43,7 +62,7 @@ public void TestGenerators()
4362

4463
var hbmMapping = mapper.CompileMappingForAllExplicitlyAddedEntities();
4564
Assert.AreEqual(hbmMapping.RootClasses.Single(x => x.Name == typeof(A).Name).Id.generator.@class, Generators.Counter.Class);
46-
Assert.AreEqual(hbmMapping.RootClasses.Single(x => x.Name == typeof(B).Name).Id.generator.@class, Generators.UUIDHex.Class);
65+
Assert.AreEqual(hbmMapping.RootClasses.Single(x => x.Name == typeof(B).Name).Id.generator.@class, Generators.UUIDHex().Class);
4766
Assert.AreEqual(hbmMapping.RootClasses.Single(x => x.Name == typeof(C).Name).Id.generator.@class, Generators.UUIDString.Class);
4867
Assert.AreEqual(hbmMapping.RootClasses.Single(x => x.Name == typeof(D).Name).Id.generator.@class, Generators.Increment.Class);
4968
Assert.AreEqual(hbmMapping.RootClasses.Single(x => x.Name == typeof(E).Name).Id.generator.@class, Generators.Select.Class);

src/NHibernate/Mapping/ByCode/Generators.cs

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ static Generators()
2525
SequenceIdentity = new SequenceIdentityGeneratorDef();
2626
Table = new TableGeneratorDef();
2727
TriggerIdentity = new TriggerIdentityGeneratorDef();
28-
UUIDHex = new UUIDHexGeneratorDef();
2928
UUIDString = new UUIDStringGeneratorDef();
3029
}
3130

@@ -46,7 +45,22 @@ static Generators()
4645
public static IGeneratorDef Table { get; private set; }
4746
public static IGeneratorDef TriggerIdentity { get; private set; }
4847
public static IGeneratorDef SequenceIdentity { get; private set; }
49-
public static IGeneratorDef UUIDHex { get; private set; }
48+
49+
public static IGeneratorDef UUIDHex()
50+
{
51+
return new UUIDHexGeneratorDef();
52+
}
53+
54+
public static IGeneratorDef UUIDHex(string format)
55+
{
56+
return new UUIDHexGeneratorDef(format);
57+
}
58+
59+
public static IGeneratorDef UUIDHex(string format, string separator)
60+
{
61+
return new UUIDHexGeneratorDef(format, separator);
62+
}
63+
5064
public static IGeneratorDef UUIDString { get; private set; }
5165

5266
public static IGeneratorDef Foreign<TEntity>(Expression<Func<TEntity, object>> property)
@@ -110,7 +124,7 @@ public UUIDHexGeneratorDef(string format, string separator)
110124
throw new ArgumentNullException("format");
111125
if (separator == null)
112126
throw new ArgumentNullException("separator");
113-
param = new { format = format, seperator = separator };
127+
param = new { format = format, separator = separator };
114128
}
115129

116130
public string Class

0 commit comments

Comments
 (0)