@@ -20,7 +20,7 @@ def test_overwrite_adapter_with_symbol
20
20
adapter = ActiveModel ::Serializer . adapter
21
21
assert_equal ActiveModel ::Serializer ::Adapter ::Null , adapter
22
22
ensure
23
-
23
+ ActiveModel :: Serializer . config . adapter = @previous_adapter
24
24
end
25
25
26
26
def test_overwrite_adapter_with_class
@@ -45,6 +45,92 @@ def test_raises_exception_if_it_does_not_know_hot_to_infer_adapter
45
45
ActiveModel ::Serializer . adapter
46
46
end
47
47
end
48
+
49
+ def test_adapter_class_for_known_adapter
50
+ klass = ActiveModel ::Serializer ::Adapter . adapter_class ( :json_api )
51
+ assert_equal ActiveModel ::Serializer ::Adapter ::JsonApi , klass
52
+ end
53
+
54
+ def test_adapter_class_for_unknown_adapter
55
+ assert_raises ( ArgumentError ) do
56
+ ActiveModel ::Serializer ::Adapter . adapter_class ( :json_simple )
57
+ end
58
+ end
59
+
60
+ def test_adapter_map
61
+ assert_equal ActiveModel ::Serializer ::Adapter . adapter_map , {
62
+ "json" => ActiveModel ::Serializer ::Adapter ::Json ,
63
+ "json_api" => ActiveModel ::Serializer ::Adapter ::JsonApi ,
64
+ "flatten_json" => ActiveModel ::Serializer ::Adapter ::FlattenJson ,
65
+ "null" => ActiveModel ::Serializer ::Adapter ::Null
66
+ }
67
+ end
68
+
69
+ def test_adapters
70
+ assert_equal ActiveModel ::Serializer ::Adapter . adapters . sort , [
71
+ "flatten_json" ,
72
+ "json" ,
73
+ "json_api" ,
74
+ "null" ,
75
+ ]
76
+ end
77
+
78
+ def test_get_adapter_by_string_name
79
+ assert_equal ActiveModel ::Serializer ::Adapter . get ( "json" ) , ActiveModel ::Serializer ::Adapter ::Json
80
+ end
81
+
82
+ def test_get_adapter_by_symbol_name
83
+ assert_equal ActiveModel ::Serializer ::Adapter . get ( :json ) , ActiveModel ::Serializer ::Adapter ::Json
84
+ end
85
+
86
+ def test_get_adapter_by_class
87
+ klass = ActiveModel ::Serializer ::Adapter ::Json
88
+ assert_equal ActiveModel ::Serializer ::Adapter . get ( klass ) , klass
89
+ end
90
+
91
+ # def test_get_adapter_from_environment
92
+ # ActiveModel::Serializer::Adapter.const_set(:ClassFromEnvironment, Class.new)
93
+ # # test
94
+ # klass = ActiveModel::Serializer::Adapter::ClassFromEnvironment
95
+ # name = "class_from_environment"
96
+ # assert_equal ActiveModel::Serializer::Adapter.get(name), klass
97
+ # assert ActiveModel::Serializer::Adapter.adapters.include?(name)
98
+ # # cleanup
99
+ # ActiveModel::Serializer::Adapter::ADAPTER_MAP.delete(name)
100
+ # ActiveModel::Serializer::Adapter.send(:remove_const, :ClassFromEnvironment)
101
+ # end
102
+
103
+ def test_get_adapter_for_unknown_name
104
+ assert_raises ( ArgumentError ) do
105
+ ActiveModel ::Serializer ::Adapter . get ( :json_simple )
106
+ end
107
+ end
108
+
109
+ def test_adapter
110
+ assert_equal ActiveModel ::Serializer . config . adapter , :flatten_json
111
+ assert_equal ActiveModel ::Serializer . adapter , ActiveModel ::Serializer ::Adapter ::FlattenJson
112
+ end
113
+
114
+ def test_register_adapter
115
+ new_adapter_name = :foo
116
+ new_adapter_klass = Class . new
117
+ ActiveModel ::Serializer ::Adapter . register ( new_adapter_name , new_adapter_klass )
118
+ assert ActiveModel ::Serializer ::Adapter . adapters . include? ( "foo" )
119
+ assert ActiveModel ::Serializer ::Adapter . get ( :foo ) , new_adapter_klass
120
+ # cleanup
121
+ ActiveModel ::Serializer ::Adapter ::ADAPTER_MAP . delete ( new_adapter_name . to_s )
122
+ end
123
+
124
+ # def test_inherited_adapter_hooks
125
+ # Object.const_set(:MyAdapter, Class.new)
126
+ # my_adapter = MyAdapter
127
+ # ActiveModel::Serializer::Adapter.inherited(my_adapter)
128
+ # assert_equal ActiveModel::Serializer::Adapter.get(:my_adapter), MyAdapter
129
+ # # ActiveModel::Serializer::Adapter.register(subclass.to_s.demodulize, subclass)
130
+ # # cleanup
131
+ # ActiveModel::Serializer::Adapter::ADAPTER_MAP.delete("my_adapter")
132
+ # ActiveModel::Serializer::Adapter.send(:remove_const, :MyAdapter)
133
+ # end
48
134
end
49
135
end
50
136
end
0 commit comments