public void CanExecutionTestAtLeastOneChild() { StringBuilder strBld = new StringBuilder(1000); var child1 = new RelayCommand(new Action <object>(p1 => strBld.Append("1")), new Predicate <object>(p2 => true)); var child2 = new RelayCommand(new Action <object>(p1 => strBld.Append("2")), new Predicate <object>(p2 => false)); var child3 = new RelayCommand(new Action <object>(p1 => strBld.Append("3")), new Predicate <object>(p2 => false)); HierarchyCommand hierCmd = new HierarchyCommand( new List <ICommand> { child1, child2, child3 }, new Action <object>(p1 => strBld.Append("Master")), new Predicate <object>(p2 => true), HierarchyExecuteStrategy.MasterAndAllChilds, HierarchyCanExecuteStrategy.DependsOnAtLeastOneChild); Assert.AreEqual(3, hierCmd.ChildCommands.Count()); Assert.IsTrue(hierCmd.CanExecute(null)); hierCmd.ClearCommands(); var child1b = new RelayCommand(new Action <object>(p1 => strBld.Append("1")), new Predicate <object>(p2 => false)); var child2b = new RelayCommand(new Action <object>(p1 => strBld.Append("2")), new Predicate <object>(p2 => false)); var child3b = new RelayCommand(new Action <object>(p1 => strBld.Append("3")), new Predicate <object>(p2 => false)); hierCmd.AddChildsCommand(new List <ICommand> { child1b, child2b, child3b }); Assert.AreEqual(3, hierCmd.ChildCommands.Count()); Assert.IsFalse(hierCmd.CanExecute(null)); }
public void ClearChildsTest() { StringBuilder strBld = new StringBuilder(1000); HierarchyCommand hierCmd = new HierarchyCommand( new Action <object>(p1 => strBld.Append("Master")), new Predicate <object>(p2 => true), HierarchyExecuteStrategy.AllChildsOnly, HierarchyCanExecuteStrategy.DependsOnAllChilds); var child1 = new RelayCommand(new Action <object>(p1 => strBld.Append("1")), new Predicate <object>(p2 => true)); var child2 = new RelayCommand(new Action <object>(p1 => strBld.Append("2")), new Predicate <object>(p2 => true)); var child3 = new RelayCommand(new Action <object>(p1 => strBld.Append("3")), new Predicate <object>(p2 => true)); hierCmd.AddChildsCommand(new List <ICommand> { child1, child2, child3, null }); Assert.AreEqual(3, hierCmd.ChildCommands.Count()); hierCmd.ClearCommands(); Assert.IsNotNull(hierCmd.ChildCommands); Assert.AreEqual(0, hierCmd.ChildCommands.Count()); }