public void Calculate_MultipleOrderItems_ShouldAddCorrectCharge()
        {
            // Arrange
            var orderItem1 = _orderItemBuilder
                             .WithWeight(10)
                             .WithDutyRate(10)
                             .WithQuantity(1)
                             .Build();

            var orderItem2 = _orderItemBuilder
                             .WithWeight(10)
                             .WithDutyRate(20)
                             .WithQuantity(2)
                             .Build();

            var order = _orderBuilder.WithOrderItems(new List <OrderItem> {
                orderItem1, orderItem2
            }).Build();

            var sut = new WeightBasedChargeCalculator(ChargeName, oi => oi.DutyRate);

            // Act
            sut.Calculate(order);

            // Assert
            orderItem1.Charges.Should()
            .HaveCount(3).And
            .ContainSingle(c => c.ChargeName.Value == ChargeName && c.ChargeAmount.Value == 1);
            orderItem2.Charges.Should()
            .HaveCount(3).And
            .ContainSingle(c => c.ChargeName.Value == ChargeName && c.ChargeAmount.Value == 4);
        }