public void Signup_NullPassword_ThrowsException()
        {
            // prepare
            string validEmail      = "*****@*****.**";
            string invalidPassword = null;
            IShopOwnerRegistrationService shopOwnerRegistrationService = _kernel.Get <IShopOwnerRegistrationService>();

            // act
            shopOwnerRegistrationService.Signup(validEmail, invalidPassword);
        }
        public void Signup_InvalidEmailAddress_ThrowsException()
        {
            // prepare
            string invalidEmail  = "email@hello";
            string validPassword = "******";
            IShopOwnerRegistrationService shopOwnerRegistrationService = _kernel.Get <IShopOwnerRegistrationService>();

            // act
            shopOwnerRegistrationService.Signup(invalidEmail, validPassword);
        }
        public void Signup_ValidEmailAndPassword_CallsRepositoryAddMethod()
        {
            // prepare
            string validEmail    = "*****@*****.**";
            string validPassword = "******";

            var repositoryMock = _kernel.GetMock <IMembershipRepository>();

            repositoryMock.Setup(x => x.Add(It.Is <ShopOwner>(y => y.EmailAddress == validEmail &&
                                                              !String.IsNullOrWhiteSpace(y.EncryptedPassword)))).Verifiable();

            _kernel.GetMock <IMembershipRepositoryFactory>().Setup(x => x.CreateMembershipRepository(UserTypeOptions.ShopOwner))
            .Returns(repositoryMock.Object);

            IShopOwnerRegistrationService shopOwnerRegistrationService = _kernel.Get <IShopOwnerRegistrationService>();

            // act
            shopOwnerRegistrationService.Signup(validEmail, validPassword);

            // assert
            repositoryMock.VerifyAll();
        }