public async Task PostCheckAvailability_ShouldBeAvailable() { // Arrange var context = new TestBookStoreAPIContext(); var testBook = DemoData.GetDemoBook(); context.Books.Add(testBook); var testBookDTO = DemoData.GetDTOfromBook(testBook); var cartItem = new CartItem { Book = testBookDTO, Quantity = 1 }; var cart = new Cart() { CartItems = new List <CartItem> { cartItem } }; // Act var controller = new BooksController(context); var result = await controller.PostAvailability(cart) as IHttpActionResult; var contentResult = result as OkNegotiatedContentResult <ApiResponse>; var availableBooks = contentResult.Content.Data as IEnumerable <IBookDTO>; // Assert Assert.IsNotNull(result); Assert.IsTrue(!contentResult.Content.Error); Assert.AreEqual("all available", contentResult.Content.Message); Assert.AreEqual(testBookDTO, availableBooks.ElementAt(0)); }
public async Task GetSearch_ShouldReturnKewordMatchingBooks() { // Arrange var context = new TestBookStoreAPIContext(); context.Books.Add(new Book { Id = "id1", Title = "Generic Title", Author = "Cunning Basterd", Price = 499M, InStock = 1 }); context.Books.Add(new Book { Id = "id2", Title = "Generic Title", Author = "Cunning Basterd", Price = 999M, InStock = 5 }); context.Books.Add(new Book { Id = "id3", Title = "Desired", Author = "Author Here", Price = 960M, InStock = 0 }); // Act var controller = new BooksController(context); var result = await controller.GetSearch("generic") as IHttpActionResult; var contentResult = result as OkNegotiatedContentResult <ApiResponse>; var books = contentResult.Content.Data as IQueryable <IBookDTO>; // Assert Assert.IsNotNull(result); Assert.IsTrue(!contentResult.Content.Error); Assert.AreEqual(2, books.Count()); }
public async Task PostOrder_ShouldReturnError() { // Arrange var context = new TestBookStoreAPIContext(); var testBook = DemoData.GetDemoBook(); context.Books.Add(testBook); var cart = new Cart { //this item is out of stock CartItems = new List <CartItem> { new CartItem(DemoData.GetDTOfromBook(testBook), 5) } }; // Act var controller = new OrdersController(context); var result = await controller.PostOrder(cart) as IHttpActionResult; var contentResult = result as OkNegotiatedContentResult <ApiResponse>; // Assert Assert.IsNotNull(result); Assert.IsTrue(contentResult.Content.Error); }
public async Task GetOrder_ShouldReturnOrderDetails() { // Arrange var context = new TestBookStoreAPIContext(); var order = DemoData.GetDemoOrder(); context.Orders.Add(order); OrderItem orderItem = new OrderItem { Id = Util.Util.GetNewId(), OrderId = order.Id, BookId = "xta", SellingPrice = 499, Quantity = 1, ShippingStatus = 0, CreatedAt = new System.DateTime() }; context.OrderItems.Add(orderItem); // Act var controller = new OrdersController(context); var result = await controller.GetOrder("XyZ") as IHttpActionResult; var contentResult = result as OkNegotiatedContentResult <ApiResponse>; var orderDetails = contentResult.Content.Data as OrderDetailsDTO; // Assert Assert.IsNotNull(result); Assert.IsTrue(!contentResult.Content.Error); Assert.AreEqual("XyZ", orderDetails.Id); Assert.AreEqual(499, orderDetails.TotalAmount); }
public void GetBooks_ShouldReturnAllBooks() { // Arrange var context = new TestBookStoreAPIContext(); context.Books.Add(DemoData.GetDemoBook()); // Act var controller = new BooksController(context); var result = controller.GetBooks() as IHttpActionResult; var contentResult = result as OkNegotiatedContentResult <ApiResponse>; var books = contentResult.Content.Data as IQueryable <IBookDTO>; // Assert Assert.IsNotNull(result); Assert.IsTrue(!contentResult.Content.Error); Assert.AreEqual(1, books.Count()); }
public async Task GetBook_ShouldReturnBookDetails() { // Arrange var context = new TestBookStoreAPIContext(); context.Books.Add(DemoData.GetDemoBook()); // Act var controller = new BooksController(context); var result = await controller.GetBook("id1") as IHttpActionResult; var contentResult = result as OkNegotiatedContentResult <ApiResponse>; var book = contentResult.Content.Data as IBookDTO; // Assert Assert.IsNotNull(result); Assert.IsTrue(!contentResult.Content.Error); Assert.AreEqual("id1", book.Id); }