public virtual ActionResult OrderDetails(string token) { var orderToken = string.IsNullOrWhiteSpace(token) ? null : GuestOrderTokenizer.DecypherOrderToken(token); var findMyOrderUrl = OrderUrlProvider.GetFindMyOrderUrl(ComposerContext.CultureInfo); OrderDetailViewModel orderDetailViewModel = null; if (IsOrderTokenValid(orderToken)) { orderDetailViewModel = OrderHistoryViewService.GetOrderDetailViewModelForGuestAsync(new GetOrderForGuestParam { OrderNumber = orderToken.OrderNumber, Email = orderToken.Email, Scope = ComposerContext.Scope, CultureInfo = ComposerContext.CultureInfo, CountryCode = ComposerContext.CountryCode, BaseUrl = RequestUtils.GetBaseUrl(Request).ToString() }).Result; } if (orderDetailViewModel != null) { return(View("OrderDetailsContainer", orderDetailViewModel)); } var findMyOrderUrlWithParams = UrlFormatter.AppendQueryString(findMyOrderUrl, new NameValueCollection { { "orderNotFound", "true" } }); return(Redirect(findMyOrderUrlWithParams)); }
public void WHEN_token_is_invalid_SHOULD_throw_ArgumentException(string token) { //Act Expression <Func <OrderToken> > expression = () => GuestOrderTokenizer.DecypherOrderToken(token); var exception = Assert.Throws <ArgumentException>(() => expression.Compile().Invoke()); //Assert exception.ParamName.Should().BeEquivalentTo(GetParamsInfo(expression)[0].Name); exception.Message.Should().StartWith(GetMessageOfNullWhiteSpace()); }
public void WHEN_token_format_is_wrong_SHOULD_return_null() { //Arrange var token = GetRandom.String(17); //Act var tokenDto = GuestOrderTokenizer.DecypherOrderToken(token); //Assert tokenDto.Should().BeNull("token is in the wrong format"); }
public void WHEN_token_is_invalid_SHOULD_throw_ArgumentException(string token) { //Arrange //Act var ex = Assert.Throws <ArgumentException>(() => GuestOrderTokenizer.DecypherOrderToken(token)); //Assert ex.Should().NotBeNull(); ex.ParamName.Should().NotBeNullOrWhiteSpace(); }
public void WHEN_token_is_null_SHOULD_throw_ArgumentNullException() { //Arrange OrderToken param = null; //Act var ex = Assert.Throws <ArgumentNullException>(() => GuestOrderTokenizer.GenerateOrderToken(param)); //Assert ex.Should().NotBeNull(); ex.ParamName.Should().NotBeNullOrWhiteSpace(); }
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); }
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(); }
public virtual async Task <IHttpActionResult> GetGuestOrderDetailsUrl(GetGuestOrderViewModel request) { if (request == null) { return(BadRequest("No request body found.")); } var orderDetailUrl = OrderUrlProvider.GetGuestOrderDetailsUrl(ComposerContext.CultureInfo); var orderDetailViewModel = await OrderHistoryViewService.GetOrderDetailViewModelForGuestAsync(new GetOrderForGuestParam { OrderNumber = request.OrderNumber, Email = request.Email, Scope = ComposerContext.Scope, CultureInfo = ComposerContext.CultureInfo, CountryCode = ComposerContext.CountryCode, BaseUrl = RequestUtils.GetBaseUrl(Request).ToString() }); if (orderDetailViewModel == null) { return(NotFound()); } var token = GuestOrderTokenizer.GenerateOrderToken(new OrderToken { Email = request.Email, OrderNumber = request.OrderNumber }); var url = UrlFormatter.AppendQueryString(orderDetailUrl, new NameValueCollection { { "token", token } }); var vm = new GuestOrderDetailsViewModel { Url = url }; return(Ok(vm)); }
public void WHEN_token_is_valid_SHOULD_return_dto() { //Arrange var param = new OrderToken { Email = GetRandom.Email(), OrderNumber = GetRandom.String(7) }; var token = GuestOrderTokenizer.GenerateOrderToken(param); //Act var dto = GuestOrderTokenizer.DecypherOrderToken(token); //Assert dto.Should().NotBeNull(); dto.Email.Should().NotBeNullOrWhiteSpace(); dto.Email.Should().Be(param.Email); dto.OrderNumber.Should().Be(param.OrderNumber); }