public void PlaceOrder_ShouldInsertAnOrder_AndReturnTrue(string country, double expectedVat)
        {
            // Arrange.
            var customer     = CustomerDataHelper.Add(GetCustomer(country));
            var order        = GetOrderDto();
            var orderService = _container.Resolve <IOrderService>();

            // Act.
            var result        = orderService.PlaceOrder(order, customer.CustomerId);
            var insertedOrder = OrderDataHelper.GetOrder(order.OrderId);

            // Assert.
            Assert.IsTrue(result);
            Assert.IsNotNull(insertedOrder);
            Assert.AreEqual(customer.CustomerId, insertedOrder.CustomerId);
            Assert.AreEqual(order.OrderId, insertedOrder.OrderId);
            Assert.AreEqual(order.Amount, insertedOrder.Amount);
            Assert.AreEqual(expectedVat, insertedOrder.VAT);
        }
        public void GetAllCustomersWithOrders_ShouldReturnCustomersAndOrders()
        {
            // Arrange.
            var customerOne = CustomerDataHelper.Add(GetCustomer("UK"));
            var orderOne    = OrderDataHelper.AddOrder(GetOrder(customerOne.CustomerId));
            var orderTwo    = OrderDataHelper.AddOrder(GetOrder(customerOne.CustomerId));

            var customerTwo = CustomerDataHelper.Add(GetCustomer("FR"));
            var orderThree  = OrderDataHelper.AddOrder(GetOrder(customerTwo.CustomerId));

            var customerOrderService = _container.Resolve <ICustomerOrderService>();

            // Act.
            var results           = customerOrderService.GetAllCustomerWithOrders();
            var customerOneResult = results.First(c => c.Customer.CustomerId == customerOne.CustomerId);
            var customerTwoResult = results.First(c => c.Customer.CustomerId == customerTwo.CustomerId);

            // Assert.
            Assert.AreEqual(2, customerOneResult.Orders.Count());
            Assert.AreEqual(1, customerTwoResult.Orders.Count());
            Assert.IsTrue(customerOneResult.Orders.Any(o => o.OrderId == orderOne.OrderId));
            Assert.IsTrue(customerOneResult.Orders.Any(o => o.OrderId == orderTwo.OrderId));
            Assert.IsTrue(customerTwoResult.Orders.Any(o => o.OrderId == orderThree.OrderId));
        }