示例#1
0
        public async Task WHEN_CustomMethod_Registered_AND_Passing_Valid_Parameters_SHOULD_Update_GuestCustomerInfo()
        {
            //Arrange
            var cart = CreateBasicCart();

            cart.Customer.Email = GetRandom.Email();

            var service = CreateCheckoutService(cart);

            var updatedCustomer = new CustomerSummaryViewModel
            {
                Email = GetRandom.Email()
            };

            // Act
            var param = new UpdateCheckoutCartParam
            {
                GetCartParam = CreateGetCartParam(),
                UpdateValues = CreateUpdateOperation("GuestCustomerInfo", updatedCustomer),
                CurrentStep  = GetRandom.Int(),
                IsGuest      = GetRandom.Boolean()
            };
            var processedCart = await service.UpdateCheckoutCartAsync(param);

            //Assert
            processedCart.Should().NotBeNull();
            processedCart.Cart.Customer.Email.ShouldBeEquivalentTo(updatedCustomer.Email);
        }
        public void WHEN_passing_empty_email_SHOULD_throw_ArgumentException(string email)
        {
            //Arrange
            var sut = _container.CreateInstance <MembershipViewService>();

            sut.Membership = _container.Get <IMembershipProxy>();
            var param = new CreateUserParam
            {
                Email            = email,
                FirstName        = GetRandom.FirstName(),
                LastName         = GetRandom.LastName(),
                Username         = GetRandom.Email(),
                Password         = GetRandom.String(32),
                PasswordQuestion = GetRandom.String(32),
                PasswordAnswer   = GetRandom.String(32),
                CultureInfo      = TestingExtensions.GetRandomCulture(),
                Scope            = GetRandom.String(32)
            };

            // Act
            var exception = Assert.ThrowsAsync <ArgumentException>(() => sut.RegisterAsync(param));

            //Assert
            exception.Message.Should().Contain("Email");
        }
        public async Task WHEN_passing_empty_PasswordAnswer_SHOULD_succeed(string passwordAnswer)
        {
            //Arrange
            var expectedCustomer   = MockCustomerFactory.CreateRandom();
            var customerRepository = _container.CreateInstance <CustomerRepository>();

            _container.GetMock <IOvertureClient>()
            .Setup(p => p.SendAsync(It.Is <CreateCustomerMembershipRequest>(param => string.IsNullOrWhiteSpace(param.PasswordAnswer))))
            .ReturnsAsync(expectedCustomer);

            //Act
            var result = await customerRepository.CreateUserAsync(new CreateUserParam
            {
                Email            = GetRandom.Email(),
                FirstName        = GetRandom.FirstName(),
                LastName         = GetRandom.LastName(),
                Username         = GetRandom.Email(),
                Password         = GetRandom.String(32),
                PasswordQuestion = GetRandom.String(32),
                PasswordAnswer   = passwordAnswer,
                CultureInfo      = TestingExtensions.GetRandomCulture(),
                Scope            = GetRandom.String(32)
            });

            //Assert
            result.Id.Should().Be(expectedCustomer.Id);
        }
        public async Task WHEN_passing_empty_username_SHOULD_fallback_to_email_as_username(string username)
        {
            //Arrange
            var sut = _container.CreateInstance <MembershipViewService>();

            sut.Membership = _container.Get <IMembershipProxy>();

            var expectedEmail = GetRandom.Email();

            _container.GetMock <ICustomerRepository>()
            .Setup(p => p.CreateUserAsync(It.Is <CreateUserParam>(param => string.IsNullOrWhiteSpace(param.Username))))
            .ReturnsAsync(new Customer
            {
                Email    = expectedEmail,
                Username = expectedEmail
            });

            //Act
            var result = await sut.RegisterAsync(new CreateUserParam
            {
                Email            = expectedEmail,
                FirstName        = GetRandom.FirstName(),
                LastName         = GetRandom.LastName(),
                Username         = username,
                Password         = GetRandom.String(32),
                PasswordQuestion = GetRandom.String(32),
                PasswordAnswer   = GetRandom.String(32),
                CultureInfo      = TestingExtensions.GetRandomCulture(),
                Scope            = GetRandom.String(32)
            });

            //Assert
            result.Status.Should().Be(MyAccountStatus.Success.ToString());
            result.Username.Should().BeEquivalentTo(expectedEmail);
        }
        public async Task WHEN_passing_empty_PasswordAnswer_SHOULD_succeed(string passwordAnswer)
        {
            //Arrange
            var expectedCustomer = MockCustomerFactory.CreateRandom();
            var sut = _container.CreateInstance <MembershipViewService>();

            sut.Membership = _container.Get <IMembershipProxy>();

            _container.GetMock <ICustomerRepository>()
            .Setup(p => p.CreateUserAsync(It.Is <CreateUserParam>(param => string.IsNullOrWhiteSpace(param.PasswordAnswer))))
            .ReturnsAsync(expectedCustomer);

            //Act
            var result = await sut.RegisterAsync(new CreateUserParam
            {
                Email            = GetRandom.Email(),
                FirstName        = GetRandom.FirstName(),
                LastName         = GetRandom.LastName(),
                Username         = GetRandom.Email(),
                Password         = GetRandom.String(32),
                PasswordQuestion = GetRandom.String(32),
                PasswordAnswer   = passwordAnswer,
                CultureInfo      = TestingExtensions.GetRandomCulture(),
                Scope            = GetRandom.String(32)
            });

            //Assert
            result.Status.Should().Be(MyAccountStatus.Success.ToString());
        }
        public void WHEN_PasswordAnswer_is_Empty_SHOULD_succeed(string passwordAnswer)
        {
            //Arrange
            var expectedUsername   = GetRandom.Email();
            var expectedScopeId    = GetRandom.String(32);
            var expectedPassword   = GetRandom.String(32);
            var customerRepository = _container.CreateInstance <CustomerRepository>();

            _container.GetMock <IOvertureClient>()
            .Setup(r => r.SendAsync(It.Is <ResetPasswordRequest>(
                                        param => param.Username == expectedUsername &&
                                        param.ScopeId == expectedScopeId &&
                                        param.Password == expectedPassword &&
                                        param.PasswordAnswer == passwordAnswer &&
                                        string.IsNullOrWhiteSpace(param.Email))))
            .ReturnsAsync(new ResetPasswordResponse
            {
                Success = true
            });

            //Act and Assert
            Assert.DoesNotThrowAsync(() =>
                                     customerRepository.ResetPasswordAsync(
                                         expectedUsername,
                                         expectedScopeId,
                                         expectedPassword,
                                         passwordAnswer)
                                     );
        }
示例#7
0
        public void GivenInvalidModelState_ReturnsRegisterView()
        {
            var model = new Register
            {
                Username = GetRandom.String(20),
                Email    = GetRandom.Email(),
                Password = "******"
            };

            Controller.ModelState.AddModelError("Fake error", "error");

            var result = Controller.Register(model) as ViewResult;

            result.Should().Not.Be.Null();

            result.Model.Should().Be.OfType <Register>();
            var typedModel = result.Model as Register;

            typedModel.Email.Should().Equal(model.Email);
            typedModel.Password.Should().Be.NullOrEmpty();
            typedModel.ReturnUrl.Should().Equal(model.ReturnUrl);
            typedModel.Username.Should().Equal(model.Username);
            result.ViewName.Should().Equal("");

            var modelState = result.ViewData.ModelState;

            modelState.ContainsKey("Fake error").Should().Be.True();
        }
示例#8
0
        public async Task WHEN_requesting_to_log_in_valid_user_response_but_user_is_null_THEN_response_SHOULD_be_unsuccessfull()
        {
            //Arrange
            var sut = _container.CreateInstance <MembershipViewService>();

            sut.Membership = _container.Get <IMembershipProxy>();

            _container.GetMock <IMembershipProxy>()
            .Setup(p => p.LoginUser(It.IsNotNull <string>(), It.IsNotNull <string>()))
            .Returns(true);

            _container.GetMock <IMembershipProxy>()
            .Setup(p => p.GetUser(It.IsNotNull <string>(), It.IsNotNull <bool>()))
            .Returns <MembershipUser>(null);

            //Act
            var result = await sut.LoginAsync(new LoginParam()
            {
                CultureInfo = TestingExtensions.GetRandomCulture(),
                Password    = GetRandom.String(15),
                Username    = GetRandom.Email(),
                Scope       = GetRandom.String(32)
            });

            //Assert
            result.Status.Should().Be(MyAccountStatus.Failed.ToString());
        }
        public void WHEN_creating_user_fails_SHOULD_not_attempt_to_merge_cart()
        {
            //Arrange
            var sut = _container.CreateInstance <MembershipViewService>();

            _container.GetMock <ICustomerRepository>()
            .Setup(p => p.CreateUserAsync(It.IsAny <CreateUserParam>()))
            .Throws(new ComposerException(GetRandom.String(3)));

            //Act and Assert
            Assert.ThrowsAsync <ComposerException>(() => sut.RegisterAsync(new CreateUserParam
            {
                Email            = GetRandom.Email(),
                FirstName        = GetRandom.FirstName(),
                LastName         = GetRandom.LastName(),
                Username         = GetRandom.Email(),
                Password         = GetRandom.String(32),
                PasswordQuestion = GetRandom.String(32),
                PasswordAnswer   = GetRandom.String(32),
                CultureInfo      = TestingExtensions.GetRandomCulture(),
                Scope            = GetRandom.String(32),
            }));

            _container.GetMock <ICartMergeProvider>().Verify(provider => provider.MergeCartAsync(It.IsAny <CartMergeParam>()), Times.Never);
        }
        public void WHEN_bad_request_SHOULD_throw_composer_exception()
        {
            //Arrange
            var expectedEmail      = GetRandom.Email();
            var customerRepository = _container.CreateInstance <CustomerRepository>();

            _container.GetMock <IOvertureClient>()
            .Setup(r => r.SendAsync(It.Is <ResetPasswordRequest>(
                                        param => string.IsNullOrWhiteSpace(param.Username) &&
                                        string.IsNullOrWhiteSpace(param.Password) &&
                                        string.IsNullOrWhiteSpace(param.PasswordAnswer) &&
                                        param.Email == expectedEmail)))
            .ReturnsAsync(new ResetPasswordResponse
            {
                Success = false
            });

            //Act and Assert
            var sendResetParam = new SendResetPasswordInstructionsParam
            {
                Email = expectedEmail,
                Scope = GetRandom.String(32)
            };

            Assert.ThrowsAsync <ComposerException>(() => customerRepository.SendResetPasswordInstructionsAsync(sendResetParam));
        }
        public async Task WHEN_passing_empty_username_SHOULD_fallback_to_email_as_username(string username)
        {
            //Arrange
            var customerRepository = _container.CreateInstance <CustomerRepository>();

            var expectedEmail = GetRandom.Email();

            _container.GetMock <IOvertureClient>()
            .Setup(r => r.SendAsync(It.Is <CreateCustomerMembershipRequest>(param => string.IsNullOrWhiteSpace(param.Username))))
            .ReturnsAsync(new Customer
            {
                Id            = GetRandom.Guid(),
                Email         = expectedEmail,
                Username      = expectedEmail,
                AccountStatus = AccountStatus.Active
            });

            //Act
            var result = await customerRepository.CreateUserAsync(new CreateUserParam
            {
                Email            = expectedEmail,
                FirstName        = GetRandom.FirstName(),
                LastName         = GetRandom.LastName(),
                Username         = username,
                Password         = GetRandom.String(32),
                PasswordQuestion = GetRandom.String(32),
                PasswordAnswer   = GetRandom.String(32),
                CultureInfo      = TestingExtensions.GetRandomCulture(),
                Scope            = GetRandom.String(32)
            });

            //Assert
            result.Email.Should().BeEquivalentTo(expectedEmail);
            result.Username.Should().BeEquivalentTo(expectedEmail);
        }
示例#12
0
        private void MockCartPayments(Guid paymentId)
        {
            var mockedPaymentMethodRepository = _container.GetMock <IPaymentRepository>();

            mockedPaymentMethodRepository.Setup(pr => pr.GetCartPaymentsAsync(It.IsNotNull <GetCartPaymentsParam>()))
            .ReturnsAsync(new List <Payment>()
            {
                new Payment
                {
                    Id             = paymentId,
                    Amount         = 0.0m,
                    BillingAddress = new Address()
                    {
                        City                = GetRandom.String(18),
                        CountryCode         = GetRandom.String(2, true),
                        FirstName           = GetRandom.String(8),
                        LastName            = GetRandom.String(12),
                        IsPreferredBilling  = GetRandom.Boolean(),
                        IsPreferredShipping = GetRandom.Boolean(),
                        Email               = GetRandom.Email(),
                        Line1               = GetRandom.Phrase(20),
                        Line2               = string.Empty,
                        PhoneNumber         = GetRandom.Usa.PhoneNumber(),
                        PostalCode          = GetRandom.String(7, true),
                        RegionCode          = GetRandom.String(5, true)
                    },
                    PaymentStatus = PaymentStatus.New,
                }
            });
        }
示例#13
0
        public void SetUp()
        {
            //Arrange
            _container = new AutoMocker();

            _container.Use(ViewModelMapperFactory.Create());
            _container.Use(CartViewModelFactoryMock.Create());

            var cartRepoMock = _container.GetMock <ICartRepository>();

            cartRepoMock.Setup(repo => repo.CompleteCheckoutAsync(It.IsNotNull <CompleteCheckoutParam>()))
            .Returns((CompleteCheckoutParam p) =>
            {
                var order = new Overture.ServiceModel.Orders.Order
                {
                    Cart = new ProcessedCart()
                    {
                        Customer = new CustomerSummary()
                        {
                            Email = GetRandom.Email()
                        },
                        Shipments = new System.Collections.Generic.List <Shipment>()
                        {
                            new Shipment
                            {
                                Id        = GetRandom.Guid(),
                                LineItems = new System.Collections.Generic.List <LineItem>()
                                {
                                    new LineItem
                                    {
                                        Id               = GetRandom.Guid(),
                                        Sku              = GetRandom.String(10),
                                        CatalogId        = GetRandom.String(10),
                                        PlacedPrice      = GetRandom.Decimal(),
                                        PlacedQuantity   = GetRandom.Int(),
                                        Status           = GetRandom.String(5),
                                        Total            = GetRandom.Decimal(),
                                        KvaValues        = new Overture.ServiceModel.PropertyBag(),
                                        KvaDisplayValues = new Overture.ServiceModel.PropertyBag(),
                                        ProductSummary   = new CartProductSummary
                                        {
                                            Brand                   = null,
                                            DisplayName             = GetRandom.String(10),
                                            PrimaryParentCategoryId = GetRandom.String(10)
                                        }
                                    }
                                },
                                FulfillmentMethod = new FulfillmentMethod
                                {
                                    FulfillmentMethodType = FulfillmentMethodType.PickUp
                                }
                            }
                        }
                    },
                    OrderNumber = GetRandom.String(12)
                };

                return(Task.FromResult(order));
            });
        }
示例#14
0
        public void WHEN_invalid_request_SHOULD_throw_composer_exception()
        {
            //Arrange
            var expectedUsername    = GetRandom.Email();
            var expectedScope       = GetRandom.String(32);
            var expectedOldPassword = GetRandom.String(32);
            var expectedNewPassword = GetRandom.String(32);
            var customerRepository  = _container.CreateInstance <CustomerRepository>();

            _container.GetMock <IOvertureClient>()
            .Setup(r => r.SendAsync(It.Is <ChangePasswordRequest>(
                                        param => param.UserName == expectedUsername &&
                                        param.NewPassword == expectedNewPassword &&
                                        param.OldPassword == expectedOldPassword)))
            .ReturnsAsync(new ChangePasswordResponse
            {
                Success = false
            });

            //Act and Assert
            Assert.ThrowsAsync <ComposerException>(() =>
                                                   customerRepository.ChangePasswordAsync(expectedUsername,
                                                                                          expectedScope,
                                                                                          expectedOldPassword,
                                                                                          expectedNewPassword));
        }
        public async Task RegisterPostTest()
        {
            Assert.Inconclusive();
            async Task validate(object o)
            {
                var vm = o as RegisterViewModel;

                Assert.IsNotNull(vm);
                var y = await appDbContext.Users.FirstOrDefaultAsync(x =>
                                                                     x.Email == vm.Email);

                Assert.AreEqual(y.Email, vm.Email);
                currentUser = vm;
            }

            IEnumerable <KeyValuePair <string, string> > createContext(object o)
            {
                var x = o as RegisterViewModel;
                var d = new Dictionary <string, string> {
                    { GetMember.Name <RegisterViewModel>(m => m.FirstName), x?.FirstName },
                    { GetMember.Name <RegisterViewModel>(m => m.LastName), x?.LastName },
                    { GetMember.Name <RegisterViewModel>(m => m.DateOfBirth.ToString()), x?.DateOfBirth.ToString() },
                    { GetMember.Name <RegisterViewModel>(m => m.Email), x?.Email },
                    { GetMember.Name <RegisterViewModel>(m => m.Password), x?.Password },
                    { GetMember.Name <RegisterViewModel>(m => m.ConfirmPassword), x?.ConfirmPassword },
                    { GetMember.Name <RegisterViewModel>(m => m.Country), x?.Country },
                    { GetMember.Name <RegisterViewModel>(m => m.AddressLine), x?.AddressLine },
                    { GetMember.Name <RegisterViewModel>(m => m.ZipCode), x?.ZipCode },
                    { GetMember.Name <RegisterViewModel>(m => m.City), x?.City },
                    { GetMember.Name <RegisterViewModel>(m => m.County), x?.County }
                };

                return(d);
            }

            object createObject()
            {
                var vm = GetRandom.Object <RegisterViewModel>();

                vm.Email           = GetRandom.Email();
                vm.Password        = GetRandom.Password();
                vm.ConfirmPassword = vm.Password;
                vm.FirstName       = GetRandom.String();
                vm.LastName        = GetRandom.String();
                vm.DateOfBirth     = GetRandom.DateTime();
                vm.Country         = GetRandom.Object <Country>().ToString();
                vm.AddressLine     = GetRandom.String();
                vm.ZipCode         = GetRandom.String();
                vm.City            = GetRandom.String();
                vm.County          = GetRandom.String();
                return(vm);
            }

            await createAllGivenTest <AccountController>(x => x.Register(null),
                                                         createObject, createContext, validate);
        }
示例#16
0
        public User SetupUser(Action <User> modifications = null)
        {
            var item = Builder <User> .CreateNew()
                       .With(x => x.Id      = default(int))
                       .And(x => x.Username = GetRandom.String(20))
                       .And(x => x.Password = "******".ToSHAHash())
                       .And(x => x.Email    = GetRandom.Email())
                       .Build();

            return(ApplyModificationsAndSave(item, modifications));
        }
示例#17
0
        public void GivenValidPostRequest_AndNoUserWithEmail_ReturnsView()
        {
            var model = new ForgotPassword
            {
                Email = GetRandom.Email()
            };

            var result = Controller.ForgotPassword(model) as ViewResult;

            result.Should().Not.Be.Null();
            result.ViewName.Should().Not.Equal("ForgotPasswordConfirmation");
            Controller.ModelState.Count.Should().Equal(1);
        }
示例#18
0
 private static User CreateAFakeUser()
 {
     return(Builder <User>
            .CreateNew()
            .With(x => x.Id = null)
            .With(x => x.FullName = string.Format("{0} {1}", GetRandom.FirstName(), GetRandom.LastName()))
            .And(x => x.DisplayName = x.FullName.Replace(' ', '.'))
            .And(x => x.Email = GetRandom.Email())
            .And(x => x.CreatedOn = GetRandom.DateTime(DateTime.UtcNow.AddMonths(-1), DateTime.UtcNow))
            .And(x => x.Reputation = GetRandom.PositiveInt(50000))
            .And(x => x.IsActive = GetRandom.Boolean())
            .Build());
 }
示例#19
0
        public void CantChangeDataElementsTest()
        {
            obj = new testClass(GetRandom.Object <UserData>());
            var d = obj.Data;

            obj.Data.Id           = GetRandom.String();
            obj.Data.FirstName    = GetRandom.String();
            obj.Data.LastName     = GetRandom.String();
            obj.Data.PhoneNumber  = GetRandom.String();
            obj.Data.Email        = GetRandom.Email();
            obj.Data.PasswordHash = GetRandom.Password();
            arePropertiesEqual(d, obj.Data);
        }
示例#20
0
        public void GivenValidPostRequest_SendsEmail()
        {
            var model = new Register
            {
                Username = GetRandom.String(20),
                Email    = GetRandom.Email(),
                Password = "******"
            };

            Controller.Register(model);

            MailController.Verify(x => x.Welcome(It.Is <ViewModels.Mail.Welcome>(m => m.To == model.Email && m.Username == model.Username)), Times.Once());
        }
示例#21
0
        public void GivenExternalReturnUrl_ReturnsConfirmation()
        {
            var model = new Register
            {
                Username  = GetRandom.String(20),
                Email     = GetRandom.Email(),
                Password  = "******",
                ReturnUrl = "http://google.com"
            };

            var result = Controller.Register(model) as ViewResult;

            result.Should().Not.Be.Null();
            result.ViewName.Should().Equal("RegisterConfirmation");
        }
示例#22
0
        public void GivenReservedUsername_ReturnsRegisterView()
        {
            var model = new Register
            {
                Username = "******",
                Email    = GetRandom.Email(),
                Password = "******"
            };

            var result = Controller.Register(model) as ViewResult;

            result.Should().Not.Be.Null();

            result.Model.Should().Be.OfType <Register>();
            result.ViewName.Should().Equal("");
        }
        public void WHEN_NewPassword_is_Empty_SHOULD_throw_ArgumentException(string newPassword)
        {
            //Arrange
            var customerRepository = _container.CreateInstance <CustomerRepository>();

            //Act
            var ex = Assert.ThrowsAsync <ArgumentException>(() => customerRepository.ResetPasswordAsync(
                                                                GetRandom.Email(),
                                                                GetRandom.String(70),
                                                                newPassword,
                                                                GetRandom.String(70)
                                                                ));

            //Assert
            ex.Message.Should().ContainEquivalentOf("newPassword");
        }
示例#24
0
        public void GivenValidModelState_ReturnsRedirect()
        {
            var model = new Register
            {
                Username  = GetRandom.String(20),
                Email     = GetRandom.Email(),
                Password  = "******",
                ReturnUrl = "http://google.com"
            };

            var result = Controller.Register(model) as RedirectResult;

            result.Should().Not.Be.Null();
            Controller.TempData[ViewDataConstants.Notification].Should().Not.Be.Null();
            result.Url.Should().Equal(Controller.Url.Home().Index());
        }
示例#25
0
        public void WHEN_token_ok_SHOULD_return_encrypted_token()
        {
            //Arrange
            var param = new OrderToken
            {
                Email       = GetRandom.Email(),
                OrderNumber = GetRandom.String(6)
            };

            //Act
            var token = GuestOrderTokenizer.GenerateOrderToken(param);

            //Assert
            token.Should().NotBeNullOrWhiteSpace();
            token.Should().NotContainEquivalentOf(param.Email);
            token.Should().NotContainEquivalentOf(param.OrderNumber);
        }
示例#26
0
        public void GivenValidModelState_ReturnsConfirmation()
        {
            var model = new Register
            {
                Username = GetRandom.String(20),
                Email    = GetRandom.Email(),
                Password = "******"
            };

            var result = Controller.Register(model) as ViewResult;

            result.Should().Not.Be.Null();
            result.ViewName.Should().Equal("RegisterConfirmation");
            var viewModel = result.Model as Register;

            viewModel.Should().Not.Be.Null();
        }
示例#27
0
        public void WHEN_orderNumber_is_invalid_SHOULD_throw_ArgumentNullException(string orderNumber)
        {
            //Arrange
            OrderToken param = new OrderToken
            {
                Email       = GetRandom.Email(),
                OrderNumber = orderNumber
            };

            //Act
            var ex = Assert.Throws <ArgumentException>(() => GuestOrderTokenizer.GenerateOrderToken(param));

            //Assert
            ex.Should().NotBeNull();
            ex.ParamName.Should().NotBeNullOrWhiteSpace();
            ex.Message.Should().NotBeNullOrWhiteSpace();
        }
示例#28
0
        public async Task WHEN_requesting_to_log_in_valid_user_response_SHOULD_have_correct_user_id()
        {
            //Arrange
            var expectedCustomer = MockCustomerFactory.CreateRandom();
            var sut = _container.CreateInstance <MembershipViewService>();

            sut.Membership = _container.Get <IMembershipProxy>();

            _container.GetMock <IMembershipProxy>()
            .Setup(p => p.LoginUser(It.IsNotNull <string>(), It.IsNotNull <string>()))
            .Returns(true);

            _container.GetMock <IMembershipProxy>()
            .Setup(p => p.GetUser(It.IsNotNull <string>(), It.IsNotNull <bool>()))
            .Returns(MockMembershipUser(
                         GetRandom.Email(),
                         expectedCustomer.Id,
                         GetRandom.Email(),
                         GetRandom.String(32),
                         GetRandom.String(32),
                         true,
                         false,
                         GetRandom.DateTime(),
                         GetRandom.DateTime(),
                         GetRandom.DateTime(),
                         GetRandom.DateTime(),
                         GetRandom.DateTime()
                         ));

            _container.GetMock <ICustomerRepository>()
            .Setup(p => p.GetCustomerByIdAsync(It.Is <GetCustomerByIdParam>(param => param.CustomerId == expectedCustomer.Id)))
            .ReturnsAsync(expectedCustomer);

            //Act
            var result = await sut.LoginAsync(new LoginParam()
            {
                CultureInfo = TestingExtensions.GetRandomCulture(),
                Password    = GetRandom.String(15),
                Username    = GetRandom.Email(),
                Scope       = GetRandom.String(32)
            });

            //Assert
            result.Status.Should().Be(MyAccountStatus.Success.ToString());
        }
示例#29
0
        public void WHEN_CultureInfo_is_Null_SHOULD_throw_ArgumentException(CultureInfo cultureInfo)
        {
            //Arrange
            var membershipService = _container.CreateInstance <MembershipViewService>();

            //Act
            var ex = Assert.ThrowsAsync <ArgumentException>(() => membershipService.ForgotPasswordAsync(
                                                                new ForgotPasswordParam
            {
                CultureInfo = cultureInfo,
                Email       = GetRandom.Email(),
                Scope       = GetRandom.String(32)
            }
                                                                ));

            //Assert
            ex.Message.Should().ContainEquivalentOf("CultureInfo");
        }
示例#30
0
        public void WHEN_Scope_is_Empty_SHOULD_throw_ArgumentException(string scope)
        {
            //Arrange
            var membershipService = _container.CreateInstance <MembershipViewService>();

            //Act
            var ex = Assert.ThrowsAsync <ArgumentException>(() => membershipService.ForgotPasswordAsync(
                                                                new ForgotPasswordParam
            {
                CultureInfo = TestingExtensions.GetRandomCulture(),
                Email       = GetRandom.Email(),
                Scope       = scope
            }
                                                                ));

            //Assert
            ex.Message.Should().ContainEquivalentOf("Scope");
        }