public void Create_MultipleThreshold_ShouldCorrectlyCreateRanges()
        {
            // Arrange
            var deminimisBaseCharges = new List <ChargeName> {
                "Item"
            };
            var chargeConfigurations = new List <ChargeConfiguration>
            {
                new RateBasedChargeConfiguration("Duty", "EUR0", new List <ChargeName> {
                    "Item"
                }),
                new RateBasedChargeConfiguration("Vat", "EUR100", new List <ChargeName> {
                    "Item", "Duty"
                }),
                new RateBasedChargeConfiguration("Fee", "EUR200", new List <ChargeName> {
                    "Item", "Duty", "Vat"
                }),
                new FixedRateChargeConfiguration("FixedFee", "EUR300", "EUR100")
            };

            // Act
            var calculationRanges = new CalculatorConfiguration(chargeConfigurations, deminimisBaseCharges)
                                    .CalculationRanges
                                    .ToList();

            // Assert
            calculationRanges.Should().HaveCount(4);

            calculationRanges[0].DeminimisThreshold.ToString().Should().Be("EUR0");
            calculationRanges[0].ChargeConfigurations.Should().HaveCount(1);

            calculationRanges[1].DeminimisThreshold.ToString().Should().Be("EUR100");
            calculationRanges[1].ChargeConfigurations.Should().HaveCount(2);

            calculationRanges[2].DeminimisThreshold.ToString().Should().Be("EUR200");
            calculationRanges[2].ChargeConfigurations.Should().HaveCount(3);

            calculationRanges[3].DeminimisThreshold.ToString().Should().Be("EUR300");
            calculationRanges[3].ChargeConfigurations.Should().HaveCount(4);
        }