コード例 #1
0
        public void SqlCommands()
        {
            var sql = "CREATE TABLE abc (id int);";

            sut = new TestFileSqlDatabaseMigration("myapp_1.0.1.sql", sql);

            sut.SqlCommands.Should()
            .HaveCount(1)
            .And.Contain(sut.SqlFileContents);
        }
コード例 #2
0
        public void ThrowsIfHeaderVersionDifferentFromFileName()
        {
            var sql =
                @"
-- Hello
/* Multi
line comment */
-- version: 1.6.0

CREATE TABLE abc (
    id int
);

DROP TABLE def;
";


            sut = new TestFileSqlDatabaseMigration("myapp_1.5.0.sql", sql);
        }
コード例 #3
0
        public void ParsesVersion()
        {
            var sql =
                @"
-- Hello
/* Multi
line comment */
-- version: 1.5.0

CREATE TABLE abc (
    id int
);

DROP TABLE def;
";

            sut = new TestFileSqlDatabaseMigration("myapp.sql", sql);
            sut.Version.Should().Be(DatabaseVersion.Parse("1.5.0"));
        }
コード例 #4
0
        public void ParsesDescription()
        {
            var sql =
                @"
-- Hello
/* Multi
line comment */
-- description: Lorem ipsum dolor sit amet.

CREATE TABLE abc (
    id int
);

DROP TABLE def;
";

            sut = new TestFileSqlDatabaseMigration("myapp_1.0.1.sql", sql);
            sut.Description.Should().Be("Lorem ipsum dolor sit amet.");
        }
コード例 #5
0
        public void ShouldNotParseAfterContent()
        {
            var sql =
                @"
-- Hello
/* Multi
line comment */

CREATE TABLE abc (
    id int
);

-- description: Lorem ipsum dolor sit amet.

DROP TABLE def;
";

            sut = new TestFileSqlDatabaseMigration("myapp_1.0.1.sql", sql);
            sut.Description.Should().BeNull();
        }
コード例 #6
0
        public void PropertiesFromFileName(string fileNameRegex, string fileName, string expModuleName, string expVersionString,
                                           string expTags, bool isBaseline, bool isRepeatable)
        {
            sut = new TestFileSqlDatabaseMigration(fileName, "",
                                                   fileNameRegex != null ? new Regex(fileNameRegex, RegexOptions.IgnoreCase) : null);

            sut.FileName.Should().Be(fileName);
            sut.ModuleName.Should().Be(expModuleName);
            sut.Version.ToString().Should().Be(expVersionString);
            sut.IsBaseline.Should().Be(isBaseline);
            sut.IsRepeatable.Should().Be(isRepeatable);

            if (expTags != null)
            {
                sut.Tags.Should().HaveCount(1);
                sut.Tags[0].Should().Contain(expTags.Split(","));
            }
            else
            {
                sut.Tags.Should().BeEmpty();
            }
        }
コード例 #7
0
        public void ParsesDependencies()
        {
            var sql =
                @"
-- Hello
/* Multi
line comment */
-- dependency: [email protected]
-- dependency: vendor-module

CREATE TABLE abc (
    id int
);

DROP TABLE def;
";

            sut = new TestFileSqlDatabaseMigration("myapp_1.0.1.sql", sql);
            sut.Dependencies.Should()
            .BeEquivalentTo(
                new DatabaseMigrationSpecifier("myapp-base", DatabaseVersion.Parse("1.2.3")),
                new DatabaseMigrationSpecifier("vendor-module", null));
        }