Exemplo n.º 1
0
        public void test_THAT_lookup_id_IS_rendered_to_caml_properly()
        {
            var    operand = new LookupIdValueOperand("123");
            string caml    = operand.ToCaml().ToString();

            Assert.That(caml, Is.EqualTo("<Value Type=\"Lookup\">123</Value>"));
        }
Exemplo n.º 2
0
        public void test_THAT_eq_operation_with_lookup_id_operand_IS_converted_to_expression_correctly()
        {
            var        op1  = new FieldRefOperand("Title");
            var        op2  = new LookupIdValueOperand("1");
            var        op   = new EqOperation(null, op1, op2);
            Expression expr = op.ToExpression();

            Assert.That(expr.ToString(), Is.EqualTo("(x.get_Item(\"Title\") == Convert(Convert(\"1\")))"));
        }
        //private bool isExpressionBasedOnCustomTypes(Expression objectExpression)
        //{
        //    return (objectExpression.NodeType == ExpressionType.Convert &&
        //        objectExpression.Type.IsSubclassOf(typeof(BaseFieldType)));
        //}

        //-----------------------------------

        protected virtual IOperand getFieldRefOperand(LambdaExpression expr)
        {
            if (!IsValid(expr))
            {
                throw new NonSupportedExpressionException(expr);
            }

            var obj = this.getObjectExpression(expr);

            IOperand valueOperand = null;
            var      body         = expr.Body as MethodCallExpression;

            if (body.Method.Name == ReflectionHelper.IncludesMethodName && body.Arguments.Count == 3)
            {
                // for "Includes" extension method - when 2nd argument lookupId is provided need to add LookupId attribute to field ref operand
                var lookupIdExpr = body.Arguments[2];
                if (lookupIdExpr is ConstantExpression && (bool)((ConstantExpression)lookupIdExpr).Value)
                {
                    valueOperand = new LookupIdValueOperand("0");
                }
            }

            return(operandBuilder.CreateFieldRefOperand(obj, valueOperand));
        }
Exemplo n.º 4
0
        public void test_WHEN_string_is_not_valid_integer_THEN_exception_is_thrown()
        {
            var operand = new LookupIdValueOperand("asd");

            Assert.That(operand.Value, Is.EqualTo(1));
        }