diff --git a/lib/arel/nodes/infix_operation.rb b/lib/arel/nodes/infix_operation.rb index 75879ce43f..3911a1e05e 100644 --- a/lib/arel/nodes/infix_operation.rb +++ b/lib/arel/nodes/infix_operation.rb @@ -4,6 +4,7 @@ module Arel class InfixOperation < Binary include Arel::Expressions include Arel::Predications + include Arel::OrderPredications include Arel::AliasPredication include Arel::Math diff --git a/test/nodes/test_infix_operation.rb b/test/nodes/test_infix_operation.rb new file mode 100644 index 0000000000..db3216eeee --- /dev/null +++ b/test/nodes/test_infix_operation.rb @@ -0,0 +1,30 @@ +require 'helper' + +module Arel + module Nodes + class TestInfixOperation < MiniTest::Unit::TestCase + def test_construct + operation = InfixOperation.new :+, 1, 2 + assert_equal :+, operation.operator + assert_equal 1, operation.left + assert_equal 2, operation.right + end + + def test_operation_alias + operation = InfixOperation.new :+, 1, 2 + aliaz = operation.as('zomg') + assert_kind_of As, aliaz + assert_equal operation, aliaz.left + assert_equal 'zomg', aliaz.right + end + + def test_opertaion_ordering + operation = InfixOperation.new :+, 1, 2 + ordering = operation.desc + assert_kind_of Ordering, ordering + assert_equal operation, ordering.expr + assert_equal :desc, ordering.direction + end + end + end +end