main
1using System.Collections.Generic;
2using MbUnit.Framework;
3using Spec.Dox.Domain;
4using Spec.Dox.Domain.Repositories;
5using Spec.Dox.Presentation.Views;
6using Spec.Dox.Test;
7using Spec.Dox.Test.Extensions;
8using Spec.Dox.Test.MetaData;
9
10namespace Spec.Dox.Presentation.Presenters
11{
12 public interface ReportPresenterSpecs {}
13
14 [Concern(typeof (ReportPresenter))]
15 public class when_initializing_the_report_presenter : context_spec<IReportPresenter>
16 {
17 ITestContextRepository repository;
18 ITestContext context;
19 IHtmlReport view;
20 IList<ITestSpecification> specifications;
21 string[] args = new[] {"1", "2"};
22
23 protected override IReportPresenter EstablishContext()
24 {
25 repository = Dependency<ITestContextRepository>();
26 view = Dependency<IHtmlReport>();
27 context = Stub<ITestContext>();
28 specifications = new List<ITestSpecification>();
29
30 repository
31 .is_told_to(r => r.All("1"))
32 .Return(new List<ITestContext> {context});
33 context
34 .is_told_to(c => c.AllSpecifications())
35 .Return(specifications);
36
37 return new ReportPresenter(view, repository);
38 }
39
40 protected override void Because()
41 {
42 sut.Initialize(args);
43 }
44
45 [Test]
46 public void should_retrieve_each_of_the_specification_that_belong_to_the_context()
47 {
48 context.received(c => c.AllSpecifications());
49 }
50
51 [Test]
52 public void should_display_the_specification_for_each_context()
53 {
54 view.received(v => v.Add(context, specifications));
55 }
56
57 [Test]
58 public void should_generate_the_report()
59 {
60 view.received(v => v.publish_to_same_folder_as("1"));
61 }
62 }
63}