require 'helper' module Arel module Nodes class TestNamedFunction < Minitest::Test def test_construct function = NamedFunction.new 'omg', 'zomg' assert_equal 'omg', function.name assert_equal 'zomg', function.expressions end def test_function_alias function = NamedFunction.new 'omg', 'zomg' function = function.as('wth') assert_equal 'omg', function.name assert_equal 'zomg', function.expressions assert_kind_of SqlLiteral, function.alias assert_equal 'wth', function.alias end def test_construct_with_alias function = NamedFunction.new 'omg', 'zomg', 'wth' assert_equal 'omg', function.name assert_equal 'zomg', function.expressions assert_kind_of SqlLiteral, function.alias assert_equal 'wth', function.alias end def test_equality_with_same_ivars array = [ NamedFunction.new('omg', 'zomg', 'wth'), NamedFunction.new('omg', 'zomg', 'wth') ] assert_equal 1, array.uniq.size end def test_inequality_with_different_ivars array = [ NamedFunction.new('omg', 'zomg', 'wth'), NamedFunction.new('zomg', 'zomg', 'wth') ] assert_equal 2, array.uniq.size end end end end