Пример #1
0
        public void test_THAT_daterangesoverlap_operation_IS_rendered_to_caml_properly()
        {
            // arrange
            var startFieldRefOperandStub      = MockRepository.GenerateStub <FieldRefOperand>("");
            var stopFieldRefOperandStub       = MockRepository.GenerateStub <FieldRefOperand>("");
            var recurrenceFieldRefOperandStub = MockRepository.GenerateStub <FieldRefOperand>("");
            var dateTimevalueOperandStub      = MockRepository.GenerateStub <TextValueOperand>("");

            startFieldRefOperandStub.Stub(o => o.ToCaml()).Return(new XElement("startFieldRefOperandStub"));
            stopFieldRefOperandStub.Stub(o => o.ToCaml()).Return(new XElement("stopFieldRefOperandStub"));
            recurrenceFieldRefOperandStub.Stub(o => o.ToCaml()).Return(new XElement("recurrenceFieldRefOperandStub"));
            dateTimevalueOperandStub.Stub(o => o.ToCaml()).Return(new XElement("dateTimevalueOperandStub"));

            var resultBuilder = new OperationResultBuilder();
            var operation     = new DateRangesOverlapOperation(resultBuilder,
                                                               startFieldRefOperandStub, stopFieldRefOperandStub, recurrenceFieldRefOperandStub, dateTimevalueOperandStub);

            // act
            var caml = operation.ToResult().ToString();

            // assert
            const string expected =
                @"<DateRangesOverlap>
                    <startFieldRefOperandStub />
                    <stopFieldRefOperandStub />
                    <recurrenceFieldRefOperandStub />
                    <dateTimevalueOperandStub />
                </DateRangesOverlap>";

            Assert.That(caml, Is.EqualTo(expected).Using(new CamlComparer()));
        }
        public void test_THAT_date_ranges_overlap_operation_with_string_based_date_time_IS_converted_to_expression_correctly()
        {
            var op1 = new FieldRefOperand("StartField");
            var op2 = new FieldRefOperand("StopField");
            var op3 = new FieldRefOperand("RecurrenceID");
            var op4 = new DateTimeValueOperand(Camlex.Now, false);
            var op  = new DateRangesOverlapOperation(null, op1, op2, op3, op4);

            var expr = op.ToExpression();

            Assert.That(expr.ToString(),
                        Is.EqualTo("DateRangesOverlap(x.get_Item(\"StartField\"), x.get_Item(\"StopField\"), x.get_Item(\"RecurrenceID\"), Convert(Convert(Camlex.Now)))"));
        }
        public void test_THAT_date_ranges_overlap_operation_with_native_date_time_IS_converted_to_expression_correctly()
        {
            var op1 = new FieldRefOperand("StartField");
            var op2 = new FieldRefOperand("StopField");
            var op3 = new FieldRefOperand("RecurrenceID");
            var dt  = new DateTime(2011, 5, 7, 21, 30, 00);
            var op4 = new DateTimeValueOperand(dt, false);
            var op  = new DateRangesOverlapOperation(null, op1, op2, op3, op4);

            var expr = op.ToExpression();

            Assert.That(expr.ToString(),
                        Is.EqualTo(string.Format("DateRangesOverlap(x.get_Item(\"StartField\"), x.get_Item(\"StopField\"), x.get_Item(\"RecurrenceID\"), {0})", dt)));
        }