Exemplo n.º 1
0
        private void AssertDependencySetup <TAction>(
            IVMDescriptor descriptor,
            PathDefinition sourcePath,
            ChangeType[] changeTypes,
            PathDefinition targetPath = null
            ) where TAction : DependencyAction
        {
            var behavior = descriptor.Behaviors.GetNextBehavior <DeclarativeDependencyBehavior>();

            Assert.AreEqual(
                sourcePath.ToString(),
                behavior.Dependencies.First().SourcePath.ToString()
                );

            Assert.IsInstanceOfType(
                behavior.Dependencies.First().Action,
                typeof(TAction)
                );

            CollectionAssert.AreEquivalent(
                changeTypes,
                behavior.Dependencies.First().ChangeTypes
                );

            if (targetPath != null)
            {
                DependencyAction action = behavior.Dependencies.First().Action;
                if (action is ValidationAction)
                {
                    Assert.AreEqual(
                        targetPath.ToString(),
                        ((ValidationAction)action).Target.Path.ToString()
                        );
                }
                else if (action is RefreshAction)
                {
                    Assert.AreEqual(
                        targetPath.ToString(),
                        ((RefreshAction)action).Target.Path.ToString()
                        );
                }
                else
                {
                    Assert.Fail("When asserting a target path the action have to be a RefreshAction or ValidationAction");
                }
            }
        }