og 0.31.0 → 0.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|