private void AssertWriter(ReportWritersConfiguration configuration, string expectedRelativePath, Type expectedFormatterType, string expectedFullPath)
        {
            var writer = configuration.OfType <ReportFileWriter>().FirstOrDefault(w => w.OutputPath == expectedRelativePath);

            Assert.That(writer, Is.Not.Null, $"Expected to find writer with path: {expectedRelativePath}");

            Assert.That(writer.FullOutputPath, Is.EqualTo(Path.GetFullPath(expectedFullPath)));
            Assert.That(writer.Formatter, Is.InstanceOf(expectedFormatterType));
        }
        public void It_should_allow_clear_add_and_remove_items()
        {
            var writer        = Mock.Of <IReportWriter>();
            var writer2       = Mock.Of <IReportWriter>();
            var configuration = new ReportWritersConfiguration();

            Assert.That(configuration.Clear(), Is.Empty);
            Assert.That(configuration.Add(writer).Add(writer2).ToArray(), Is.EqualTo(new[] { writer, writer2 }));
            Assert.That(configuration.Remove(writer).ToArray(), Is.EqualTo(new[] { writer2 }));
        }
        public void It_should_return_default_configuration()
        {
            var configuration = new ReportWritersConfiguration().RegisterFrameworkDefaultReportWriters();

            Assert.That(configuration.Count, Is.EqualTo(1));

            var featuresReportHtml = $"~{Path.DirectorySeparatorChar}Reports{Path.DirectorySeparatorChar}FeaturesReport.html";

            AssertWriter(configuration, featuresReportHtml, typeof(HtmlReportFormatter), featuresReportHtml.Replace("~", AppContext.BaseDirectory));
        }
        public void It_should_allow_adding_file_writer_with_extension_method()
        {
            var writer = new ReportWritersConfiguration()
                         .Clear()
                         .AddFileWriter <PlainTextReportFormatter>("file.txt")
                         .Cast <ReportFileWriter>()
                         .SingleOrDefault();

            Assert.That(writer, Is.Not.Null);
            Assert.That(writer.Formatter, Is.TypeOf <PlainTextReportFormatter>());
            Assert.That(writer.OutputPath, Is.EqualTo("file.txt"));
        }
        public void It_should_return_default_configuration()
        {
            var configuration = new ReportWritersConfiguration();

            Assert.That(configuration.Count, Is.EqualTo(2));

            var featuresReportXml  = @"~\Reports\FeaturesReport.xml";
            var featuresReportHtml = @"~\Reports\FeaturesReport.html";

            AssertWriter(configuration, featuresReportXml, typeof(XmlReportFormatter), featuresReportXml.Replace("~", AppDomainHelper.BaseDirectory));
            AssertWriter(configuration, featuresReportHtml, typeof(HtmlReportFormatter), featuresReportHtml.Replace("~", AppDomainHelper.BaseDirectory));
        }
        public void It_should_not_allow_null_items()
        {
            var configuration = new ReportWritersConfiguration();

            Assert.Throws <ArgumentNullException>(() => configuration.Add(null));
        }
Пример #7
0
 /// <summary>
 /// Adds <see cref="ReportFileWriter"/> instance configured to format report with <typeparamref name="TFormatter"/> and write it to <paramref name="outputPath"/>.
 /// </summary>
 /// <typeparam name="TFormatter">Type of report formatter.</typeparam>
 /// <param name="configuration">Configuration.</param>
 /// <param name="outputPath">Output path for the report.</param>
 /// <returns>Configuration.</returns>
 public static ReportWritersConfiguration AddFileWriter <TFormatter>(this ReportWritersConfiguration configuration, string outputPath) where TFormatter : IReportFormatter, new()
 {
     return(configuration.Add(new ReportFileWriter(new TFormatter(), outputPath)));
 }
Пример #8
0
 /// <summary>
 /// Applies default report generators to generate <c>~\\Reports\\FeaturesReport.html</c>(Win) <c>~/Reports/FeaturesReport.html</c>(Unix) reports.
 /// </summary>
 public static ReportWritersConfiguration RegisterFrameworkDefaultReportWriters(this ReportWritersConfiguration configuration)
 {
     return(configuration.Add(new ReportFileWriter(new HtmlReportFormatter(), "~" + Path.DirectorySeparatorChar + "Reports" + Path.DirectorySeparatorChar + "FeaturesReport.html")));
 }