public void GenerateTextTest() { var rnd = new Random(); var model = new TestReportModel { Items = Enumerable.Range(0, 50).Select(id => new TestReportItemModel { Id = id, Name = Guid.NewGuid().ToString(), Value = rnd.Next(1000000, 10000000) / 1000.0 }) }; var generator = new RazorTextGenerator(); var content = generator.Generate(@"Content\SimpleReport.cshtml", model); var document = XDocument.Parse("<body>" + content + "</body>"); // ReSharper disable PossibleNullReferenceException var style = document.Root.Element("style"); var table = document.Root.Element("table"); // ReSharper restore PossibleNullReferenceException Assert.IsFalse(string.IsNullOrEmpty(content), "Content is null or empty"); Assert.IsNotNull(style, "Cant find 'style' tag"); Assert.IsNotNull(table, "Cant find 'table' tag"); }
public void ConstructorImagesTest() { var rnd = new Random(); var model = new TestReportModel { Items = Enumerable.Range(0, 50).Select(id => new TestReportItemModel { Id = id, Name = Guid.NewGuid().ToString(), Value = rnd.Next(1000000, 10000000) / 1000.0 }) }; Func <string, string> pathConverter = s => s.Replace("/", "\\"); var constructor = new RazorGridConstructor(); constructor.Init(new Dictionary <string, object> { { "RESOLVE_PATH_ACTION", pathConverter } }); var tables = constructor.CreateTables(@"Content\SimpleReport.cshtml", model); var table = tables.First(); Assert.IsNotNull(table.Images); Assert.IsTrue(table.Images.Count() == 3); Assert.IsTrue(table.Images.All(image => image.ImagePath.EndsWith(".png"))); Assert.IsTrue(table.Images.All(image => image.Width == 160 && image.Height == 70)); Assert.IsTrue(table.Images.All(image => image.Left >= 1 && image.Top >= 1)); }
public void ConstructorTableTest() { var rnd = new Random(); var model = new TestReportModel { Items = Enumerable.Range(0, 50).Select(id => new TestReportItemModel { Id = id, Name = Guid.NewGuid().ToString(), Value = rnd.Next(1000000, 10000000) / 1000.0 }) }; var constructor = new RazorGridConstructor(); var tables = constructor.CreateTables(@"Content\SimpleReport.cshtml", model); var table = tables.First(); Assert.IsNotNull(table.Head); Assert.IsNotNull(table.Body); Assert.IsTrue(table.Head.Rows.Any()); Assert.IsTrue(table.Body.Rows.Any()); Assert.IsTrue(table.Head.Rows.First().Cells.Any()); Assert.IsTrue(table.Body.Rows.First().Cells.Any()); Assert.IsNotNull(table.Head.Rows.First().Cells.First().Style); Assert.IsNotNull(table.Body.Rows.First().Cells.First().Style); }
public void ConstructorTest() { var rnd = new Random(); var model = new TestReportModel { Items = Enumerable.Range(0, 50).Select(id => new TestReportItemModel { Id = id, Name = Guid.NewGuid().ToString(), Value = rnd.Next(1000000, 10000000) / 1000.0 }) }; Func <string, string> pathConverter = s => s.Replace("/", "\\"); var constructor = new RazorGridConstructor(); constructor.Init(new Dictionary <string, object> { { "RESOLVE_PATH_ACTION", pathConverter } }); var tables = constructor.CreateTables(@"Content\SimpleReport.cshtml", model); try { try { SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY"); } catch { } var printer = new XlsxPrinter(); using (var stream = new FileStream("test.xlsx", FileMode.Create, FileAccess.ReadWrite)) { printer.Print(stream, tables); Assert.AreNotEqual(stream.Length, 0); } Assert.IsTrue(File.Exists("test.xlsx")); Assert.IsTrue(File.ReadAllBytes("test.xlsx").Length > 1024); } finally { if (File.Exists("test.xlsx")) { //File.Delete("test.xlsx"); } } }
public IActionResult ExecuteTests() { var nunit = new HW5T1.MyNUnit($"{environment.WebRootPath}/Temp"); nunit.Execute(); var results = nunit.GetAllData(); var assemblyReport = new AssemblyReportModel(); var idPart = DateTime.Now; foreach (var test in results) { var currentReport = new TestReportModel(); currentReport.Name = test.Name; currentReport.Time = test.TimeOfExecution; currentReport.WhyIgnored = test.WhyIgnored; currentReport.Id = idPart.ToString() + '%' + test.Name; if (test.Result == "Success") { currentReport.Passed = true; assemblyReport.Passed++; } else if (test.Result == "Failed") { currentReport.Passed = false; assemblyReport.Failed++; } else { currentReport.Passed = null; assemblyReport.Ignored++; } infoContainer.TestReports.Add(currentReport); archive.Add(currentReport); archive.SaveChanges(); assemblyReport.TestReports.Add(currentReport); } this.currentAssembly = assemblyReport; currentState.AssemblyReports.Add(assemblyReport); return(View("Index", infoContainer.TestReports)); }
/// <summary> /// Runs tests in all assemblies in the temporary directory /// </summary> public IActionResult Test() { try { var reports = TestRunner.RunTests($"{environment.WebRootPath}/Temp"); var dateTime = DateTime.Now; var results = new List <AssemblyReportModel>(); foreach (var testClassReport in reports) { var assemblyReports = currentState.AssemblyReports.Where(r => r.Name == testClassReport.AssemblyName); var assemblyReport = assemblyReports.FirstOrDefault(); if (assemblyReports.Count() == 0) { assemblyReport = new AssemblyReportModel { Name = testClassReport.AssemblyName, Id = dateTime.ToString() + testClassReport.AssemblyName }; currentState.AssemblyReports.Add(assemblyReport); results.Add(assemblyReport); } foreach (var test in testClassReport.Reports) { var newTestReportModel = new TestReportModel { ClassName = testClassReport.ClassName, Valid = true, Name = test.Name, Passed = test.Ignored ? null : test.Passed, Time = test.Ignored ? null : test.Time, Message = test.Message, Id = dateTime.ToString() + test.Name + testClassReport.ClassName }; if (test.Passed == true) { assemblyReport.Passed++; } else if (test.Passed == false) { assemblyReport.Failed++; } else { assemblyReport.Ignored++; } assemblyReport.TestReports.Add(newTestReportModel); } } var newRunReport = new TestRunModel { DateTime = DateTime.Now, AssemblyReports = results }; archive.Add(newRunReport); archive.SaveChanges(); } catch (InvalidAssemlyException e) { var reports = e.InvalidClasses; foreach (var testClassReport in reports) { var assemblyReports = currentState.AssemblyReports.Where(r => r.Name == testClassReport.AssemblyName); var assemblyReport = assemblyReports.FirstOrDefault(); if (assemblyReports.Count() == 0) { assemblyReport = new AssemblyReportModel { Name = testClassReport.AssemblyName }; currentState.AssemblyReports.Add(assemblyReport); } foreach (var test in testClassReport.InvalidMethods) { var newTestReportModel = new TestReportModel { ClassName = testClassReport.Name, Valid = false, Name = test.Name, Passed = null, Time = null, Message = String.Join("\n", test.Errors) }; assemblyReport.TestReports.Add(newTestReportModel); } } } return(View("Index", currentState)); }