public void GetMilestonesArchived_PassingNegativeValues_ShouldNotThrowErrorAndReturnEmptyList()
        {
            var milestoneCalculator = new MilestoneCalculator(_milestoneConfigurations);

            var milestonesAchived = milestoneCalculator.GetMilestonesArchived(-1, -50);

            milestonesAchived.Should().NotBeNull();
            milestonesAchived.Should().BeEmpty();
        }
        public void GetMilestonesArchived_NoMilestoneConfiguration_ShouldReturnEmptyList()
        {
            var milestoneConfigurations = new Milestone[0];

            var milestoneCalculator = new MilestoneCalculator(milestoneConfigurations);

            var milestonesArchived = milestoneCalculator.GetMilestonesArchived(0, 10);

            milestonesArchived.Should().NotBeNull();
            milestonesArchived.Should().BeEmpty();
        }
        public void GetMilestonesArchived_PassingPointsEarned_ShouldGetCorrectMilestones(
            int initialQuestPoints,
            int questPointsEarned,
            int[] milestones)
        {
            var milestoneCalculator = new MilestoneCalculator(_milestoneConfigurations);

            var milestonesArchived = milestoneCalculator.GetMilestonesArchived(initialQuestPoints, questPointsEarned);

            milestonesArchived.Should().NotBeNull();
            milestonesArchived.Count.Should().Be(milestones.Length);
            milestonesArchived.Select(m => m.MilestoneId).Should().BeEquivalentTo(milestones);
        }