public async Task CalculateAsync_WhenCalled_AssertCalculateAsyncWasCalledOnEachAccount() { IAccountCollectionBase <IAccount, Sut> sut = CreateSut(); IEnumerable <Mock <IAccount> > accountMockCollection = new List <Mock <IAccount> > { _fixture.BuildAccountMock(), _fixture.BuildAccountMock(), _fixture.BuildAccountMock(), _fixture.BuildAccountMock(), _fixture.BuildAccountMock(), _fixture.BuildAccountMock(), _fixture.BuildAccountMock() }; sut.Add(accountMockCollection.Select(accountMock => accountMock.Object).ToArray()); DateTime statusDate = DateTime.Now.AddDays(_random.Next(1, 365) * -1); await sut.CalculateAsync(statusDate); foreach (Mock <IAccount> accountMock in accountMockCollection) { accountMock.Verify(m => m.CalculateAsync(It.Is <DateTime>(value => value == statusDate.Date)), Times.Once); } }
public void Add_WhenAccountCollectionIsNotNullAndOneAccountDoesExistWithinCollection_ThrowsIntranetSystemException() { IAccountCollectionBase <IAccount, Sut> sut = CreateSut(); IList <IAccount> accountCollection = new List <IAccount> { _fixture.BuildAccountMock().Object, _fixture.BuildAccountMock().Object, _fixture.BuildAccountMock().Object, _fixture.BuildAccountMock().Object, _fixture.BuildAccountMock().Object, _fixture.BuildAccountMock().Object, _fixture.BuildAccountMock().Object }; IAccount existingAccount = accountCollection[_random.Next(0, accountCollection.Count - 1)]; sut.Add(existingAccount); IntranetSystemException result = Assert.Throws <IntranetSystemException>(() => sut.Add(accountCollection)); // ReSharper disable PossibleNullReferenceException Assert.That(result.Message.Contains(existingAccount.GetType().Name), Is.True); Assert.That(result.ErrorCode, Is.EqualTo(ErrorCode.ObjectAlreadyExists)); Assert.That(result.InnerException, Is.Null); // ReSharper restore PossibleNullReferenceException }
public async Task CalculateAsync_WhenCalled_AssertCalculateWasCalledOnSut() { IAccountCollectionBase <IAccount, Sut> sut = CreateSut(); Sut result = await sut.CalculateAsync(DateTime.Now.AddDays(_random.Next(1, 365) * -1)); Assert.That(result.CalculateWasCalled, Is.True); }
public async Task CalculateAsync_WhenCalled_ReturnsSameAccountCollectionBase() { IAccountCollectionBase <IAccount, Sut> sut = CreateSut(); IAccountCollectionBase <IAccount, Sut> result = await sut.CalculateAsync(DateTime.Now.AddDays(_random.Next(1, 365) * -1)); Assert.That(result, Is.SameAs(sut)); }
public async Task CalculateAsync_WhenCalled_AssertCalculateWasCalledWithSameStatusDate() { IAccountCollectionBase <IAccount, Sut> sut = CreateSut(); DateTime statusDate = DateTime.Now.AddDays(_random.Next(1, 365) * -1); Sut result = await sut.CalculateAsync(statusDate); Assert.That(result.CalculateCalledWithStatusDate, Is.EqualTo(statusDate.Date)); }
public async Task CalculateAsync_WhenCalledMultipleTimesWithSameStatusDate_ReturnsSameAccountCollectionBase() { IAccountCollectionBase <IAccount, Sut> sut = CreateSut(); DateTime statusDate = DateTime.Now.AddDays(_random.Next(1, 365) * -1); IAccountCollectionBase <IAccount, Sut> result = await((IAccountCollectionBase <IAccount, Sut>)await((IAccountCollectionBase <IAccount, Sut>) await sut.CalculateAsync(statusDate)).CalculateAsync(statusDate)).CalculateAsync(statusDate); Assert.That(result, Is.SameAs(sut)); }
public async Task CalculateAsync_WhenCalledMultipleTimesWithSameStatusDate_AssertAlreadyCalculatedWasCalledTwiceOnSut() { IAccountCollectionBase <IAccount, Sut> sut = CreateSut(); DateTime statusDate = DateTime.Now.AddDays(_random.Next(1, 365) * -1); Sut result = await((IAccountCollectionBase <IAccount, Sut>)await((IAccountCollectionBase <IAccount, Sut>) await sut.CalculateAsync(statusDate)).CalculateAsync(statusDate)).CalculateAsync(statusDate); Assert.That(result.AlreadyCalculatedWasCalledTimes, Is.EqualTo(2)); }
public async Task CalculateAsync_WhenCalled_ReturnsSameAccountCollectionBaseWhereStatusDateEqualDateFromCall() { IAccountCollectionBase <IAccount, Sut> sut = CreateSut(); DateTime statusDate = DateTime.Now.AddDays(_random.Next(1, 365) * -1); IAccountCollectionBase <IAccount, Sut> result = await sut.CalculateAsync(statusDate); Assert.That(result.StatusDate, Is.EqualTo(statusDate.Date)); }
public void Add_WhenAccountCollectionIsNull_ThrowsArgumentNullException() { IAccountCollectionBase <IAccount, Sut> sut = CreateSut(); ArgumentNullException result = Assert.Throws <ArgumentNullException>(() => sut.Add((IEnumerable <IAccount>)null)); // ReSharper disable PossibleNullReferenceException Assert.That(result.ParamName, Is.EqualTo("accountCollection")); // ReSharper restore PossibleNullReferenceException }
public void Add_WhenAccountIsNotNullAndDoesNotExistWithinCollection_AddsAccountToCollection() { IAccountCollectionBase <IAccount, Sut> sut = CreateSut(); IAccount account = _fixture.BuildAccountMock().Object; sut.Add(account); Assert.That(sut.Contains(account), Is.True); }
public void Add_WhenAccountIsNotNullAndDoesExistWithinCollection_ThrowsIntranetSystemException() { IAccountCollectionBase <IAccount, Sut> sut = CreateSut(); IAccount account = _fixture.BuildAccountMock().Object; sut.Add(account); IntranetSystemException result = Assert.Throws <IntranetSystemException>(() => sut.Add(account)); // ReSharper disable PossibleNullReferenceException Assert.That(result.Message.Contains(account.GetType().Name), Is.True); Assert.That(result.ErrorCode, Is.EqualTo(ErrorCode.ObjectAlreadyExists)); Assert.That(result.InnerException, Is.Null); // ReSharper restore PossibleNullReferenceException }
public void Add_WhenAccountCollectionIsNotNullAndEachAccountDoesNotExistWithinCollection_AddsEachAccountToCollection() { IAccountCollectionBase <IAccount, Sut> sut = CreateSut(); IEnumerable <IAccount> accountCollection = new List <IAccount> { _fixture.BuildAccountMock().Object, _fixture.BuildAccountMock().Object, _fixture.BuildAccountMock().Object, _fixture.BuildAccountMock().Object, _fixture.BuildAccountMock().Object, _fixture.BuildAccountMock().Object, _fixture.BuildAccountMock().Object }; sut.Add(accountCollection); Assert.That(accountCollection.All(account => sut.Contains(account)), Is.True); }
public async Task CalculateAsync_WhenCalled_AssertCalculateWasCalledWithCalculatedAccountCollection() { IAccountCollectionBase <IAccount, Sut> sut = CreateSut(); IEnumerable <IAccount> calculatedAccountCollection = new List <IAccount> { _fixture.BuildAccountMock().Object, _fixture.BuildAccountMock().Object, _fixture.BuildAccountMock().Object, _fixture.BuildAccountMock().Object, _fixture.BuildAccountMock().Object, _fixture.BuildAccountMock().Object, _fixture.BuildAccountMock().Object }; sut.Add(calculatedAccountCollection.Select(calculatedAccount => _fixture.BuildAccountMock(calculatedAccount: calculatedAccount).Object).ToArray()); DateTime statusDate = DateTime.Now.AddDays(_random.Next(1, 365) * -1); Sut result = await sut.CalculateAsync(statusDate); Assert.That(result.CalculateCalledWithCalculatedAccountCollection.All(calculatedAccount => calculatedAccountCollection.Contains(calculatedAccount)), Is.True); }