2 require 'models/entrant'
4 # So we can test whether Course.connection survives a reload.
5 require_dependency
'models/course'
7 class MultipleDbTest
< ActiveRecord
::TestCase
8 self.use_transactional_fixtures
= false
11 @courses = create_fixtures("courses") { Course
.retrieve_connection
}
12 @entrants = create_fixtures("entrants")
16 assert_not_nil Entrant
.connection
17 assert_not_nil Course
.connection
20 def test_proper_connection
21 assert_not_equal(Entrant
.connection
, Course
.connection
)
22 assert_equal(Entrant
.connection
, Entrant
.retrieve_connection
)
23 assert_equal(Course
.connection
, Course
.retrieve_connection
)
24 assert_equal(ActiveRecord
::Base.connection
, Entrant
.connection
)
29 assert_equal
"Ruby Development", c1
.name
31 assert_equal
"Java Development", c2
.name
33 assert_equal
"Ruby Developer", e1
.name
35 assert_equal
"Ruby Guru", e2
.name
37 assert_equal
"Java Lover", e3
.name
42 assert_equal
2, c1
.entrants
.count
44 assert_equal e1
.course
.id
, c1
.id
46 assert_equal
1, c2
.entrants
.count
48 assert_equal e3
.course
.id
, c2
.id
51 def test_course_connection_should_survive_dependency_reload
52 assert Course
.connection
54 ActiveSupport
::Dependencies.clear
55 Object
.send(:remove_const, :Course)
56 require_dependency
'models/course'
58 assert Course
.connection
61 def test_transactions_across_databases
67 Entrant
.transaction
do
72 raise "No I messed up."
79 assert_equal
"Typo", c1
.name
80 assert_equal
"Typo", e1
.name
82 assert_equal
"Ruby Development", Course
.find(1).name
83 assert_equal
"Ruby Developer", Entrant
.find(1).name