public void ExportToJsonFilePath_Pass() { ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; try { string appInspectorPath = Helper.GetPath(Helper.AppPath.appInspectorCLI); string args = String.Format(@"exporttags -o {0} -f json -v trace -l {1}", Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"output.json"), Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"log.txt")); if (File.Exists(Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"output.json"))) { File.Delete(Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"output.json")); } exitCode = (ExportTagsResult.ExitCode)Helper.RunProcess(appInspectorPath, args); if (exitCode == ExportTagsResult.ExitCode.Success) { string content = File.ReadAllText(Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"output.json")); var result = JsonConvert.DeserializeObject <ExportTagsResult>(content); exitCode = result.TagsList.Count > 0 ? ExportTagsResult.ExitCode.Success : ExportTagsResult.ExitCode.CriticalError; } } catch (Exception) { //check for specific error if desired } Assert.IsTrue(exitCode == ExportTagsResult.ExitCode.Success); }
public void InvalidLogPath_Fail() { ExportTagsOptions options = new ExportTagsOptions() { CustomRulesPath = Path.Combine(Helper.GetPath(Helper.AppPath.testRules), @"myrule.json"), LogFilePath = Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"baddir\logdebug.txt"), }; ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.Success; try { ExportTagsCommand command = new ExportTagsCommand(options); ExportTagsResult result = command.GetResult(); exitCode = (ExportTagsResult.ExitCode)result.ResultCode; } catch (Exception) { exitCode = ExportTagsResult.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 == ExportTagsResult.ExitCode.CriticalError);//test fails even when values match unless this case run individually -mstest bug? }
public void ExportToTextFilePath_Pass() { ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; try { string appInspectorPath = Helper.GetPath(Helper.AppPath.appInspectorCLI); string args = String.Format(@"exporttags -o {0} -f text -l {1}", Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"exporttags.txt"), Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"log.txt")); File.Delete(Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"exporttags.txt")); exitCode = (ExportTagsResult.ExitCode)Helper.RunProcess(appInspectorPath, args); if (exitCode == ExportTagsResult.ExitCode.Success) { if (!File.Exists(Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"exporttags.txt")) || new FileInfo(Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"exporttags.txt")).Length == 0) { exitCode = ExportTagsResult.ExitCode.CriticalError; } } } catch (Exception) { //check for specific error if desired } Assert.IsTrue(exitCode == ExportTagsResult.ExitCode.Success); }
public void LogDebugLevel_Pass() { ExportTagsOptions options = new ExportTagsOptions() { CustomRulesPath = Path.Combine(Helper.GetPath(Helper.AppPath.testRules), @"myrule.json"), LogFileLevel = "debug", LogFilePath = Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"logdebug.txt"), }; ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; try { ExportTagsCommand command = new ExportTagsCommand(options); ExportTagsResult result = command.GetResult(); exitCode = (ExportTagsResult.ExitCode)result.ResultCode; string testLogContent = File.ReadAllText(options.LogFilePath); if (String.IsNullOrEmpty(testLogContent)) { exitCode = ExportTagsResult.ExitCode.CriticalError; } else if (testLogContent.ToLower().Contains("debug")) { exitCode = ExportTagsResult.ExitCode.Success; } } catch (Exception) { //check for specific error if desired } Assert.IsTrue(exitCode == ExportTagsResult.ExitCode.Success); }
public void DefaultWithCustomRules_Pass() { ExportTagsOptions options = new ExportTagsOptions() { CustomRulesPath = Path.Combine(Helper.GetPath(Helper.AppPath.testRules), @"myrule.json"), }; ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; try { ExportTagsCommand command = new ExportTagsCommand(options); ExportTagsResult result = command.GetResult(); exitCode = (ExportTagsResult.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 == ExportTagsResult.ExitCode.Success); }
public void LogErrorLevel_Pass() { ExportTagsOptions options = new ExportTagsOptions() { CustomRulesPath = Path.Combine(Helper.GetPath(Helper.AppPath.testRules), @"mybadrule.json"), LogFileLevel = "error", LogFilePath = Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"logerror.txt"), }; ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; try { ExportTagsCommand command = new ExportTagsCommand(options); ExportTagsResult result = command.GetResult(); exitCode = (ExportTagsResult.ExitCode)result.ResultCode; } catch (Exception) { string testLogContent = File.ReadAllText(options.LogFilePath); if (!String.IsNullOrEmpty(testLogContent) && testLogContent.ToLower().Contains("error")) { exitCode = ExportTagsResult.ExitCode.Success; } else { exitCode = ExportTagsResult.ExitCode.CriticalError; } } Assert.IsTrue(exitCode == ExportTagsResult.ExitCode.Success); }
public void NoDefaultNoCustomRules_Fail() { ExportTagsOptions options = new ExportTagsOptions() { IgnoreDefaultRules = true }; ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; try { ExportTagsCommand command = new ExportTagsCommand(options); ExportTagsResult result = command.GetResult(); exitCode = (ExportTagsResult.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 == ExportTagsResult.ExitCode.CriticalError); }
public void InsecureLogPath_Fail() { ExportTagsOptions options = new ExportTagsOptions() { CustomRulesPath = Path.Combine(Helper.GetPath(Helper.AppPath.testRules), @"myrule.json"), LogFilePath = Path.Combine(Helper.GetPath(Helper.AppPath.testSource), @"unzipped\simple\empty.cpp"), }; ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; try { ExportTagsCommand command = new ExportTagsCommand(options); ExportTagsResult result = command.GetResult(); exitCode = (ExportTagsResult.ExitCode)result.ResultCode; } catch (Exception) { exitCode = ExportTagsResult.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 == ExportTagsResult.ExitCode.CriticalError); }
public void LogErrorLevel_Pass() { ExportTagsOptions options = new ExportTagsOptions() { CustomRulesPath = Path.Combine(Helper.GetPath(Helper.AppPath.testRules), @"mybadrule.json"), LogFileLevel = "error", LogFilePath = Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"logerror.txt"), }; ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; try { ExportTagsCommand command = new ExportTagsCommand(options); ExportTagsResult result = command.GetResult(); exitCode = (ExportTagsResult.ExitCode)result.ResultCode; } catch (Exception) { string testLogContent = File.ReadAllText(options.LogFilePath); if (!String.IsNullOrEmpty(testLogContent) && testLogContent.ToLower().Contains("error")) { exitCode = ExportTagsResult.ExitCode.Success; } else { exitCode = ExportTagsResult.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 == ExportTagsResult.ExitCode.Success); }
public void NoConsoleNoFileOutput_Fail() { ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; try { string args = string.Format(@"exporttags -x none -f text -l {0}", Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"log.txt")); exitCode = (ExportTagsResult.ExitCode)Microsoft.ApplicationInspector.CLI.Program.Main(args.Split(' ')); } catch (Exception) { } Assert.IsTrue(exitCode == ExportTagsResult.ExitCode.CriticalError); }
public void InsecureLogPath_Fail() { ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; try { string args = string.Format(@"exporttags -f json -l {0}", Path.Combine(Helper.GetPath(Helper.AppPath.testSource), @"unzipped\simple\empty.cpp")); exitCode = (ExportTagsResult.ExitCode)Microsoft.ApplicationInspector.CLI.Program.Main(args.Split(' ')); } catch (Exception) { } Assert.IsTrue(exitCode == ExportTagsResult.ExitCode.CriticalError); }
public void InvalidLogPath_Fail() { ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; try { string args = string.Format(@"exporttags -o {0} -f json -l {1} ", Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"exporttags.txt"), Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"badir\log.txt")); exitCode = (ExportTagsResult.ExitCode)Microsoft.ApplicationInspector.CLI.Program.Main(args.Split(' ')); } catch (Exception) { } Assert.IsTrue(exitCode == ExportTagsResult.ExitCode.CriticalError);//test fails even when values match unless this case run individually -mstest bug? }
public void ExportUnknownFormat_Fail() { ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; try { string args = string.Format(@"exporttags -f unknown -l {0}", Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"log.txt")); exitCode = (ExportTagsResult.ExitCode)Microsoft.ApplicationInspector.CLI.Program.Main(args.Split(' ')); } catch (Exception) { //check for specific error if desired } Assert.IsTrue(exitCode == ExportTagsResult.ExitCode.CriticalError); }
public void InsecureLogPath_Fail() { ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; try { string appInspectorPath = Helper.GetPath(Helper.AppPath.appInspectorCLI); string args = String.Format(@"exporttags -f json -l {0}", Path.Combine(Helper.GetPath(Helper.AppPath.testSource), @"unzipped\simple\empty.cpp")); exitCode = (ExportTagsResult.ExitCode)Helper.RunProcess(appInspectorPath, args); } catch (Exception) { } Assert.IsTrue(exitCode == ExportTagsResult.ExitCode.CriticalError); }
public void NoConsoleNoFileOutput_Fail() { ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; try { string appInspectorPath = Helper.GetPath(Helper.AppPath.appInspectorCLI); string args = String.Format(@"exporttags -x none -f text -l {0}", Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"log.txt")); exitCode = (ExportTagsResult.ExitCode)Helper.RunProcess(appInspectorPath, args); } catch (Exception) { } Assert.IsTrue(exitCode == ExportTagsResult.ExitCode.CriticalError); }
public void DefaultWithCustomRules_Pass() { ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; try { string args = string.Format(@"exporttags -r {0} -f text -l {1}", Path.Combine(Helper.GetPath(Helper.AppPath.testRules), @"myrule.json"), Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"log.txt")); exitCode = (ExportTagsResult.ExitCode)Microsoft.ApplicationInspector.CLI.Program.Main(args.Split(' ')); } catch (Exception) { //check for specific error if desired } Assert.IsTrue(exitCode == ExportTagsResult.ExitCode.Success); }
public void NoDefaultNoCustomRules_Fail() { ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; try { string appInspectorPath = Helper.GetPath(Helper.AppPath.appInspectorCLI); string args = String.Format(@"exporttags -i -f text -l {0}", Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"log.txt")); exitCode = (ExportTagsResult.ExitCode)Helper.RunProcess(appInspectorPath, args); } catch (Exception) { //check for specific error if desired } Assert.IsTrue(exitCode == ExportTagsResult.ExitCode.CriticalError); }
public void BasicJsonOutput_Pass() { ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; try { string appInspectorPath = Helper.GetPath(Helper.AppPath.appInspectorCLI); string args = String.Format(@"exporttags -f json -l {0}", Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"log.txt")); exitCode = (ExportTagsResult.ExitCode)Helper.RunProcess(appInspectorPath, args); } catch (Exception) { //check for specific error if desired } Assert.IsTrue(exitCode == ExportTagsResult.ExitCode.Success); }
public void InvalidLogPath_Fail() { ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; try { string appInspectorPath = Helper.GetPath(Helper.AppPath.appInspectorCLI); string args = String.Format(@"exporttags -o {0} -f json -l {1} ", Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"exporttags.txt"), Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"badir\log.txt")); exitCode = (ExportTagsResult.ExitCode)Helper.RunProcess(appInspectorPath, args); } catch (Exception) { } Assert.IsTrue(exitCode == ExportTagsResult.ExitCode.CriticalError);//test fails even when values match unless this case run individually -mstest bug? }
private static int RunExportTagsCommand(CLIExportTagsCmdOptions cliOptions) { ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; ExportTagsCommand command = new ExportTagsCommand(new ExportTagsOptions() { IgnoreDefaultRules = cliOptions.IgnoreDefaultRules, CustomRulesPath = cliOptions.CustomRulesPath, ConsoleVerbosityLevel = cliOptions.ConsoleVerbosityLevel, Log = cliOptions.Log }); ExportTagsResult exportTagsResult = command.GetResult(); exitCode = exportTagsResult.ResultCode; ResultsWriter.Write(exportTagsResult, cliOptions); return((int)exitCode); }
public void LogErrorLevel_Pass() { ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; try { string args = string.Format(@"exporttags -o {0} -f json -l {1} -v error", Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"\baddir\exporttags.txt"), Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"log.txt")); exitCode = (ExportTagsResult.ExitCode)Microsoft.ApplicationInspector.CLI.Program.Main(args.Split(' ')); string testContent = File.ReadAllText(Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"log.txt")); exitCode = testContent.ToLower().Contains("error") ? ExportTagsResult.ExitCode.Success : ExportTagsResult.ExitCode.CriticalError; } catch (Exception) { } Assert.IsTrue(exitCode == ExportTagsResult.ExitCode.Success); }
public void DefaultWithCustomRules_Pass() { ExportTagsOptions options = new ExportTagsOptions() { CustomRulesPath = Path.Combine(Helper.GetPath(Helper.AppPath.testRules), @"myrule.json"), }; ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; try { ExportTagsCommand command = new ExportTagsCommand(options); ExportTagsResult result = command.GetResult(); exitCode = (ExportTagsResult.ExitCode)result.ResultCode; } catch (Exception) { //check for specific error if desired } Assert.IsTrue(exitCode == ExportTagsResult.ExitCode.Success); }
public void LogTraceLevel_Pass() { ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; try { string appInspectorPath = Helper.GetPath(Helper.AppPath.appInspectorCLI); string args = String.Format(@"exporttags -o {0} -f json -l {1} -v trace ", Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"exporttags.txt"), Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"log.txt")); exitCode = (ExportTagsResult.ExitCode)Helper.RunProcess(appInspectorPath, args); string testContent = File.ReadAllText(Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"log.txt")); exitCode = testContent.ToLower().Contains("trace") ? ExportTagsResult.ExitCode.Success : ExportTagsResult.ExitCode.CriticalError; } catch (Exception) { } Assert.IsTrue(exitCode == ExportTagsResult.ExitCode.Success); }
public void Export_Pass() { ExportTagsOptions options = new ExportTagsOptions() { //empty }; ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; try { ExportTagsCommand command = new ExportTagsCommand(options); ExportTagsResult result = command.GetResult(); exitCode = (ExportTagsResult.ExitCode)result.ResultCode; } catch (Exception) { //check for specific error if desired } Assert.IsTrue(exitCode == ExportTagsResult.ExitCode.Success); }
public void NoDefaultNoCustomRules_Fail() { ExportTagsOptions options = new ExportTagsOptions() { IgnoreDefaultRules = true }; ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; try { ExportTagsCommand command = new ExportTagsCommand(options); ExportTagsResult result = command.GetResult(); exitCode = (ExportTagsResult.ExitCode)result.ResultCode; } catch (Exception) { //check for specific error if desired } Assert.IsTrue(exitCode == ExportTagsResult.ExitCode.CriticalError); }
public void NoConsoleOutput_Pass() { ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; try { string appInspectorPath = Helper.GetPath(Helper.AppPath.appInspectorCLI); string args = String.Format(@"exporttags -x none -f text -o {0}", Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"exporttags.txt")); exitCode = (ExportTagsResult.ExitCode)Helper.RunProcess(appInspectorPath, args, out string testContent); if (exitCode == ExportTagsResult.ExitCode.Success) { exitCode = String.IsNullOrEmpty(testContent) ? ExportTagsResult.ExitCode.Success : ExportTagsResult.ExitCode.CriticalError; } } catch (Exception) { } Assert.IsTrue(exitCode == ExportTagsResult.ExitCode.Success); }
public void InvalidLogPath_Fail() { ExportTagsOptions options = new ExportTagsOptions() { CustomRulesPath = Path.Combine(Helper.GetPath(Helper.AppPath.testRules), @"myrule.json"), LogFilePath = Path.Combine(Helper.GetPath(Helper.AppPath.testOutput), @"baddir\logdebug.txt"), }; ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.Success; try { ExportTagsCommand command = new ExportTagsCommand(options); ExportTagsResult result = command.GetResult(); exitCode = (ExportTagsResult.ExitCode)result.ResultCode; } catch (Exception) { exitCode = ExportTagsResult.ExitCode.CriticalError; } Assert.IsTrue(exitCode == ExportTagsResult.ExitCode.CriticalError);//test fails even when values match unless this case run individually -mstest bug? }
public void InsecureLogPath_Fail() { ExportTagsOptions options = new ExportTagsOptions() { CustomRulesPath = Path.Combine(Helper.GetPath(Helper.AppPath.testRules), @"myrule.json"), LogFilePath = Path.Combine(Helper.GetPath(Helper.AppPath.testSource), @"unzipped\simple\empty.cpp"), }; ExportTagsResult.ExitCode exitCode = ExportTagsResult.ExitCode.CriticalError; try { ExportTagsCommand command = new ExportTagsCommand(options); ExportTagsResult result = command.GetResult(); exitCode = (ExportTagsResult.ExitCode)result.ResultCode; } catch (Exception) { exitCode = ExportTagsResult.ExitCode.CriticalError; } Assert.IsTrue(exitCode == ExportTagsResult.ExitCode.CriticalError); }