mongoid_monkey 0.1.2 → 0.1.3

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.
@@ -0,0 +1,62 @@
1
+ require "spec_helper"
2
+
3
+ if defined?(Moped)
4
+
5
+ describe Moped::Database do
6
+
7
+ describe "#collection_names" do
8
+
9
+ let(:session) do
10
+ Moped::Session.new([ "127.0.0.1:27017" ], database: $database_name)
11
+ end
12
+
13
+ let(:database) do
14
+ described_class.new(session, $database_name)
15
+ end
16
+
17
+ let(:collection_names) do
18
+ database.collection_names
19
+ end
20
+
21
+ before do
22
+ session.drop
23
+ names.map do |name|
24
+ session.command(create: name)
25
+ end
26
+ end
27
+
28
+ context "when name doesn't include system" do
29
+
30
+ let(:names) do
31
+ %w[ users comments ]
32
+ end
33
+
34
+ it "returns the name of all non system collections" do
35
+ expect(collection_names.sort).to eq([ "comments", "users" ])
36
+ end
37
+ end
38
+
39
+ context "when name includes system not at the beginning" do
40
+
41
+ let(:names) do
42
+ %w[ users comments_system_fu ]
43
+ end
44
+
45
+ it "returns the name of all non system collections" do
46
+ expect(collection_names.sort).to eq([ "comments_system_fu", "users" ])
47
+ end
48
+ end
49
+
50
+ context "when name includes system at the beginning" do
51
+
52
+ let(:names) do
53
+ %w[ users system_comments_fu ]
54
+ end
55
+
56
+ it "returns the name of all non system collections" do
57
+ expect(collection_names.sort).to eq([ "system_comments_fu", "users" ])
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,85 @@
1
+ require "spec_helper"
2
+
3
+ if defined?(Moped)
4
+
5
+ describe Moped::Indexes do
6
+
7
+ let(:session) do
8
+ Moped::Session.new %w[127.0.0.1:27017], database: $database_name
9
+ end
10
+
11
+ let(:indexes) do
12
+ session[:users].indexes
13
+ end
14
+
15
+ before do
16
+ begin
17
+ indexes.drop
18
+ rescue Exception
19
+ end
20
+ end
21
+
22
+ describe "#create" do
23
+
24
+ context "when called without extra options" do
25
+
26
+ it "creates an index with no options" do
27
+ indexes.create name: 1
28
+ indexes[name: 1].should_not eq nil
29
+ keys = []
30
+ indexes.each do |idx|
31
+ keys << idx['key']
32
+ end
33
+ keys.should eq([{"_id" => 1}, {"name" => 1}])
34
+ end
35
+ end
36
+
37
+ context "when called with extra options" do
38
+
39
+ it "creates an index with the extra options" do
40
+ indexes.create({name: 1}, {unique: true})
41
+ index = indexes[name: 1]
42
+ index["unique"].should eq true
43
+ end
44
+ end
45
+
46
+ context "when there is existent data" do
47
+
48
+ before do
49
+ 3.times { session[:users].insert(name: 'John') }
50
+ end
51
+
52
+ it "raises an error" do
53
+ expect {
54
+ indexes.create({name: 1}, {unique: true})
55
+ }.to raise_error(Moped::Errors::OperationFailure)
56
+ end
57
+ end
58
+ end
59
+
60
+ describe "#drop" do
61
+
62
+ context "when provided a key" do
63
+ before { session.drop }
64
+
65
+ it "drops the index" do
66
+ indexes.create(name: 1)["numIndexesAfter"].should eq 2
67
+ indexes.drop(name: 1).should eq true
68
+ indexes.create({name: 1}, {unique: true})["numIndexesAfter"].should eq 2
69
+ indexes.drop(name: 1).should eq true
70
+ end
71
+ end
72
+
73
+ context "when not provided a key" do
74
+
75
+ it "drops all indexes" do
76
+ indexes.create name: 1
77
+ indexes.create age: 1
78
+ indexes.drop
79
+ indexes[name: 1].should eq nil
80
+ indexes[age: 1].should eq nil
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid_monkey
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - johnnyshields
@@ -69,6 +69,11 @@ files:
69
69
  - lib/patches/instrument.rb
70
70
  - lib/patches/reorder.rb
71
71
  - lib/version.rb
72
+ - spec/app/models/account.rb
73
+ - spec/app/models/address.rb
74
+ - spec/app/models/draft.rb
75
+ - spec/app/models/person.rb
76
+ - spec/app/models/user.rb
72
77
  - spec/config/mongodb-mmapv1.conf
73
78
  - spec/config/mongodb-wiredtiger.conf
74
79
  - spec/gemfile/mongoid3.gemfile
@@ -77,7 +82,12 @@ files:
77
82
  - spec/spec_helper.rb
78
83
  - spec/unit/atomic_spec.rb
79
84
  - spec/unit/big_decimal_spec.rb
80
- - spec/unit/db_commands_spec.rb
85
+ - spec/unit/db_commands/mongoid3_indexes_spec.rb
86
+ - spec/unit/db_commands/mongoid3_tasks_spec.rb
87
+ - spec/unit/db_commands/mongoid4_indexes_spec.rb
88
+ - spec/unit/db_commands/mongoid4_tasks_spec.rb
89
+ - spec/unit/db_commands/moped_database_spec.rb
90
+ - spec/unit/db_commands/moped_indexes_spec.rb
81
91
  - spec/unit/instrument_spec.rb
82
92
  - spec/unit/reorder_spec.rb
83
93
  homepage: https://github.com/johnnyshields/mongoid_monkey
@@ -105,6 +115,11 @@ signing_key:
105
115
  specification_version: 4
106
116
  summary: Monkey patches for Mongoid
107
117
  test_files:
118
+ - spec/app/models/account.rb
119
+ - spec/app/models/address.rb
120
+ - spec/app/models/draft.rb
121
+ - spec/app/models/person.rb
122
+ - spec/app/models/user.rb
108
123
  - spec/config/mongodb-mmapv1.conf
109
124
  - spec/config/mongodb-wiredtiger.conf
110
125
  - spec/gemfile/mongoid3.gemfile
@@ -113,7 +128,12 @@ test_files:
113
128
  - spec/spec_helper.rb
114
129
  - spec/unit/atomic_spec.rb
115
130
  - spec/unit/big_decimal_spec.rb
116
- - spec/unit/db_commands_spec.rb
131
+ - spec/unit/db_commands/mongoid3_indexes_spec.rb
132
+ - spec/unit/db_commands/mongoid3_tasks_spec.rb
133
+ - spec/unit/db_commands/mongoid4_indexes_spec.rb
134
+ - spec/unit/db_commands/mongoid4_tasks_spec.rb
135
+ - spec/unit/db_commands/moped_database_spec.rb
136
+ - spec/unit/db_commands/moped_indexes_spec.rb
117
137
  - spec/unit/instrument_spec.rb
118
138
  - spec/unit/reorder_spec.rb
119
139
  has_rdoc: