[Ignore] //default option won't find rules unless run from CLI; todo to look at addressed public void DefaultRules_Pass() { VerifyRulesOptions options = new VerifyRulesOptions() { VerifyDefaultRules = true }; VerifyRulesResult.ExitCode exitCode = VerifyRulesResult.ExitCode.CriticalError; try { VerifyRulesCommand command = new VerifyRulesCommand(options); VerifyRulesResult result = command.GetResult(); exitCode = result.ResultCode; } catch (Exception) { //check for specific error if desired } //because these are static and each test is meant to be indpendent null assign the references to create the log WriteOnce.Log = null; Utils.Logger = null; Assert.IsTrue(exitCode == VerifyRulesResult.ExitCode.Verified); }
public void CustomRules_Pass() { VerifyRulesOptions options = new VerifyRulesOptions() { CustomRulesPath = Path.Combine(Helper.GetPath(Helper.AppPath.testRules), @"myrule.json"), }; VerifyRulesResult.ExitCode exitCode = VerifyRulesResult.ExitCode.CriticalError; try { VerifyRulesCommand command = new VerifyRulesCommand(options); VerifyRulesResult result = command.GetResult(); exitCode = result.ResultCode; } catch (Exception) { //check for specific error if desired } //because these are static and each test is meant to be indpendent null assign the references to create the log WriteOnce.Log = null; Utils.Logger = null; Assert.IsTrue(exitCode == VerifyRulesResult.ExitCode.Verified); }
public void InvalidLogPath_Fail() { VerifyRulesOptions options = new VerifyRulesOptions() { CustomRulesPath = Path.Combine(Helper.GetPath(Helper.AppPath.testRules), @"myrule.json"), LogFilePath = Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"baddir\logdebug.txt"), }; VerifyRulesResult.ExitCode exitCode = VerifyRulesResult.ExitCode.CriticalError; try { VerifyRulesCommand command = new VerifyRulesCommand(options); VerifyRulesResult result = command.GetResult(); exitCode = result.ResultCode; } catch (Exception) { exitCode = VerifyRulesResult.ExitCode.CriticalError; } //because these are static and each test is meant to be indpendent null assign the references to create the log WriteOnce.Log = null; Utils.Logger = null; Assert.IsTrue(exitCode == VerifyRulesResult.ExitCode.CriticalError);//test fails even when values match unless this case run individually -mstest bug? }
public void InsecureLogPath_Fail() { VerifyRulesOptions options = new VerifyRulesOptions() { CustomRulesPath = Path.Combine(Helper.GetPath(Helper.AppPath.testRules), @"myrule.json"), LogFilePath = Path.Combine(Helper.GetPath(Helper.AppPath.testSource), @"unzipped\simple\empty.cpp") }; VerifyRulesResult.ExitCode exitCode = VerifyRulesResult.ExitCode.CriticalError; try { VerifyRulesCommand command = new VerifyRulesCommand(options); VerifyRulesResult result = command.GetResult(); exitCode = result.ResultCode; } catch (Exception) { exitCode = VerifyRulesResult.ExitCode.CriticalError; } //because these are static and each test is meant to be indpendent null assign the references to create the log WriteOnce.Log = null; Utils.Logger = null; Assert.IsTrue(exitCode == VerifyRulesResult.ExitCode.CriticalError); }
public override void WriteResults(Result result, CLICommandOptions commandOptions, bool autoClose = true) { VerifyRulesResult verifyRulesResult = (VerifyRulesResult)result; //For console output, update write once for same results to console or file WriteOnce.TextWriter = TextWriter; if (string.IsNullOrEmpty(commandOptions.OutputFilePath)) { WriteOnce.Result("Results"); } if (verifyRulesResult.ResultCode != VerifyRulesResult.ExitCode.Verified) { WriteOnce.Any(MsgHelp.GetString(MsgHelp.ID.TAGTEST_RESULTS_FAIL), true, ConsoleColor.Red, WriteOnce.ConsoleVerbosity.Low); } else { WriteOnce.Any(MsgHelp.GetString(MsgHelp.ID.TAGTEST_RESULTS_SUCCESS), true, ConsoleColor.Green, WriteOnce.ConsoleVerbosity.Low); } if (verifyRulesResult.RuleStatusList.Count > 0) { WriteOnce.Result("Rule status"); foreach (RuleStatus ruleStatus in verifyRulesResult.RuleStatusList) { WriteOnce.General(String.Format("Ruleid: {0}, Rulename: {1}, Status: {2}", ruleStatus.RulesId, ruleStatus.RulesName, ruleStatus.Verified)); } } if (autoClose) { FlushAndClose(); } }
public void LogErrorLevel_Pass() { VerifyRulesOptions options = new VerifyRulesOptions() { CustomRulesPath = Path.Combine(Helper.GetPath(Helper.AppPath.testRules), @"mybadrule.json"), LogFileLevel = "error", LogFilePath = Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"logerror.txt"), }; VerifyRulesResult.ExitCode exitCode = VerifyRulesResult.ExitCode.CriticalError; try { VerifyRulesCommand command = new VerifyRulesCommand(options); VerifyRulesResult result = command.GetResult(); exitCode = result.ResultCode; } catch (Exception) { string testLogContent = File.ReadAllText(options.LogFilePath); if (!String.IsNullOrEmpty(testLogContent) && testLogContent.ToLower().Contains("error")) { exitCode = VerifyRulesResult.ExitCode.Verified; } else { exitCode = VerifyRulesResult.ExitCode.CriticalError; } } //because these are static and each test is meant to be indpendent null assign the references to create the log WriteOnce.Log = null; Utils.Logger = null; Assert.IsTrue(exitCode == VerifyRulesResult.ExitCode.Verified); }
public override void WriteResults(Result result, CLICommandOptions commandOptions, bool autoClose = true) { VerifyRulesResult verifyRulesResult = (VerifyRulesResult)result; if (string.IsNullOrEmpty(commandOptions.OutputFilePath)) { TextWriter.WriteLine("Results"); } if (verifyRulesResult.ResultCode != VerifyRulesResult.ExitCode.Verified) { TextWriter.WriteLine(MsgHelp.ID.TAGTEST_RESULTS_FAIL); } else { TextWriter.WriteLine(MsgHelp.ID.TAGTEST_RESULTS_SUCCESS); } if (verifyRulesResult.RuleStatusList.Count > 0) { TextWriter.WriteLine("Rule status"); foreach (RuleStatus ruleStatus in verifyRulesResult.RuleStatusList) { TextWriter.WriteLine("Ruleid: {0}, Rulename: {1}, Status: {2}", ruleStatus.RulesId, ruleStatus.RulesName, ruleStatus.Verified); } } if (autoClose) { FlushAndClose(); } }
public void LogErrorLevel_Pass() { VerifyRulesOptions options = new() { CustomRulesPath = Path.Combine(Helper.GetPath(Helper.AppPath.testRules), @"mybadrule.json"), LogFileLevel = "error", LogFilePath = Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"logerror.txt"), }; VerifyRulesCommand command = new(options); VerifyRulesResult result = command.GetResult(); Assert.AreEqual(VerifyRulesResult.ExitCode.CriticalError, result.ResultCode); string testLogContent = File.ReadAllText(options.LogFilePath); if (String.IsNullOrEmpty(testLogContent) || !testLogContent.ToLower().Contains("error")) { Assert.Fail(); } //because these are static and each test is meant to be indpendent null assign the references to create the log WriteOnce.Log = null; Utils.Logger = null; }
public void VerifyDefaultRules() { VerifyRulesOptions options = new() { VerifyDefaultRules = true, }; var loggerFactory = new LogOptions() { ConsoleVerbosityLevel = LogEventLevel.Verbose }.GetLoggerFactory(); VerifyRulesCommand command = new(options, loggerFactory); VerifyRulesResult result = command.GetResult(); Assert.AreEqual(VerifyRulesResult.ExitCode.Verified, result.ResultCode); }
private static int RunVerifyRulesCommand(CLIVerifyRulesCmdOptions cliOptions) { VerifyRulesCommand command = new(new VerifyRulesOptions() { VerifyDefaultRules = cliOptions.VerifyDefaultRules, CustomRulesPath = cliOptions.CustomRulesPath, ConsoleVerbosityLevel = cliOptions.ConsoleVerbosityLevel, Failfast = cliOptions.Failfast, Log = cliOptions.Log }); VerifyRulesResult exportTagsResult = command.GetResult(); ResultsWriter.Write(exportTagsResult, cliOptions); return((int)exportTagsResult.ResultCode); }
private static int RunVerifyRulesCommand(CLIVerifyRulesCmdOptions cliOptions) { VerifyRulesCommand command = new(new VerifyRulesOptions() { VerifyDefaultRules = cliOptions.VerifyDefaultRules, CustomRulesPath = cliOptions.CustomRulesPath, CustomCommentsPath = cliOptions.CustomCommentsPath, CustomLanguagesPath = cliOptions.CustomLanguagesPath, Failfast = cliOptions.Failfast, }, loggerFactory); VerifyRulesResult exportTagsResult = command.GetResult(); ResultsWriter writer = new(loggerFactory); writer.Write(exportTagsResult, cliOptions); return((int)exportTagsResult.ResultCode); }