public void ShouldBeAbleToAddNewOrder() { // arrange var mock = new MockRepository(); var repository = mock.DynamicMock<IOrderRepository>(); const string IdentityToken = "*****@*****.**"; const string RetailerUrl = "amazon.com"; Expect.Call(repository.AddOrder(IdentityToken, new Order { Retailer = new Retailer(RetailerUrl) })) .Return(new Order(OrderStatus.New) { Retailer = new Retailer(RetailerUrl), CreatedDate = DateTime.UtcNow }); var service = new OrderService(repository, new FakeEmailService(), this.logger); var request = new AddOrderRequest { IdentityToken = IdentityToken, RetailerUrl = RetailerUrl, CreatedDate = DateTime.UtcNow }; // act mock.ReplayAll(); var actual = service.AddOrder(request); mock.VerifyAll(); // assert Assert.That(actual, Is.Not.Null); Assert.That(actual.CreatedDate, Is.EqualTo(request.CreatedDate).Within(1).Minutes); Assert.That(actual.RetailerUrl, Is.EqualTo(request.RetailerUrl)); }
public void ShouldBeAbleToGetListOfOrders() { // arrange var mock = new MockRepository(); var repository = mock.StrictMock<IOrderRepository>(); const string IdentityToken = "*****@*****.**"; Expect.Call(repository.GetMyRecent(IdentityToken)).Return( new List<Order> { new Order(OrderStatus.New) { CreatedDate = DateTime.UtcNow, Id = 1, OrderNumber = "12212", ReceivedDate = null, Retailer = new Retailer("amazon.com"), ReturnedDate = null }, new Order(OrderStatus.Received) { CreatedDate = DateTime.UtcNow, Id = 2, OrderNumber = "122122", ReceivedDate = DateTime.UtcNow, Retailer = new Retailer("apple.com"), ReturnedDate = null }, new Order(OrderStatus.ReturnRequested) { CreatedDate = DateTime.UtcNow, Id = 3, OrderNumber = "1221227776", ReceivedDate = DateTime.UtcNow, Retailer = new Retailer("apple.com"), ReturnedDate = null } }); var service = new OrderService(repository, new FakeEmailService(), this.logger); var request = new GetMyOrdersRequest { IdentityToken = IdentityToken }; var expected = new List<GetMyOrdersResponse> { new GetMyOrdersResponse { CreatedDate = DateTime.UtcNow, Id = 1, OrderNumber = "12212", ReceivedDate = null, RetailerUrl = "amazon.com", ReturnedDate = null, Status = "New" }, new GetMyOrdersResponse { CreatedDate = DateTime.UtcNow, Id = 2, OrderNumber = "122122", ReceivedDate = DateTime.UtcNow, RetailerUrl = "apple.com", ReturnedDate = null, Status = "Received" }, new GetMyOrdersResponse { CreatedDate = DateTime.UtcNow, Id = 3, OrderNumber = "1221227776", ReceivedDate = DateTime.UtcNow, RetailerUrl = "apple.com", ReturnedDate = null, Status = "ReturnRequested" } }; // act mock.ReplayAll(); var actual = service.GetRecent(request); mock.VerifyAll(); // assert Assert.That(actual, Is.Not.Null); if (actual != null) { for (var i = 0; i < expected.Count; i++) { Assert.That(actual[i].Id, Is.EqualTo(expected[i].Id)); Assert.That(actual[i].CreatedDate, Is.EqualTo(expected[i].CreatedDate).Within(1).Minutes); Assert.That(actual[i].ReceivedDate, Is.EqualTo(expected[i].ReceivedDate).Within(1).Minutes); Assert.That(actual[i].RetailerUrl, Is.EqualTo(expected[i].RetailerUrl)); Assert.That(actual[i].OrderNumber, Is.EqualTo(expected[i].OrderNumber)); Assert.That(actual[i].TrackingNumber, Is.EqualTo(expected[i].TrackingNumber)); Assert.That(actual[i].Status, Is.EqualTo(expected[i].Status)); } } }
public void ShouldBeAbleToRemoveOrder() { // arrange var mock = new MockRepository(); var repository = mock.StrictMock<IOrderRepository>(); const string IdentityToken = "*****@*****.**"; const int OrderId = 1; Expect.Call(repository.RemoveOrder(IdentityToken, OrderId)).Return(new Order { Id = 1 }); var service = new OrderService(repository, new FakeEmailService(), this.logger); var request = new RemoveOrderRequest { IdentityToken = IdentityToken, Id = OrderId }; // act mock.ReplayAll(); var actual = service.RemoveOrder(request); mock.VerifyAll(); // assert Assert.That(actual, Is.Not.Null); Assert.That(actual.MessageType, Is.EqualTo(MessageType.Success)); }
public void ShouldNotBeAbleToRemoveOrderInStateOtherThanNew() { // arrange var mock = new MockRepository(); var repository = mock.StrictMock<IOrderRepository>(); const string IdentityToken = "*****@*****.**"; const int OrderId = 2; Expect.Call(repository.RemoveOrder(IdentityToken, OrderId)).Throw(new ArgumentException()); var service = new OrderService(repository, new FakeEmailService(), this.logger); var request = new RemoveOrderRequest { IdentityToken = IdentityToken, Id = OrderId }; // act mock.ReplayAll(); var actual = service.RemoveOrder(request); mock.VerifyAll(); // assert Assert.That(actual, Is.Not.Null); Assert.That(actual.MessageType, Is.EqualTo(MessageType.Error)); }
public static void BeforeOrderScenarios() { var orderRepository = new OrderRepository(); var logger = new FakeLogger(); var orderService = new OrderService(orderRepository, new FakeEmailService(), logger); ScenarioContext.Current.Set(orderService); }