Datei: NDODLL.Tests/NdoDllUnitTests/MappingAttributeTests.cs

Last Commit (d9ceda3)
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.That( "IDTestClass", Is.EqualTo( relation.ForeignKeyColumns.First().Name ) );
21 ············var attr = new MappingTableAttribute();
22 ············relation.RemapMappingTable( false, false, attr );
23 ············Assert.That( relation.MappingTable != null );
24 ············Assert.That( "relRefTypeNameTestClass", Is.EqualTo(relation.MappingTable.TableName) );
25 ············Assert.That( "IDTestClass", Is.EqualTo( relation.ForeignKeyColumns.First().Name ) );
26 ············Assert.That( "IDRefTypeName", Is.EqualTo( relation.MappingTable.ChildForeignKeyColumns.First().Name ) );
27
28 ············attr.TableName = "newTableName";
29 ············relation.RemapMappingTable( false, false, attr );
30 ············Assert.That( "newTableName", Is.EqualTo(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.That( "IDTestClass", Is.EqualTo( relation.ForeignKeyColumns.First().Name ) );
41 ············var attr = new ForeignKeyColumnAttribute() { Name = "newColumnName" };
42 ············relation.RemapForeignKeyColumns( new[] { attr }, new ChildForeignKeyColumnAttribute[] { } );
43 ············Assert.That( "newColumnName", Is.EqualTo( 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.That( "ID", Is.EqualTo( cls.Oid.OidColumns.First().Name ) );
52 ············var attr = new OidColumnAttribute() { Name = "newColumnName" };
53 ············cls.Oid.RemapOidColumns( new[] { attr } );
54 ············Assert.That( "newColumnName", Is.EqualTo( 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.That( "Test", Is.EqualTo(field.Column.Name) );
64 ············var attr = new ColumnAttribute() { Size = -1, Name = "XTest" };
65 ············attr.RemapColumn( field.Column );
66 ············Assert.That( "XTest", Is.EqualTo(field.Column.Name) );
67 ············Assert.That( field.Column.Size == -1 );
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.That( !field.Encrypted );
77 ············var attr = new FieldAttribute() { Encrypted = true };
78 ············attr.RemapField( field );
79 ············Assert.That( 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.That( 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.That( !field.Encrypted );
93 ············var attr = new FieldAttribute() { Encrypted = true };
94 ············attr.SetFieldValues( field );
95 ············Assert.That( field.Encrypted );
96 ············attr = new FieldAttribute() { Encrypted = false };
97 ············attr.SetFieldValues( field );
98 ············// Encrypted can be set to false
99 ············Assert.That( !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.That( "ID", Is.EqualTo( cls.Oid.OidColumns.First().Name ) );
108 ············var attr = new OidColumnAttribute() { Name = "newColumnName", IsAssemblyWideDefinition=true };
109 ············cls.Oid.RemapOidColumns( new[] { attr } );
110 ············Assert.That( "ID", Is.EqualTo( 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.That(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.That(2 == cls.Oid.OidColumns.First().AutoIncrementStart);
122 ········}
123 ····}
124 }
125
New Commit (1c149c1)
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 = new NDOMapping( null, null) ; //NDOMapping. Create( null ) ;
18 ············var cls = mapping.AddStandardClass( "TestClass", "TestAssembly", null );
19 ············var relation = cls.AddStandardRelation( "relField", "RefTypeName", false, "", false, false );
20 ············Assert.That( "IDTestClass", Is.EqualTo( relation.ForeignKeyColumns.First().Name ) );
21 ············var attr = new MappingTableAttribute();
22 ············relation.RemapMappingTable( false, false, attr );
23 ············Assert.That( relation.MappingTable != null );
24 ············Assert.That( "relRefTypeNameTestClass", Is.EqualTo(relation.MappingTable.TableName) );
25 ············Assert.That( "IDTestClass", Is.EqualTo( relation.ForeignKeyColumns.First().Name ) );
26 ············Assert.That( "IDRefTypeName", Is.EqualTo( relation.MappingTable.ChildForeignKeyColumns.First().Name ) );
27
28 ············attr.TableName = "newTableName";
29 ············relation.RemapMappingTable( false, false, attr );
30 ············Assert.That( "newTableName", Is.EqualTo(relation.MappingTable.TableName) );
31 ········}
32
33 ········[Test]
34 ········public void RemapForeignKeyColumnsWorks()
35 ········{
36 NDOMapping mapping = new NDOMapping( null, null) ; //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.That( "IDTestClass", Is.EqualTo( relation.ForeignKeyColumns.First().Name ) );
41 ············var attr = new ForeignKeyColumnAttribute() { Name = "newColumnName" };
42 ············relation.RemapForeignKeyColumns( new[] { attr }, new ChildForeignKeyColumnAttribute[] { } );
43 ············Assert.That( "newColumnName", Is.EqualTo( relation.ForeignKeyColumns.First().Name ) );
44 ········}
45
46 ········[Test]
47 ········public void RemapOidColumnsWorks()
48 ········{
49 NDOMapping mapping = new NDOMapping( null, null) ; //NDOMapping. Create( null ) ;
50 ············var cls = mapping.AddStandardClass( "TestClass", "TestAssembly", null );
51 ············Assert.That( "ID", Is.EqualTo( cls.Oid.OidColumns.First().Name ) );
52 ············var attr = new OidColumnAttribute() { Name = "newColumnName" };
53 ············cls.Oid.RemapOidColumns( new[] { attr } );
54 ············Assert.That( "newColumnName", Is.EqualTo( cls.Oid.OidColumns.First().Name ) );
55 ········}
56
57 ········[Test]
58 ········public void RemapColumnsWorks()
59 ········{
60 NDOMapping mapping = new NDOMapping( null, null) ; //NDOMapping. Create( null ) ;
61 ············var cls = mapping.AddStandardClass( "TestClass", "TestAssembly", null );
62 ············var field = cls.AddStandardField( "test", false );
63 ············Assert.That( "Test", Is.EqualTo(field.Column.Name) );
64 ············var attr = new ColumnAttribute() { Size = -1, Name = "XTest" };
65 ············attr.RemapColumn( field.Column );
66 ············Assert.That( "XTest", Is.EqualTo(field.Column.Name) );
67 ············Assert.That( field.Column.Size == -1 );
68 ········}
69
70 ········[Test]
71 ········public void RemapFieldsWorks()
72 ········{
73 NDOMapping mapping = new NDOMapping( null, null) ; //NDOMapping. Create( null ) ;
74 ············var cls = mapping.AddStandardClass( "TestClass", "TestAssembly", null );
75 ············var field = cls.AddStandardField( "test", false );
76 ············Assert.That( !field.Encrypted );
77 ············var attr = new FieldAttribute() { Encrypted = true };
78 ············attr.RemapField( field );
79 ············Assert.That( 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.That( field.Encrypted );
84 ········}
85
86 ········[Test]
87 ········public void SetFieldValuesWorks()
88 ········{
89 NDOMapping mapping = new NDOMapping( null, null) ; //NDOMapping. Create( null ) ;
90 ············var cls = mapping.AddStandardClass( "TestClass", "TestAssembly", null );
91 ············var field = cls.AddStandardField( "test", false );
92 ············Assert.That( !field.Encrypted );
93 ············var attr = new FieldAttribute() { Encrypted = true };
94 ············attr.SetFieldValues( field );
95 ············Assert.That( field.Encrypted );
96 ············attr = new FieldAttribute() { Encrypted = false };
97 ············attr.SetFieldValues( field );
98 ············// Encrypted can be set to false
99 ············Assert.That( !field.Encrypted );
100 ········}
101
102 ········[Test]
103 ········public void OidColumnShouldntBeRemappedWithAssembyWideColumnAttribute()
104 ········{
105 NDOMapping mapping = new NDOMapping( null, null) ; //NDOMapping. Create( null ) ;
106 ············var cls = mapping.AddStandardClass( "TestClass", "TestAssembly", null );
107 ············Assert.That( "ID", Is.EqualTo( cls.Oid.OidColumns.First().Name ) );
108 ············var attr = new OidColumnAttribute() { Name = "newColumnName", IsAssemblyWideDefinition=true };
109 ············cls.Oid.RemapOidColumns( new[] { attr } );
110 ············Assert.That( "ID", Is.EqualTo( cls.Oid.OidColumns.First().Name ) );
111 ········}
112
113 ········[Test]
114 ········public void AssembyWideColumnAttributeOverwritesDefaultValues()
115 ········{
116 NDOMapping mapping = new NDOMapping( null, null) ; //NDOMapping. Create( null ) ;
117 ············var cls = mapping.AddStandardClass("TestClass", "TestAssembly", null);
118 ············Assert.That(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.That(2 == cls.Oid.OidColumns.First().AutoIncrementStart);
122 ········}
123 ····}
124 }
125