public void TestConditionalValues()
        {
            var masterValuesTable = new List<MasterValueRecord>();
            masterValuesTable.Add(new MasterValueRecord() { Score = 1, PassiveModifier = 2 });
            masterValuesTable.Add(new MasterValueRecord() { Score = 2, PassiveModifier = 4 });
            masterValuesTable.Add(new MasterValueRecord() { Score = 3, PassiveModifier = 6 });

            var character = new Character(masterValuesTable);

            var bonusSource = new BonusSource(character, "Test");

            bonusSource.AddBonus("when foo", 2);
            bonusSource.AddBonus("when foo", 3);

            bonusSource.AddBonus("when bar", 1);

            IReadOnlyDictionary<string, int> actual = bonusSource.ConditionalValues;
            var expected = new Dictionary<string, int>()
            {
                {"when foo", 3},
                {"when bar", 1}
            };

            Assert.That(actual, Is.EquivalentTo(expected));
        }
        public void TestValueWhenEmpty()
        {
            var masterValuesTable = new List<MasterValueRecord>();
            masterValuesTable.Add(new MasterValueRecord() { Score = 1, PassiveModifier = 2 });
            masterValuesTable.Add(new MasterValueRecord() { Score = 2, PassiveModifier = 4 });
            masterValuesTable.Add(new MasterValueRecord() { Score = 3, PassiveModifier = 6 });

            var character = new Character(masterValuesTable);

            var bonusSource = new BonusSource(character, "Test");

            Assert.That(bonusSource.Value, Is.EqualTo(0));
        }