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");
        }
Ejemplo n.º 2
0
 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.");
 }
Ejemplo n.º 3
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"));
        }