|
3 | 3 | using System.Linq; |
4 | 4 | using System.Threading.Tasks; |
5 | 5 | using DotNetProjects.Migrator.Framework; |
| 6 | +using Migrator.Tests.Providers.Base; |
6 | 7 | using Migrator.Tests.Providers.Generic; |
7 | 8 | using NUnit.Framework; |
8 | 9 |
|
9 | 10 | namespace Migrator.Tests.Providers.OracleProvider; |
10 | 11 |
|
11 | 12 | [TestFixture] |
12 | 13 | [Category("Oracle")] |
13 | | -public class OracleTransformationProvider_GetColumns_Tests : TransformationProvider_GetColumns_GenericTests |
| 14 | +public class OracleTransformationProvider_GetColumns_Tests : TransformationProviderBase |
14 | 15 | { |
15 | 16 | [SetUp] |
16 | 17 | public async Task SetUpAsync() |
@@ -42,4 +43,72 @@ public void GetColumns_Oracle_DefaultValues_Succeeds() |
42 | 43 |
|
43 | 44 | Assert.That(binarycolumn1.DefaultValue, Is.EqualTo(new byte[] { 12, 32, 34 })); |
44 | 45 | } |
| 46 | + |
| 47 | + [Test] |
| 48 | + public void GetColumns_DefaultValues_Succeeds() |
| 49 | + { |
| 50 | + // Arrange |
| 51 | + var dateTimeDefaultValue = new DateTime(2000, 1, 2, 3, 4, 5, DateTimeKind.Utc); |
| 52 | + var guidDefaultValue = Guid.NewGuid(); |
| 53 | + var decimalDefaultValue = 14.56565m; |
| 54 | + |
| 55 | + const string testTableName = "MyDefaultTestTable"; |
| 56 | + |
| 57 | + const string dateTimeColumnName1 = "datetimecolumn1"; |
| 58 | + const string dateTimeColumnName2 = "datetimecolumn2"; |
| 59 | + const string decimalColumnName1 = "decimalcolumn"; |
| 60 | + const string guidColumnName1 = "guidcolumn1"; |
| 61 | + const string booleanColumnName1 = "booleancolumn1"; |
| 62 | + const string int32ColumnName1 = "int32column1"; |
| 63 | + const string int64ColumnName1 = "int64column1"; |
| 64 | + const string int64ColumnName2 = "int64column2"; |
| 65 | + const string stringColumnName1 = "stringcolumn1"; |
| 66 | + const string binaryColumnName1 = "binarycolumn1"; |
| 67 | + const string doubleColumnName1 = "doublecolumn1"; |
| 68 | + |
| 69 | + // Should be extended by remaining types |
| 70 | + Provider.AddTable(testTableName, |
| 71 | + new Column(dateTimeColumnName1, DbType.DateTime, dateTimeDefaultValue), |
| 72 | + new Column(dateTimeColumnName2, DbType.DateTime2, dateTimeDefaultValue), |
| 73 | + new Column(decimalColumnName1, DbType.Decimal, decimalDefaultValue), |
| 74 | + new Column(guidColumnName1, DbType.Guid, guidDefaultValue), |
| 75 | + |
| 76 | + // other boolean default values are tested in another test |
| 77 | + new Column(booleanColumnName1, DbType.Boolean, true), |
| 78 | + |
| 79 | + new Column(int32ColumnName1, DbType.Int32, defaultValue: 43), |
| 80 | + new Column(int64ColumnName1, DbType.Int64, defaultValue: 88), |
| 81 | + new Column(int64ColumnName2, DbType.Int64, defaultValue: 0), |
| 82 | + new Column(stringColumnName1, DbType.String, defaultValue: "Hello"), |
| 83 | + new Column(binaryColumnName1, DbType.Binary, defaultValue: new byte[] { 12, 32, 34 }), |
| 84 | + new Column(doubleColumnName1, DbType.Double, defaultValue: 84.874596567) { Precision = 19, Scale = 10 } |
| 85 | + ); |
| 86 | + |
| 87 | + // Act |
| 88 | + var columns = Provider.GetColumns(testTableName); |
| 89 | + |
| 90 | + // Assert |
| 91 | + var dateTimeColumn1 = columns.Single(x => x.Name.Equals(dateTimeColumnName1, StringComparison.OrdinalIgnoreCase)); |
| 92 | + var dateTimeColumn2 = columns.Single(x => x.Name.Equals(dateTimeColumnName2, StringComparison.OrdinalIgnoreCase)); |
| 93 | + var decimalColumn1 = columns.Single(x => x.Name.Equals(decimalColumnName1, StringComparison.OrdinalIgnoreCase)); |
| 94 | + var guidColumn1 = columns.Single(x => x.Name.Equals(guidColumnName1, StringComparison.OrdinalIgnoreCase)); |
| 95 | + var booleanColumn1 = columns.Single(x => x.Name.Equals(booleanColumnName1, StringComparison.OrdinalIgnoreCase)); |
| 96 | + var int32Column1 = columns.Single(x => x.Name.Equals(int32ColumnName1, StringComparison.OrdinalIgnoreCase)); |
| 97 | + var int64Column1 = columns.Single(x => x.Name.Equals(int64ColumnName1, StringComparison.OrdinalIgnoreCase)); |
| 98 | + var int64Column2 = columns.Single(x => x.Name.Equals(int64ColumnName2, StringComparison.OrdinalIgnoreCase)); |
| 99 | + var stringColumn1 = columns.Single(x => x.Name.Equals(stringColumnName1, StringComparison.OrdinalIgnoreCase)); |
| 100 | + var binarycolumn1 = columns.Single(x => x.Name.Equals(binaryColumnName1, StringComparison.OrdinalIgnoreCase)); |
| 101 | + var doubleColumn1 = columns.Single(x => x.Name.Equals(doubleColumnName1, StringComparison.OrdinalIgnoreCase)); |
| 102 | + |
| 103 | + Assert.That(dateTimeColumn1.DefaultValue, Is.EqualTo(dateTimeDefaultValue)); |
| 104 | + Assert.That(dateTimeColumn2.DefaultValue, Is.EqualTo(dateTimeDefaultValue)); |
| 105 | + Assert.That(decimalColumn1.DefaultValue, Is.EqualTo(decimalDefaultValue)); |
| 106 | + Assert.That(guidColumn1.DefaultValue, Is.EqualTo(guidDefaultValue)); |
| 107 | + Assert.That(booleanColumn1.DefaultValue, Is.True); |
| 108 | + Assert.That(int32Column1.DefaultValue, Is.EqualTo(43)); |
| 109 | + Assert.That(int64Column1.DefaultValue, Is.EqualTo(88)); |
| 110 | + Assert.That(stringColumn1.DefaultValue, Is.EqualTo("Hello")); |
| 111 | + Assert.That(binarycolumn1.DefaultValue, Is.EqualTo(new byte[] { 12, 32, 34 })); |
| 112 | + Assert.That(doubleColumn1.DefaultValue, Is.EqualTo(84.874596567)); |
| 113 | + } |
45 | 114 | } |
0 commit comments