public void ModifyInt_Simple()
        {
            Sheet sheet = new Sheet();

            //no changes
            int           setValue1 = 10;
            ModifiableInt intValue  = new ModifiableInt(setValue1);

            Assert.AreEqual(intValue.defaultValue, setValue1);
            Assert.AreEqual(intValue.CurrentValue, setValue1);

            //delta change
            int deltaValue1 = 2;

            intValue.ApplyModification(new IntModification(new List <string>(), deltaValue1, "", IntModificationType.Delta), sheet);
            Assert.AreEqual(intValue.CurrentValue, setValue1 + deltaValue1);

            //set value after delta change
            int setValue2 = 20;

            intValue.CurrentValue = setValue2;
            Assert.AreEqual(intValue.defaultValue, setValue2 - deltaValue1);
            Assert.AreEqual(intValue.CurrentValue, setValue2);

            //absolute change
            int absoluteValue = 15;

            intValue.ApplyModification(new IntModification(new List <string>(), absoluteValue, "", IntModificationType.Absolute), sheet);
            Assert.AreEqual(intValue.CurrentValue, absoluteValue);

            //set value after absolute change
            int setValue3 = 30;

            intValue.CurrentValue = setValue3;
            Assert.AreEqual(intValue.defaultValue, setValue3);
            Assert.AreEqual(intValue.CurrentValue, absoluteValue);

            //delta change on top of absolute change
            int deltaValue2 = -1;

            intValue.ApplyModification(new IntModification(new List <string>(), deltaValue2, "", IntModificationType.Delta), sheet);
            Assert.AreEqual(intValue.CurrentValue, absoluteValue + deltaValue2);

            //set value after absolute change
            int setValue4 = 40;

            intValue.CurrentValue = setValue4;
            Assert.AreEqual(intValue.defaultValue, setValue4);
            Assert.AreEqual(intValue.CurrentValue, absoluteValue + deltaValue2);
        }
예제 #2
0
 override public void ApplyModification(Modification mod, Sheet sheet)
 {
     if (mod is IntModification intMod)
     {
         if (mod.path.Count > 1)
         {
             if (String.Equals(mod.path[1], "MaxValue", StringComparison.OrdinalIgnoreCase))
             {
                 MaxValue.ApplyModification(intMod, sheet);
                 isCurrentlyModified = true;
             }
         }
     }
 }