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 AddChildTest() { 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.AddChildCommand(child1); Assert.AreEqual(1, hierCmd.ChildCommands.Count()); hierCmd.AddChildsCommand(new List <ICommand> { child2, child3, null }); Assert.AreEqual(3, hierCmd.ChildCommands.Count()); hierCmd.AddChildCommand(null); Assert.AreEqual(3, hierCmd.ChildCommands.Count()); }
public void ExecutionTestMasterOnly() { StringBuilder strBld = new StringBuilder(1000); HierarchyCommand hierCmd = new HierarchyCommand( new Action <object>(p1 => strBld.Append("Master")), new Predicate <object>(p2 => true), HierarchyExecuteStrategy.MasterCommandOnly, 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 }); Assert.AreEqual(3, hierCmd.ChildCommands.Count()); hierCmd.Execute(null); Assert.IsFalse(strBld.ToString().Contains("1")); Assert.IsFalse(strBld.ToString().Contains("2")); Assert.IsFalse(strBld.ToString().Contains("3")); Assert.IsTrue(strBld.ToString().Contains("Master")); }
public void ChildCommandsTest() { 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); Assert.IsNotNull(hierCmd.ChildCommands); hierCmd.ChildCommands = null; Assert.IsNotNull(hierCmd.ChildCommands); Assert.IsFalse(hierCmd.ChildCommands.Any()); hierCmd.Execute(null); Assert.IsTrue(string.IsNullOrEmpty(strBld.ToString())); }