public void ShouldReturnJsonCollectionOfRecentOrders() { // arrange var controller = new OrdersController(this.orderService, this.formsAuthentication); var currentDate = DateTime.UtcNow; var expected = new List<OrderViewModel> { new OrderViewModel { Id = 1, CreatedDate = currentDate.AddDays(-30), OrderNumber = "order number test 1", ReceivedDate = currentDate.AddDays(-5), TrackingNumber = "tracking number test 1", RetailerUrl = "Amazon, Inc.", Status = "Received" }, new OrderViewModel { Id = 2, CreatedDate = currentDate.AddDays(-40), OrderNumber = "order number test 2", ReceivedDate = currentDate.AddDays(-25), TrackingNumber = "tracking number test 2", RetailerUrl = "Amazon, Inc.", Status = "Received" }, new OrderViewModel { Id = 3, CreatedDate = currentDate.AddDays(-15), OrderNumber = "order number test 3", ReceivedDate = DateTime.MinValue, TrackingNumber = "tracking number test 3", RetailerUrl = "Amazon, Inc.", Status = "New" } }; // act var actual = controller.Recent(this.formsAuthentication.GetAuthenticationToken()) as JsonNetResult; // assert Assert.That(actual, Is.Not.Null); if (actual != null) { var actualOrders = (List<OrderViewModel>)actual.Data; for (var i = 0; i < expected.Count; i++) { Assert.That(actualOrders[i].Id, Is.EqualTo(expected[i].Id)); Assert.That(actualOrders[i].CreatedDate, Is.EqualTo(expected[i].CreatedDate).Within(1).Minutes); Assert.That(actualOrders[i].ReceivedDate, Is.EqualTo(expected[i].ReceivedDate).Within(1).Minutes); Assert.That(actualOrders[i].RetailerUrl, Is.EqualTo(expected[i].RetailerUrl)); Assert.That(actualOrders[i].OrderNumber, Is.EqualTo(expected[i].OrderNumber)); Assert.That(actualOrders[i].TrackingNumber, Is.EqualTo(expected[i].TrackingNumber)); Assert.That(actualOrders[i].Status, Is.EqualTo(expected[i].Status)); Assert.That(actualOrders[i].CanBeRemoved, Is.EqualTo(expected[i].CanBeRemoved)); } } }
public void ShouldBeAbleToPostNewOrderAndGetOrderWithIdBack() { // arrange var controller = new OrdersController(this.orderService, this.formsAuthentication); var currentDate = DateTime.UtcNow; var expected = new OrderViewModel { CreatedDate = currentDate, ReceivedDate = null, RetailerUrl = "amazon.com", Id = 0, OrderNumber = string.Empty, Status = "New", TrackingNumber = string.Empty }; // act var actual = controller.Add(expected.RetailerUrl, this.formsAuthentication.GetAuthenticationToken()) as JsonNetResult; // assert Assert.That(actual, Is.Not.Null); if (actual != null) { var model = actual.Data as OrderViewModel; Assert.That(model, Is.Not.Null); Debug.Assert(model != null, "model != null"); Assert.That(model.Id, Is.GreaterThan(0)); Assert.That(model.CreatedDate, Is.EqualTo(currentDate).Within(1).Minutes); Assert.That(model.OrderNumber, Is.Null); Assert.That(model.TrackingNumber, Is.Null); Assert.That(model.Status, Is.EqualTo("New")); } }