public void Validate_WhenCalled_ReturnsValidator() { IGetPostalCodeCollectionQuery sut = CreateSut(); IValidator result = sut.Validate(_validatorMockContext.ValidatorMock.Object, _contactRepositoryMock.Object); Assert.That(result, Is.EqualTo(_validatorMockContext.ValidatorMock.Object)); }
public void Validate_WhenContactRepositoryIsNull_ThrowsArgumentNullException() { IGetPostalCodeCollectionQuery sut = CreateSut(); ArgumentNullException result = Assert.Throws <ArgumentNullException>(() => sut.Validate(_validatorMockContext.ValidatorMock.Object, null)); Assert.That(result.ParamName, Is.EqualTo("contactRepository")); }
public async Task QueryAsync_WhenCalledAndPostalCodeCollectionWasNotReturnedFromContactRepository_AssertApplyLogicForPrincipalWasNotCalledOnCountryHelperForAnyPostalCode() { QueryHandler sut = CreateSut(false); IGetPostalCodeCollectionQuery query = CreateQueryMock().Object; await sut.QueryAsync(query); _countryHelperMock.Verify(m => m.ApplyLogicForPrincipal(It.IsAny <ICountry>()), Times.Never); }
public async Task QueryAsync_WhenCalled_AssertGetPostalCodesAsyncWasCalledOnContactRepository() { QueryHandler sut = CreateSut(); string countryCode = _fixture.Create <string>(); IGetPostalCodeCollectionQuery query = CreateQueryMock(countryCode).Object; await sut.QueryAsync(query); _contactRepositoryMock.Verify(m => m.GetPostalCodesAsync(It.Is <string>(value => string.CompareOrdinal(value, countryCode) == 0)), Times.Once); }
public async Task QueryAsync_WhenCalledAndPostalCodeCollectionWasReturnedFromContactRepository_ReturnsPostalCodeCollectionFromContactRepository() { IEnumerable <IPostalCode> postalCodeCollection = _fixture.CreateMany <IPostalCode>(_random.Next(10, 25)).ToList(); QueryHandler sut = CreateSut(postalCodeCollection: postalCodeCollection); IGetPostalCodeCollectionQuery query = CreateQueryMock().Object; IEnumerable <IPostalCode> result = await sut.QueryAsync(query); Assert.That(result, Is.EqualTo(postalCodeCollection)); }
public async Task QueryAsync_WhenCalledAndPostalCodeCollectionWasNotReturnedFromContactRepository_ReturnsEmptyPostalCodeCollection() { QueryHandler sut = CreateSut(false); IGetPostalCodeCollectionQuery query = CreateQueryMock().Object; IList <IPostalCode> result = (await sut.QueryAsync(query)).ToList(); Assert.That(result, Is.Not.Null); Assert.That(result, Is.Empty); }
public async Task QueryAsync_WhenCalledAndPostalCodeCollectionWasReturnedFromContactRepository_AssertApplyLogicForPrincipalWasCalledOnCountryHelperForEachPostalCodeFromContactRepository() { IEnumerable <IPostalCode> postalCodeCollection = _fixture.CreateMany <IPostalCode>(_random.Next(10, 25)).ToList(); QueryHandler sut = CreateSut(postalCodeCollection: postalCodeCollection); IGetPostalCodeCollectionQuery query = CreateQueryMock().Object; await sut.QueryAsync(query); foreach (IPostalCode postalCode in postalCodeCollection) { _countryHelperMock.Verify(m => m.ApplyLogicForPrincipal(It.Is <ICountry>(value => value == postalCode.Country)), Times.Once); } }
public void Validate_WhenCalled_AssertShouldBeKnownValueWasCalledOnObjectValidator() { string countryCode = _fixture.Create <string>(); IGetPostalCodeCollectionQuery sut = CreateSut(countryCode); sut.Validate(_validatorMockContext.ValidatorMock.Object, _contactRepositoryMock.Object); _validatorMockContext.ObjectValidatorMock.Verify(m => m.ShouldBeKnownValue( It.Is <string>(value => string.CompareOrdinal(value, countryCode.ToUpper()) == 0), It.IsNotNull <Func <string, Task <bool> > >(), It.Is <Type>(value => sut.GetType() == value), It.Is <string>(value => string.CompareOrdinal(value, "CountryCode") == 0), It.Is <bool>(value => value == false)), Times.Once()); }
public async Task QueryAsync_WhenCalledAndPostalCodeCollectionWasNotReturnedFromContactRepository_AssertCountrySetterWasNotCalledOnAnyPostalCode() { IEnumerable <Mock <IPostalCode> > postalCodeMockCollection = new List <Mock <IPostalCode> > { _fixture.BuildPostalCodeMock(), _fixture.BuildPostalCodeMock(), _fixture.BuildPostalCodeMock() }; QueryHandler sut = CreateSut(false, postalCodeMockCollection.Select(m => m.Object).ToList()); IGetPostalCodeCollectionQuery query = CreateQueryMock().Object; await sut.QueryAsync(query); foreach (Mock <IPostalCode> postalCodeMock in postalCodeMockCollection) { postalCodeMock.VerifySet(m => m.Country = It.IsAny <ICountry>(), Times.Never); } }
public async Task QueryAsync_WhenCalledAndPostalCodeCollectionWasReturnedFromContactRepository_AssertCountrySetterWasCalledOnEachPostalCodeFromContactRepository() { IEnumerable <Mock <IPostalCode> > postalCodeMockCollection = new List <Mock <IPostalCode> > { _fixture.BuildPostalCodeMock(), _fixture.BuildPostalCodeMock(), _fixture.BuildPostalCodeMock() }; ICountry country = _fixture.BuildCountryMock().Object; QueryHandler sut = CreateSut(postalCodeCollection: postalCodeMockCollection.Select(m => m.Object).ToList(), country: country); IGetPostalCodeCollectionQuery query = CreateQueryMock().Object; await sut.QueryAsync(query); foreach (Mock <IPostalCode> postalCodeMock in postalCodeMockCollection) { postalCodeMock.VerifySet(m => m.Country = It.Is <ICountry>(value => value == country), Times.Once); } }
public async Task <IEnumerable <IPostalCode> > QueryAsync(IGetPostalCodeCollectionQuery query) { NullGuard.NotNull(query, nameof(query)); query.Validate(_validator, _contactRepository); IEnumerable <IPostalCode> postalCodes = await _contactRepository.GetPostalCodesAsync(query.CountryCode); if (postalCodes == null) { return(new List <IPostalCode>(0)); } return(postalCodes.Select(postalCode => { postalCode.Country = _countryHelper.ApplyLogicForPrincipal(postalCode.Country); return postalCode; }) .ToList()); }