remockable 0.0.4 → 0.0.5
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/README.markdown +2 -2
- data/lib/remockable/active_model/helpers.rb +1 -3
- data/lib/remockable/active_record/belong_to.rb +30 -0
- data/lib/remockable/active_record/have_and_belong_to_many.rb +30 -0
- data/lib/remockable/active_record/have_many.rb +30 -0
- data/lib/remockable/active_record/have_one.rb +30 -0
- data/lib/remockable/active_record.rb +6 -0
- data/lib/remockable/version.rb +1 -1
- metadata +5 -1
data/README.markdown
CHANGED
@@ -20,8 +20,8 @@ the original goal of Remarkable in spirit.
|
|
20
20
|
## Matchers
|
21
21
|
|
22
22
|
Remockable currently includes support for all of the Active Model validation
|
23
|
-
and allow_mass_assignment_of matchers, and also supports the
|
24
|
-
have_index, and have_scope Active Record matchers.
|
23
|
+
and allow_mass_assignment_of matchers, and also supports the association,
|
24
|
+
have_column, have_index, and have_scope Active Record matchers.
|
25
25
|
|
26
26
|
More are on the way soon.
|
27
27
|
|
@@ -0,0 +1,30 @@
|
|
1
|
+
RSpec::Matchers.define(:belong_to) do |*attributes|
|
2
|
+
extend Remockable::ActiveRecord::Helpers
|
3
|
+
|
4
|
+
@expected = attributes.extract_options!
|
5
|
+
@association = attributes.first
|
6
|
+
|
7
|
+
unsupported_options %w(extend)
|
8
|
+
valid_options %w(class_name conditions select foreign_key primary_key dependent counter_cache include polymorphic readonly validate autosave touch inverse_of)
|
9
|
+
|
10
|
+
match do |actual|
|
11
|
+
if association = subject.class.reflect_on_association(@association)
|
12
|
+
macro_matches = association.macro.should == :belongs_to
|
13
|
+
options_match = association.options.slice(*expected.keys) == expected
|
14
|
+
macro_matches && options_match
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
failure_message_for_should do |actual|
|
19
|
+
"Expected #{subject.class.name} to #{description}"
|
20
|
+
end
|
21
|
+
|
22
|
+
failure_message_for_should_not do |actual|
|
23
|
+
"Did not expect #{subject.class.name} to #{description}"
|
24
|
+
end
|
25
|
+
|
26
|
+
description do
|
27
|
+
with = " with #{expected.inspect}" if expected.any?
|
28
|
+
"belong to #{@association}#{with}"
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
RSpec::Matchers.define(:have_and_belong_to_many) do |*attributes|
|
2
|
+
extend Remockable::ActiveRecord::Helpers
|
3
|
+
|
4
|
+
@expected = attributes.extract_options!
|
5
|
+
@association = attributes.first
|
6
|
+
|
7
|
+
unsupported_options %w(extend)
|
8
|
+
valid_options %w(class_name join_table foreign_key association_foreign_key conditions order uniq finder_sql counter_sql delete_sql insert_sql include group having limit offset select readonly validate autosave)
|
9
|
+
|
10
|
+
match do |actual|
|
11
|
+
if association = subject.class.reflect_on_association(@association)
|
12
|
+
macro_matches = association.macro.should == :has_and_belongs_to_many
|
13
|
+
options_match = association.options.slice(*expected.keys) == expected
|
14
|
+
macro_matches && options_match
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
failure_message_for_should do |actual|
|
19
|
+
"Expected #{subject.class.name} to #{description}"
|
20
|
+
end
|
21
|
+
|
22
|
+
failure_message_for_should_not do |actual|
|
23
|
+
"Did not expect #{subject.class.name} to #{description}"
|
24
|
+
end
|
25
|
+
|
26
|
+
description do
|
27
|
+
with = " with #{expected.inspect}" if expected.any?
|
28
|
+
"have and belong to #{@association}#{with}"
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
RSpec::Matchers.define(:have_many) do |*attributes|
|
2
|
+
extend Remockable::ActiveRecord::Helpers
|
3
|
+
|
4
|
+
@expected = attributes.extract_options!
|
5
|
+
@association = attributes.first
|
6
|
+
|
7
|
+
unsupported_options %w(extend)
|
8
|
+
valid_options %w(class_name conditions order foreign_key primary_key dependent finder_sql counter_sql include group having limit offset select as through source source_type uniq readonly validate autosave inverse_of)
|
9
|
+
|
10
|
+
match do |actual|
|
11
|
+
if association = subject.class.reflect_on_association(@association)
|
12
|
+
macro_matches = association.macro.should == :has_many
|
13
|
+
options_match = association.options.slice(*expected.keys) == expected
|
14
|
+
macro_matches && options_match
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
failure_message_for_should do |actual|
|
19
|
+
"Expected #{subject.class.name} to #{description}"
|
20
|
+
end
|
21
|
+
|
22
|
+
failure_message_for_should_not do |actual|
|
23
|
+
"Did not expect #{subject.class.name} to #{description}"
|
24
|
+
end
|
25
|
+
|
26
|
+
description do
|
27
|
+
with = " with #{expected.inspect}" if expected.any?
|
28
|
+
"have many #{@association}#{with}"
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
RSpec::Matchers.define(:have_one) do |*attributes|
|
2
|
+
extend Remockable::ActiveRecord::Helpers
|
3
|
+
|
4
|
+
@expected = attributes.extract_options!
|
5
|
+
@association = attributes.first
|
6
|
+
|
7
|
+
unsupported_options %w(extend)
|
8
|
+
valid_options %w(class_name conditions order dependent foreign_key primary_key include as select through source source_type readonly validate autosave inverse_of)
|
9
|
+
|
10
|
+
match do |actual|
|
11
|
+
if association = subject.class.reflect_on_association(@association)
|
12
|
+
macro_matches = association.macro.should == :has_one
|
13
|
+
options_match = association.options.slice(*expected.keys) == expected
|
14
|
+
macro_matches && options_match
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
failure_message_for_should do |actual|
|
19
|
+
"Expected #{subject.class.name} to #{description}"
|
20
|
+
end
|
21
|
+
|
22
|
+
failure_message_for_should_not do |actual|
|
23
|
+
"Did not expect #{subject.class.name} to #{description}"
|
24
|
+
end
|
25
|
+
|
26
|
+
description do
|
27
|
+
with = " with #{expected.inspect}" if expected.any?
|
28
|
+
"have a #{@association}#{with}"
|
29
|
+
end
|
30
|
+
end
|
@@ -1,4 +1,10 @@
|
|
1
1
|
require 'remockable/active_record/helpers'
|
2
|
+
|
3
|
+
require 'remockable/active_record/belong_to'
|
4
|
+
require 'remockable/active_record/have_and_belong_to_many'
|
5
|
+
require 'remockable/active_record/have_many'
|
6
|
+
require 'remockable/active_record/have_one'
|
7
|
+
|
2
8
|
require 'remockable/active_record/have_column'
|
3
9
|
require 'remockable/active_record/have_index'
|
4
10
|
require 'remockable/active_record/have_scope'
|
data/lib/remockable/version.rb
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: remockable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.5
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Tyler Hunt
|
@@ -112,8 +112,12 @@ files:
|
|
112
112
|
- lib/remockable/active_model/validate_numericality_of.rb
|
113
113
|
- lib/remockable/active_model/validate_presence_of.rb
|
114
114
|
- lib/remockable/active_model.rb
|
115
|
+
- lib/remockable/active_record/belong_to.rb
|
116
|
+
- lib/remockable/active_record/have_and_belong_to_many.rb
|
115
117
|
- lib/remockable/active_record/have_column.rb
|
116
118
|
- lib/remockable/active_record/have_index.rb
|
119
|
+
- lib/remockable/active_record/have_many.rb
|
120
|
+
- lib/remockable/active_record/have_one.rb
|
117
121
|
- lib/remockable/active_record/have_scope.rb
|
118
122
|
- lib/remockable/active_record/helpers.rb
|
119
123
|
- lib/remockable/active_record.rb
|