public void TestValidate() { // test success _orNode.AddChildNode(new SupportExprNode(typeof(Boolean))); _orNode.AddChildNode(new SupportExprNode(typeof(Boolean))); _orNode.Validate(SupportExprValidationContextFactory.MakeEmpty(_container)); // test failure, type mismatch _orNode.AddChildNode(new SupportExprNode(typeof(string))); try { _orNode.Validate(SupportExprValidationContextFactory.MakeEmpty(_container)); Assert.Fail(); } catch (ExprValidationException) { // Expected } // test failed - with just one child _orNode = new ExprOrNode(); _orNode.AddChildNode(new SupportExprNode(typeof(Boolean))); try { _orNode.Validate(SupportExprValidationContextFactory.MakeEmpty(_container)); Assert.Fail(); } catch (ExprValidationException) { // Expected } }
public void TestEvaluate() { _orNode.AddChildNode(new SupportBoolExprNode(true)); _orNode.AddChildNode(new SupportBoolExprNode(false)); SupportExprNodeUtil.Validate(_orNode); Assert.IsTrue(_orNode.Evaluate(new EvaluateParams(null, false, null)).AsBoolean()); _orNode = new ExprOrNode(); _orNode.AddChildNode(new SupportBoolExprNode(false)); _orNode.AddChildNode(new SupportBoolExprNode(false)); SupportExprNodeUtil.Validate(_orNode); Assert.IsFalse(_orNode.Evaluate(new EvaluateParams(null, false, null)).AsBoolean()); _orNode = new ExprOrNode(); _orNode.AddChildNode(new SupportExprNode(null, typeof(Boolean))); _orNode.AddChildNode(new SupportExprNode(false)); SupportExprNodeUtil.Validate(_orNode); Assert.IsNull(_orNode.Evaluate(new EvaluateParams(null, false, null))); }