main
1using System.Collections.Generic;
2using System.Linq;
3using Spec.Dox.Domain.Repositories;
4using Spec.Dox.Presentation.Views;
5
6namespace Spec.Dox.Presentation.Presenters
7{
8 public interface IReportPresenter
9 {
10 void Initialize(IEnumerable<string> command_line_arguments);
11 }
12
13 public class ReportPresenter : IReportPresenter
14 {
15 readonly IHtmlReport report;
16 readonly ITestContextRepository repository;
17
18 public ReportPresenter() : this(new HtmlReport(), new TestContextRepository()) {}
19
20 public ReportPresenter(IHtmlReport report, ITestContextRepository repository)
21 {
22 this.report = report;
23 this.repository = repository;
24 }
25
26 public void Initialize(IEnumerable<string> command_line_arguments)
27 {
28 foreach (var context in repository.All(command_line_arguments.ElementAt(0)))
29 report.Add(context, context.AllSpecifications());
30 report.publish_to_same_folder_as(command_line_arguments.ElementAt(0));
31 }
32 }
33}