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"); } }
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); }
/// <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); }
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); }
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"); }