Ejemplo n.º 1
0
        public void test_THAT_order_by_IS_translated_correctly()
        {
            string xml =
                "  <OrderBy>" +
                "    <FieldRef Name=\"Modified\" Ascending=\"False\" />" +
                "  </OrderBy>";

            var b    = new ReOperandBuilderFromCaml();
            var t    = new ReTranslatorFromCaml(null, new ReArrayAnalyzer(XmlHelper.Get(xml), b), null, null, null, null);
            var expr = t.TranslateOrderBy();

            Assert.That(expr.ToString(), Is.EqualTo("x => (x.get_Item(\"Modified\") As Desc)"));
        }
Ejemplo n.º 2
0
        public void test_WHEN_view_field_is_specified_THEN_expressions_are_linked_correctly()
        {
            string viewFields =
                "<ViewFields>" +
                "<FieldRef Name=\"field1\" />" +
                "</ViewFields>";

            var l    = new ReLinkerFromCaml(null, null, null, XmlHelper.Get(viewFields), null, null);
            var g    = new GroupByParams();
            var expr = l.Link(null, null, null, (Expression <Func <SPListItem, object> >)(x => x["field1"]), null, null, g);

            Assert.That(expr.ToString(), Is.EqualTo("Query().ViewFields(x => x.get_Item(\"field1\"), True)"));
        }
Ejemplo n.º 3
0
        public void test_WHEN_where_and_order_by_are_specified_THEN_expressions_are_linked_correctly()
        {
            var orderBy =
                "  <OrderBy>" +
                "    <FieldRef Name=\"Title\" Ascending=\"True\" />" +
                "  </OrderBy>";

            var l    = new ReLinkerFromCaml(null, XmlHelper.Get(orderBy), null, null, null, null);
            var g    = new GroupByParams();
            var expr = l.Link((Expression <Func <SPListItem, bool> >)(x => (int)x["foo"] == 1), (Expression <Func <SPListItem, object> >)(x => x["Title"] as Camlex.Asc), null, null, null, null, g);

            Assert.That(expr.ToString(), Is.EqualTo("Query().Where(x => (Convert(x.get_Item(\"foo\")) = 1)).OrderBy(x => (x.get_Item(\"Title\") As Asc))"));
        }
Ejemplo n.º 4
0
        public void test_WHEN_group_by_is_specified_THEN_expressions_are_linked_correctly()
        {
            var groupBy =
                "  <GroupBy>" +
                "    <FieldRef Name=\"field1\" />" +
                "  </GroupBy>";

            var l    = new ReLinkerFromCaml(null, null, XmlHelper.Get(groupBy), null, null, null);
            var g    = new GroupByParams();
            var expr = l.Link(null, null, (Expression <Func <SPListItem, object> >)(x => x["field1"]), null, null, null, g);

            Assert.That(expr.ToString(), Is.EqualTo("Query().GroupBy(x => x.get_Item(\"field1\"))"));
        }
        public void test_THAT_where_IS_translated_correctly()
        {
            string xml =
                "       <Eq>" +
                "           <FieldRef Name=\"Title\" />" +
                "           <Value Type=\"Text\">testValue</Value>" +
                "       </Eq>";

            var b    = new ReOperandBuilderFromCaml();
            var t    = new ReTranslatorFromCaml(new ReEqAnalyzer(XmlHelper.Get(xml), b), null, null, null, null, null);
            var expr = t.TranslateWhere();

            Assert.That(expr.ToString(), Is.EqualTo("x => (Convert(x.get_Item(\"Title\")) = \"testValue\")"));
        }
Ejemplo n.º 6
0
        public void test_WHEN_several_order_by_are_specified_THEN_expressions_are_linked_correctly()
        {
            var orderBy =
                "  <OrderBy>" +
                "    <FieldRef Name=\"Title\" />" +
                "    <FieldRef Name=\"Date\" Ascending=\"False\" />" +
                "  </OrderBy>";

            var l    = new ReLinkerFromCaml(null, XmlHelper.Get(orderBy), null, null, null, null);
            var g    = new GroupByParams();
            var expr = l.Link(null, (Expression <Func <SPListItem, object[]> >)(x => new[] { x["Title"], x["Date"] as Camlex.Desc }), null, null, null, null, g);

            Assert.That(expr.ToString(), Is.EqualTo("Query().OrderBy(x => new [] {x.get_Item(\"Title\"), (x.get_Item(\"Date\") As Desc)})"));
        }
Ejemplo n.º 7
0
        public void test_WHEN_user_id_tag_is_specified_THEN_expression_is_valid()
        {
            var xml =
                "<Eq>" +
                "    <FieldRef Name=\"foo\"/>" +
                "    <Value Type=\"Integer\"><UserID /></Value>" +
                "</Eq>";

            var operandBuilder = new ReOperandBuilderFromCaml();
            var analyzer       = new ReEqAnalyzer(XmlHelper.Get(xml), operandBuilder);
            var operation      = (EqOperation)analyzer.GetOperation();

            Assert.That(operation.ToExpression().ToString(), Is.EqualTo(
                            "(x.get_Item(\"foo\") == Convert(Convert(Camlex.UserID)))"));
        }
Ejemplo n.º 8
0
        public void test_WHEN_1_projected_field_is_specified_THEN_expressions_are_linked_correctly()
        {
            string xml =
                "<ProjectedFields>" +
                "<Field Name=\"test\" Type=\"Lookup\" List=\"foo\" ShowField=\"bar\" />" +
                "</ProjectedFields>";

            var l = new ReLinkerFromCaml(null, null, null, null, null, XmlHelper.Get(xml));
            var g = new GroupByParams();

            Expression <Func <SPListItem, object> > ex = x => x["test"].List("foo").ShowField("bar");
            var expr = l.Link(null, null, null, null, null, (new[] { (LambdaExpression)ex }).ToList(), g);

            Assert.That(expr.ToString(), Is.EqualTo("Query().ProjectedFields().Field(x => x.get_Item(\"test\").List(\"foo\").ShowField(\"bar\"))"));
        }
Ejemplo n.º 9
0
        public void test_WHEN_group_by_with_collapse_and_group_limit_is_specified_THEN_expressions_are_linked_correctly()
        {
            var groupBy =
                "  <GroupBy Collapse=\"True\" GroupLimit=\"1\">" +
                "    <FieldRef Name=\"field1\" />" +
                "  </GroupBy>";

            var l = new ReLinkerFromCaml(null, null, XmlHelper.Get(groupBy), null, null, null);
            var g = new GroupByParams {
                HasCollapse = true, Collapse = true, HasGroupLimit = true, GroupLimit = 1
            };
            var expr = l.Link(null, null, (Expression <Func <SPListItem, object> >)(x => x["field1"]), null, null, null, g);

            Assert.That(expr.ToString(), Is.EqualTo("Query().GroupBy(x => x.get_Item(\"field1\"), True, 1)"));
        }
Ejemplo n.º 10
0
        public void test_WHEN_type_is_user_id_and_value_is_specified_THEN_expression_is_valid()
        {
            var xml =
                "<Eq>" +
                "    <FieldRef Name=\"foo\" LookupId=\"True\" />" +
                "    <Value Type=\"User\">123</Value>" +
                "</Eq>";

            var operandBuilder = new ReOperandBuilderFromCaml();
            var analyzer       = new ReEqAnalyzer(XmlHelper.Get(xml), operandBuilder);
            var operation      = (EqOperation)analyzer.GetOperation();

            Assert.That(operation.ToExpression().ToString(), Is.EqualTo(
                            "(x.get_Item(\"foo\") = Convert(Convert(\"123\")))"));
        }
        public void test_THAT_group_by_IS_translated_correctly()
        {
            string xml =
                "  <GroupBy>" +
                "    <FieldRef Name=\"field1\" />" +
                "  </GroupBy>";

            var b    = new ReOperandBuilderFromCaml();
            var t    = new ReTranslatorFromCaml(null, null, new ReArrayAnalyzer(XmlHelper.Get(xml), b), null, null, null);
            var g    = new GroupByParams();
            var expr = t.TranslateGroupBy(out g);

            Assert.That(expr.ToString(), Is.EqualTo("x => x.get_Item(\"field1\")"));
            Assert.IsFalse(g.HasCollapse);
            Assert.IsFalse(g.HasGroupLimit);
        }
Ejemplo n.º 12
0
        public void test_WHEN_group_by_with_group_limit_is_specified_with_several_fied_refs_THEN_expressions_are_linked_correctly()
        {
            var groupBy =
                "  <GroupBy GroupLimit=\"1\">" +
                "    <FieldRef Name=\"field1\" />" +
                "    <FieldRef Name=\"field2\" />" +
                "  </GroupBy>";

            var l = new ReLinkerFromCaml(null, null, XmlHelper.Get(groupBy), null, null, null);
            var g = new GroupByParams {
                HasGroupLimit = true, GroupLimit = 1
            };
            var expr = l.Link(null, null, (Expression <Func <SPListItem, object[]> >)(x => new[] { x["field1"], x["field2"] }), null, null, null, g);

            Assert.That(expr.ToString(), Is.EqualTo("Query().GroupBy(x => new [] {x.get_Item(\"field1\"), x.get_Item(\"field2\")}, null, 1)"));
        }
Ejemplo n.º 13
0
        public void test_WHEN_1_join_is_specified_THEN_expressions_are_linked_correctly()
        {
            string xml =
                "<Joins>" +
                "<Join Type=\"LEFT\" ListAlias=\"Customers\">" +
                "<Eq>" +
                "<FieldRef Name=\"CustomerName\" RefType=\"Id\" />" +
                "<FieldRef List=\"Customers\" Name=\"Id\" />" +
                "</Eq>" +
                "</Join>" +
                "</Joins>";

            var l = new ReLinkerFromCaml(null, null, null, null, XmlHelper.Get(xml), null);
            var g = new GroupByParams();

            Expression <Func <SPListItem, object> > ex = x => x["CustomerName"].ForeignList("Customers");
            var expr = l.Link(null, null, null, null, (new[] { new KeyValuePair <LambdaExpression, JoinType>(ex, JoinType.Left) }).ToList(), null, g);

            Assert.That(expr.ToString(), Is.EqualTo("Query().Joins().Left(x => x.get_Item(\"CustomerName\").ForeignList(\"Customers\"))"));
        }
        public void test_THAT_1_join_ARE_translated_correctly()
        {
            string xml =
                "<Joins>" +
                "<Join Type=\"LEFT\" ListAlias=\"Customers\">" +
                "<Eq>" +
                "<FieldRef Name=\"CustomerName\" RefType=\"Id\" />" +
                "<FieldRef List=\"Customers\" Name=\"Id\" />" +
                "</Eq>" +
                "</Join>" +
                "</Joins>";

            var b    = new ReOperandBuilderFromCaml();
            var t    = new ReTranslatorFromCaml(null, null, null, null, new ReJoinAnalyzer(XmlHelper.Get(xml), b), null);
            var expr = t.TranslateJoins();

            Assert.That(expr[0].Key.ToString(), Is.EqualTo("x => x.get_Item(\"CustomerName\").ForeignList(\"Customers\")"));
            Assert.That(expr[0].Value, Is.EqualTo(JoinType.Left));
        }
        public void test_THAT_view_fields_ARE_translated_correctly()
        {
            string xml =
                "<ViewFields>" +
                "<FieldRef Name=\"Title\" />" +
                "</ViewFields>";

            var b    = new ReOperandBuilderFromCaml();
            var t    = new ReTranslatorFromCaml(null, null, null, new ReArrayAnalyzer(XmlHelper.Get(xml), b), null, null);
            var expr = t.TranslateViewFields();

            Assert.That(expr.ToString(), Is.EqualTo("x => x.get_Item(\"Title\")"));
        }