public async Task WHEN_passing_valid_arguments_SHOULD_create_viewmodel()
        {
            //Arrange
            var address = MockAddressFactory.CreateRandom();

            var mockedCustomerAddressRepository = new Mock <ICustomerAddressRepository>();

            mockedCustomerAddressRepository.Setup(r => r.CreateAddressAsync(It.IsAny <Guid>(), It.IsAny <Address>(),
                                                                            It.IsAny <string>()))
            .ReturnsAsync(address);

            _container.Use(mockedCustomerAddressRepository);

            var customerViewService = _container.CreateInstance <CustomerAddressViewService>();

            //Act
            var viewModel = await customerViewService.CreateAddressAsync(new CreateAddressParam
            {
                ReturnUrl   = GetRandom.String(32),
                Scope       = GetRandom.String(32),
                CustomerId  = Guid.NewGuid(),
                CultureInfo = TestingExtensions.GetRandomCulture(),
                EditAddress = new EditAddressRequest()
            });

            //Assert
            viewModel.Should().NotBeNull("This view model should never be null");
            viewModel.FirstName.Should().Be(address.FirstName);
        }
Beispiel #2
0
        public async Task WHEN_passing_valid_arguments_SHOULD_create_viewmodel()
        {
            //Arrange
            var customer = MockCustomerFactory.CreateRandom();
            var address  = MockAddressFactory.CreateRandom();

            customer.AddressIds = new List <Guid>
            {
                address.Id
            };

            var mockedCustomerRepository = new Mock <ICustomerRepository>();

            mockedCustomerRepository.Setup(r => r.GetCustomerByIdAsync(It.IsAny <GetCustomerByIdParam>()))
            .ReturnsAsync(customer);
            _container.Use(mockedCustomerRepository);

            var mockedAddressRepository = new Mock <IAddressRepository>();

            mockedAddressRepository.Setup(r => r.GetAddressByIdAsync(It.IsAny <Guid>()))
            .ReturnsAsync(address);
            _container.Use(mockedAddressRepository);


            var customerViewService = _container.CreateInstance <CustomerAddressViewService>();

            //Act
            var param = new GetEditAddressViewModelAsyncParam
            {
                Scope       = GetRandom.String(32),
                CustomerId  = Guid.NewGuid(),
                CultureInfo = TestingExtensions.GetRandomCulture(),
                AddressId   = address.Id,
            };

            var viewModel = await customerViewService.GetEditAddressViewModelAsync(param);

            //Assert
            viewModel.Should().NotBeNull();
            viewModel.FirstName.ShouldBeEquivalentTo(address.FirstName);
            viewModel.LastName.ShouldBeEquivalentTo(address.LastName);
            viewModel.PhoneNumber.ShouldBeEquivalentTo(address.PhoneNumber);
            viewModel.PhoneRegex.Should().NotBeNull();
            viewModel.PostalCodeRegex.Should().NotBeNull();
        }
        public async Task WHEN_passing_valid_arguments_SHOULD_create_viewmodel()
        {
            //Arrange
            var address  = MockAddressFactory.CreateRandom();
            var customer = MockCustomerFactory.CreateRandom();

            customer.Addresses = new List <Address>
            {
                address
            };

            var mockedCustomerAddressRepository = new Mock <ICustomerAddressRepository>();

            mockedCustomerAddressRepository.Setup(r => r.GetCustomerAddressesAsync(It.IsAny <Guid>(), It.IsAny <string>()))
            .ReturnsAsync(new List <Address> {
                address
            });
            _container.Use(mockedCustomerAddressRepository);

            var mockedCustomerRepository = new Mock <ICustomerRepository>();

            mockedCustomerRepository.Setup(r => r.GetCustomerByIdAsync(It.IsAny <GetCustomerByIdParam>()))
            .ReturnsAsync(customer);
            _container.Use(mockedCustomerRepository);

            var customerViewService = _container.CreateInstance <CustomerAddressViewService>();

            //Act
            var param = new GetAddressListViewModelParam
            {
                Scope              = GetRandom.String(32),
                CustomerId         = Guid.NewGuid(),
                CultureInfo        = TestingExtensions.GetRandomCulture(),
                AddAddressUrl      = GetRandom.String(32),
                EditAddressBaseUrl = GetRandom.String(32),
                CountryCode        = GetRandom.String(32)
            };

            var viewModel = await customerViewService.GetAddressListViewModelAsync(param);

            //Assert
            viewModel.Should().NotBeNull("This view model should never be null");
            viewModel.AddAddressUrl.ShouldBeEquivalentTo(param.AddAddressUrl);
            viewModel.Addresses.First().AddressName.ShouldBeEquivalentTo(address.AddressName);
        }
        public async Task WHEN_passing_valid_arguments_SHOULD_create_viewmodel()
        {
            //Arrange
            var address  = MockAddressFactory.CreateRandom();
            var customer = MockCustomerFactory.CreateRandom();

            customer.AddressIds = new List <Guid>
            {
                address.Id
            };

            var mockedCustomerRepository = new Mock <ICustomerRepository>();

            mockedCustomerRepository.Setup(r => r.GetCustomerByIdAsync(It.IsAny <GetCustomerByIdParam>())).ReturnsAsync(customer);
            _container.Use(mockedCustomerRepository);

            var mockedCustomerAddressRepository = new Mock <ICustomerAddressRepository>();

            mockedCustomerAddressRepository.Setup(r => r.UpdateAddressAsync(It.IsAny <Guid>(), It.IsAny <Address>())).ReturnsAsync(address);
            _container.Use(mockedCustomerAddressRepository);

            var mockedAddressRepository = new Mock <IAddressRepository>();

            mockedAddressRepository.Setup(r => r.GetAddressByIdAsync(It.IsAny <Guid>())).ReturnsAsync(address);
            _container.Use(mockedAddressRepository);

            var customerViewService = _container.CreateInstance <CustomerAddressViewService>();

            //Act
            var param = new EditAddressParam
            {
                Scope       = GetRandom.String(32),
                CustomerId  = Guid.NewGuid(),
                CultureInfo = TestingExtensions.GetRandomCulture(),
                AddressId   = address.Id,
                ReturnUrl   = GetRandom.String(32),
                EditAddress = new EditAddressRequest()
            };

            var viewModel = await customerViewService.UpdateAddressAsync(param);

            //Assert
            viewModel.Should().NotBeNull();
            viewModel.Status.ShouldBeEquivalentTo(MyAccountStatus.Success.ToString());
        }
        public async Task WHEN_address_does_not_belong_to_the_customer_SHOULD_return_null()
        {
            //Arrange
            var address  = MockAddressFactory.CreateRandom();
            var customer = MockCustomerFactory.CreateRandom();

            customer.AddressIds = new List <Guid>
            {
                //no address
            };

            var mockedCustomerRepository = new Mock <ICustomerRepository>();

            mockedCustomerRepository.Setup(r => r.GetCustomerByIdAsync(It.IsAny <GetCustomerByIdParam>())).ReturnsAsync(customer);
            _container.Use(mockedCustomerRepository);

            var mockedCustomerAddressRepository = new Mock <ICustomerAddressRepository>();

            mockedCustomerAddressRepository.Setup(r => r.UpdateAddressAsync(It.IsAny <Guid>(), It.IsAny <Address>())).ReturnsAsync(address);
            _container.Use(mockedCustomerAddressRepository);

            var mockedAddressRepository = new Mock <IAddressRepository>();

            mockedAddressRepository.Setup(r => r.GetAddressByIdAsync(It.IsAny <Guid>())).ReturnsAsync(address);
            _container.Use(mockedAddressRepository);

            var customerViewService = _container.CreateInstance <CustomerAddressViewService>();

            //Act
            var param = new EditAddressParam
            {
                Scope       = GetRandom.String(32),
                CustomerId  = Guid.NewGuid(),
                CultureInfo = TestingExtensions.GetRandomCulture(),
                AddressId   = address.Id,
                ReturnUrl   = GetRandom.String(32),
                EditAddress = new EditAddressRequest()
            };

            var viewModel = await customerViewService.UpdateAddressAsync(param);

            //Assert
            viewModel.Should().BeNull();
        }
        public async Task WHEN_valid_request_SHOULD_succeed()
        {
            //Arrange
            var customerId = GetRandom.Guid();
            var address    = MockAddressFactory.CreateRandom();

            var customerRepository = _container.CreateInstance <CustomerAddressRepository>();

            _container.GetMock <IOvertureClient>()
            .Setup(r => r.SendAsync(It.IsAny <UpdateAddressRequest>()))
            .ReturnsAsync(address);

            //Act
            var result = await customerRepository.UpdateAddressAsync(customerId, address).ConfigureAwait(false);

            //Assert
            result.Should().NotBeNull();
            result.Line1.ShouldBeEquivalentTo(address.Line1);
        }
        public async Task WHEN_create_address_SHOULD_add_cache_entry()
        {
            //Arrange
            var customerId = GetRandom.Guid();
            var scope      = GetRandom.String(32);
            var address    = MockAddressFactory.CreateRandom();

            _container.GetMock <IOvertureClient>()
            .Setup(r => r.SendAsync(It.Is <AddAddressToCustomerRequest>(
                                        param => param.CustomerId == customerId &&
                                        param.ScopeId == scope)))
            .ReturnsAsync(address);

            //Act
            await _customerRepository.CreateAddressAsync(customerId, address, scope).ConfigureAwait(false);

            //Assert
            //3.8 upgrade
            _container.GetMock <ICacheProvider>().Verify(provider => provider.SetAsync(It.IsAny <CacheKey>(), It.IsAny <Address>(), It.IsAny <CacheKey>()), Times.Once);
        }
        public async Task WHEN_valid_request_SHOULD_succeed()
        {
            //Arrange
            var customerId = GetRandom.Guid();
            var scope      = GetRandom.String(32);
            var address    = MockAddressFactory.CreateRandom();

            _container.GetMock <IOvertureClient>()
            .Setup(r => r.SendAsync(It.Is <AddAddressToCustomerRequest>(
                                        param => param.CustomerId == customerId &&
                                        param.ScopeId == scope)))
            .ReturnsAsync(address);

            //Act
            var result = await _customerRepository.CreateAddressAsync(customerId, address, scope).ConfigureAwait(false);

            //Assert
            result.Should().NotBeNull();
            result.Line1.ShouldBeEquivalentTo(address.Line1);
        }
        public async Task WHEN_update_address_SHOULD_replace_cache_entry()
        {
            //Arrange
            var customerId = GetRandom.Guid();
            var address    = MockAddressFactory.CreateRandom();

            var customerRepository = _container.CreateInstance <CustomerAddressRepository>();

            _container.GetMock <IOvertureClient>()
            .Setup(r => r.SendAsync(It.IsAny <UpdateAddressRequest>()))
            .ReturnsAsync(address);

            //Act
            await customerRepository.UpdateAddressAsync(customerId, address).ConfigureAwait(false);

            //Assert
            //3.8 upgrade
            _container
            .GetMock <ICacheProvider>()
            .Verify(provider => provider.SetAsync(It.IsAny <CacheKey>(), It.IsAny <Address>(), It.IsAny <CacheKey>()), Times.Once);
        }
Beispiel #10
0
        public async Task WHEN_passing_valid_arguments_SHOULD_create_viewmodel()
        {
            //Arrange
            var address  = MockAddressFactory.CreateRandom();
            var customer = new Customer
            {
                AddressIds = new List <Guid>
                {
                    address.Id
                }
            };

            var mockedCustomerRepository = new Mock <ICustomerRepository>();

            mockedCustomerRepository.Setup(r => r.GetCustomerByIdAsync(It.IsAny <GetCustomerByIdParam>())).ReturnsAsync(customer);
            _container.Use(mockedCustomerRepository);

            var mockedCustomerAddressRepository = new Mock <ICustomerAddressRepository>();

            mockedCustomerAddressRepository.Setup(r => r.UpdateAddressAsync(It.IsAny <Guid>(), It.IsAny <Address>())).ReturnsAsync(address);
            _container.Use(mockedCustomerAddressRepository);

            var mockedAddressRepository = new Mock <IAddressRepository>();

            mockedAddressRepository.Setup(r => r.GetAddressByIdAsync(It.IsAny <Guid>())).ReturnsAsync(address);
            _container.Use(mockedAddressRepository);

            var customerViewService = _container.CreateInstance <CustomerAddressViewService>();

            //Act
            var viewModel = await customerViewService.SetDefaultAddressAsync(new SetDefaultAddressParam
            {
                Scope      = GetRandom.String(32),
                CustomerId = Guid.NewGuid(),
                AddressId  = address.Id
            });

            //Assert
            viewModel.Should().NotBeNull();
        }