public IEnumerable <IObservable> SetPropertyValueAfterConfirmation <TValue>(
     TFailureMechanism failureMechanism,
     TValue value,
     SetFailureMechanismPropertyValueDelegate <TFailureMechanism, TValue> setValue)
 {
     Called = true;
     Assert.AreSame(ExpectedFailureMechanism, failureMechanism);
     Assert.AreEqual(ExpectedValue, value);
     setValue(failureMechanism, value);
     return(ReturnedAffectedObjects);
 }
示例#2
0
        public IEnumerable <IObservable> SetPropertyValueAfterConfirmation <TValue>(
            T failureMechanism,
            TValue value, SetFailureMechanismPropertyValueDelegate <T, TValue> setValue)
        {
            if (failureMechanism == null)
            {
                throw new ArgumentNullException(nameof(failureMechanism));
            }

            if (value == null)
            {
                throw new ArgumentNullException(nameof(value));
            }

            if (setValue == null)
            {
                throw new ArgumentNullException(nameof(setValue));
            }

            var changedObjects = new List <IObservable>();

            if (RequiresConfirmation(failureMechanism))
            {
                if (ConfirmPropertyChange())
                {
                    setValue(failureMechanism, value);
                    changedObjects.AddRange(PropertyChanged(failureMechanism));
                    changedObjects.Add(failureMechanism);
                }
            }
            else
            {
                setValue(failureMechanism, value);
                changedObjects.Add(failureMechanism);
            }

            return(changedObjects);
        }