public ActionResult Apply(int basketId) { var selectedBasket = _basketService.GetBasketById(basketId); if (selectedBasket.HasError) { return(Redirect("/Basket")); } var mappedBasket = new Data.Services.UserSession.Basket { Total = selectedBasket.Basket.Total, Items = selectedBasket.Basket.Orders.ConvertAll(orderDetails => new BasketItem { Pizza = orderDetails.Order.Pizza, Size = orderDetails.Order.Size, ExtraToppings = orderDetails.Toppings.ConvertAll(x => x.Topping), Total = orderDetails.Total }) }; _userSessionService.ClearBasketForUser(Session["UserId"].ToString()); _userSessionService.SetBasketForUser(Session["UserId"].ToString(), mappedBasket); return(Redirect("/Basket")); }
public void SetUp() { _pizzaSizeRepository = new Mock <IPizzaSizeRepository>(); _pizzaSizeRepository.Setup(x => x.GetByIds(It.IsAny <int>(), It.IsAny <int>())).Returns(() => new GetPizzaSizeResponse { HasError = true, Error = new Error { UserMessage = "An error has occured" } }); _toppingSizeRepository = new Mock <IToppingSizeRepository>(); _voucherService = new Mock <IVoucherService>(); _subject = new UserSessionService(_pizzaSizeRepository.Object, _toppingSizeRepository.Object, _voucherService.Object); _result = _subject.NewUser(); var basketData = new BasketData { PizzaId = 1, SizeId = 2, ExtraToppingIds = new List <int> { 3, 4 } }; _subject.AddItemToBasket(_result, basketData); _basket = _subject.GetBasketForUser(_result); }
public IHttpActionResult Apply(int orderId) { if (Request.Headers.Authorization == null) { return(Unauthorized()); } var selectedBasket = _basketService.GetBasketById(orderId); if (selectedBasket.HasError) { return(Ok(selectedBasket)); } var mappedBasket = new Data.Services.UserSession.Basket { Total = selectedBasket.Basket.Total, Items = selectedBasket.Basket.Orders.ConvertAll(orderDetails => new BasketItem { Pizza = orderDetails.Order.Pizza, Size = orderDetails.Order.Size, ExtraToppings = orderDetails.Toppings.ConvertAll(x => x.Topping), Total = orderDetails.Total }) }; _userSessionService.ClearBasketForUser(Encoding.UTF8.GetString(Convert.FromBase64String(Request.Headers.Authorization.Parameter))); _userSessionService.SetBasketForUser(Encoding.UTF8.GetString(Convert.FromBase64String(Request.Headers.Authorization.Parameter)), mappedBasket); return(Ok()); }
public void SetUp() { var subject = new UserSessionService(null, null, null); var userToken = subject.NewUser(); subject.SetBasketForUser(userToken, new Data.Services.UserSession.Basket { Total = Money.From(5000) }); _result = subject.GetBasketForUser(userToken); }
public void SetUp() { _pizzaSizeRepository = new Mock <IPizzaSizeRepository>(); _pizzaSizeRepository.Setup(x => x.GetByIds(It.IsAny <int>(), It.IsAny <int>())).Returns(() => new GetPizzaSizeResponse { PizzaSize = new PizzaSizeRecord { Pizza = new PizzaRecord { Id = 1 }, Size = new SizeRecord { Id = 2 } } }); _toppingSizeRepository = new Mock <IToppingSizeRepository>(); _toppingSizeRepository.Setup(x => x.GetByIds(It.IsAny <List <int> >(), It.IsAny <int>())).Returns(() => new GetToppingSizeResponse { ToppingSize = new List <ToppingSizeRecord> { new ToppingSizeRecord { Topping = new ToppingRecord { Id = 3 }, Size = new SizeRecord { Id = 2 } } } }); _voucherService = new Mock <IVoucherService>(); var subject = new UserSessionService(_pizzaSizeRepository.Object, _toppingSizeRepository.Object, _voucherService.Object); var userToken = subject.NewUser(); subject.AddItemToBasket(userToken, new BasketData { PizzaId = 1, SizeId = 2, ExtraToppingIds = new List <int> { 3 } }); subject.ClearBasketForUser(Guid.NewGuid().ToString()); _result = subject.GetBasketForUser(userToken); }
public void SetUp() { _pizzaSizeRepository = new Mock <IPizzaSizeRepository>(); _toppingSizeRepository = new Mock <IToppingSizeRepository>(); _voucherService = new Mock <IVoucherService>(); _subject = new UserSessionService(_pizzaSizeRepository.Object, _toppingSizeRepository.Object, _voucherService.Object); var basketData = new BasketData { PizzaId = 1, SizeId = 2, ExtraToppingIds = new List <int> { 3, 4 } }; _subject.AddItemToBasket("UNKNOWN IDENTIFIER", basketData); _basket = _subject.GetBasketForUser("UNKNOWN IDENTIFIER"); }
public void SetUp() { _voucherRepository = new Mock <IVoucherRepository>(); _voucherRepository.Setup(x => x.GetAllVouchers()).Returns(() => new GetAllVouchersResponse { VoucherDetails = new List <VoucherDetails> { new VoucherDetails { Voucher = new VoucherRecord { Code = "VOUCHER_CODE", Quantity = 2, Price = "1200" }, AllowedDeliveryTypes = new List <VoucherDeliveryTypeRecord> { new VoucherDeliveryTypeRecord { DeliveryType = new DeliveryTypeRecord { Name = "Collection" } } }, AllowedSizes = new List <VoucherSizeRecord> { new VoucherSizeRecord { Size = new SizeRecord { Name = "Small" } } } }, new VoucherDetails { Voucher = new VoucherRecord { Code = "VOUCHER_CODE", Quantity = 2, Price = "1400" }, AllowedDeliveryTypes = new List <VoucherDeliveryTypeRecord> { new VoucherDeliveryTypeRecord { DeliveryType = new DeliveryTypeRecord { Name = "Delivery" } } }, AllowedSizes = new List <VoucherSizeRecord> { new VoucherSizeRecord { Size = new SizeRecord { Name = "Small" } } } } } }); var subject = new VoucherService(_voucherRepository.Object); var userBasket = new Data.Services.UserSession.Basket { Items = new List <BasketItem> { new BasketItem { Size = new SizeRecord { Name = "Small" } }, new BasketItem { Size = new SizeRecord { Name = "Small" } } } }; var deliveryTypes = new List <DeliveryType> { DeliveryType.Collection }; _result = subject.Verify(userBasket, deliveryTypes, "VOUCHER_CODE"); }
public void SetUp() { _pizzaSizeRepository = new Mock <IPizzaSizeRepository>(); _pizzaSizeRepository.Setup(x => x.GetByIds(It.IsAny <int>(), It.IsAny <int>())).Returns(() => new GetPizzaSizeResponse { PizzaSize = new PizzaSizeRecord { Pizza = new PizzaRecord { Id = 1, Name = "Original" }, Size = new SizeRecord { Id = 2, Name = "Medium" }, Price = 1200 } }); _toppingSizeRepository = new Mock <IToppingSizeRepository>(); _toppingSizeRepository.Setup(x => x.GetByIds(It.IsAny <List <int> >(), It.IsAny <int>())).Returns(() => new GetToppingSizeResponse { ToppingSize = new List <ToppingSizeRecord> { new ToppingSizeRecord { Topping = new ToppingRecord { Id = 3, Name = "Cheese" }, Size = new SizeRecord { Id = 2, Name = "Medium" }, Price = 100 }, new ToppingSizeRecord { Topping = new ToppingRecord { Id = 4, Name = "Tomato Sauce" }, Size = new SizeRecord { Id = 2, Name = "Medium" }, Price = 100 } } }); _voucherService = new Mock <IVoucherService>(); _subject = new UserSessionService(_pizzaSizeRepository.Object, _toppingSizeRepository.Object, _voucherService.Object); _result = _subject.NewUser(); var basketData = new BasketData { PizzaId = 1, SizeId = 2, ExtraToppingIds = new List <int> { 3, 4 } }; _subject.AddItemToBasket(_result, basketData); _basket = _subject.GetBasketForUser(_result); }