public void test_THAT_orelse_with_nested_orelse_IS_translated_to_caml_properly()
        {
            // arrange
            var leftEqOperation  = MockRepository.GenerateStub <EqOperation>(null, null, null);
            var rightEqOperation = MockRepository.GenerateStub <EqOperation>(null, null, null);

            var resultBuilder = new OperationResultBuilder();
            var leftOperation = new OrElseOperation(resultBuilder, leftEqOperation, rightEqOperation);

            leftEqOperation.Stub(o => o.ToResult()).Return(xelementResult("Eq1"));
            rightEqOperation.Stub(o => o.ToResult()).Return(xelementResult("Eq2"));

            var operation = new OrElseOperation(resultBuilder, leftOperation, rightEqOperation);

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

            // assert
            string expected =
                @"<Or>
                    <Or>
                        <Eq1 />
                        <Eq2 />
                    </Or>
                    <Eq2 />
                </Or>";

            Assert.That(caml, Is.EqualTo(expected).Using(new CamlComparer()));
        }
示例#2
0
        public void test_THAT_or_else_operation_IS_converted_to_expression_correctly()
        {
            var op11 = new FieldRefOperand("Status");
            var op12 = new BooleanValueOperand(true);
            var op1  = new EqOperation(null, op11, op12);

            var op21 = new FieldRefOperand("Status");
            var op22 = new BooleanValueOperand(false);
            var op2  = new EqOperation(null, op21, op22);

            var op = new OrElseOperation(null, op1, op2);

            var expr = op.ToExpression();

            Assert.That(expr.ToString(), Is.EqualTo("(Convert(x.get_Item(\"Status\")) OrElse Not(Convert(x.get_Item(\"Status\"))))"));
        }