public void TestWithValidTodoAndCaseInsensitive() { using var tmpdir = new TemporaryDirectory(); using var consoleCapture = new ConsoleCapture(); string nl = Environment.NewLine; string path = Path.Join(tmpdir.Path, "SomeProgram.cs"); File.WriteAllText(path, $"// todo (mristin, 2020-07-20): Do something!{nl}"); int exitCode = Program.MainWithCode(new[] { "--inputs", path, "--case-insensitive" }); Assert.AreEqual("", consoleCapture.Error()); Assert.AreEqual($"{path}:1:1:todo (mristin, 2020-07-20): Do something!{nl}", consoleCapture.Output()); Assert.AreEqual(0, exitCode); }
public void TestReportToFile() { using var tmpdir = new TemporaryDirectory(); using var consoleCapture = new ConsoleCapture(); string nl = Environment.NewLine; string path = Path.Join(tmpdir.Path, "SomeProgram.cs"); File.WriteAllText(path, $"// TODO (mristin, 2020-07-20): Do something!{nl}"); string reportPath = Path.Join(tmpdir.Path, "report.json"); int exitCode = Program.MainWithCode(new[] { "--inputs", path, "--report-path", reportPath }); string expectedReport = $@"[ {{ ""path"": ""{path.Replace(@"\", @"\\")}"", ""records"": [ {{ ""prefix"": ""TODO"", ""suffix"": "" (mristin, 2020-07-20): Do something!"", ""line"": 0, ""column"": 0, ""status"": ""ok"" }} ] }} ] "; Assert.AreEqual("", consoleCapture.Error()); Assert.AreEqual("", consoleCapture.Output()); Assert.IsTrue(File.Exists(reportPath)); Assert.AreEqual(expectedReport, File.ReadAllText(reportPath)); Assert.AreEqual(0, exitCode); }
public void TestExclude() { using var tmpdir = new TemporaryDirectory(); using var consoleCapture = new ConsoleCapture(); string nl = Environment.NewLine; string pathNotOkButExcluded = Path.Join(tmpdir.Path, "NotOk.cs"); File.WriteAllText(pathNotOkButExcluded, $"// TODO (mristin): Do something, but excluded!{nl}"); string pathOk = Path.Join(tmpdir.Path, "Ok.cs"); File.WriteAllText(pathOk, "// TODO (mristin, 2020-07-20): Do something else!"); int exitCode = Program.MainWithCode(new[] { "--inputs", pathOk, "--excludes", pathNotOkButExcluded }); Assert.AreEqual("", consoleCapture.Error()); Assert.AreEqual($"{pathOk}:1:1:TODO (mristin, 2020-07-20): Do something else!{nl}", consoleCapture.Output()); Assert.AreEqual(0, exitCode); }