rspec-activemodel-mocks 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/rspec/active_model/mocks/mocks.rb +1 -1
- data/lib/rspec/active_model/mocks/version.rb +1 -1
- data/spec/rspec/active_model/mocks/mock_model_spec.rb +7 -0
- data/spec/rspec/active_model/mocks/stub_model_spec.rb +12 -0
- data/spec/support/ar_classes.rb +22 -0
- metadata +40 -5
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e4aabaf01fc2ce4d1d63258a97eeae886aed9666
|
4
|
+
data.tar.gz: 5d6c8954af12f2cc996525f341ecb0ef9bba96a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c93de78dbdf87d1af66ed2a589fe1ceadb3f960a2aeb9fe54f5c6e011a0337f202d7c352f9eca26c82853cc5099193db10be4fb89cff80fd8cab08ac0dec11b3
|
7
|
+
data.tar.gz: a307fa11f27e7aa9695aab18356089a8ff9802d69cc6df53a47e32cf3c80f76291e22a6b6041187f610e4343427df0cf948fe9dafaef0ec133e7d8525f9fa68a
|
checksums.yaml.gz.sig
ADDED
Binary file
|
data.tar.gz.sig
ADDED
Binary file
|
@@ -238,7 +238,7 @@ EOM
|
|
238
238
|
def stub_model(model_class, stubs={})
|
239
239
|
model_class.new.tap do |m|
|
240
240
|
m.extend ActiveModelStubExtensions
|
241
|
-
if defined?(ActiveRecord) && model_class < ActiveRecord::Base
|
241
|
+
if defined?(ActiveRecord) && model_class < ActiveRecord::Base && model_class.primary_key
|
242
242
|
m.extend ActiveRecordStubExtensions
|
243
243
|
primary_key = model_class.primary_key.to_sym
|
244
244
|
stubs = {primary_key => next_id}.merge(stubs)
|
@@ -298,6 +298,13 @@ describe "mock_model(RealModel)" do
|
|
298
298
|
end
|
299
299
|
|
300
300
|
context "with as_null_object" do
|
301
|
+
around do |example|
|
302
|
+
original = RSpec::Mocks.configuration.syntax
|
303
|
+
RSpec::Mocks.configuration.syntax = :should
|
304
|
+
example.run
|
305
|
+
RSpec::Mocks.configuration.syntax = original
|
306
|
+
end
|
307
|
+
|
301
308
|
it "says it will not respond_to?(xxx_before_type_cast)" do
|
302
309
|
model = NonActiveRecordModel.new.as_null_object
|
303
310
|
expect(model.respond_to?("title_before_type_cast")).to be(false)
|
@@ -151,4 +151,16 @@ describe "stub_model" do
|
|
151
151
|
end
|
152
152
|
|
153
153
|
end
|
154
|
+
|
155
|
+
context "with an ActiveRecord model with no primary key" do
|
156
|
+
let(:model_class) { MockableModelNoPrimaryKey }
|
157
|
+
|
158
|
+
it "yields the model" do
|
159
|
+
model = stub_model(model_class) do |block_arg|
|
160
|
+
@block_arg = block_arg
|
161
|
+
end
|
162
|
+
expect(model).to be(@block_arg)
|
163
|
+
end
|
164
|
+
|
165
|
+
end
|
154
166
|
end
|
data/spec/support/ar_classes.rb
CHANGED
@@ -16,6 +16,23 @@ module Connections
|
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
+
module ConnectionsView
|
20
|
+
def self.extended(host)
|
21
|
+
host.connection.execute <<-eosql
|
22
|
+
CREATE TABLE some_table (
|
23
|
+
associated_model_id integer,
|
24
|
+
mockable_model_id integer,
|
25
|
+
nonexistent_model_id integer
|
26
|
+
)
|
27
|
+
eosql
|
28
|
+
|
29
|
+
host.connection.execute <<-eosql
|
30
|
+
CREATE VIEW #{host.table_name} AS
|
31
|
+
select * from some_table;
|
32
|
+
eosql
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
19
36
|
class NonActiveRecordModel
|
20
37
|
extend ActiveModel::Naming
|
21
38
|
include ActiveModel::Conversion
|
@@ -26,6 +43,11 @@ class MockableModel < ActiveRecord::Base
|
|
26
43
|
has_one :associated_model
|
27
44
|
end
|
28
45
|
|
46
|
+
# (e.g. model backed database views)
|
47
|
+
class MockableModelNoPrimaryKey < ActiveRecord::Base
|
48
|
+
extend ConnectionsView
|
49
|
+
end
|
50
|
+
|
29
51
|
class SubMockableModel < MockableModel
|
30
52
|
end
|
31
53
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-activemodel-mocks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Chelimsky
|
@@ -9,8 +9,43 @@ authors:
|
|
9
9
|
- Thomas Holmes
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
|
-
cert_chain:
|
13
|
-
|
12
|
+
cert_chain:
|
13
|
+
- |
|
14
|
+
-----BEGIN CERTIFICATE-----
|
15
|
+
MIIF1TCCA72gAwIBAgIJAPXjfUbCjdXUMA0GCSqGSIb3DQEBBQUAMIGAMQswCQYD
|
16
|
+
VQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEO
|
17
|
+
MAwGA1UECgwFUlNwZWMxEzARBgNVBAMMCnJzcGVjLmluZm8xJTAjBgkqhkiG9w0B
|
18
|
+
CQEWFnJzcGVjQGdvb2dsZWdyb3Vwcy5jb20wHhcNMTQxMjIzMDkzNTIyWhcNMjQx
|
19
|
+
MjIyMDkzNTIyWjCBgDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24x
|
20
|
+
EDAOBgNVBAcMB1NlYXR0bGUxDjAMBgNVBAoMBVJTcGVjMRMwEQYDVQQDDApyc3Bl
|
21
|
+
Yy5pbmZvMSUwIwYJKoZIhvcNAQkBFhZyc3BlY0Bnb29nbGVncm91cHMuY29tMIIC
|
22
|
+
IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsSmjgcHaKlD0jizRJowi2bGI
|
23
|
+
KMOHnJoExxRNHHxH+3w9kkl95YldvDRVX495b13ZCzwRe0AyqX24wq04tp0G5Z5C
|
24
|
+
e/w2pnNK4ol1eECPwQu+YGpepeODlZICL5gwQspe0cDifbBnHx5QySMiPpvx6bC0
|
25
|
+
tQTox0ppDIaMhch8IPCwyoE4DQK5bpsdwnLSHTsQjUIb7IM8tUMpd/iKrJgNffwc
|
26
|
+
6gC1TmhIlzQoB26nCNh9uK7xZjUM+sGECzvcYuImchUaIgJA/ybrlZS+m/hxzvBo
|
27
|
+
mLnn/xNEC6Vz5HG+3TR0Gb0cSUf6XUu2s51Jk/SJi3MhCZp2gs9OUg4EVZNzQVkZ
|
28
|
+
efLBjAZG2Mxk14JyB4/Omc+Jk0ajprINCBbUNnxzCJrYDM3J9TVWIwyUGNX/U3MO
|
29
|
+
s3tMAT+EVgx/mZMPnBO8EULlyF51MRUp3Wy9Mnw8AYLk30UnMG5AjqgO5JNyFlA7
|
30
|
+
Xeh3EVdWY3vMB1pkhPwlsenpcmj5gOzrd54lELOVbCGHCf48iSqeflY2Lhe0pvzK
|
31
|
+
blXCJBDmtrebvus291rM/dHcbEfK1SVd5Wut/n131iouf6dnNCFskFygDcgBbthC
|
32
|
+
gpEMqf80lEmhX59VUsm0Pv6OEo+ZPHBvXPiJA6DShQh9t3YtpwyA8uVDMbT/i32u
|
33
|
+
2FUsqZbbJcCmkBrGposCAwEAAaNQME4wHQYDVR0OBBYEFPPvQ5XT0Nvuhi6k+hrW
|
34
|
+
Vv35J+TeMB8GA1UdIwQYMBaAFPPvQ5XT0Nvuhi6k+hrWVv35J+TeMAwGA1UdEwQF
|
35
|
+
MAMBAf8wDQYJKoZIhvcNAQEFBQADggIBAIqbQSWH2aAF537DKwAMB8nMFsoe24MD
|
36
|
+
gtuQAyjTtbH+QBE4N2RdQF/sU7Y3PYR7nqdrCsYc3RxyqM5XXi7I3IYdpfe1RuxY
|
37
|
+
+pyPzVQsPPDhMlJlCrwJsADnxlpxZlAgxYSLKOan55ihscaAWA90wqRUrf/ZJM36
|
38
|
+
8LWCPVn5teIt5aaxZWX68RMxa+AXvpbtJOBwXLkIFk3apD8CX4DhelIdw67DbkUe
|
39
|
+
ghUd/u62qrnqBTVgditt7OoWIZjzh24/Fda5d0MxZyvLILGOrf5bN4cTbe/q9Cid
|
40
|
+
Xrik7Upm+mu3y3yQIfrw85xybHq6iNXyYHvCdSrFfCIKrGpd/0CAdmYnJlx59Fk/
|
41
|
+
UbD3Eyx4psBSkU+WKO0Uf+3zNI7N/nVeNIwU/Ft+l8l7/K+427656c+ZGWDO0Gt/
|
42
|
+
BeEOSTDKP7qQ1T+JvMrBcBQo+i0cnRT10J1aoV90BhxsvWTRizIbugbaqR6Tq3bj
|
43
|
+
Akt00cIlNSplL6DenIAKSh5kF7s0tRD0tC3bNkZmNjNGkdoGEcUODEpTB3RHKKiu
|
44
|
+
e6k2Jg6m00z5vGFQhOnROG/QaUzMA3A3mFBe1RHFo07xd0pFeoeWL3vF69Gx9Jwp
|
45
|
+
ZsVDj6a7lH3cNqtWXZxrb2wO38qV5AkYj8SQK7Hj3/Yui9myUX3crr+PdetazSqQ
|
46
|
+
F3MdtaDehhjC
|
47
|
+
-----END CERTIFICATE-----
|
48
|
+
date: 2016-01-28 00:00:00.000000000 Z
|
14
49
|
dependencies:
|
15
50
|
- !ruby/object:Gem::Dependency
|
16
51
|
name: activesupport
|
@@ -178,10 +213,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
178
213
|
version: '0'
|
179
214
|
requirements: []
|
180
215
|
rubyforge_project:
|
181
|
-
rubygems_version: 2.
|
216
|
+
rubygems_version: 2.5.1
|
182
217
|
signing_key:
|
183
218
|
specification_version: 4
|
184
|
-
summary: rspec-activemodel-mocks-1.0.
|
219
|
+
summary: rspec-activemodel-mocks-1.0.3
|
185
220
|
test_files:
|
186
221
|
- features/mocks/mock_model.feature
|
187
222
|
- features/mocks/stub_model.feature
|
metadata.gz.sig
ADDED
Binary file
|