Tests for ActiveModel::Serializer.serializer_for for not array serializer

This commit is contained in:
Tema Bolshakov 2014-08-26 13:27:46 +04:00
parent d39a3e0aec
commit a54813806d

View File

@ -3,25 +3,44 @@ require 'test_helper'
module ActiveModel module ActiveModel
class Serializer class Serializer
class SerializerForTest < Minitest::Test class SerializerForTest < Minitest::Test
def setup class ArraySerializerTest < Minitest::Test
@array = [1, 2, 3] def setup
@previous_array_serializer = ActiveModel::Serializer.config.array_serializer @array = [1, 2, 3]
@previous_array_serializer = ActiveModel::Serializer.config.array_serializer
end
def teardown
ActiveModel::Serializer.config.array_serializer = @previous_array_serializer
end
def test_serializer_for_array
serializer = ActiveModel::Serializer.serializer_for(@array)
assert_equal ActiveModel::Serializer.config.array_serializer, serializer
end
def test_overwritten_serializer_for_array
new_array_serializer = Class.new
ActiveModel::Serializer.config.array_serializer = new_array_serializer
serializer = ActiveModel::Serializer.serializer_for(@array)
assert_equal new_array_serializer, serializer
end
end end
def teardown class SerializerTest < Minitest::Test
ActiveModel::Serializer.config.array_serializer = @previous_array_serializer def setup
end @profile = Profile.new
@model = ::Model.new
end
def test_serializer_for_array def test_serializer_for_existing_serializer
serializer = ActiveModel::Serializer.serializer_for(@array) serializer = ActiveModel::Serializer.serializer_for(@profile)
assert_equal ActiveModel::Serializer.config.array_serializer, serializer assert_equal ProfileSerializer, serializer
end end
def test_overwritten_serializer_for_array def test_serializer_for_not_existing_serializer
new_array_serializer = Class.new serializer = ActiveModel::Serializer.serializer_for(@model)
ActiveModel::Serializer.config.array_serializer = new_array_serializer assert_equal nil, serializer
serializer = ActiveModel::Serializer.serializer_for(@array) end
assert_equal new_array_serializer, serializer
end end
end end
end end