private Controller CreateSut(IPostalCode postalCode = null) { _queryBusMock.Setup(m => m.QueryAsync <IGetPostalCodeQuery, IPostalCode>(It.IsAny <IGetPostalCodeQuery>())) .Returns(Task.Run(() => postalCode ?? _fixture.BuildPostalCodeMock().Object)); return(new Controller(_commandBusMock.Object, _queryBusMock.Object, _claimResolverMock.Object, _tokenHelperFactoryMock.Object)); }
public void ToDomain_WhenCalled_ReturnsPostalCode() { IPostalCodeCommand sut = CreateSut(); IPostalCode result = sut.ToDomain(_contactRepositoryMock.Object); Assert.That(result, Is.TypeOf <PostalCode>()); }
protected override async Task ManageRepositoryAsync(IUpdatePostalCodeCommand command) { NullGuard.NotNull(command, nameof(command)); IPostalCode postalCode = command.ToDomain(ContactRepository); await ContactRepository.UpdatePostalCodeAsync(postalCode); }
private Mock <ICreatePostalCodeCommand> CreateCommandMock(IPostalCode postalCode = null) { Mock <ICreatePostalCodeCommand> commandMock = new Mock <ICreatePostalCodeCommand>(); commandMock.Setup(m => m.ToDomain(It.IsAny <IContactRepository>())) .Returns(postalCode ?? _fixture.BuildPostalCodeMock().Object); return(commandMock); }
public async Task GetPostalCodeAsync_WhenCalled_ReturnsPostalCode() { IContactRepository sut = CreateSut(); IPostalCode result = await sut.GetPostalCodeAsync("DK", "2720"); Assert.That(result, Is.Not.Null); }
public async Task QueryAsync_WhenCalledAndPostalCodeWasNotReturnedFromContactRepository_ReturnsNull() { QueryHandler sut = CreateSut(false); IGetPostalCodeQuery query = CreateQueryMock().Object; IPostalCode result = await sut.QueryAsync(query); Assert.That(result, Is.Null); }
public async Task <IActionResult> ResolvePostalCode(string countryCode, string postalCode) { NullGuard.NotNullOrWhiteSpace(countryCode, nameof(countryCode)) .NotNullOrWhiteSpace(postalCode, nameof(postalCode)); IPostalCode postalCodeObj = await GetPostalCode(countryCode, postalCode); return(Ok(_contactViewModelConverter.Convert <IPostalCode, PostalCodeViewModel>(postalCodeObj))); }
private QueryHandler CreateSut(bool hasPostalCode = true, IPostalCode postalCode = null, ICountry country = null) { _contactRepositoryMock.Setup(m => m.GetPostalCodeAsync(It.IsAny <string>(), It.IsAny <string>())) .Returns(Task.Run(() => hasPostalCode ? postalCode ?? _fixture.BuildPostalCodeMock().Object : null)); _countryHelperMock.Setup(m => m.ApplyLogicForPrincipal(It.IsAny <ICountry>())) .Returns(country ?? _fixture.BuildCountryMock().Object); return(new QueryHandler(_validatorMock.Object, _contactRepositoryMock.Object, _countryHelperMock.Object)); }
protected override Task OnUpdateAsync(IPostalCode postalCode, PostalCodeModel postalCodeModel) { NullGuard.NotNull(postalCode, nameof(postalCode)) .NotNull(postalCodeModel, nameof(postalCodeModel)); postalCodeModel.City = postalCode.City; postalCodeModel.State = postalCode.State; return(Task.CompletedTask); }
public async Task ExecuteAsync_WhenCalled_AssertCreatePostalCodeAsyncWasCalledOnContactRepository() { CommandHandler sut = CreateSut(); IPostalCode postalCode = _fixture.BuildPostalCodeMock().Object; ICreatePostalCodeCommand command = CreateCommandMock(postalCode).Object; await sut.ExecuteAsync(command); _contactRepositoryMock.Verify(m => m.CreatePostalCodeAsync(It.Is <IPostalCode>(value => value == postalCode)), Times.Once); }
public async Task QueryAsync_WhenCalledAndPostalCodeWasReturnedFromContactRepository_ReturnsPostalCodeCollectionFromContactRepository() { IPostalCode postalCode = _fixture.BuildPostalCodeMock().Object; QueryHandler sut = CreateSut(postalCode: postalCode); IGetPostalCodeQuery query = CreateQueryMock().Object; IPostalCode result = await sut.QueryAsync(query); Assert.That(result, Is.EqualTo(postalCode)); }
public Task <IPostalCode> UpdatePostalCodeAsync(IPostalCode postalCode) { NullGuard.NotNull(postalCode, nameof(postalCode)); return(ExecuteAsync(async() => { using PostalCodeModelHandler postalCodeModelHandler = new PostalCodeModelHandler(DbContext, ContactModelConverter.Create()); return await postalCodeModelHandler.UpdateAsync(postalCode); }, MethodBase.GetCurrentMethod())); }
public SimplePostalAddress(string addressee, IStreetAddress streetAddress, ILocality locality, IAdministrativeRegion administrativeRegion, IPostalCode postalCode, RegionInfo country, double?latitude, double?longtitude) { Addressee = addressee; StreetAddress = streetAddress; Locality = locality; AdministrativeRegion = administrativeRegion; PostalCode = postalCode; Country = country; Latitude = latitude; Longtitude = longtitude; }
public async Task QueryAsync_WhenCalledAndPostalCodeWasReturnedFromContactRepository_AssertApplyLogicForPrincipalWasCalledOnCountryHelper() { ICountry country = _fixture.Create <ICountry>(); IPostalCode postalCode = _fixture.BuildPostalCodeMock(country).Object; QueryHandler sut = CreateSut(postalCode: postalCode); IGetPostalCodeQuery query = CreateQueryMock().Object; await sut.QueryAsync(query); _countryHelperMock.Verify(m => m.ApplyLogicForPrincipal(It.Is <ICountry>(value => value == country)), Times.Once); }
protected override async Task <PostalCodeModel> OnCreateAsync(IPostalCode postalCode, PostalCodeModel postalCodeModel) { NullGuard.NotNull(postalCode, nameof(postalCode)) .NotNull(postalCodeModel, nameof(postalCodeModel)); CountryModel countryModel = await DbContext.Countries.SingleAsync(m => m.Code == postalCode.Country.Code); postalCodeModel.CountryCode = countryModel.Code; postalCodeModel.Country = countryModel; return(postalCodeModel); }
public async Task <IActionResult> UpdatePostalCode(string countryCode, string postalCode) { NullGuard.NotNullOrWhiteSpace(countryCode, nameof(countryCode)) .NotNullOrWhiteSpace(postalCode, nameof(postalCode)); IPostalCode postalCodeObj = await GetPostalCode(countryCode, postalCode); PostalCodeViewModel postalCodeViewModel = _contactViewModelConverter.Convert <IPostalCode, PostalCodeViewModel>(postalCodeObj); postalCodeViewModel.EditMode = EditMode.Edit; return(View("UpdatePostalCode", postalCodeViewModel)); }
private Controller CreateSut(IPostalCode postalCode = null, bool modelIsValid = true) { _queryBusMock.Setup(m => m.QueryAsync <IGetPostalCodeQuery, IPostalCode>(It.IsAny <IGetPostalCodeQuery>())) .Returns(Task.Run(() => postalCode ?? _fixture.BuildPostalCodeMock().Object)); _commandBusMock.Setup(m => m.PublishAsync(It.IsAny <IUpdatePostalCodeCommand>())) .Returns(Task.CompletedTask); Controller controller = new Controller(_commandBusMock.Object, _queryBusMock.Object, _claimResolverMock.Object, _tokenHelperFactoryMock.Object); if (modelIsValid == false) { controller.ModelState.AddModelError(_fixture.Create <string>(), _fixture.Create <string>()); } return(controller); }
public async Task UpdatePostalCode_WhenCalledWithCountryCodeAndPostalCode_ReturnsViewResultWhereModelIsPostalCodeViewModel() { string countryCode = _fixture.Create <string>(); string postalCode = _fixture.Create <string>(); string city = _fixture.Create <string>(); string state = _fixture.Create <string>(); ICountry country = _fixture.BuildCountryMock(countryCode).Object; IPostalCode postalCodeObj = _fixture.BuildPostalCodeMock(country, postalCode, city, state).Object; Controller sut = CreateSut(postalCodeObj); ViewResult result = (ViewResult)await sut.UpdatePostalCode(_fixture.Create <string>(), _fixture.Create <string>()); Assert.That(result.Model, Is.TypeOf <PostalCodeViewModel>()); PostalCodeViewModel postalCodeViewModel = (PostalCodeViewModel)result.Model; Assert.That(postalCodeViewModel, Is.Not.Null); Assert.That(postalCodeViewModel.Country, Is.Not.Null); Assert.That(postalCodeViewModel.Country.Code, Is.EqualTo(countryCode)); Assert.That(postalCodeViewModel.Code, Is.EqualTo(postalCode)); Assert.That(postalCodeViewModel.City, Is.EqualTo(city)); Assert.That(postalCodeViewModel.State, Is.EqualTo(state)); Assert.That(postalCodeViewModel.EditMode, Is.EqualTo(EditMode.Edit)); }
internal static IPostalCode GetPostalCode(this string code, string countryCode, IContactRepository contactRepository, ref IPostalCode postalCode) { NullGuard.NotNullOrWhiteSpace(code, nameof(code)) .NotNullOrWhiteSpace(countryCode, nameof(countryCode)) .NotNull(contactRepository, nameof(contactRepository)); return(postalCode ??= contactRepository.GetPostalCodeAsync(countryCode, code).GetAwaiter().GetResult()); }