3 require 'models/comment'
4 require 'models/project'
5 require 'models/developer'
6 require 'models/company_in_module'
8 class AssociationsExtensionsTest
< ActiveRecord
::TestCase
9 fixtures
:projects, :developers, :developers_projects, :comments, :posts
11 def test_extension_on_has_many
12 assert_equal
comments(:more_greetings), posts(:welcome).comments
.find_most_recent
15 def test_extension_on_habtm
16 assert_equal
projects(:action_controller), developers(:david).projects
.find_most_recent
19 def test_named_extension_on_habtm
20 assert_equal
projects(:action_controller), developers(:david).projects_extended_by_name
.find_most_recent
23 def test_named_two_extensions_on_habtm
24 assert_equal
projects(:action_controller), developers(:david).projects_extended_by_name_twice
.find_most_recent
25 assert_equal
projects(:active_record), developers(:david).projects_extended_by_name_twice
.find_least_recent
28 def test_named_extension_and_block_on_habtm
29 assert_equal
projects(:action_controller), developers(:david).projects_extended_by_name_and_block
.find_most_recent
30 assert_equal
projects(:active_record), developers(:david).projects_extended_by_name_and_block
.find_least_recent
33 def test_marshalling_extensions
34 david
= developers(:david)
35 assert_equal
projects(:action_controller), david
.projects
.find_most_recent
37 david
= Marshal
.load(Marshal
.dump(david
))
38 assert_equal
projects(:action_controller), david
.projects
.find_most_recent
41 def test_marshalling_named_extensions
42 david
= developers(:david)
43 assert_equal
projects(:action_controller), david
.projects_extended_by_name
.find_most_recent
45 david
= Marshal
.load(Marshal
.dump(david
))
46 assert_equal
projects(:action_controller), david
.projects_extended_by_name
.find_most_recent
50 def test_extension_name
51 extension
= Proc
.new
{}
52 name
= :association_name
54 assert_equal
'DeveloperAssociationNameAssociationExtension', Developer
.send(:create_extension_modules, name
, extension
, []).first
.name
55 assert_equal
'MyApplication::Business::DeveloperAssociationNameAssociationExtension',
56 MyApplication
::Business::Developer.send(:create_extension_modules, name
, extension
, []).first
.name
57 assert_equal
'MyApplication::Business::DeveloperAssociationNameAssociationExtension', MyApplication
::Business::Developer.send(:create_extension_modules, name
, extension
, []).first
.name
58 assert_equal
'MyApplication::Business::DeveloperAssociationNameAssociationExtension', MyApplication
::Business::Developer.send(:create_extension_modules, name
, extension
, []).first
.name