using System; using Moq; using QuoteManager.Domain; using Xunit; namespace QuoteManager.QuoteFormRequirements { public class WhenUserOpensForm { protected Mock quoteFormViewMock; protected QuoteFormPresenter sut; public WhenUserOpensForm() { this.Given(); this.When(); } public virtual void Given() { this.quoteFormViewMock = new Mock(); this.sut = new QuoteFormPresenter(this.quoteFormViewMock.Object); } public virtual void When() { this.quoteFormViewMock.Raise(view => view.Load += null, null, EventArgs.Empty); } [Fact] public void ShouldDisplayQuote() { this.quoteFormViewMock.Verify(view => view.DisplayQuote(It.IsAny())); } [Fact] public void ShouldMakeEditButtonVisisble() { this.quoteFormViewMock.Verify(view => view.MakeEditButtonVisible(true)); } [Fact] public void ShouldMakeOKButtonInvisible() { this.quoteFormViewMock.Verify(view => view.MakeOKButtonVisible(false)); } [Fact] public void ShouldMakeCancelButtonInvisible() { this.quoteFormViewMock.Verify(view => view.MakeCancelButtonVisible(false)); } [Fact] public void ShouldMakeQuoteNotEditable() { this.quoteFormViewMock.Verify(view => view.MakeQuoteEditable(false)); } } }