Esempio n. 1
0
        public void TestValidate()
        {
            // Must have exactly 1 subnodes
            try
            {
                _minNode.Validate(SupportExprValidationContextFactory.MakeEmpty());
                Assert.Fail();
            }
            catch (ExprValidationException ex)
            {
                // Expected
            }

            // Must have only number-type subnodes
            _minNode = new ExprMinMaxAggrNode(false, MinMaxTypeEnum.MIN, true, false);
            _minNode.AddChildNode(new SupportExprNode(typeof(string)));
            _minNode.AddChildNode(new SupportExprNode(typeof(int)));
            try
            {
                _minNode.Validate(SupportExprValidationContextFactory.Make(new SupportStreamTypeSvc3Stream()));
                Assert.Fail();
            }
            catch (ExprValidationException ex)
            {
                // Expected
            }
        }
Esempio n. 2
0
        public void TestGetType()
        {
            _maxNode.AddChildNode(new SupportExprNode(typeof(int)));
            SupportExprNodeFactory.Validate3Stream(_maxNode);
            Assert.AreEqual(typeof(int?), _maxNode.ReturnType);

            _minNode.AddChildNode(new SupportExprNode(typeof(float?)));
            SupportExprNodeFactory.Validate3Stream(_minNode);
            Assert.AreEqual(typeof(float?), _minNode.ReturnType);

            _maxNode = new ExprMinMaxAggrNode(false, MinMaxTypeEnum.MAX, false, false);
            _maxNode.AddChildNode(new SupportExprNode(typeof(short)));
            SupportExprNodeFactory.Validate3Stream(_maxNode);
            Assert.AreEqual(typeof(short?), _maxNode.ReturnType);
        }
Esempio n. 3
0
        private ExprMinMaxAggrNode MakeNode(MinMaxTypeEnum minMaxType, Object value, Type type)
        {
            ExprMinMaxAggrNode minMaxNode = new ExprMinMaxAggrNode(false, minMaxType, false, false);

            minMaxNode.AddChildNode(new SupportExprNode(value, type));
            SupportExprNodeFactory.Validate3Stream(minMaxNode);
            return(minMaxNode);
        }