public void Should_Return_All_Existing_Rules()
        {
            // arrange
            var expectedRuleTypes = typeof(IPrerequisiteValidationRule).Assembly
                .GetTypes()
                .Where(t => !t.IsAbstract && !t.IsInterface && (typeof(IPrerequisiteValidationRule).IsAssignableFrom(t)))
                .ToList();

            // act
            var actualRuleTypes = new PrerequisitesValidationRulesProvider()
                .GetPrerequisiteValidationRules()
                .Select(r => r.GetType())
                .ToList();

            // assert
            Assert.That(actualRuleTypes.Count, Is.EqualTo(expectedRuleTypes.Count));

            CollectionAssert.AreEquivalent(expectedRuleTypes, actualRuleTypes);
        }
        public static Sqlizer GetSqlizerInstance(
            string serverName,
            string databaseName,
            string login,
            string password,
            string fileNamesPattern,
            string logDirectory)
        {            
            var logger = new SimpleLogger(logDirectory);

            var directoryValidationRules = new DirectoryValidationRulesProvider(fileNamesPattern)
                .GetDirectoryValidationRules();

            var prerequisitesValidationRules = new PrerequisitesValidationRulesProvider()
                .GetPrerequisiteValidationRules();

            var executor = new SqlCmdScriptExecutor(serverName, databaseName, login, password, logger);

            var sqlizer = new Sqlizer(directoryValidationRules, prerequisitesValidationRules, executor, logger);

            return sqlizer;
        }