public async Task CalculateAsync_WhenCalled_AssertCalculateAsyncWasNotCalledOnAnyPostingLineWhereStatusDateMatchesStatusDateFromArgument() { IPostingLineCollection sut = CreateSut(); DateTime statusDate = DateTime.Now.AddDays(_random.Next(1, 365) * -1); IEnumerable <Mock <IPostingLine> > postingLineMockCollection = new List <Mock <IPostingLine> > { _fixture.BuildPostingLineMock(statusDate: statusDate), _fixture.BuildPostingLineMock(statusDate: statusDate), _fixture.BuildPostingLineMock(statusDate: statusDate), _fixture.BuildPostingLineMock(statusDate: statusDate), _fixture.BuildPostingLineMock(statusDate: statusDate), _fixture.BuildPostingLineMock(statusDate: statusDate), _fixture.BuildPostingLineMock(statusDate: statusDate) }; sut.Add(postingLineMockCollection.Select(postingLineMock => postingLineMock.Object).ToArray()); await sut.CalculateAsync(statusDate); foreach (Mock <IPostingLine> postingLineMock in postingLineMockCollection) { postingLineMock.Verify(m => m.CalculateAsync(It.IsAny <DateTime>()), Times.Never); } }
public async Task CalculateAsync_WhenCalled_AssertStatusDateWasCalledTreeTimesOnEachPostingLine() { IPostingLineCollection sut = CreateSut(); IEnumerable <Mock <IPostingLine> > postingLineMockCollection = new List <Mock <IPostingLine> > { _fixture.BuildPostingLineMock(statusDate: DateTime.MinValue), _fixture.BuildPostingLineMock(statusDate: DateTime.MinValue), _fixture.BuildPostingLineMock(statusDate: DateTime.MinValue), _fixture.BuildPostingLineMock(statusDate: DateTime.MinValue), _fixture.BuildPostingLineMock(statusDate: DateTime.MinValue), _fixture.BuildPostingLineMock(statusDate: DateTime.MinValue), _fixture.BuildPostingLineMock(statusDate: DateTime.MinValue) }; sut.Add(postingLineMockCollection.Select(postingLineMock => postingLineMock.Object).ToArray()); DateTime statusDate = DateTime.Now.AddDays(_random.Next(1, 365) * -1); await sut.CalculateAsync(statusDate); foreach (Mock <IPostingLine> postingLineMock in postingLineMockCollection) { postingLineMock.Verify(m => m.StatusDate, Times.Exactly(3)); } }
public async Task CalculateAsync_WhenCalledMultipleTimesWithSameStatusDate_AssertCalculateAsyncWasCalledOnEachPostingLineWhereStatusDateDoesNotMatchStatusDateFromArgument() { IPostingLineCollection sut = CreateSut(); IEnumerable <Mock <IPostingLine> > postingLineMockCollection = new List <Mock <IPostingLine> > { _fixture.BuildPostingLineMock(statusDate: DateTime.MinValue), _fixture.BuildPostingLineMock(statusDate: DateTime.MinValue), _fixture.BuildPostingLineMock(statusDate: DateTime.MinValue), _fixture.BuildPostingLineMock(statusDate: DateTime.MinValue), _fixture.BuildPostingLineMock(statusDate: DateTime.MinValue), _fixture.BuildPostingLineMock(statusDate: DateTime.MinValue), _fixture.BuildPostingLineMock(statusDate: DateTime.MinValue) }; sut.Add(postingLineMockCollection.Select(postingLineMock => postingLineMock.Object).ToArray()); DateTime statusDate = DateTime.Now.AddDays(_random.Next(1, 365) * -1); await(await(await sut.CalculateAsync(statusDate)).CalculateAsync(statusDate)).CalculateAsync(statusDate); foreach (Mock <IPostingLine> postingLineMock in postingLineMockCollection) { postingLineMock.Verify(m => m.CalculateAsync(It.Is <DateTime>(value => value == statusDate.Date)), Times.Once); } }
public async Task CalculateAsync_WhenCalled_ReturnsSamePostingLineCollection() { IPostingLineCollection sut = CreateSut(); IPostingLineCollection result = await sut.CalculateAsync(DateTime.Now.AddDays(_random.Next(1, 365) * -1)); Assert.That(result, Is.SameAs(sut)); }
public async Task CalculateAsync_WhenCalledMultipleTimesWithSameStatusDate_ReturnsSamePostingLineCollection() { IPostingLineCollection sut = CreateSut(); DateTime statusDate = DateTime.Now.AddDays(_random.Next(1, 365) * -1); IPostingLineCollection result = await(await(await sut.CalculateAsync(statusDate)).CalculateAsync(statusDate)).CalculateAsync(statusDate); Assert.That(result, Is.SameAs(sut)); }
public async Task CalculateAsync_WhenCalled_ReturnsSamePostingLineCollectionWhereStatusDateEqualDateFromCall() { IPostingLineCollection sut = CreateSut(); DateTime statusDate = DateTime.Now.AddDays(_random.Next(1, 365) * -1); IPostingLineCollection result = await sut.CalculateAsync(statusDate); Assert.That(result.StatusDate, Is.EqualTo(statusDate.Date)); }