public void WhenOrderIsCancelled_ThenReturnItsContent() { // Arrange var order = new Order {Id = 123, Location = Location.TakeAway}; order.AddItem(new OrderItem(latte, 1, 1, new Dictionary<string, string>())); order.Status = OrderStatus.Canceled; var orderRepo = new RepositoryStub<Order>(order); var app = CreateAppProxy(orderRepo); //Act var response = app.Get("/trash/order/123/", with => { with.HttpRequest(); with.Header("Accept", "application/xml"); }); // Assert response.StatusCode.Should().Be.EqualTo(HttpStatusCode.OK); var body = response.BodyAsXml(); body.Descendants() .Single(e => e.Name.LocalName == "location") .Value.Should().Be.EqualTo("takeAway"); }
public void IfItemHasQuantity0_ThenReturnInvalidMessage() { var order = new Order(); order.AddItem(new OrderItem {Quantity = 0}); order.GetErrorMessages() .Should().Contain("Item 0: Quantity should be greater than 0."); }
public void IfTheProductDoesNotAllowCustomization_ThenReturnInvalidMessage() { var product = new Product { Name = "latte", Customizations = {new Customization {Name = "size", PossibleValues = {"medium", "large"}}} }; var order = new Order(); order.AddItem(new OrderItem { Quantity = 1, Product = product, Preferences = {{"milk", "lot"}} }); order.GetErrorMessages() .Should().Contain("Item 0: The product latte does not have a customization: milk/lot."); }
public void WithTextHtmlDefaultToReturningRestbucksXmlRepresentation() { // Arrange var order = new Order { Id = 123, Location = Location.TakeAway }; order.AddItem(new OrderItem(latte, 1, 1, new Dictionary<string, string>())); var orderRepo = new RepositoryStub<Order>(order); var app = CreateAppProxy(orderRepo); // Act var result = app.Get("/order/123/"); // Assert Assert.That(result.Context.Response.ContentType, Is.EqualTo("application/vnd.restbucks+xml")); }
public void WithRestbuckJsonAcceptHeaderResponseIsJson() { // Arrange var order = new Order { Id = 123, Location = Location.TakeAway }; order.AddItem(new OrderItem(latte, 1, 1, new Dictionary<string, string>())); var orderRepo = new RepositoryStub<Order>(order); var app = CreateAppProxy(orderRepo); // Act var result = app.Get("/order/123/", with => { with.HttpRequest(); with.Header("Accept", "application/vnd.restbucks+json"); }); // Assert Assert.That(result.Context.Response.ContentType, Contains.Substring("application/json")); }