diff --git a/src/ChangeDB.Agent.MySql/MySqlExpressionTranslator.cs b/src/ChangeDB.Agent.MySql/MySqlExpressionTranslator.cs index 7521495..7dcf988 100644 --- a/src/ChangeDB.Agent.MySql/MySqlExpressionTranslator.cs +++ b/src/ChangeDB.Agent.MySql/MySqlExpressionTranslator.cs @@ -118,7 +118,7 @@ SqlExpressionDescriptor ConstantValue(string expression, string storeType = null { var sql = string.IsNullOrEmpty(storeType) ? $"select {expression}" : $"select cast({expression} as {storeType})"; - var val = ValueCache.GetOrAdd(sql, (s) => context.AgentInfo.Connection.ExecuteScalar(s)); + var val = ValueCache.GetOrAdd(sql, (s) => context.Connection.ExecuteScalar(s)); return new SqlExpressionDescriptor { Constant = val }; } diff --git a/src/ChangeDB.Agent.MySql/MySqlRepr.cs b/src/ChangeDB.Agent.MySql/MySqlRepr.cs index 258dae4..d985c08 100644 --- a/src/ChangeDB.Agent.MySql/MySqlRepr.cs +++ b/src/ChangeDB.Agent.MySql/MySqlRepr.cs @@ -22,6 +22,16 @@ public class MySqlRepr : IRepr ["\'"] = @"\'", }; + public string ReprValue(object value, string storeType) + { + return ReprValue(value); + } + + public string ReprValue(object value, DbType dbType) + { + return ReprValue(value); + } + public string ReprValue(object value) { return ReprConstant(value); @@ -84,6 +94,8 @@ private static StringBuilder Replace(StringBuilder sb, } return sb; } + + } } diff --git a/test/ChangeDB.Agent.MySql.UnitTest/DatabaseEnvironment.cs b/test/ChangeDB.Agent.MySql.UnitTest/DatabaseEnvironment.cs index 6d20f25..5a0d957 100644 --- a/test/ChangeDB.Agent.MySql.UnitTest/DatabaseEnvironment.cs +++ b/test/ChangeDB.Agent.MySql.UnitTest/DatabaseEnvironment.cs @@ -13,7 +13,7 @@ public class DatabaseEnvironment : IDisposable, ICollectionFixture { ["DBPORT"] = DBPort @@ -26,7 +26,7 @@ public DatabaseEnvironment() defaultConnectionFactory = new Lazy(CreateNewDatabase); } - public uint DBPort { get; set; } + public int DBPort { get; set; } private string connectionTemplate; @@ -56,10 +56,7 @@ public DbConnection CreateNewDatabase() public void Dispose() { - if (defaultConnectionFactory.IsValueCreated) - { - defaultConnectionFactory.Value.Dispose(); - } + DockerCompose.Down(); } } } diff --git a/test/ChangeDB.Agent.MySql.UnitTest/MySqlDataMigratorTest.cs b/test/ChangeDB.Agent.MySql.UnitTest/MySqlDataMigratorTest.cs index efef305..27c7b3e 100644 --- a/test/ChangeDB.Agent.MySql.UnitTest/MySqlDataMigratorTest.cs +++ b/test/ChangeDB.Agent.MySql.UnitTest/MySqlDataMigratorTest.cs @@ -24,8 +24,8 @@ public MySqlDataMigratorTest(DatabaseEnvironment databaseEnvironment) _migrationContext = new MigrationContext { - Target = new AgentRunTimeInfo { Connection = _dbConnection }, - Source = new AgentRunTimeInfo { Connection = _dbConnection }, + TargetConnection = _dbConnection, + SourceConnection = _dbConnection }; } diff --git a/test/ChangeDB.Agent.MySql.UnitTest/MySqlDataTypeMapperTest.cs b/test/ChangeDB.Agent.MySql.UnitTest/MySqlDataTypeMapperTest.cs index 705d1ba..bd910f5 100644 --- a/test/ChangeDB.Agent.MySql.UnitTest/MySqlDataTypeMapperTest.cs +++ b/test/ChangeDB.Agent.MySql.UnitTest/MySqlDataTypeMapperTest.cs @@ -23,8 +23,9 @@ public MySqlDataTypeMapperTest(DatabaseEnvironment databaseEnvironment) _dbConnection = databaseEnvironment.DbConnection; _migrationContext = new MigrationContext { - Target = new AgentRunTimeInfo { Connection = _dbConnection }, - Source = new AgentRunTimeInfo { Connection = _dbConnection }, + TargetConnection = _dbConnection, + SourceConnection = _dbConnection, + Source = new AgentRunTimeInfo { Agent = new MySqlMigrationAgent() }, SourceDatabase = new DatabaseInfo() { ConnectionString = databaseEnvironment.NewConnectionString(_dbConnection.Database) } }; } diff --git a/test/ChangeDB.Agent.MySql.UnitTest/MySqlDatabaseManagerTest.cs b/test/ChangeDB.Agent.MySql.UnitTest/MySqlDatabaseManagerTest.cs index 0f44bbf..bbf0af8 100644 --- a/test/ChangeDB.Agent.MySql.UnitTest/MySqlDatabaseManagerTest.cs +++ b/test/ChangeDB.Agent.MySql.UnitTest/MySqlDatabaseManagerTest.cs @@ -19,7 +19,7 @@ public MySqlDatabaseManagerTest(DatabaseEnvironment databaseEnvironment) _dbConnection = databaseEnvironment.NewDatabaseConnection(); _migrationContext = new MigrationContext { - Target = new AgentRunTimeInfo { Connection = _dbConnection } + TargetConnection = _dbConnection, }; _dbConnection.CreateDatabase(); diff --git a/test/ChangeDB.Agent.MySql.UnitTest/MySqlMetadataMigratorTest.cs b/test/ChangeDB.Agent.MySql.UnitTest/MySqlMetadataMigratorTest.cs index 6ce5b66..84f2ecf 100644 --- a/test/ChangeDB.Agent.MySql.UnitTest/MySqlMetadataMigratorTest.cs +++ b/test/ChangeDB.Agent.MySql.UnitTest/MySqlMetadataMigratorTest.cs @@ -22,8 +22,9 @@ public MySqlMetadataMigratorTest(DatabaseEnvironment databaseEnvironment) _dbConnection = databaseEnvironment.CreateNewDatabase(); _migrationContext = new MigrationContext { - Target = new AgentRunTimeInfo { Connection = _dbConnection }, - Source = new AgentRunTimeInfo { Connection = _dbConnection }, + TargetConnection = _dbConnection, + SourceConnection = _dbConnection, + Source = new AgentRunTimeInfo { Agent = new MySqlMigrationAgent() }, SourceDatabase = new DatabaseInfo() { ConnectionString = _dbConnection.ConnectionString } }; } diff --git a/test/ChangeDB.Agent.MySql.UnitTest/MySqlReprTest.cs b/test/ChangeDB.Agent.MySql.UnitTest/MySqlReprTest.cs index dcfb46a..dec357f 100644 --- a/test/ChangeDB.Agent.MySql.UnitTest/MySqlReprTest.cs +++ b/test/ChangeDB.Agent.MySql.UnitTest/MySqlReprTest.cs @@ -25,7 +25,7 @@ public MySqlReprTest(DatabaseEnvironment databaseEnvironment) public void ShouldReprString(string value) { - var reprValue = _repr.ReprValue(value); + var reprValue = _repr.ReprValue(value,"varchar"); var valueFromDatabase = _databaseEnvironment.DbConnection.ExecuteScalar($"select {reprValue}"); valueFromDatabase.Should().Be(value); } diff --git a/test/ChangeDB.IntegrationTest/DefaultSqlDumperTest.cs b/test/ChangeDB.IntegrationTest/DefaultSqlDumperTest.cs index 392ac00..0ad7fcc 100644 --- a/test/ChangeDB.IntegrationTest/DefaultSqlDumperTest.cs +++ b/test/ChangeDB.IntegrationTest/DefaultSqlDumperTest.cs @@ -56,8 +56,8 @@ public async Task ShouldDumpSql(string xmlFile) private void AssertTargetSqlStript(XElement targetNode, string sqlScriptFile) { - var content = File.ReadAllText(sqlScriptFile).Trim(); - var allSql = targetNode.Value.Trim(); + var content = File.ReadAllText(sqlScriptFile).Trim().Replace("\r",string.Empty); + var allSql = targetNode.Value.Trim().Replace("\r",string.Empty); content.Should().Be(allSql, "the dump scripts should be same"); } diff --git a/test/Directory.Build.props b/test/Directory.Build.props index 69e4a31..9550749 100644 --- a/test/Directory.Build.props +++ b/test/Directory.Build.props @@ -6,7 +6,7 @@ - +