public void Should_remove_old_property_after_phase_three()
    {
        var dialect = BuildSqlDialect.MySql;

        using (var connection = MySqlConnectionBuilder.Build())
        {
            connection.Open();

            //HACK: Thread Sleeps required since information_schema.statistics takes some time to update

            var sagaPhase1 = RuntimeSagaDefinitionReader.GetSagaDefinition(typeof(Phase1Saga), dialect);
            connection.ExecuteCommand(SagaScriptBuilder.BuildDropScript(sagaPhase1, dialect), "");
            Thread.Sleep(200);
            connection.ExecuteCommand(SagaScriptBuilder.BuildCreateScript(sagaPhase1, dialect), "");
            Thread.Sleep(200);
            var phase1Schema = GetSchema(connection);
            CollectionAssert.Contains(phase1Schema, "Correlation_OrderNumber");
            CollectionAssert.DoesNotContain(phase1Schema, "Correlation_OrderId");

            var sagaPhase2 = RuntimeSagaDefinitionReader.GetSagaDefinition(typeof(Phase2Saga), dialect);
            connection.ExecuteCommand(SagaScriptBuilder.BuildCreateScript(sagaPhase2, dialect), "");
            Thread.Sleep(200);
            var phase2Schema = GetSchema(connection);
            CollectionAssert.Contains(phase2Schema, "Correlation_OrderNumber");
            CollectionAssert.Contains(phase2Schema, "Correlation_OrderId");

            var sagaPhase3 = RuntimeSagaDefinitionReader.GetSagaDefinition(typeof(Phase3Saga), dialect);
            connection.ExecuteCommand(SagaScriptBuilder.BuildCreateScript(sagaPhase3, dialect), "");
            Thread.Sleep(200);
            var phase3Schema = GetSchema(connection);
            CollectionAssert.DoesNotContain(phase3Schema, "Correlation_OrderNumber");
            CollectionAssert.Contains(phase3Schema, "Correlation_OrderId");
        }
    }
コード例 #2
0
 public void Setup()
 {
     using (var connection = MySqlConnectionBuilder.Build())
     {
         connection.Open();
     }
 }
 protected override Func <string, DbConnection> GetConnection()
 {
     return(x =>
     {
         var connection = MySqlConnectionBuilder.Build();
         connection.Open();
         return connection;
     });
 }
コード例 #4
0
 protected override Func <string, DbConnection> GetConnection()
 {
     return(x => MySqlConnectionBuilder.Build());
 }