public void SetStatus(TestNodeState value, bool updateChildren, bool updateParent) { if (_state != value) { _state = value; if (updateChildren && Children != null) { if (!(value == TestNodeState.Inactive || value == TestNodeState.Running)) { throw new InvalidOperationException("Tried to set invalid state: " + value); } foreach (var child in Children.Cast <TestTreeNode>()) { child.SetStatus(value, updateChildren: true, updateParent: false); } } if (updateParent && Parent != null) { if (!(value == TestNodeState.Success || value == TestNodeState.Failure || value == TestNodeState.Inconclusive)) { throw new InvalidOperationException("Tried to set invalid state: " + value); } ((TestTreeNode)Parent).UpdateStateBasedOnChildren(); } RaisePropertyChanged(() => State); } }
public void ConstructorTest() { NodeState _nodeState = new TestNodeState(); Assert.IsNotNull(_nodeState.BrowseName); Assert.AreEqual <string>("browseName", _nodeState.BrowseName.Name); Assert.IsFalse(_nodeState.BrowseName.NamespaceIndexSpecified); Assert.AreEqual <NodeStateChangeMasks>(NodeStateChangeMasks.None, _nodeState.ChangeMasks); }