public void VisitBinaryExpression_ExclusiveOr_OnBooleans() { var binaryExpression = Expression.ExclusiveOr(_trueExpression, _falseExpression); var expectedXorSimulation = Expression.OrElse( Expression.AndAlso(_trueExpression, Expression.Not(_falseExpression)), Expression.AndAlso(Expression.Not(_trueExpression), _falseExpression)); _expressionVisitorMock .Expect(mock => mock.VisitExpression(Arg <Expression> .Matches(expr => expr is BinaryExpression))) .WhenCalled(mi => { var expr = (BinaryExpression)mi.Arguments[0]; SqlExpressionTreeComparer.CheckAreEqualTrees(expr, expectedXorSimulation); _commandBuilder.Append("XOR SIMULATION"); }) .Return(null); _generator.GenerateSqlForBinaryExpression(binaryExpression); _expressionVisitorMock.VerifyAllExpectations(); var result = _commandBuilder.GetCommandText(); Assert.That(result, Is.EqualTo("XOR SIMULATION")); }