public void ShouldSucceedWhenNoCreateDatabaseScriptExists()
        {
            // Setup
            DirectoryInfo directoryInfo =
                DirectoryStructureHelper.CreateValidDatabaseDirStructure("ShouldSucceedWhenNoCreateDatabaseScriptExists");
            IFileStructurePolicy policy = new MustContainCreateDatabaseSqlFilePolicy();

            PolicyResult result = policy.Check(directoryInfo);

            // Assert
            Assert.That(result.Success, Is.True);
        }
        public void ShouldSucceedWhenOnlyOneCreateDatabaseScriptExists()
        {
            // Setup
            DirectoryInfo directoryInfo =
                DirectoryStructureHelper.CreateValidDatabaseDirStructure("ShouldSucceedWhenOnlyOneCreateDatabaseScriptExists");
            IFileStructurePolicy policy = new MustContainCreateDatabaseSqlFilePolicy();

            DirectoryStructureHelper.CreateEmptyFile(Path.Combine(directoryInfo.GetDirectories()[1].FullName, "CreateDatabase.sql"));

            PolicyResult result = policy.Check(directoryInfo);

            // Assert
            Assert.That(result.Success, Is.True);
        }
        public void ShouldFailWhenMoreThanOneCreateDatabaseScriptExists()
        {
            // Setup
            DirectoryInfo directoryInfo =
                DirectoryStructureHelper.CreateValidDatabaseDirStructure("ShouldFailWhenMoreThanOneCreateDatabaseScriptExists");
            IFileStructurePolicy policy = new MustContainCreateDatabaseSqlFilePolicy();

            DirectoryStructureHelper.CreateEmptyFile(Path.Combine(directoryInfo.GetDirectories()[1].FullName, "CreateDatabase.sql"));
            DirectoryStructureHelper.CreateEmptyFile(Path.Combine(directoryInfo.GetDirectories()[2].FullName, "CreateDatabase.sql"));

            PolicyResult result = policy.Check(directoryInfo);

            // Assert
            Assert.That(result.Success, Is.False);
            Assert.That(result.Messages, Has.Count.EqualTo(1));
        }
        public void ShouldSucceedWhenOnlyIgnoredDirectoriesHasCreateDatabaseScript()
        {
            // Arrange
            DirectoryInfo directoryInfo =
                DirectoryStructureHelper.CreateValidDatabaseDirStructure("ShouldFailWhenOnlyIgnoredDirectoriesHasCreateDatabaseScript");
            IFileStructurePolicy policy = new MustContainCreateDatabaseSqlFilePolicy();

            // Create sql files ONLY in the ignoredirlist
            foreach (string ignoreDir in Resources.DirectoryIgnoreListStructureTemplateList())
            {
                string fullPath = Path.Combine(directoryInfo.FullName, ignoreDir);
                DirectoryStructureHelper.CreateEmptyFile(Path.Combine(fullPath, "CreateDatabase.sql"));
            }

            // Act
            PolicyResult result = policy.Check(directoryInfo);

            // Assert
            Assert.That(result.Success, Is.True);
        }