public void TestEvaluate() { _andNode.AddChildNode(new SupportBoolExprNode(true)); _andNode.AddChildNode(new SupportBoolExprNode(true)); SupportExprNodeUtil.Validate(_andNode); Assert.IsTrue(_andNode.Evaluate(new EvaluateParams(null, false, null)).AsBoolean()); _andNode = new ExprAndNodeImpl(); _andNode.AddChildNode(new SupportBoolExprNode(true)); _andNode.AddChildNode(new SupportBoolExprNode(false)); SupportExprNodeUtil.Validate(_andNode); Assert.IsFalse(_andNode.Evaluate(new EvaluateParams(null, false, null)).AsBoolean()); }
public void TestEvaluate() { andNode.AddChildNode(new SupportBoolExprNode(true)); andNode.AddChildNode(new SupportBoolExprNode(true)); SupportExprNodeUtil.Validate(container, andNode); Assert.IsTrue((bool)andNode.Forge.ExprEvaluator.Evaluate(null, false, null)); andNode = new ExprAndNodeImpl(); andNode.AddChildNode(new SupportBoolExprNode(true)); andNode.AddChildNode(new SupportBoolExprNode(false)); SupportExprNodeUtil.Validate(container, andNode); Assert.IsFalse((bool)andNode.Forge.ExprEvaluator.Evaluate(null, false, null)); }
public void TestValidate() { // test success _andNode.AddChildNode(new SupportExprNode(typeof(Boolean))); _andNode.AddChildNode(new SupportExprNode(typeof(Boolean))); _andNode.Validate(SupportExprValidationContextFactory.MakeEmpty(_container)); // test failure, type mismatch _andNode.AddChildNode(new SupportExprNode(typeof(string))); try { _andNode.Validate(SupportExprValidationContextFactory.MakeEmpty(_container)); Assert.Fail(); } catch (ExprValidationException) { // Expected } // test failed - with just one child _andNode = new ExprAndNodeImpl(); _andNode.AddChildNode(new SupportExprNode(typeof(Boolean))); try { _andNode.Validate(SupportExprValidationContextFactory.MakeEmpty(_container)); Assert.Fail(); } catch (ExprValidationException) { // Expected } }
public static ExprNode ConnectExpressionsByLogicalAnd( IList<ExprNode> nodes, ExprNode optionalAdditionalFilter) { if (nodes.IsEmpty()) { return optionalAdditionalFilter; } if (optionalAdditionalFilter == null) { if (nodes.Count == 1) { return nodes[0]; } return ConnectExpressionsByLogicalAnd(nodes); } if (nodes.Count == 1) { return ConnectExpressionsByLogicalAnd(Collections.List(nodes[0], optionalAdditionalFilter)); } ExprAndNode andNode = ConnectExpressionsByLogicalAnd(nodes); andNode.AddChildNode(optionalAdditionalFilter); return andNode; }