sequel_spec 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1d1cdbc693387bd8389f02b56356ba409fa38eea
4
- data.tar.gz: 66ff755f8c42070f4c558a4ca2098802f97c4bb3
3
+ metadata.gz: 2cc55d801d8460a333aec9a8a6e615060def64cb
4
+ data.tar.gz: f777ca9fdb5a21a4da44f42aa79848db8210315a
5
5
  SHA512:
6
- metadata.gz: 9e7b4b4065e4b43515e78d05bee8228ff083c20858c0adce136eb763294c1bc2bbb507bb5a4a5f482bfd375dd32b80b969c265d2d274b9620df8682d104730ba
7
- data.tar.gz: 2c02bc59848bd3d52c9f81df7347cbfcdcf78cb222247365265fd7d9cc85a667fbd5d9dec2543330abe625eaf58c805d0a7356d313ee1c3e42133a8cc54dd54c
6
+ metadata.gz: b2d90a2402dc7fd5e1e679e9d23f1246b52b3f96ef3a6337cbf04146071d5b1cbf872679962265732b34ea7e2b75ff0c62c7856dd1b1e882588e55ea6f768dce
7
+ data.tar.gz: e48d8533c4b7238da88c7c8f98afc44337962a56ef58fa33090ff35d4ced2345b4c31805d9f7d273b0a8a7472dd9c6a424050ce420c7f99130e6940be93eecb7
data/LICENSE CHANGED
@@ -1,4 +1,5 @@
1
- Copyright (c) 2014 Adrià Planas, Jonathan Tron, Joseph Halter
1
+ Copyright (c) 2014 Adrià Planas
2
+ Copyright (c) 2009-2012 Jonathan Tron, Joseph Halter
2
3
 
3
4
  MIT License
4
5
 
data/README.md CHANGED
@@ -89,3 +89,7 @@ it { should validate_length_of(:name).is(20).with_message "Name should be 20 cha
89
89
  3. Commit your changes (`git commit -am 'Add some feature'`)
90
90
  4. Push to the branch (`git push origin my-new-feature`)
91
91
  5. Create new Pull Request
92
+
93
+ ## Credits
94
+
95
+ * Jonathan Tron and Joseph Halter for the original [rspec_sequel_matchers](https://github.com/openhood/rspec_sequel_matchers) code
@@ -0,0 +1,15 @@
1
+ module SequelSpec
2
+ module Matchers
3
+ module Association
4
+ class HaveManyThroughManyMatcher < AssociationMatcher
5
+ def association_type
6
+ :many_through_many
7
+ end
8
+ end
9
+
10
+ def have_many_through_many(*args)
11
+ HaveManyThroughManyMatcher.new(*args)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -4,6 +4,8 @@ require 'sequel_spec/association/have_many_to_one_matcher'
4
4
  require 'sequel_spec/association/have_one_to_many_matcher'
5
5
  require 'sequel_spec/association/have_one_to_one_matcher'
6
6
  require 'sequel_spec/association/have_one_through_one_matcher'
7
+ require 'sequel_spec/association/have_many_through_many_matcher'
8
+
7
9
 
8
10
  module SequelSpec
9
11
  module Matchers
@@ -1,3 +1,3 @@
1
1
  module SequelSpec
2
- VERSION = "0.1.0".freeze
2
+ VERSION = "0.1.1".freeze
3
3
  end
@@ -0,0 +1,63 @@
1
+ require 'spec_helper'
2
+
3
+ describe "have_many_through_many_matcher" do
4
+ before :all do
5
+ define_model :comment
6
+ define_model :comments_items
7
+ define_model :item do
8
+ plugin :many_through_many
9
+ many_through_many :comments, [
10
+ [:comments_items, :item_id, :comment_id],
11
+ [:comments, :id, :id]
12
+ ], join_table: :comments_items
13
+ end
14
+ end
15
+
16
+ subject{ Item }
17
+
18
+ describe "messages" do
19
+ describe "without option" do
20
+ it "should contain a description" do
21
+ @matcher = have_many_through_many :comments
22
+ @matcher.description.should == "have a many_through_many association :comments"
23
+ end
24
+
25
+ it "should set failure messages" do
26
+ @matcher = have_many_through_many :comments
27
+ @matcher.matches? subject
28
+ @matcher.failure_message.should == "expected Item to " + @matcher.description
29
+ @matcher.negative_failure_message.should == "expected Item to not " + @matcher.description
30
+ end
31
+ end
32
+
33
+ describe "with options" do
34
+ it "should contain a description" do
35
+ @matcher = have_many_through_many(:comments).with_options :join_table => :comments_items
36
+ @matcher.description.should == 'have a many_through_many association :comments with option(s) :join_table => :comments_items'
37
+ end
38
+
39
+ it "should set failure messages" do
40
+ @matcher = have_many_through_many(:comments).with_options :class_name => "Comment"
41
+ @matcher.matches? subject
42
+ @matcher.failure_message.should == "expected Item to " + @matcher.description
43
+ @matcher.negative_failure_message.should == "expected Item to not " + @matcher.description
44
+ end
45
+
46
+ it "should explicit used options if different than expected" do
47
+ @matcher = have_many_through_many(:comments).with_options :join_table => :whatever
48
+ @matcher.matches? subject
49
+ explanation = ' expected :join_table == :whatever but found :comments_items instead'
50
+ @matcher.failure_message.should == "expected Item to " + @matcher.description + explanation
51
+ @matcher.negative_failure_message.should == "expected Item to not " + @matcher.description + explanation
52
+ end
53
+ end
54
+ end
55
+
56
+ describe "matchers" do
57
+ it{ should have_many_through_many(:comments) }
58
+ it{ should have_many_through_many(:comments).with_options :join_table => :comments_items }
59
+ it{ should_not have_many_through_many(:prices) }
60
+ it{ should_not have_many_through_many(:comments).with_options :class_name => "Price" }
61
+ it{ should_not have_many_through_many(:comments).with_options :join_table => :items_comments }
62
+ end
63
+ end
@@ -24,6 +24,7 @@ describe "have_many_to_many_matcher" do
24
24
  @matcher.negative_failure_message.should == "expected Comment to not " + @matcher.description
25
25
  end
26
26
  end
27
+
27
28
  describe "with options" do
28
29
  it "should contain a description" do
29
30
  @matcher = have_many_to_many(:items).with_options :class_name => "Item"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequel_spec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adrià Planas
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-03-08 00:00:00.000000000 Z
13
+ date: 2014-03-10 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: sequel
@@ -98,6 +98,7 @@ files:
98
98
  - lib/sequel_spec.rb
99
99
  - lib/sequel_spec/association.rb
100
100
  - lib/sequel_spec/association/association_matcher.rb
101
+ - lib/sequel_spec/association/have_many_through_many_matcher.rb
101
102
  - lib/sequel_spec/association/have_many_to_many_matcher.rb
102
103
  - lib/sequel_spec/association/have_many_to_one_matcher.rb
103
104
  - lib/sequel_spec/association/have_one_through_one_matcher.rb
@@ -120,6 +121,7 @@ files:
120
121
  - lib/sequel_spec/version.rb
121
122
  - sequel_spec.gemspec
122
123
  - spec/migrations/001_create_tables.rb
124
+ - spec/sequel_spec/association/have_many_through_many_matcher_spec.rb
123
125
  - spec/sequel_spec/association/have_many_to_many_matcher_spec.rb
124
126
  - spec/sequel_spec/association/have_many_to_one_matcher_spec.rb
125
127
  - spec/sequel_spec/association/have_one_through_one_matcher_spec.rb