Exemplo n.º 1
0
        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?
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 12
0
        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?
        }
Exemplo n.º 13
0
        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);
        }
Exemplo n.º 14
0
        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);
        }
Exemplo n.º 15
0
        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);
        }
Exemplo n.º 16
0
        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);
        }
Exemplo n.º 17
0
        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);
        }
Exemplo n.º 18
0
        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);
        }
Exemplo n.º 19
0
        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?
        }
Exemplo n.º 20
0
        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);
        }
Exemplo n.º 21
0
        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);
        }
Exemplo n.º 23
0
        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);
        }
Exemplo n.º 26
0
        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);
        }