Ejemplo n.º 1
0
        public void WHEN_passing_valid_arguments_SHOULD_create_viewmodel()
        {
            //Arrange
            var expectedStatus = TestingExtensions.GetRandomEnum <MyAccountStatus>();
            var param          = new GetLoginViewModelParam
            {
                Status            = expectedStatus,
                CultureInfo       = TestingExtensions.GetRandomCulture(),
                Customer          = MockCustomerFactory.CreateRandom(),
                ReturnUrl         = GetRandom.WwwUrl(),
                LoginUrl          = GetRandom.WwwUrl(),
                CreateAccountUrl  = GetRandom.WwwUrl(),
                ForgotPasswordUrl = GetRandom.WwwUrl(),
                Username          = GetRandom.String(32)
            };
            var membershipViewService = _container.CreateInstance <MembershipViewService>();

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

            //Act
            var viewModel = membershipViewService.GetLoginViewModel(param);

            //Assert
            viewModel.Should().NotBeNull("This view model should never be null");
            viewModel.Status.Should().Be(expectedStatus.ToString("G"), "Because we render the status as a string for HBS message switch");
            viewModel.ReturnUrl.Should().Be(param.ReturnUrl);
            viewModel.CreateAccountUrl.Should().Be(param.CreateAccountUrl);
            viewModel.ForgotPasswordUrl.Should().Be(param.ForgotPasswordUrl);
            viewModel.LoginUrl.Should().Be(param.LoginUrl);
            viewModel.FirstName.Should().Be(param.Customer.FirstName);
            viewModel.LastName.Should().Be(param.Customer.LastName);
        }
Ejemplo n.º 2
0
        public void WHEN_Customer_is_Null_SHOULD_create_view_model_with_empty_bag()
        {
            //Arrange
            var expectedStatus = TestingExtensions.GetRandomEnum <MyAccountStatus>();
            var param          = new GetLoginViewModelParam
            {
                Status            = expectedStatus,
                CultureInfo       = TestingExtensions.GetRandomCulture(),
                Customer          = null,
                ReturnUrl         = GetRandom.WwwUrl(),
                Username          = GetRandom.String(32),
                ForgotPasswordUrl = GetRandom.WwwUrl(),
                CreateAccountUrl  = GetRandom.WwwUrl(),
                LoginUrl          = GetRandom.WwwUrl(),
            };
            var membershipViewService = _container.CreateInstance <MembershipViewService>();

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

            //Act
            var viewModel = membershipViewService.GetLoginViewModel(param);

            //Assert
            viewModel.Should().NotBeNull("This view model should never be null");
            viewModel.Status.Should().Be(expectedStatus.ToString("G"), "Because we render the status as a string for HBS message switch");
            viewModel.ReturnUrl.Should().Be(param.ReturnUrl);
            viewModel.CreateAccountUrl.Should().Be(param.CreateAccountUrl);
            viewModel.ForgotPasswordUrl.Should().Be(param.ForgotPasswordUrl);
            viewModel.LoginUrl.Should().Be(param.LoginUrl);
            viewModel.Bag.Should().BeEmpty("No PropertyBag to load from");
        }
Ejemplo n.º 3
0
        public void WHEN_CultureInfo_is_Empty_SHOULD_throw_ArgumentException(CultureInfo cultureInfo)
        {
            //Arrange
            var membershipViewService = _container.CreateInstance <MembershipViewService>();
            var param = new GetLoginViewModelParam
            {
                Status      = TestingExtensions.GetRandomEnum <MyAccountStatus>(),
                CultureInfo = cultureInfo,
                Customer    = MockCustomerFactory.CreateRandom(),
                ReturnUrl   = GetRandom.WwwUrl()
            };

            //Act
            var ex = Assert.Throws <ArgumentException>(() => membershipViewService.GetLoginViewModel(param));

            //Assert
            ex.Message.Should().ContainEquivalentOf("CultureInfo");
        }
Ejemplo n.º 4
0
        public void WHEN_Status_is_NULL_SHOULD_create_view_model_with_empty_status(MyAccountStatus?status)
        {
            //Arrange
            var param = new GetLoginViewModelParam
            {
                Status      = status,
                CultureInfo = TestingExtensions.GetRandomCulture(),
                Customer    = MockCustomerFactory.CreateRandom(),
                ReturnUrl   = GetRandom.WwwUrl(),
                Username    = GetRandom.String(32)
            };
            var membershipViewService = _container.CreateInstance <MembershipViewService>();

            //Act
            var viewModel = membershipViewService.GetLoginViewModel(param);

            //Assert
            viewModel.Status.Should().BeEmpty();
        }
        /// <summary>
        /// Gets the LoginViewModel for a specified customer.
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public virtual LoginViewModel GetLoginViewModel(GetLoginViewModelParam param)
        {
            if (param == null)
            {
                throw new ArgumentNullException("loginParam");
            }
            if (param.CultureInfo == null)
            {
                throw new ArgumentException("loginParam.CultureInfo");
            }

            var viewModel = ViewModelMapper.MapTo <LoginViewModel>(param.Customer, param.CultureInfo) ?? new LoginViewModel();

            viewModel.LoginUrl          = param.LoginUrl;
            viewModel.CreateAccountUrl  = param.CreateAccountUrl;
            viewModel.ForgotPasswordUrl = param.ForgotPasswordUrl;
            viewModel.Status            = param.Status.HasValue ? param.Status.Value.ToString("G") : string.Empty;
            viewModel.ReturnUrl         = param.ReturnUrl;
            viewModel.IsSuccess         = param.Status == MyAccountStatus.Success;
            viewModel.Username          = param.Username;
            viewModel.CustomerId        = param.Customer != null ? param.Customer.Id : Guid.Empty;

            return(viewModel);
        }