示例#1
0
        public void TestValidate()
        {
            // Must have exactly 2 subnodes
            try
            {
                _bitWiseNode.Validate(SupportExprValidationContextFactory.MakeEmpty(_container));
                Assert.Fail();
            }
            catch (ExprValidationException)
            {
                // Expected
                Log.Debug("No nodes in the expression");
            }

            // Must have only number or boolean-type subnodes
            _bitWiseNode.AddChildNode(new SupportExprNode(typeof(string)));
            _bitWiseNode.AddChildNode(new SupportExprNode(typeof(int)));
            try
            {
                _bitWiseNode.Validate(SupportExprValidationContextFactory.MakeEmpty(_container));
                Assert.Fail();
            }
            catch (ExprValidationException)
            {
                // Expected
            }
        }
示例#2
0
 public void TestToExpressionString()
 {
     Log.Debug(".testToExpressionString");
     _bitWiseNode = new ExprBitWiseNode(BitWiseOpEnum.BAND);
     _bitWiseNode.AddChildNode(new SupportExprNode(4));
     _bitWiseNode.AddChildNode(new SupportExprNode(2));
     Assert.AreEqual("4&2", _bitWiseNode.ToExpressionStringMinPrecedenceSafe());
 }
示例#3
0
 public void TestGetType()
 {
     Log.Debug(".testGetType");
     _bitWiseNode = new ExprBitWiseNode(BitWiseOpEnum.BAND);
     _bitWiseNode.AddChildNode(new SupportExprNode(typeof(double?)));
     _bitWiseNode.AddChildNode(new SupportExprNode(typeof(int)));
     try
     {
         _bitWiseNode.Validate(SupportExprValidationContextFactory.MakeEmpty(_container));
         Assert.Fail();
     }
     catch (ExprValidationException)
     {
         // Expected
     }
     _bitWiseNode = new ExprBitWiseNode(BitWiseOpEnum.BAND);
     _bitWiseNode.AddChildNode(new SupportExprNode(typeof(long)));
     _bitWiseNode.AddChildNode(new SupportExprNode(typeof(long)));
     ExprNodeUtility.GetValidatedSubtree(ExprNodeOrigin.SELECT, _bitWiseNode, SupportExprValidationContextFactory.MakeEmpty(_container));
     Assert.AreEqual(typeof(long?), _bitWiseNode.ReturnType);
 }