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 |