public void It_should_cancel_customer_order() { // Given var customer = new Customer("", 100); var repo = Substitute.For <ICustomerRepository>(); repo.Load(customer.Id).Returns(customer); var controller = new CustomerController(repo); var item = new OrderItem("", 20); var orderId = controller.Order(customer.Id, item); // When controller.CancelOrder(customer.Id, orderId); // Then customer.Funds.Should().Be(100); customer.Orders.Should().BeEmpty(); repo.Received().Save(customer); }