-
Notifications
You must be signed in to change notification settings - Fork 685
/
Copy pathDuplicateMappingTests.cs
80 lines (67 loc) · 2.27 KB
/
DuplicateMappingTests.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
using FluentNHibernate.Automapping;
using FluentNHibernate.Cfg;
using FluentNHibernate.Cfg.Db;
using FluentNHibernate.Mapping;
using NHibernate.Cfg;
using NHibernate.Mapping;
using NUnit.Framework;
namespace FluentNHibernate.Testing.Cfg
{
[TestFixture]
public class DuplicateMappingTests
{
private Configuration cfg;
private MappingConfiguration mapping;
[SetUp]
public void CreateMappingConfiguration()
{
cfg = new Configuration();
SQLiteConfiguration.Standard
.InMemory()
.ConfigureProperties(cfg);
mapping = new MappingConfiguration();
}
[Test]
public void FluentMappingOfInheritedAutomappedTypeShouldBeIgnoredForSubclasses()
{
mapping.FluentMappings.Add(typeof(TypeInfoMap));
mapping.FluentMappings.Add(typeof(MessageTypeMap));
mapping.AutoMappings.Add(AutoMap.Source(new StubTypeSource(typeof(ActiveRecord))));
mapping.Apply(cfg);
var arMapping = cfg.GetClassMapping(typeof(ActiveRecord));
arMapping.SubclassIterator.GetEnumerator().MoveNext().ShouldBeFalse();
var messageTypeMapping = cfg.GetClassMapping(typeof(MessageType)) as SingleTableSubclass;
messageTypeMapping.IsJoinedSubclass.ShouldBeFalse();
}
#region TestModel
public class ActiveRecord
{
public virtual int Id { get; set; }
}
public class TypeInfo : ActiveRecord
{
public virtual int ClassId { get; set; }
}
public class MessageType : TypeInfo
{
}
public class TypeInfoMap : ClassMap<TypeInfo>
{
public TypeInfoMap()
{
Table("TypeInfoNH");
Id(t => t.Id).GeneratedBy.HiLo("10");
Map(t => t.ClassId).ReadOnly();
DiscriminateSubClassesOnColumn("ClassId", 102);
}
}
public class MessageTypeMap : SubclassMap<MessageType>
{
public MessageTypeMap()
{
DiscriminatorValue(305);
}
}
#endregion
}
}