public void Get_ShouldReturnAllBookOrders() { var bookOrders = new List <BookOrder>(); var line1 = new OrderLine("Title1", 10.5M, 1, Guid.NewGuid()); var bookOrder1 = a.BookOrder.ForSupplier("Supplier1") .WithId(Guid.NewGuid()) .WithLine(line1) .ThatIsNew(); bookOrders.Add(bookOrder1); var line2 = new OrderLine("Title2", 20.5M, 2, Guid.NewGuid()); var bookOrder2 = a.BookOrder.ForSupplier("Supplier2") .WithId(Guid.NewGuid()) .WithLine(line2) .ThatIsApproved(); bookOrders.Add(bookOrder2); MockBookOrderRepository.Get().Returns(bookOrders); StartServer(); var result = Client.GetAsync("bookOrders").Result; result.StatusCode.Should().Be(HttpStatusCode.OK); var bookOrdersResponse = JsonConvert.DeserializeObject <IEnumerable <BookOrderResponse> >(result.Content.ReadAsStringAsync().Result) .ToList(); bookOrdersResponse.Count.Should().Be(2); bookOrdersResponse[0].Supplier.Should().Be("Supplier1"); bookOrdersResponse[0].State.Should().Be("New"); bookOrdersResponse[0].Id.Should().Be(bookOrders[0].Id.ToString()); bookOrdersResponse[0].OrderLines.Count.Should().Be(1); bookOrdersResponse[0].OrderLines[0].Title.Should().Be("Title1"); bookOrdersResponse[0].OrderLines[0].Price.Should().Be(10.5M); bookOrdersResponse[0].OrderLines[0].Quantity.Should().Be(1); bookOrdersResponse[1].Supplier.Should().Be("Supplier2"); bookOrdersResponse[1].State.Should().Be("Approved"); bookOrdersResponse[1].Id.Should().Be(bookOrders[1].Id.ToString()); bookOrdersResponse[1].OrderLines.Count.Should().Be(1); bookOrdersResponse[1].OrderLines[0].Title.Should().Be("Title2"); bookOrdersResponse[1].OrderLines[0].Price.Should().Be(20.5M); bookOrdersResponse[1].OrderLines[0].Quantity.Should().Be(2); }
public void Post_ApproveBookOrder_WhenBookOrderIsNew_ShouldApproveBookOrder() { Guid bookOrderId = Guid.NewGuid(); MockBookOrderRepository.Get(bookOrderId).Returns(BookOrder.CreateNew( "SupplierFoo", bookOrderId)); StartServer(); var result = Client.Post($"bookOrders/{bookOrderId}/approve", null); result.StatusCode.Should().Be(HttpStatusCode.OK); MockBookOrderRepository.Received(1).Store( Arg.Is <BookOrder>( x => x.Id == bookOrderId && x.State == BookOrderState.Approved)); }
public void Post_SendBookOrder_WhenBookOrderIsApproved_ShouldSendBookOrder() { Guid bookOrderId = Guid.NewGuid(); var bookOrder = a.BookOrder.ForSupplier("SupplierFoo") .WithId(bookOrderId) .ThatIsApproved(); MockBookOrderRepository.Get(bookOrderId).Returns(bookOrder); StartServer(); var result = Client.Post($"bookOrders/{bookOrderId}/send", null); result.StatusCode.Should().Be(HttpStatusCode.OK); MockBookOrderRepository.Received(1).Store( Arg.Is <BookOrder>( x => x.Id == bookOrderId && x.State == BookOrderState.Sent)); MockBookSupplierGateway.Received(1).Send( Arg.Is <BookOrder>( x => x.Id == bookOrderId && x.State == BookOrderState.Sent)); }