public FollowerQuantities SelectFollowerQuantitiesFor(int leadershipScore)
        {
            var followerQuantities = new FollowerQuantities();

            followerQuantities.Level1 = GetQuantityOfFollowersAtLevel(1, leadershipScore);
            followerQuantities.Level2 = GetQuantityOfFollowersAtLevel(2, leadershipScore);
            followerQuantities.Level3 = GetQuantityOfFollowersAtLevel(3, leadershipScore);
            followerQuantities.Level4 = GetQuantityOfFollowersAtLevel(4, leadershipScore);
            followerQuantities.Level5 = GetQuantityOfFollowersAtLevel(5, leadershipScore);
            followerQuantities.Level6 = GetQuantityOfFollowersAtLevel(6, leadershipScore);

            return followerQuantities;
        }
        public void Setup()
        {
            mockCharacterGenerator = new Mock<ICharacterGenerator>();
            mockLeadershipSelector = new Mock<ILeadershipSelector>();
            mockPercentileSelector = new Mock<IPercentileSelector>();
            mockAdjustmentsSelector = new Mock<IAdjustmentsSelector>();
            mockSetLevelRandomizer = new Mock<ISetLevelRandomizer>();
            mockSetAlignmentRandomizer = new Mock<ISetAlignmentRandomizer>();
            mockAnyAlignmentRandomizer = new Mock<IAlignmentRandomizer>();
            mockAnyPlayerClassNameRandomizer = new Mock<IClassNameRandomizer>();
            mockAnyBaseRaceRandomizer = new Mock<RaceRandomizer>();
            mockAnyMetaraceRandomizer = new Mock<RaceRandomizer>();
            mockRawStatRandomizer = new Mock<IStatsRandomizer>();
            mockBooleanPercentileSelector = new Mock<IBooleanPercentileSelector>();
            mockCollectionsSelector = new Mock<ICollectionsSelector>();
            mockAlignmentGenerator = new Mock<IAlignmentGenerator>();
            generator = new ConfigurableIterationGenerator(2);
            mockAnyNPCClassNameRandomizer = new Mock<IClassNameRandomizer>();
            leadershipGenerator = new LeadershipGenerator(mockCharacterGenerator.Object, mockLeadershipSelector.Object, mockPercentileSelector.Object,
                mockAdjustmentsSelector.Object, mockSetLevelRandomizer.Object, mockSetAlignmentRandomizer.Object, mockAnyAlignmentRandomizer.Object,
                mockAnyPlayerClassNameRandomizer.Object, mockAnyBaseRaceRandomizer.Object, mockAnyMetaraceRandomizer.Object, mockRawStatRandomizer.Object,
                mockBooleanPercentileSelector.Object, mockCollectionsSelector.Object, mockAlignmentGenerator.Object, generator, mockAnyNPCClassNameRandomizer.Object);
            allowedAlignments = new List<string>();
            followerQuantities = new FollowerQuantities();
            npcClasses = new List<string>();

            mockLeadershipSelector.Setup(s => s.SelectFollowerQuantitiesFor(It.IsAny<int>())).Returns(new FollowerQuantities());
            mockSetLevelRandomizer.SetupAllProperties();
            mockSetAlignmentRandomizer.SetupAllProperties();
            leaderAlignment = "leader alignment";
            allowedAlignments.Add(leaderAlignment);

            mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Set.Collection.AlignmentGroups, leaderAlignment))
                .Returns(allowedAlignments);

            mockAlignmentGenerator.Setup(g => g.GenerateWith(mockSetAlignmentRandomizer.Object)).Returns((IAlignmentRandomizer r) => (r as ISetAlignmentRandomizer).SetAlignment);
            mockAlignmentGenerator.Setup(g => g.GenerateWith(mockAnyAlignmentRandomizer.Object)).Returns(new Alignment("any alignment"));
            mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Set.Collection.ClassNameGroups, GroupConstants.NPCs)).Returns(npcClasses);
        }