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)))")); }
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); }
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)); }
public void test_WHEN_xml_is_null_THEN_exception_is_thrown() { var b = new ReOperandBuilderFromCaml(); Assert.Throws <ArgumentNullException>(() => b.CreateFieldRefOperand(null)); }
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)); }
public void test_WHEN_xml_is_null_THEN_exception_is_thrown() { var b = new ReOperandBuilderFromCaml(); b.CreateFieldRefOperand(null); }
public void test_WHEN_xml_is_null_THEN_exception_is_thrown_for_create_value_operand() { var b = new ReOperandBuilderFromCaml(); b.CreateValueOperand(null, false); }