Exemplo n.º 1
0
        public void TestDateTimeColumnWithScale7()
        {
            string[] scripts = new[]
            {
                "CREATE TABLE t1 (c1 DATETIME2(7) NOT NULL)"
            };

            using (TSqlModel model = new TSqlModel(SqlServerVersion.SqlAzure, new TSqlModelOptions()))
            {
                // Adding objects to the model. 
                foreach (string script in scripts)
                {
                    model.AddObjects(script);
                }

                var ruleSettings = new CodeAnalysisRuleSettings()
                {
                    new RuleConfiguration(DateTimeColumnsWith7ScaleRule.RuleId)
                };
                ruleSettings.DisableRulesNotInSettings = true;


                CodeAnalysisService service = new CodeAnalysisServiceFactory().CreateAnalysisService(model.Version,
                    new CodeAnalysisServiceSettings()
                    {
                        RuleSettings = ruleSettings
                    });
                CodeAnalysisResult analysisResult = service.Analyze(model);

                Assert.AreEqual(1, analysisResult.Problems.Count, "Expect 1 problems to be found");
            }
        }
Exemplo n.º 2
0
        protected void InitTest(string ruleId)
        {
            var casFactory   = new CodeAnalysisServiceFactory();
            var ruleSettings = new CodeAnalysisRuleSettings()
            {
                new RuleConfiguration(ruleId)
            };

            ruleSettings.DisableRulesNotInSettings = true;

            var caSettings = new CodeAnalysisServiceSettings()
            {
                RuleSettings = ruleSettings
            };

            caService = casFactory.CreateAnalysisService(SqlServerVersion.Sql120, caSettings);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Sets up the service and disables all rules except the rule you wish to test.
        ///
        /// If you want all rules to run then do not change the
        /// <see cref="CodeAnalysisRuleSettings.DisableRulesNotInSettings"/> flag, as it is set to "false" by default which
        /// ensures that all rules are run.
        ///
        /// To run some (but not all) of the built-in rules then you could query the
        /// <see cref="CodeAnalysisService.GetRules"/> method to get a list of all the rules, then set their
        /// <see cref="RuleConfiguration.Enabled"/> and other flags as needed, or alternatively call the
        /// <see cref="CodeAnalysisService.ApplyRuleSettings"/> method to apply whatever rule settings you wish
        ///
        /// </summary>
        private CodeAnalysisService CreateCodeAnalysisService(string ruleIdToRun)
        {
            CodeAnalysisServiceFactory factory = new CodeAnalysisServiceFactory();
            var ruleSettings = new CodeAnalysisRuleSettings()
            {
                new RuleConfiguration(ruleIdToRun)
            };

            ruleSettings.DisableRulesNotInSettings = true;
            CodeAnalysisService service = factory.CreateAnalysisService(this.ModelForAnalysis.Version, new CodeAnalysisServiceSettings()
            {
                RuleSettings = ruleSettings
            });

            this.DumpErrors(service.GetRuleLoadErrors());

            Assert.IsTrue(service.GetRules().Any((rule) => rule.RuleId.Equals(ruleIdToRun, StringComparison.OrdinalIgnoreCase)),
                          "Expected rule '{0}' not found by the service", ruleIdToRun);
            return(service);
        }
Exemplo n.º 4
0
        protected CodeAnalysisService CreateCodeAnalysisService(TSqlModel model, string ruleIdToRun)
        {
            var factory = new CodeAnalysisServiceFactory();

            var ruleSettings = new CodeAnalysisRuleSettings
            {
                new RuleConfiguration(ruleIdToRun)
            };

            ruleSettings.DisableRulesNotInSettings = true;

            var service = factory.CreateAnalysisService(model, new CodeAnalysisServiceSettings()
            {
                RuleSettings = ruleSettings
            });

            Assert.IsTrue(service.GetRules()
                          .Any(rule => rule.RuleId
                               .Equals(ruleIdToRun, StringComparison.OrdinalIgnoreCase)),
                          $"Expected rule '{ruleIdToRun}' not found by the service");
            return(service);
        }
Exemplo n.º 5
0
        public void NoDatetime7Columns()
        {
            TSqlModel model = TSqlModel.LoadFromDacpac(@"..\..\..\Database1\bin\Debug\Database1.dacpac",
                new ModelLoadOptions(DacSchemaModelStorageType.Memory, true));

            var ruleSettings = new CodeAnalysisRuleSettings()
                    {
                        new RuleConfiguration(DateTimeColumnsWith7ScaleRule.RuleId)
                    };
            ruleSettings.DisableRulesNotInSettings = true;
            
            CodeAnalysisService service2 = new CodeAnalysisServiceFactory().CreateAnalysisService(model.Version, new CodeAnalysisServiceSettings()
            {
                RuleSettings = ruleSettings
            });
            service2.ResultsFile = "results.txt";
            CodeAnalysisResult analysisResult = service2.Analyze(model);

            Assert.AreEqual(0, analysisResult.Problems.Count, "Expect 0 problems to be found");



        }