Пример #1
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)))"));
        }
Пример #2
0
        public void test_WHEN_type_attr_has_correct_value_THEN_value_operand_is_sucessfully_created()
        {
            var b = new ReOperandBuilderFromCaml();

            Assert.That(b.CreateValueOperand(XmlHelper.Get("<Operation><Value Type=\"Text\">foo</Value></Operation>"), false).ToCaml().ToString(),
                        Is.EqualTo("<Value Type=\"Text\">foo</Value>"));
            Assert.That(b.CreateValueOperand(XmlHelper.Get("<Operation><Value Type=\"Integer\">123</Value></Operation>"), false).ToCaml().ToString(),
                        Is.EqualTo("<Value Type=\"Integer\">123</Value>"));
            Assert.That(b.CreateValueOperand(XmlHelper.Get("<Operation><Value Type=\"Boolean\">1</Value></Operation>"), false).ToCaml().ToString(),
                        Is.EqualTo("<Value Type=\"Boolean\">1</Value>"));
            Assert.That(b.CreateValueOperand(XmlHelper.Get("<Operation><Value Type=\"Boolean\">0</Value></Operation>"), false).ToCaml().ToString(),
                        Is.EqualTo("<Value Type=\"Boolean\">0</Value>"));
            Assert.That(b.CreateValueOperand(XmlHelper.Get("<Operation><Value Type=\"DateTime\">2010-02-01T03:04:05Z</Value></Operation>"), false).ToCaml().ToString(),
                        Is.EqualTo("<Value Type=\"DateTime\">2010-02-01T03:04:05Z</Value>"));
            Assert.That(b.CreateValueOperand(XmlHelper.Get("<Operation><Value Type=\"DateTime\"><Now /></Value></Operation>"), false).ToCaml().ToString(),
                        Is.EqualTo("<Value Type=\"DateTime\"><Now /></Value>").Using(new CamlComparer()));
            Assert.That(b.CreateValueOperand(XmlHelper.Get("<Operation><Value Type=\"DateTime\"><Today /></Value></Operation>"), false).ToCaml().ToString(),
                        Is.EqualTo("<Value Type=\"DateTime\"><Today /></Value>").Using(new CamlComparer()));
            Assert.That(b.CreateValueOperand(XmlHelper.Get("<Operation><Value Type=\"DateTime\"><Week /></Value></Operation>"), false).ToCaml().ToString(),
                        Is.EqualTo("<Value Type=\"DateTime\"><Week /></Value>").Using(new CamlComparer()));
            Assert.That(b.CreateValueOperand(XmlHelper.Get("<Operation><Value Type=\"DateTime\"><Month /></Value></Operation>"), false).ToCaml().ToString(),
                        Is.EqualTo("<Value Type=\"DateTime\"><Month /></Value>").Using(new CamlComparer()));
            Assert.That(b.CreateValueOperand(XmlHelper.Get("<Operation><Value Type=\"DateTime\"><Year /></Value></Operation>"), false).ToCaml().ToString(),
                        Is.EqualTo("<Value Type=\"DateTime\"><Year /></Value>").Using(new CamlComparer()));
            Assert.That(b.CreateValueOperand(XmlHelper.Get("<Operation><Value Type=\"Guid\">{AD524A0C-D90E-4C04-B6FB-CB6E9F6CA7BD}</Value></Operation>"), false).ToCaml().ToString(),
                        Is.EqualTo("<Value Type=\"Guid\">ad524a0c-d90e-4c04-b6fb-cb6e9f6ca7bd</Value>"));

            var valueOperand = b.CreateValueOperand(XmlHelper.Get("<Operation><Value Type=\"Lookup\">1</Value></Operation>"), false);

            Assert.IsInstanceOf <LookupValueValueOperand>(valueOperand);
            Assert.That(valueOperand.ToCaml().ToString(), Is.EqualTo("<Value Type=\"Lookup\">1</Value>"));

            valueOperand = b.CreateValueOperand(XmlHelper.Get("<Operation><FieldRef Name=\"Status\" LookupId=\"True\" /><Value Type=\"Lookup\">1</Value></Operation>"), false);
            Assert.IsInstanceOf <LookupIdValueOperand>(valueOperand);
            Assert.That(valueOperand.ToCaml().ToString(), Is.EqualTo("<Value Type=\"Lookup\">1</Value>"));

            var userOperand = b.CreateValueOperand(XmlHelper.Get("<Operation><Value Type=\"User\">test</Value></Operation>"), false);

            Assert.IsInstanceOf <GenericStringBasedValueOperand>(userOperand);
            Assert.That(userOperand.ToCaml().ToString(), Is.EqualTo("<Value Type=\"User\">test</Value>"));

            userOperand = b.CreateValueOperand(XmlHelper.Get("<Operation><FieldRef Name=\"Status\" LookupId=\"True\" /><Value Type=\"User\">1</Value></Operation>"), false);
            Assert.IsInstanceOf <UserIdValueOperand>(userOperand);
            Assert.That(userOperand.ToCaml().ToString(), Is.EqualTo("<Value Type=\"User\">1</Value>"));

            Assert.That(b.CreateValueOperand(XmlHelper.Get("<Operation><Value Type=\"Note\">foo</Value></Operation>"), false).ToCaml().ToString(),
                        Is.EqualTo("<Value Type=\"Note\">foo</Value>"));
        }
        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);
        }
Пример #4
0
        static Camlex()
        {
            // factories setup
            var operandBuilder         = new OperandBuilder();
            var operationResultBuilder = new OperationResultBuilder();
            var analyzerFactory        = new AnalyzerFactory(operandBuilder, operationResultBuilder);

            translatorFactory = new TranslatorFactory(analyzerFactory);

            // re
            var reoperandBuilder  = new ReOperandBuilderFromCaml();
            var reanalyzerFactory = new ReAnalyzerFromCamlFactory(reoperandBuilder);

            retranslatorFactory = new ReTranslatorFromCamlFactory(reanalyzerFactory);
            relinkerFactory     = new ReLinkerFromCamlFactory();
        }
        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));
        }
Пример #6
0
        public void test_WHEN_xml_is_null_THEN_exception_is_thrown()
        {
            var b = new ReOperandBuilderFromCaml();

            Assert.Throws <ArgumentNullException>(() => b.CreateFieldRefOperand(null));
        }
Пример #7
0
        public void test_WHEN_xml_is_null_THEN_exception_is_thrown_for_create_value_operand()
        {
            var b = new ReOperandBuilderFromCaml();

            Assert.Throws <ArgumentNullException>(() => b.CreateValueOperand(null, false));
        }
Пример #8
0
        public void test_WHEN_xml_is_null_THEN_exception_is_thrown()
        {
            var b = new ReOperandBuilderFromCaml();

            b.CreateFieldRefOperand(null);
        }
Пример #9
0
        public void test_WHEN_xml_is_null_THEN_exception_is_thrown_for_create_value_operand()
        {
            var b = new ReOperandBuilderFromCaml();

            b.CreateValueOperand(null, false);
        }