public void Setup() { Next = new ValidationResultAggregatorStub(); Next.ReturnedValidationResults[ValidationResultScope.PropertiesOnly] = PropertyResult; Next.ReturnedValidationResults[ValidationResultScope.ViewModelValidationsOnly] = ViewModelResult; Next.ReturnedValidationResults[ValidationResultScope.Descendants] = DescendantResult; Behavior = new ValidationResultAggregatorCacheBehavior(); Counter = new NextAggregatorInvocationCounter(); Context = ViewModelStub .WithBehaviors(Behavior, Counter, Next) .BuildContext(); }
public void HandleChange_AlsoRefreshesParentCaches() { Behavior.GetValidationResult(Context, ValidationResultScope.All); var newResult = ChangeNextResultsAndReturnJoinedResults(); var childBehavior = new ValidationResultAggregatorCacheBehavior(); var childVM = ViewModelStub .WithBehaviors(childBehavior, new ValidationResultAggregatorStub()) .Build(); childVM.Kernel.Parents.Add(Context.VM); childBehavior.HandleChange( childVM.GetContext(), ChangeArgs.ValidationResultChanged().PrependViewModel(ViewModelStub.Build()) ); var actualResult = Behavior.GetValidationResult(Context, ValidationResultScope.All); Assert.AreEqual(newResult, actualResult); }