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));
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 7
0
        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));
        }
Ejemplo n.º 9
0
        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()));
        }
Ejemplo n.º 13
0
 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);
        }
Ejemplo n.º 15
0
        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);
        }
Ejemplo n.º 16
0
        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));
        }
Ejemplo n.º 17
0
        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);
        }
Ejemplo n.º 18
0
        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());
        }