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); }
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"); }
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"); }
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); }