public async void TestApiPostForOrder() { ModelAddToCart model = new ModelAddToCart(); model.InventoryId = 2; model.Numdays = 5; model.Token = token; //add to cart ApiInventoryController inventoryController = new ApiInventoryController(null); var jsonResult = await inventoryController.Post(model); Assert.NotNull(jsonResult); Assert.True(jsonResult.Success); //submit the order var submitted = controller.SubmitOrder(); Assert.NotNull(submitted); //check order var mockOrderRepository = new Mock <IApiOrderRepository>(); var mockLogger = new Mock <ILogger <OrderController> >(); var mockCustomerRepository = new Mock <IApiCustomerRepository>(); OrderController orderController = new OrderController(null, mockLogger.Object, mockOrderRepository.Object, mockCustomerRepository.Object, memoryCache); var result = await orderController.Order(token) as ViewResult; var viewResult = Assert.IsType <ViewResult>(result); var modelResult = Assert.IsAssignableFrom <ViewResult>(viewResult); Assert.NotNull(modelResult); }
public async void TestApiPostInventory() { ModelAddToCart model = new ModelAddToCart(); model.InventoryId = 1; model.Numdays = 3; model.Token = token; var jsonResult = await controller.Post(model); Assert.NotNull(jsonResult); Assert.Equal("", jsonResult.Message); Assert.True(jsonResult.Success); var result = await controller.Get(token); Assert.NotNull(result); Assert.Equal(5, result.Item1.Count); Assert.Equal(1, result.Item2); }
public async Task <ModelApiResponse> Post([FromBody] ModelAddToCart param) { ModelApiResponse modelApiResponse = new ModelApiResponse(); try { using (var context = new ApplicationDbContext()) { if (param != null) { if (param.InventoryId != 0) { //if product has been already found in cart var dataUnique = await(from a in context.BondoraCart where a.InventoryId == param.InventoryId && a.Token == param.Token select a).FirstOrDefaultAsync(); if (dataUnique == null) { //insert new one var newItem = new BondoraCart(); newItem.Days = param.Numdays; newItem.InventoryId = param.InventoryId; newItem.Token = param.Token; context.Entry(newItem).State = EntityState.Added; await context.SaveChangesAsync(); } else { dataUnique.Days += param.Numdays; context.Entry(dataUnique).State = EntityState.Modified; await context.SaveChangesAsync(); } var countOrdered = await(from a in context.BondoraCart where a.Token == param.Token select a).CountAsync(); modelApiResponse.Success = true; modelApiResponse.Message = (localizer != null) ? localizer["AddedToCard"].Value : ""; modelApiResponse.CountOrdered = countOrdered; } else { modelApiResponse.Success = false; modelApiResponse.Message = localizer["AddedToCard"].Value; } } else { modelApiResponse.Success = false; modelApiResponse.Message = localizer["NoItemsToSubmit"].Value; } } } catch (Exception ex) { modelApiResponse.Success = false; modelApiResponse.Message = ex.Message + "<br />" + ex.InnerException + "<br />" + ex.StackTrace; } return(modelApiResponse); }