og 0.31.0 → 0.40.0
Sign up to get free protection for your applications and to get access to all the features.
- data/doc/{AUTHORS → CONTRIBUTORS} +26 -10
- data/doc/LICENSE +2 -3
- data/doc/RELEASES +56 -7
- data/doc/tutorial.txt +15 -15
- data/lib/glue/cacheable.rb +2 -5
- data/lib/glue/hierarchical.rb +1 -4
- data/lib/glue/optimistic_locking.rb +0 -2
- data/lib/glue/orderable.rb +79 -75
- data/lib/glue/revisable.rb +19 -24
- data/lib/glue/searchable.rb +0 -2
- data/lib/glue/taggable.rb +31 -29
- data/lib/glue/timestamped.rb +4 -2
- data/lib/og.rb +50 -29
- data/lib/og/adapter.rb +19 -0
- data/lib/og/adapter/mysql.rb +212 -0
- data/lib/og/adapter/mysql/override.rb +34 -0
- data/lib/og/adapter/mysql/script.rb +15 -0
- data/lib/og/adapter/mysql/utils.rb +40 -0
- data/lib/og/adapter/postgresql.rb +231 -0
- data/lib/og/adapter/postgresql/override.rb +117 -0
- data/lib/og/adapter/postgresql/script.rb +15 -0
- data/lib/og/adapter/postgresql/utils.rb +35 -0
- data/lib/og/adapter/sqlite.rb +132 -0
- data/lib/og/adapter/sqlite/override.rb +33 -0
- data/lib/og/adapter/sqlite/script.rb +15 -0
- data/lib/og/collection.rb +35 -7
- data/lib/og/{evolution.rb → dump.rb} +4 -5
- data/lib/og/entity.rb +102 -173
- data/lib/og/entity/clone.rb +119 -0
- data/lib/og/errors.rb +0 -2
- data/lib/og/manager.rb +85 -37
- data/lib/og/relation.rb +52 -34
- data/lib/og/relation/belongs_to.rb +0 -2
- data/lib/og/relation/has_many.rb +27 -4
- data/lib/og/relation/joins_many.rb +41 -14
- data/lib/og/relation/many_to_many.rb +10 -0
- data/lib/og/relation/refers_to.rb +22 -5
- data/lib/og/store.rb +80 -86
- data/lib/og/store/sql.rb +710 -713
- data/lib/og/store/sql/evolution.rb +119 -0
- data/lib/og/store/sql/join.rb +155 -0
- data/lib/og/store/sql/utils.rb +149 -0
- data/lib/og/test/assertions.rb +1 -3
- data/lib/og/test/testcase.rb +0 -2
- data/lib/og/types.rb +2 -5
- data/lib/og/validation.rb +6 -9
- data/test/{og/mixin → glue}/tc_hierarchical.rb +3 -13
- data/test/glue/tc_og_paginate.rb +47 -0
- data/test/{og/mixin → glue}/tc_optimistic_locking.rb +2 -12
- data/test/{og/mixin → glue}/tc_orderable.rb +15 -23
- data/test/glue/tc_orderable2.rb +47 -0
- data/test/glue/tc_revisable.rb +3 -3
- data/test/{og/mixin → glue}/tc_taggable.rb +20 -10
- data/test/{og/mixin → glue}/tc_timestamped.rb +2 -12
- data/test/glue/tc_webfile.rb +36 -0
- data/test/og/CONFIG.rb +8 -11
- data/test/og/multi_validations_model.rb +14 -0
- data/test/og/store/tc_filesys.rb +3 -1
- data/test/og/store/tc_kirby.rb +16 -13
- data/test/og/store/tc_sti.rb +11 -11
- data/test/og/store/tc_sti2.rb +79 -0
- data/test/og/tc_build.rb +41 -0
- data/test/og/tc_cacheable.rb +3 -2
- data/test/og/tc_has_many.rb +96 -0
- data/test/og/tc_inheritance.rb +6 -4
- data/test/og/tc_joins_many.rb +93 -0
- data/test/og/tc_multi_validations.rb +5 -7
- data/test/og/tc_multiple.rb +7 -6
- data/test/og/tc_override.rb +13 -7
- data/test/og/tc_primary_key.rb +30 -0
- data/test/og/tc_relation.rb +8 -14
- data/test/og/tc_reldelete.rb +163 -0
- data/test/og/tc_reverse.rb +17 -14
- data/test/og/tc_scoped.rb +3 -11
- data/test/og/tc_setup.rb +13 -11
- data/test/og/tc_store.rb +21 -28
- data/test/og/tc_validation2.rb +2 -2
- data/test/og/tc_validation_loop.rb +17 -15
- metadata +109 -103
- data/INSTALL +0 -91
- data/ProjectInfo +0 -51
- data/README +0 -177
- data/doc/config.txt +0 -28
- data/examples/README +0 -23
- data/examples/mysql_to_psql.rb +0 -71
- data/examples/run.rb +0 -271
- data/lib/glue/tree.rb +0 -218
- data/lib/og/store/alpha/filesys.rb +0 -110
- data/lib/og/store/alpha/memory.rb +0 -295
- data/lib/og/store/alpha/sqlserver.rb +0 -256
- data/lib/og/store/kirby.rb +0 -490
- data/lib/og/store/mysql.rb +0 -415
- data/lib/og/store/psql.rb +0 -875
- data/lib/og/store/sqlite.rb +0 -348
- data/lib/og/store/sqlite2.rb +0 -241
- data/setup.rb +0 -1585
- data/test/og/tc_sti_find.rb +0 -35
@@ -1,20 +1,18 @@
|
|
1
|
-
|
1
|
+
require File.join(File.dirname(__FILE__), 'CONFIG.rb')
|
2
2
|
|
3
3
|
require 'test/unit'
|
4
4
|
|
5
5
|
require 'glue'
|
6
|
-
require 'glue/property'
|
7
6
|
require 'glue/validation'
|
8
7
|
require 'og/validation'
|
9
8
|
|
10
9
|
class TC_MultiValidation < Test::Unit::TestCase # :nodoc: all
|
11
10
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
load MultiValidationsModel
|
11
|
+
def test_all
|
12
|
+
file = File.join(File.dirname(__FILE__), 'multi_validations_model.rb')
|
13
|
+
load file
|
16
14
|
assert_equal 2, TC_MultiValidation::User.validations.size
|
17
|
-
load
|
15
|
+
load file
|
18
16
|
assert_equal 2, TC_MultiValidation::User.validations.size
|
19
17
|
end
|
20
18
|
|
data/test/og/tc_multiple.rb
CHANGED
@@ -28,13 +28,14 @@ class TestMultiple < Test::Unit::TestCase # :nodoc: all
|
|
28
28
|
@title = title
|
29
29
|
end
|
30
30
|
end
|
31
|
-
|
32
|
-
def test_all
|
33
|
-
$og1.manage_class Article
|
34
|
-
$og2.manage_class User
|
35
31
|
|
36
|
-
|
37
|
-
|
32
|
+
# Order is important, User has to be managed first!
|
33
|
+
$og2.manage_class User
|
34
|
+
$og1.manage_class Article
|
35
|
+
|
36
|
+
def test_all
|
37
|
+
assert_equal Article.ogmanager.store.class, $og1.store.class
|
38
|
+
assert_equal User.ogmanager.store.class, $og2.store.class
|
38
39
|
|
39
40
|
a1 = Article.create('hello')
|
40
41
|
a2 = Article.create('world')
|
data/test/og/tc_override.rb
CHANGED
@@ -6,12 +6,12 @@ require 'test/unit'
|
|
6
6
|
|
7
7
|
require 'og'
|
8
8
|
|
9
|
-
class
|
9
|
+
class TC_Override < Test::Unit::TestCase
|
10
10
|
include Og
|
11
11
|
|
12
12
|
class Book
|
13
|
-
property :title
|
14
|
-
belongs_to :owner, Person
|
13
|
+
property :title, String
|
14
|
+
belongs_to :owner, Person
|
15
15
|
end
|
16
16
|
|
17
17
|
class Person
|
@@ -22,7 +22,7 @@ class TestOg < Test::Unit::TestCase
|
|
22
22
|
def setup
|
23
23
|
@old_prefix = Og.table_prefix
|
24
24
|
Og.table_prefix = nil
|
25
|
-
|
25
|
+
$og1.manage_classes(Book, Person)
|
26
26
|
end
|
27
27
|
|
28
28
|
def teardown
|
@@ -34,10 +34,16 @@ class TestOg < Test::Unit::TestCase
|
|
34
34
|
book = Book.create
|
35
35
|
person = Person.create
|
36
36
|
person.books << book
|
37
|
+
|
38
|
+
assert_equal person.books.size, 1
|
37
39
|
end
|
38
|
-
|
39
|
-
|
40
|
-
|
40
|
+
|
41
|
+
# This tests, if the tables are without prefix, note that changing the
|
42
|
+
# Class of the testcase will change the table name.
|
43
|
+
|
44
|
+
def test_og_prefix
|
45
|
+
assert_equal Book.table, 'tc_override_book'
|
46
|
+
assert_equal Person.table, 'tc_override_person'
|
41
47
|
end
|
42
48
|
|
43
49
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'CONFIG.rb')
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'test/unit'
|
5
|
+
|
6
|
+
require 'og'
|
7
|
+
|
8
|
+
class TC_Key < Test::Unit::TestCase # :nodoc: all
|
9
|
+
|
10
|
+
class User
|
11
|
+
@@pk = $og1.store.primary_key_type
|
12
|
+
attr_accessor :newid, Fixnum, :primary_key => true, :sql => @@pk
|
13
|
+
attr_accessor :name, String
|
14
|
+
attr_accessor :age, Fixnum
|
15
|
+
end
|
16
|
+
|
17
|
+
$og1.manage_classes(User)
|
18
|
+
|
19
|
+
def test_all
|
20
|
+
User.create_with :name => 'George', :age => 14
|
21
|
+
User.create_with :name => 'Renos', :age => 20
|
22
|
+
User.create_with :name => 'Stella', :age => 23
|
23
|
+
|
24
|
+
User.all.each do |u|
|
25
|
+
assert_raise(NoMethodError) { u.oid }
|
26
|
+
assert_not_nil u.pk
|
27
|
+
assert_not_nil u.newid
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/test/og/tc_relation.rb
CHANGED
@@ -7,12 +7,15 @@ require 'test/unit'
|
|
7
7
|
require 'og'
|
8
8
|
require 'og/relation'
|
9
9
|
|
10
|
-
|
10
|
+
class Dummer
|
11
|
+
property :dum, String
|
12
|
+
end
|
13
|
+
|
11
14
|
class TestCaseOgRelation < Test::Unit::TestCase # :nodoc: all
|
12
15
|
include Og
|
13
|
-
|
16
|
+
|
14
17
|
class User
|
15
|
-
property :name
|
18
|
+
property :name, String
|
16
19
|
has_many Dummer
|
17
20
|
has_many Article
|
18
21
|
def initialize(name)
|
@@ -27,6 +30,8 @@ class TestCaseOgRelation < Test::Unit::TestCase # :nodoc: all
|
|
27
30
|
@body = body
|
28
31
|
end
|
29
32
|
end
|
33
|
+
|
34
|
+
$og1.manage_classes(Dummer, Article, User)
|
30
35
|
|
31
36
|
def test_all
|
32
37
|
# no-namespace case.
|
@@ -40,15 +45,9 @@ class TestCaseOgRelation < Test::Unit::TestCase # :nodoc: all
|
|
40
45
|
assert_equal TestCaseOgRelation::Article, rel.target_class
|
41
46
|
|
42
47
|
# bug: test the no belongs_to case in Article
|
43
|
-
|
44
|
-
og = Og.setup($og_config)
|
45
|
-
og.manage_classes
|
46
48
|
end
|
47
49
|
|
48
50
|
def test_refers_to
|
49
|
-
og = Og.setup($og_config)
|
50
|
-
og.manage_classes
|
51
|
-
|
52
51
|
# test refers_to accessor is correctly updated
|
53
52
|
u = User.create("George")
|
54
53
|
a = Article.create("Og is a good thing!")
|
@@ -79,8 +78,3 @@ class TestCaseOgRelation < Test::Unit::TestCase # :nodoc: all
|
|
79
78
|
assert_equal(u2.oid, a.active_user_oid)
|
80
79
|
end
|
81
80
|
end
|
82
|
-
|
83
|
-
class Dummer
|
84
|
-
property :dum, String
|
85
|
-
end
|
86
|
-
=end
|
@@ -0,0 +1,163 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'CONFIG.rb')
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'facets'
|
5
|
+
|
6
|
+
require 'test/unit'
|
7
|
+
require 'og'
|
8
|
+
require 'glue/timestamped'
|
9
|
+
|
10
|
+
class TC_DeletesRelationship < Test::Unit::TestCase # :nodoc: all
|
11
|
+
include Og
|
12
|
+
|
13
|
+
class Item
|
14
|
+
property :name, String
|
15
|
+
|
16
|
+
has_one Category
|
17
|
+
has_one Tag
|
18
|
+
|
19
|
+
has_many Picture
|
20
|
+
has_many :figures
|
21
|
+
|
22
|
+
joins_many User
|
23
|
+
end
|
24
|
+
|
25
|
+
######
|
26
|
+
# Single
|
27
|
+
######
|
28
|
+
|
29
|
+
class Category
|
30
|
+
property :name, String
|
31
|
+
|
32
|
+
belongs_to Item
|
33
|
+
end
|
34
|
+
|
35
|
+
class Tag
|
36
|
+
property :name, String
|
37
|
+
|
38
|
+
refers_to Item
|
39
|
+
end
|
40
|
+
|
41
|
+
######
|
42
|
+
# Many
|
43
|
+
######
|
44
|
+
|
45
|
+
class Picture
|
46
|
+
property :name, String
|
47
|
+
|
48
|
+
belongs_to Item
|
49
|
+
end
|
50
|
+
|
51
|
+
class Figure
|
52
|
+
property :name, String
|
53
|
+
|
54
|
+
refers_to Item
|
55
|
+
end
|
56
|
+
|
57
|
+
######
|
58
|
+
# Many Many
|
59
|
+
######
|
60
|
+
|
61
|
+
class User
|
62
|
+
property :name, String
|
63
|
+
|
64
|
+
many_to_many Item
|
65
|
+
end
|
66
|
+
|
67
|
+
$og1.manage_classes(Item, Tag, Category, Picture, Figure, User)
|
68
|
+
|
69
|
+
def setup
|
70
|
+
@conn = $og1.conn
|
71
|
+
|
72
|
+
@i = Item.create_with(:name => 'Copter')
|
73
|
+
@c = Category.create_with(:name => 'blabla')
|
74
|
+
@t = Tag.create_with(:name => 'blabla')
|
75
|
+
|
76
|
+
@p1 = Picture.create_with(:name => 'blabla1')
|
77
|
+
@p2 = Picture.create_with(:name => 'blabla2')
|
78
|
+
@f1 = Figure.create_with(:name => 'blabla1')
|
79
|
+
@f2 = Figure.create_with(:name => 'blabla2')
|
80
|
+
|
81
|
+
@u = User.create_with(:name => 'George')
|
82
|
+
|
83
|
+
@i.category = @c
|
84
|
+
@i.tag = @t
|
85
|
+
|
86
|
+
@i.pictures << @p1
|
87
|
+
@p2.item = @i
|
88
|
+
|
89
|
+
@i.figures << @f1
|
90
|
+
@f1.item = @i
|
91
|
+
|
92
|
+
@i.add_user @u
|
93
|
+
end
|
94
|
+
|
95
|
+
def teardown
|
96
|
+
[Tag, Item, Category, Picture, Figure, User].map {|x| x.delete_all }
|
97
|
+
@conn.exec("DELETE FROM #{Og::JoinsMany::OgTempJ_ogj_tc_deletesrelationship_item_tc_deletesrelationship_user::OGTABLE}")
|
98
|
+
end
|
99
|
+
|
100
|
+
def test_setup
|
101
|
+
assert_equal 1, Item.count, 'There should be 1 Item'
|
102
|
+
assert_equal 1, Category.count
|
103
|
+
assert_equal 1, Tag.count
|
104
|
+
assert_equal 2, Picture.count
|
105
|
+
assert_equal 2, Figure.count
|
106
|
+
|
107
|
+
assert_equal @t, @i.tag
|
108
|
+
assert_equal @c, @i.category
|
109
|
+
end
|
110
|
+
|
111
|
+
def test_relationship_intact
|
112
|
+
assert_equal @i.oid, @t.instance_variable_get('@item_oid')
|
113
|
+
assert_equal @i.oid, @c.instance_variable_get('@item_oid')
|
114
|
+
end
|
115
|
+
|
116
|
+
def test_descendants
|
117
|
+
assert_equal [
|
118
|
+
[Og::JoinsMany::OgTempJ_ogj_tc_deletesrelationship_item_tc_deletesrelationship_user, "item_oid"],
|
119
|
+
[Category, "item_oid"], [Picture, "item_oid"]],
|
120
|
+
Item.ann.self.descendants
|
121
|
+
end
|
122
|
+
|
123
|
+
######
|
124
|
+
# Single
|
125
|
+
######
|
126
|
+
|
127
|
+
def test_deletes_category
|
128
|
+
@i.delete
|
129
|
+
assert_equal 0, Category.count, "Category should be deleted"
|
130
|
+
end
|
131
|
+
|
132
|
+
def test_no_deletes_tag
|
133
|
+
@i.delete
|
134
|
+
assert_equal 1, Tag.count, 'Tag shouldn\'t be deleted'
|
135
|
+
end
|
136
|
+
|
137
|
+
######
|
138
|
+
# Many
|
139
|
+
######
|
140
|
+
|
141
|
+
def test_deletes_picture
|
142
|
+
@i.delete
|
143
|
+
assert_equal 0, Picture.count, "Pictures should be deleted"
|
144
|
+
end
|
145
|
+
|
146
|
+
def test_no_deletes_figure
|
147
|
+
@i.delete
|
148
|
+
assert_equal 2, Figure.count, 'Figures shouldn\'t be deleted'
|
149
|
+
end
|
150
|
+
|
151
|
+
#####
|
152
|
+
# Many Many
|
153
|
+
#####
|
154
|
+
|
155
|
+
def test_deletes_rel_in_join_table
|
156
|
+
@i.delete
|
157
|
+
tbl = Og::JoinsMany::OgTempJ_ogj_tc_deletesrelationship_item_tc_deletesrelationship_user::OGTABLE
|
158
|
+
n = @conn.query("SELECT COUNT(*) FROM #{tbl}").first_value.to_i
|
159
|
+
|
160
|
+
assert_equal 0, n;
|
161
|
+
end
|
162
|
+
|
163
|
+
end
|
data/test/og/tc_reverse.rb
CHANGED
@@ -10,11 +10,6 @@ require 'og'
|
|
10
10
|
# to our objects.
|
11
11
|
|
12
12
|
|
13
|
-
# create a 'legacy' schema.
|
14
|
-
|
15
|
-
$og2.store.exec "create table my_users (thename VARCHAR(32) PRIMARY KEY, password TEXT, age3 INTEGER);"
|
16
|
-
$og2.store.exec "create table my_comments (cid MEDIUMINT NOT NULL AUTO_INCREMENT, body TEXT, user VARCHAR(32), PRIMARY KEY(cid));"
|
17
|
-
|
18
13
|
class TestReverse < Test::Unit::TestCase # :nodoc: all
|
19
14
|
include Og
|
20
15
|
|
@@ -22,8 +17,8 @@ class TestReverse < Test::Unit::TestCase # :nodoc: all
|
|
22
17
|
property :name, String, :field => :thename, :uniq => true
|
23
18
|
property :password, String
|
24
19
|
property :age, Fixnum, :field => :age3
|
25
|
-
has_many Comment, :foreign_field => :
|
26
|
-
set_table :
|
20
|
+
has_many Comment, :foreign_field => :usr
|
21
|
+
set_table :my_usrs
|
27
22
|
set_primary_key :name, String
|
28
23
|
|
29
24
|
def initialize(name, password, age)
|
@@ -32,9 +27,11 @@ class TestReverse < Test::Unit::TestCase # :nodoc: all
|
|
32
27
|
end
|
33
28
|
|
34
29
|
class Comment
|
35
|
-
|
30
|
+
@@pk = $og1.store.primary_key_type
|
31
|
+
|
32
|
+
property :cid, Fixnum, :sql => @@pk
|
36
33
|
property :body, String
|
37
|
-
belongs_to User, :field => :
|
34
|
+
belongs_to User, :field => :usr
|
38
35
|
set_table :my_comments
|
39
36
|
set_primary_key :cid
|
40
37
|
|
@@ -43,13 +40,21 @@ class TestReverse < Test::Unit::TestCase # :nodoc: all
|
|
43
40
|
end
|
44
41
|
end
|
45
42
|
|
46
|
-
|
43
|
+
def setup
|
44
|
+
# create a 'legacy' schema.
|
45
|
+
store = $og1.store
|
46
|
+
pk = store.primary_key_type
|
47
|
+
store.exec "create table my_usrs (thename VARCHAR(32) PRIMARY KEY, password TEXT, age3 INTEGER)"
|
48
|
+
store.exec "create table my_comments (cid #{pk}, body TEXT, usr VARCHAR(32))"
|
49
|
+
|
50
|
+
$og1.manage_classes(User, Comment)
|
51
|
+
end
|
47
52
|
|
48
53
|
def test_all
|
49
|
-
assert_equal '
|
54
|
+
assert_equal 'my_usrs', User.table
|
50
55
|
assert_equal 'my_comments', Comment.table
|
51
56
|
|
52
|
-
User.new('gmosx', '
|
57
|
+
User.new('gmosx', 'nitro', 30).insert
|
53
58
|
User.new('Helen', 'kontesa', 25).insert
|
54
59
|
|
55
60
|
gmosx = User.find_by_name('gmosx')
|
@@ -66,5 +71,3 @@ class TestReverse < Test::Unit::TestCase # :nodoc: all
|
|
66
71
|
assert_equal 'hello', helen.comments[0].body
|
67
72
|
end
|
68
73
|
end
|
69
|
-
|
70
|
-
# * George Moschovitis <gm@navel.gr>
|
data/test/og/tc_scoped.rb
CHANGED
@@ -13,27 +13,19 @@ class TC_OgScoped < Test::Unit::TestCase # :nodoc: all
|
|
13
13
|
class User
|
14
14
|
property :name, String
|
15
15
|
has_many :articles
|
16
|
-
|
17
|
-
def initialize(name = nil)
|
18
|
-
@name = name
|
19
|
-
end
|
20
16
|
end
|
21
17
|
|
22
18
|
class Article
|
23
19
|
property :hits, Fixnum
|
24
20
|
belongs_to :user
|
25
|
-
|
26
|
-
def initialize(hits = nil)
|
27
|
-
@hits = hits
|
28
|
-
end
|
29
21
|
end
|
30
22
|
|
31
23
|
$og1.manage_classes(User, Article)
|
32
24
|
|
33
25
|
def test_all
|
34
|
-
u = User.
|
35
|
-
a1 = Article.
|
36
|
-
a2 = Article.
|
26
|
+
u = User.create_with(:name => 'tml')
|
27
|
+
a1 = Article.create_with :hits => 10
|
28
|
+
a2 = Article.create_with :hits => 20
|
37
29
|
u.articles << a1
|
38
30
|
u.articles << a2
|
39
31
|
|
data/test/og/tc_setup.rb
CHANGED
@@ -6,43 +6,45 @@ class TCOg_setup < Test::Unit::TestCase # :nodoc: all
|
|
6
6
|
MockManager=Struct.new :options, :manage_classes, :post_setup
|
7
7
|
|
8
8
|
def test_default
|
9
|
-
manager= Og.
|
9
|
+
manager = Og.start
|
10
10
|
assert_instance_of Og::Manager, manager
|
11
|
-
assert_equal :sqlite, manager.options[:
|
11
|
+
assert_equal :sqlite, manager.options[:adapter]
|
12
12
|
assert_equal 'data', manager.options[:name]
|
13
13
|
assert_equal true, manager.options[:called_by_og_setup]
|
14
14
|
end
|
15
15
|
|
16
16
|
def test_mattrs_initialized
|
17
|
-
manager= Og.
|
17
|
+
manager = Og.start
|
18
18
|
assert_equal manager,Og.manager
|
19
19
|
assert Og.thread_safe
|
20
20
|
end
|
21
21
|
|
22
22
|
def test_missing_store
|
23
|
-
|
23
|
+
# gmosx: this test is not needed, Og catches and reports this
|
24
|
+
# error.
|
25
|
+
# assert_raises(LoadError) { Og.start(:adapter => :missing) }
|
24
26
|
end
|
25
27
|
|
26
28
|
def test_setup_default_store_plus_options
|
27
|
-
manager=Og.
|
29
|
+
manager = Og.start(:evolve_schema => true)
|
28
30
|
assert_instance_of Og::Manager, manager
|
29
|
-
assert_equal :sqlite, manager.options[:
|
31
|
+
assert_equal :sqlite, manager.options[:adapter]
|
30
32
|
assert_equal true, manager.options[:evolve_schema]
|
31
33
|
end
|
32
34
|
|
33
35
|
def test_calls_manager_methods
|
34
|
-
mock_manager=Struct.new
|
35
|
-
def manage_classes
|
36
|
+
mock_manager = Struct.new(:options, :called) do
|
37
|
+
def manage_classes(*args)
|
36
38
|
self.called = [:mc]
|
37
39
|
end
|
38
40
|
def post_setup
|
39
41
|
self.called << :ps
|
40
42
|
end
|
41
43
|
end
|
42
|
-
old=Og::Manager
|
44
|
+
old = Og::Manager
|
43
45
|
Og.const_set :Manager, mock_manager
|
44
|
-
manager=Og.
|
45
|
-
assert_equal [:mc, :ps],manager.called
|
46
|
+
manager = Og.start
|
47
|
+
assert_equal [:mc, :ps], manager.called
|
46
48
|
Og.const_set :Manager, old
|
47
49
|
end
|
48
50
|
end
|