示例#1
0
    public void SimpleUpdateTest()
    {
        SqlLogger.LogSqlStatementAction = s =>
        {
            if (PrintDebug)
            {
                Console.WriteLine(s);
            }
        };

        Fixture        fixture       = new Fixture();
        AWBuildVersion buildVersion1 = fixture.Create <AWBuildVersion>();
        AWBuildVersion buildVersion2 = null;
        AWBuildVersion buildVersion3 = null;

        ISqlConnectionProvider db = SqlConnectionProviders.AdventureWorksDb;

        "Given a build version in the database"
        ._(() =>
        {
            db.Insert(buildVersion1, "AWBuildVersion", "dbo");
            buildVersion2 = db
                            .MyQuery <AWBuildVersion>($"[Database Version] = '{buildVersion1.Database_Version}'", "AWBuildVersion", "dbo")
                            .Single();

            PrintDebugInfo1(buildVersion2, buildVersion1);
        });

        "When updating a property on the build version"
        ._(() =>
        {
            buildVersion2.Database_Version = fixture.Create <string>().Substring(0, 25);
            db.Update(buildVersion2, x => new { x.SystemInformationID });
        });

        "Then the database record should be modified."
        ._(() =>
        {
            buildVersion3 = db
                            .MyQuery <AWBuildVersion>($"[SystemInformationID] = '{buildVersion2.SystemInformationID}'", "AWBuildVersion", "dbo")
                            .Single();
            buildVersion3.Should().NotBeNull();
            buildVersion3.Database_Version.Should().Be(buildVersion2.Database_Version);
            buildVersion3.Database_Version.Should().NotBe(buildVersion1.Database_Version);
        });
    }