Datei: NdoDllUnitTests/MappingAttributeTests.cs

Last Commit (c39bd40)
1 using NDO.Mapping;
2 using NDO.Mapping.Attributes;
3 using NUnit.Framework;
4 using System;
5 using System.Collections.Generic;
6 using System.Linq;
7 using System.Text;
8 using System.Threading.Tasks;
9
10 namespace NdoDllUnitTests
11 {
12 ····class MappingAttributeTests
13 ····{
14 ········[Test]
15 ········public void MappingTableAttributeWorks()
16 ········{
17 ············NDOMapping mapping = NDOMapping.Create( null );
18 ············var cls = mapping.AddStandardClass( "TestClass", "TestAssembly", null );
19 ············var relation = cls.AddStandardRelation( "relField", "RefTypeName", false, "", false, false );
20 ············Assert.AreEqual( "IDTestClass", relation.ForeignKeyColumns.First().Name );
21 ············var attr = new MappingTableAttribute();
22 ············relation.RemapMappingTable( false, false, attr );
23 ············Assert.That( relation.MappingTable != null );
24 ············Assert.AreEqual( "relRefTypeNameTestClass", relation.MappingTable.TableName );
25 ············Assert.AreEqual( "IDTestClass", relation.ForeignKeyColumns.First().Name );
26 ············Assert.AreEqual( "IDRefTypeName", relation.MappingTable.ChildForeignKeyColumns.First().Name );
27
28 ············attr.TableName = "newTableName";
29 ············relation.RemapMappingTable( false, false, attr );
30 ············Assert.AreEqual( "newTableName", relation.MappingTable.TableName );
31 ········}
32
33 ········[Test]
34 ········public void RemapForeignKeyColumnsWorks()
35 ········{
36 ············NDOMapping mapping = NDOMapping.Create( null );
37 ············var cls = mapping.AddStandardClass( "TestClass", "TestAssembly", null );
38 ············mapping.AddStandardClass( "RefTypeName", "TestAssembly", null );
39 ············var relation = cls.AddStandardRelation( "relField", "RefTypeName", false, "", false, false );
40 ············Assert.AreEqual( "IDTestClass", relation.ForeignKeyColumns.First().Name );
41 ············var attr = new ForeignKeyColumnAttribute() { Name = "newColumnName" };
42 ············relation.RemapForeignKeyColumns( new[] { attr }, new ChildForeignKeyColumnAttribute[] { } );
43 ············Assert.AreEqual( "newColumnName", relation.ForeignKeyColumns.First().Name );
44 ········}
45
46 ········[Test]
47 ········public void RemapOidColumnsWorks()
48 ········{
49 ············NDOMapping mapping = NDOMapping.Create( null );
50 ············var cls = mapping.AddStandardClass( "TestClass", "TestAssembly", null );
51 ············Assert.AreEqual( "ID", cls.Oid.OidColumns.First().Name );
52 ············var attr = new OidColumnAttribute() { Name = "newColumnName" };
53 ············cls.Oid.RemapOidColumns( new[] { attr } );
54 ············Assert.AreEqual( "newColumnName", cls.Oid.OidColumns.First().Name );
55 ········}
56
57 ········[Test]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58 ········public void OidColumnShouldntBeRemappedWithAssembyWideColumnAttribute()
59 ········{
60 ············NDOMapping mapping = NDOMapping.Create( null );
61 ············var cls = mapping.AddStandardClass( "TestClass", "TestAssembly", null );
62 ············Assert.AreEqual( "ID", cls.Oid.OidColumns.First().Name );
63 ············var attr = new OidColumnAttribute() { Name = "newColumnName", IsAssemblyWideDefinition=true };
64 ············cls.Oid.RemapOidColumns( new[] { attr } );
65 ············Assert.AreEqual( "ID", cls.Oid.OidColumns.First().Name );
66 ········}
67
68 ········[Test]
69 ········public void AssembyWideColumnAttributeOverwritesDefaultValues()
70 ········{
71 ············NDOMapping mapping = NDOMapping.Create(null);
72 ············var cls = mapping.AddStandardClass("TestClass", "TestAssembly", null);
73 ············Assert.AreEqual(1, cls.Oid.OidColumns.First().AutoIncrementStart);
74 ············var attr = new OidColumnAttribute() { Name = "newColumnName", AutoIncrementStart = 2, IsAssemblyWideDefinition = true };
75 ············cls.Oid.RemapOidColumns(new[] { attr });
76 ············Assert.AreEqual(2, cls.Oid.OidColumns.First().AutoIncrementStart);
77 ········}
78 ····}
79 }
80
New Commit (dff5303)
1 using NDO.Mapping;
2 using NDO.Mapping.Attributes;
3 using NUnit.Framework;
4 using System;
5 using System.Collections.Generic;
6 using System.Linq;
7 using System.Text;
8 using System.Threading.Tasks;
9
10 namespace NdoDllUnitTests
11 {
12 ····class MappingAttributeTests
13 ····{
14 ········[Test]
15 ········public void MappingTableAttributeWorks()
16 ········{
17 ············NDOMapping mapping = NDOMapping.Create( null );
18 ············var cls = mapping.AddStandardClass( "TestClass", "TestAssembly", null );
19 ············var relation = cls.AddStandardRelation( "relField", "RefTypeName", false, "", false, false );
20 ············Assert.AreEqual( "IDTestClass", relation.ForeignKeyColumns.First().Name );
21 ············var attr = new MappingTableAttribute();
22 ············relation.RemapMappingTable( false, false, attr );
23 ············Assert.That( relation.MappingTable != null );
24 ············Assert.AreEqual( "relRefTypeNameTestClass", relation.MappingTable.TableName );
25 ············Assert.AreEqual( "IDTestClass", relation.ForeignKeyColumns.First().Name );
26 ············Assert.AreEqual( "IDRefTypeName", relation.MappingTable.ChildForeignKeyColumns.First().Name );
27
28 ············attr.TableName = "newTableName";
29 ············relation.RemapMappingTable( false, false, attr );
30 ············Assert.AreEqual( "newTableName", relation.MappingTable.TableName );
31 ········}
32
33 ········[Test]
34 ········public void RemapForeignKeyColumnsWorks()
35 ········{
36 ············NDOMapping mapping = NDOMapping.Create( null );
37 ············var cls = mapping.AddStandardClass( "TestClass", "TestAssembly", null );
38 ············mapping.AddStandardClass( "RefTypeName", "TestAssembly", null );
39 ············var relation = cls.AddStandardRelation( "relField", "RefTypeName", false, "", false, false );
40 ············Assert.AreEqual( "IDTestClass", relation.ForeignKeyColumns.First().Name );
41 ············var attr = new ForeignKeyColumnAttribute() { Name = "newColumnName" };
42 ············relation.RemapForeignKeyColumns( new[] { attr }, new ChildForeignKeyColumnAttribute[] { } );
43 ············Assert.AreEqual( "newColumnName", relation.ForeignKeyColumns.First().Name );
44 ········}
45
46 ········[Test]
47 ········public void RemapOidColumnsWorks()
48 ········{
49 ············NDOMapping mapping = NDOMapping.Create( null );
50 ············var cls = mapping.AddStandardClass( "TestClass", "TestAssembly", null );
51 ············Assert.AreEqual( "ID", cls.Oid.OidColumns.First().Name );
52 ············var attr = new OidColumnAttribute() { Name = "newColumnName" };
53 ············cls.Oid.RemapOidColumns( new[] { attr } );
54 ············Assert.AreEqual( "newColumnName", cls.Oid.OidColumns.First().Name );
55 ········}
56
57 ········[Test]
58 ········public void RemapColumnsWorks()
59 ········{
60 ············NDOMapping mapping = NDOMapping.Create( null );
61 ············var cls = mapping.AddStandardClass( "TestClass", "TestAssembly", null );
62 ············var field = cls.AddStandardField( "test", false );
63 ············Assert.AreEqual( "Test", field.Column.Name );
64 ············var attr = new ColumnAttribute() { Size = -1, Name = "XTest" };
65 ············attr.RemapColumn( field.Column );
66 ············Assert.AreEqual( "XTest", field.Column.Name );
67 ············Assert.AreEqual( -1, field.Column.Size );
68 ········}
69
70 ········[Test]
71 ········public void RemapFieldsWorks()
72 ········{
73 ············NDOMapping mapping = NDOMapping.Create( null );
74 ············var cls = mapping.AddStandardClass( "TestClass", "TestAssembly", null );
75 ············var field = cls.AddStandardField( "test", false );
76 ············Assert.AreEqual( false, field.Encrypted );
77 ············var attr = new FieldAttribute() { Encrypted = true };
78 ············attr.RemapField( field );
79 ············Assert.AreEqual( true, field.Encrypted );
80 ············attr = new FieldAttribute() { Encrypted = false };
81 ············attr.RemapField( field );
82 ············// Encrypted can only be rewritten, if the value is false
83 ············Assert.AreEqual( true, field.Encrypted );
84 ········}
85
86 ········[Test]
87 ········public void SetFieldValuesWorks()
88 ········{
89 ············NDOMapping mapping = NDOMapping.Create( null );
90 ············var cls = mapping.AddStandardClass( "TestClass", "TestAssembly", null );
91 ············var field = cls.AddStandardField( "test", false );
92 ············Assert.AreEqual( false, field.Encrypted );
93 ············var attr = new FieldAttribute() { Encrypted = true };
94 ············attr.SetFieldValues( field );
95 ············Assert.AreEqual( true, field.Encrypted );
96 ············attr = new FieldAttribute() { Encrypted = false };
97 ············attr.SetFieldValues( field );
98 ············// Encrypted can be set to false
99 ············Assert.AreEqual( false, field.Encrypted );
100 ········}
101
102 ········[Test]
103 ········public void OidColumnShouldntBeRemappedWithAssembyWideColumnAttribute()
104 ········{
105 ············NDOMapping mapping = NDOMapping.Create( null );
106 ············var cls = mapping.AddStandardClass( "TestClass", "TestAssembly", null );
107 ············Assert.AreEqual( "ID", cls.Oid.OidColumns.First().Name );
108 ············var attr = new OidColumnAttribute() { Name = "newColumnName", IsAssemblyWideDefinition=true };
109 ············cls.Oid.RemapOidColumns( new[] { attr } );
110 ············Assert.AreEqual( "ID", cls.Oid.OidColumns.First().Name );
111 ········}
112
113 ········[Test]
114 ········public void AssembyWideColumnAttributeOverwritesDefaultValues()
115 ········{
116 ············NDOMapping mapping = NDOMapping.Create(null);
117 ············var cls = mapping.AddStandardClass("TestClass", "TestAssembly", null);
118 ············Assert.AreEqual(1, cls.Oid.OidColumns.First().AutoIncrementStart);
119 ············var attr = new OidColumnAttribute() { Name = "newColumnName", AutoIncrementStart = 2, IsAssemblyWideDefinition = true };
120 ············cls.Oid.RemapOidColumns(new[] { attr });
121 ············Assert.AreEqual(2, cls.Oid.OidColumns.First().AutoIncrementStart);
122 ········}
123 ····}
124 }
125