minidoc 1.0.0.rc1 → 1.0.0.rc2

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.
@@ -1,40 +0,0 @@
1
- # encoding: utf-8
2
- require File.expand_path('../helper', __FILE__)
3
-
4
- class FirstRunTest < Minidoc::TestCase
5
- def test_missing_setup_values
6
- with_alternative_configuration do
7
- Minidoc.connection = nil
8
- Minidoc.database_name = nil
9
-
10
- ex =
11
- assert_raises Minidoc::MissingConfiguration do
12
- User.create(name: "Kären")
13
- end
14
- assert_equal ex.message, "Make sure to set Minidoc.connection"
15
- end
16
- end
17
-
18
- def test_missing_database_name_only
19
- with_alternative_configuration do
20
- Minidoc.database_name = nil
21
-
22
- ex =
23
- assert_raises Minidoc::MissingConfiguration do
24
- User.create(name: "Kären")
25
- end
26
- assert_equal ex.message, "Make sure to set Minidoc.database_name"
27
- end
28
- end
29
-
30
- private
31
-
32
- def with_alternative_configuration
33
- original_connection = Minidoc.connection
34
- original_database_name = Minidoc.database_name
35
- yield
36
- ensure
37
- Minidoc.connection = original_connection
38
- Minidoc.database_name = original_database_name
39
- end
40
- end
data/test/grid_test.rb DELETED
@@ -1,33 +0,0 @@
1
- require File.expand_path("../helper", __FILE__)
2
-
3
- class GridTest < Minidoc::TestCase
4
-
5
- def setup
6
- super
7
- @grid = Minidoc::Grid.new(Minidoc.database)
8
- end
9
-
10
- def test_get_with_string
11
- doc_id = @grid.put("estamos en espana")
12
- as_string = doc_id.to_s
13
- document = @grid.get(as_string)
14
- assert_equal("estamos en espana", document.read)
15
- end
16
-
17
- def test_get_json
18
- hash = { "foo" => { "bar" => 1 } }
19
- doc_id = @grid.put(hash.to_json)
20
- as_string = doc_id.to_s
21
- assert_equal(hash, @grid.get_json(as_string))
22
- end
23
-
24
- def test_delete
25
- doc_id = @grid.put("estamos en espana")
26
- as_string = doc_id.to_s
27
- @grid.delete(as_string)
28
- assert_raises Mongo::GridFileNotFound do
29
- @grid.get(doc_id)
30
- end
31
- end
32
-
33
- end
@@ -1,198 +0,0 @@
1
- require File.expand_path("../helper", __FILE__)
2
-
3
- class PersistenceTest < Minidoc::TestCase
4
- def test_ids
5
- user = User.new
6
- assert_equal BSON::ObjectId, user.id.class
7
-
8
- user = User.new(_id: BSON::ObjectId("52955cc5f9f6a538a9000001"))
9
- assert_equal BSON::ObjectId("52955cc5f9f6a538a9000001"), user.id
10
-
11
- user = User.new("_id" => BSON::ObjectId("52955cc5f9f6a538a9000001"))
12
- assert_equal BSON::ObjectId("52955cc5f9f6a538a9000001"), user.id
13
- end
14
-
15
- def test_new_record
16
- user = User.new
17
- assert_equal true, user.new_record?
18
- user.save
19
- assert_equal false, user.new_record?
20
- end
21
-
22
- def test_raises_duplicate_key_where_appropriate
23
- mock_collection = mock()
24
- User.stubs(:collection).returns(mock_collection)
25
- mock_collection.stubs(:<<).raises(Mongo::OperationFailure.new("Duplicate key exception", Minidoc::DuplicateKey::DUPLICATE_KEY_ERROR_CODE))
26
-
27
- user = User.new
28
- assert_raises(Minidoc::DuplicateKey) { user.save }
29
- end
30
-
31
- def test_reraises_other_exception_types
32
- mock_collection = mock()
33
- User.stubs(:collection).returns(mock_collection)
34
- mock_collection.stubs(:<<).raises(ArgumentError)
35
-
36
- user = User.new
37
- assert_raises(ArgumentError) { user.save }
38
- end
39
-
40
- def test_persisted
41
- user = User.new
42
- assert_equal false, user.persisted?
43
- user.save
44
- assert_equal true, user.persisted?
45
- user.destroy
46
- assert_equal false, user.persisted?
47
- end
48
-
49
- def test_save
50
- user = User.new
51
- old_id = user.id
52
- assert_equal true, user.save
53
- assert_equal 1, User.count
54
- assert_equal old_id, user.id
55
- end
56
-
57
- def test_create
58
- user = User.create!(name: "Bryan")
59
- assert_equal "Bryan", user.name
60
- assert_equal 1, User.count
61
-
62
- user = User.create(name: "Bryan")
63
- assert_equal "Bryan", user.name
64
- assert_equal 2, User.count
65
- end
66
-
67
- def test_update
68
- user = User.create(name: "Bryan")
69
- user.name = "Noah"
70
- assert_equal "Noah", user.name
71
- user.save
72
- assert_equal "Noah", user.reload.name
73
- end
74
-
75
- def test_update_same_collection
76
- user = User.create(name: "Bryan", age: 20)
77
- user.name = "Noah"
78
- assert_equal "Noah", user.name
79
- user.save
80
- assert_equal "Noah", user.reload.name
81
- second_user = SecondUser.find_one(age: 20)
82
- assert_equal second_user.id, user.id
83
- second_user.age = 21
84
- assert_equal 21, second_user.age
85
- second_user.save
86
- assert_equal 21, second_user.reload.age
87
- assert_equal "Noah", user.reload.name
88
- end
89
-
90
- def test_destroy
91
- user = User.create(name: "Bryan")
92
- assert_equal false, user.destroyed?
93
- user.destroy
94
- assert_equal 0, User.count
95
- assert_equal true, user.destroyed?
96
- end
97
-
98
- def test_delete
99
- user = User.create(name: "Bryan")
100
- User.delete(user.id)
101
- assert_equal 0, User.count
102
-
103
- user = User.create(name: "Bryan")
104
- User.delete(user.id.to_s)
105
- assert_equal 0, User.count
106
-
107
- user = User.create(name: "Bryan")
108
- user.delete
109
- assert_equal 0, User.count
110
- end
111
-
112
- def test_reload
113
- user = User.create(name: "Bryan")
114
- assert_equal "Bryan", user.reload.name
115
-
116
- User.collection.update({_id: user.id}, {name: "Noah"})
117
- assert_equal "Noah", user.reload.name
118
- end
119
-
120
- def test_class_set
121
- user = User.create(name: "Bryan")
122
- User.set(user.id, name: "Noah")
123
- assert_equal "Bryan", user.name # Class set can't trigger update
124
- assert_equal "Noah", user.reload.name
125
- assert_equal "Noah", User.first.name
126
-
127
- User.set(user.id.to_s, name: "Mike")
128
- assert_equal "Mike", user.reload.name
129
- assert_equal "Mike", User.first.name
130
- end
131
-
132
- def test_instance_set
133
- user = User.create(name: "Bryan")
134
- user.set(name: "Noah")
135
- assert_equal "Noah", user.name
136
- assert_equal "Noah", user.reload.name
137
- assert_equal "Noah", User.first.name
138
-
139
- user = User.create(name: "Bryan")
140
- user.set("name" => "Noah")
141
- assert_equal "Noah", user.name
142
- assert_equal "Noah", user.reload.name
143
- end
144
-
145
- def test_class_unset
146
- user = User.create(name: "Bryan")
147
- User.unset(user.id, :name)
148
- assert_equal "Bryan", user.name # Class set can't trigger update
149
- assert_equal nil, user.reload.name
150
- assert_equal nil, User.first.name
151
-
152
- User.unset(user.id.to_s, :name)
153
- assert_equal nil, user.reload.name
154
- assert_equal nil, User.first.name
155
- end
156
-
157
- def test_instance_unset
158
- user = User.create(name: "Bryan")
159
- user.unset(:name)
160
- assert_equal nil, user.name
161
- assert_equal nil, user.reload.name
162
- assert_equal nil, User.first.name
163
-
164
- user = User.create(name: "Bryan")
165
- user.unset("name")
166
- assert_equal nil, user.name
167
- assert_equal nil, user.reload.name
168
- end
169
-
170
- def test_atomic_set_failure
171
- user = User.create(name: "from", age: 18)
172
-
173
- refute user.atomic_set({ name: "not-from" }, name: "to")
174
- assert_equal "from", user.name
175
- assert_equal 18, user.age
176
-
177
- user.reload
178
- assert_equal "from", user.name
179
- assert_equal 18, user.age
180
- end
181
-
182
- def test_atomic_set_success
183
- user = User.create(name: "from", age: 18)
184
- other_user = User.create(name: "from", age: 21)
185
-
186
- assert user.atomic_set({ name: "from" }, name: "to")
187
- assert_equal "to", user.name
188
- assert_equal 18, user.age
189
-
190
- user.reload
191
- assert_equal "to", user.name
192
- assert_equal 18, user.age
193
-
194
- other_user.reload
195
- assert_equal "from", other_user.name
196
- assert_equal 21, other_user.age
197
- end
198
- end
data/test/query_test.rb DELETED
@@ -1,64 +0,0 @@
1
- require File.expand_path("../helper", __FILE__)
2
-
3
- class QueryTest < Minidoc::TestCase
4
- def test_all
5
- User.collection << { name: "Joe" }
6
- User.collection << { name: "Bryan" }
7
- users = User.all
8
- assert_equal %w[Bryan Joe], users.map(&:name).sort
9
- end
10
-
11
- def test_count_all
12
- User.collection << { name: "Joe" }
13
- User.collection << { name: "Bryan" }
14
- assert_equal 2, User.count
15
- end
16
-
17
- def test_count_query
18
- User.collection << { name: "Joe" }
19
- User.collection << { name: "Bryan" }
20
- assert_equal 1, User.count(name: "Bryan")
21
- end
22
-
23
- def test_exists
24
- User.collection << { name: "Joe" }
25
- assert User.exists?(name: "Joe")
26
- refute User.exists?(name: "Bryan")
27
- end
28
-
29
- def test_first
30
- assert_equal nil, User.first
31
- user = User.create(name: "Bryan")
32
- assert_equal "Bryan", User.first.name
33
- assert_equal user, User.first
34
- end
35
-
36
- def test_find
37
- user = User.create(name: "Bryan")
38
- assert_equal [user], User.find({}).to_a
39
- assert_equal [], User.find(name: "Noah").to_a
40
- end
41
-
42
- def test_find_one
43
- user = User.create(name: "Bryan")
44
- assert_equal user, User.find_one({})
45
- assert_equal nil, User.find_one(name: "Noah")
46
- end
47
-
48
- def test_find_one!
49
- user = User.create(name: "Bryan")
50
- assert_equal user, User.find_one!(name: "Bryan")
51
- assert_raises(Minidoc::DocumentNotFoundError) { User.find_one!(name: "Noah") }
52
- end
53
-
54
- def test_find_one_or_initialize
55
- user = User.create(name: "Bryan", age: 1)
56
- assert user == User.find_one_or_initialize(name: "Bryan")
57
- assert User.find_one_or_initialize(name: "Noah").is_a?(User)
58
- assert User.find_one_or_initialize(name: "Noah").new_record?
59
- user = User.create(name: "Noah", age: 1)
60
- assert user == User.find_one_or_initialize({ age: 1 }, { sort: { name: -1 } })
61
- assert_raises(ArgumentError) { User.find_one_or_initialize("foo") }
62
- end
63
-
64
- end
@@ -1,34 +0,0 @@
1
- require File.expand_path("../helper", __FILE__)
2
-
3
- class ReadOnlyTest < Minidoc::TestCase
4
- class ReadOnlyUser < Minidoc::ReadOnly
5
- self.collection_name = "users"
6
- attribute :name, String
7
- end
8
-
9
- def test_read_only
10
- assert_raises NoMethodError do
11
- ReadOnlyUser.create(name: "Bryan")
12
- end
13
-
14
- rw_user = User.create(name: "Bryan")
15
- user = ReadOnlyUser.first
16
- assert_equal "Bryan", user.name
17
- assert_equal rw_user.id, user.id
18
- assert_equal user, user.as_value
19
-
20
- assert_raises NoMethodError do
21
- user.name = "Noah"
22
- end
23
- end
24
-
25
- def test_value
26
- user = User.new(name: "Bryan")
27
- user.name = "Noah"
28
- user = user.as_value
29
-
30
- assert_raises NoMethodError do
31
- user.name = "Noah"
32
- end
33
- end
34
- end
@@ -1,21 +0,0 @@
1
- require File.expand_path("../helper", __FILE__)
2
-
3
- class TimestampsTest < Minidoc::TestCase
4
- class User < ::User
5
- include Minidoc::Timestamps
6
- timestamps!
7
- end
8
-
9
- def test_create
10
- user = User.create
11
- assert user.created_at
12
- assert_equal user.created_at, user.updated_at
13
- end
14
-
15
- def test_update
16
- user = User.create
17
- sleep 0.001
18
- user.save
19
- refute_equal user.created_at, user.updated_at
20
- end
21
- end
@@ -1,68 +0,0 @@
1
- require File.expand_path("../helper", __FILE__)
2
-
3
- class UniquenessValidatorTest < Minidoc::TestCase
4
- class User < ::User
5
- validates :name, uniqueness: true
6
- end
7
-
8
- class InsensitiveUser < ::User
9
- attribute :insensitive, String
10
- validates :insensitive, uniqueness: { case_sensitive: false }
11
- end
12
-
13
- class ScopedUser < ::User
14
- attribute :country_id, Integer
15
- attribute :tax_id_number, Integer
16
- validates :tax_id_number, uniqueness: { scope: :country_id }
17
- end
18
-
19
- def test_invalid_with_existing_value
20
- User.create!(name: "same name")
21
- user = User.new(name: "same name")
22
- assert_equal false, user.valid?
23
- assert_equal ["has already been taken"], user.errors[:name]
24
- end
25
-
26
- def test_case_sensitive_by_default
27
- User.create!(name: "different case")
28
- user = User.new(name: "DIFFERENT CASE")
29
- assert_equal true, user.valid?
30
- end
31
-
32
- def test_unique_persisted_record_is_valid
33
- user = User.create!(name: "lonely")
34
- assert_equal true, user.valid?
35
- end
36
-
37
- def test_case_insensitive
38
- InsensitiveUser.create!(insensitive: "equivalent")
39
- user = InsensitiveUser.new(insensitive: "EquivALENT")
40
- assert_equal false, user.valid?
41
- assert_equal ["has already been taken"], user.errors[:insensitive]
42
- end
43
-
44
- def test_same_value_within_scope
45
- ScopedUser.create!(country_id: 1, tax_id_number: 1)
46
- user = ScopedUser.new(country_id: 1, tax_id_number: 1)
47
- assert_equal false, user.valid?
48
- assert_equal ["has already been taken"], user.errors[:tax_id_number]
49
- end
50
-
51
- def test_different_value_within_scope
52
- ScopedUser.create!(country_id: 1, tax_id_number: 1)
53
- user = ScopedUser.new(country_id: 1, tax_id_number: 2)
54
- assert_equal true, user.valid?
55
- end
56
-
57
- def test_same_value_outside_scope
58
- ScopedUser.create!(country_id: 1, tax_id_number: 1)
59
- user = ScopedUser.new(country_id: 2, tax_id_number: 1)
60
- assert_equal true, user.valid?
61
- end
62
-
63
- def test_same_value_outside_scope
64
- ScopedUser.create!(country_id: 1, tax_id_number: 1)
65
- user = ScopedUser.new(country_id: 2, tax_id_number: 2)
66
- assert_equal true, user.valid?
67
- end
68
- end
@@ -1,36 +0,0 @@
1
- require File.expand_path("../helper", __FILE__)
2
-
3
- class ValidationsTest < Minidoc::TestCase
4
- class User < ::User
5
- validates :name, presence: true
6
- end
7
-
8
- def test_valid
9
- user = User.new
10
- assert_equal false, user.valid?
11
- end
12
-
13
- def test_errors
14
- user = User.new
15
- user.valid?
16
- assert_equal ["can't be blank"], user.errors[:name]
17
- end
18
-
19
- def test_create_bang
20
- assert_raises Minidoc::RecordInvalid do
21
- User.create!
22
- end
23
- end
24
-
25
- def test_invalid_save
26
- user = User.new
27
- assert_equal false, user.save
28
- assert_equal true, user.new_record?
29
- end
30
-
31
- def test_save_bang
32
- assert_raises Minidoc::RecordInvalid do
33
- User.new.save!
34
- end
35
- end
36
- end