/
ReferencesTests.cs
82 lines (75 loc) · 3.36 KB
/
ReferencesTests.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
81
82
using NHibernateHbmToFluent.Converter;
using NHibernateHbmToFluent.Converter.Extensions;
using NHibernateHbmToFluent.Converter.Methods;
using NHibernateHbmToFluent.Converter.Types;
using NUnit.Framework;
namespace ConverterTests.Types
{
public class ReferencesTests
{
[TestFixture]
public class When_asked_for_a_FluentNHibernate_name
{
[Test]
public void Should_return_the_correct_value_for__References()
{
References.FluentNHibernateNames.References.ShouldBeEqualTo("References");
}
}
[TestFixture]
public class When_asked_to_convert_a_many_to_one_column
{
[Test]
public void Should_emit_Column_name_if_present_in_original_xml()
{
const string input = @"
<many-to-one name=""State"" class=""Mvba.Enterprise.Business.State, Mvba.Enterprise.Business"">
<column name=""`STATE`"" length=""2"" sql-type=""VARCHAR2""/>
</many-to-one>";
MappedClassInfo classInfo = HbmFileUtility.LoadFromString(@"
<hibernate-mapping xmlns=""urn:nhibernate-mapping-2.2"">
<class name=""Mvba.Enterprise.Business.User, Mvba.Enterprise.Business"">" + input + @"</class>
</hibernate-mapping>");
string result = MappingConverter.Convert("CountyMap", classInfo, "Test");
var expected = (@"
" + References.FluentNHibernateNames.References + @"(x => x.State)
." + Column.FluentNHibernateNames.Column + @"(""`STATE`"");").SplitOnFormattingWhitespace();
ClassFileUtilities.GetConstructorContents(result, "CountyMap").ShouldBeEqualTo(expected, result);
}
[Test]
public void Should_emit_Not_Nullable_if_present_in_original_xml()
{
const string input = @"
<many-to-one name=""State"" class=""Mvba.Enterprise.Business.State, Mvba.Enterprise.Business"">
<column length=""2"" sql-type=""VARCHAR2"" not-null=""true""/>
</many-to-one>";
MappedClassInfo classInfo = HbmFileUtility.LoadFromString(@"
<hibernate-mapping xmlns=""urn:nhibernate-mapping-2.2"">
<class name=""Mvba.Enterprise.Business.User, Mvba.Enterprise.Business"">" + input + @"</class>
</hibernate-mapping>");
string result = MappingConverter.Convert("CountyMap", classInfo, "Test");
var expected = (@"
" + References.FluentNHibernateNames.References + @"(x => x.State)
." + Nullability.FluentNHibernateNames.Not + @"." + Nullability.FluentNHibernateNames.Nullable + @"();").SplitOnFormattingWhitespace();
ClassFileUtilities.GetConstructorContents(result, "CountyMap").ShouldBeEqualTo(expected);
}
[Test]
public void Should_emit_Index_if_present_in_original_xml()
{
const string input = @"
<many-to-one name=""State"" class=""Mvba.Enterprise.Business.State, Mvba.Enterprise.Business"">
<column length=""2"" sql-type=""VARCHAR2"" index=""IX_STATE""/>
</many-to-one>";
MappedClassInfo classInfo = HbmFileUtility.LoadFromString(@"
<hibernate-mapping xmlns=""urn:nhibernate-mapping-2.2"">
<class name=""Mvba.Enterprise.Business.User, Mvba.Enterprise.Business"">" + input + @"</class>
</hibernate-mapping>");
string result = MappingConverter.Convert("CountyMap", classInfo, "Test");
var expected = (@"
" + References.FluentNHibernateNames.References + @"(x => x.State)
." + Index.FluentNHibernateNames.Index + @"(""IX_STATE"");").SplitOnFormattingWhitespace();
ClassFileUtilities.GetConstructorContents(result, "CountyMap").ShouldBeEqualTo(expected);
}
}
}
}