rspec_sequel_matchers 0.3.0 → 0.4.0
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.
- checksums.yaml +4 -4
- data/LICENSE +1 -1
- data/{README.rdoc → README.md} +35 -17
- data/lib/rspec_sequel/base.rb +11 -2
- data/lib/rspec_sequel/matchers/have_one_to_one.rb +19 -0
- data/lib/rspec_sequel/validation.rb +3 -3
- data/spec/have_column_matcher_spec.rb +23 -23
- data/spec/have_many_to_many_matcher_spec.rb +14 -14
- data/spec/have_many_to_one_matcher_spec.rb +12 -12
- data/spec/have_one_to_many_matcher_spec.rb +12 -12
- data/spec/have_one_to_one_matcher_spec.rb +48 -0
- data/spec/migrations/001_create_items.rb +1 -1
- data/spec/migrations/004_create_profile.rb +18 -0
- data/spec/spec_helper.rb +10 -3
- data/spec/validate_exact_length_matcher_spec.rb +23 -23
- data/spec/validate_format_matcher_spec.rb +23 -23
- data/spec/validate_includes_matcher_spec.rb +23 -23
- data/spec/validate_integer_matcher_spec.rb +18 -18
- data/spec/validate_length_range_matcher_spec.rb +23 -23
- data/spec/validate_max_length_matcher_spec.rb +23 -23
- data/spec/validate_min_length_matcher_spec.rb +23 -23
- data/spec/validate_not_string_matcher_spec.rb +18 -18
- data/spec/validate_numeric_matcher_spec.rb +18 -18
- data/spec/validate_presence_matcher_spec.rb +18 -18
- data/spec/validate_unique_matcher_spec.rb +20 -20
- metadata +12 -9
@@ -15,24 +15,24 @@ describe "validate_length_range_matcher" do
|
|
15
15
|
|
16
16
|
describe "arguments" do
|
17
17
|
it "should require attribute" do
|
18
|
-
|
18
|
+
expect do
|
19
19
|
@matcher = validate_length_range
|
20
|
-
|
20
|
+
end.to raise_error
|
21
21
|
end
|
22
22
|
it "should require additionnal parameters" do
|
23
|
-
|
23
|
+
expect do
|
24
24
|
@matcher = validate_length_range :name
|
25
|
-
|
25
|
+
end.to raise_error
|
26
26
|
end
|
27
27
|
it "should refuse invalid additionnal parameters" do
|
28
|
-
|
28
|
+
expect do
|
29
29
|
@matcher = validate_length_range :id, :name
|
30
|
-
|
30
|
+
end.to raise_error
|
31
31
|
end
|
32
32
|
it "should accept valid additionnal parameters" do
|
33
|
-
|
33
|
+
expect do
|
34
34
|
@matcher = validate_length_range 1..10, :name
|
35
|
-
|
35
|
+
end.not_to raise_error
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
@@ -40,49 +40,49 @@ describe "validate_length_range_matcher" do
|
|
40
40
|
describe "without option" do
|
41
41
|
it "should contain a description" do
|
42
42
|
@matcher = validate_length_range 1..10, :name
|
43
|
-
@matcher.description.
|
43
|
+
expect( @matcher.description ).to eq "validate length of :name is included in 1..10"
|
44
44
|
end
|
45
45
|
it "should set failure messages" do
|
46
46
|
@matcher = validate_length_range 1..10, :name
|
47
47
|
@matcher.matches? subject
|
48
|
-
@matcher.failure_message.
|
49
|
-
@matcher.
|
48
|
+
expect( @matcher.failure_message ).to eq "expected Item to " + @matcher.description
|
49
|
+
expect( @matcher.failure_message_when_negated ).to eq "expected Item to not " + @matcher.description
|
50
50
|
end
|
51
51
|
end
|
52
52
|
describe "with options" do
|
53
53
|
it "should contain a description" do
|
54
54
|
@matcher = validate_length_range 1..10, :name, :allow_nil => true
|
55
|
-
@matcher.description.
|
55
|
+
expect( @matcher.description ).to eq "validate length of :name is included in 1..10 with option(s) :allow_nil => true"
|
56
56
|
end
|
57
57
|
it "should set failure messages" do
|
58
58
|
@matcher = validate_length_range 1..10, :price, :allow_nil => true
|
59
59
|
@matcher.matches? subject
|
60
|
-
@matcher.failure_message.
|
61
|
-
@matcher.
|
60
|
+
expect( @matcher.failure_message ).to eq "expected Item to " + @matcher.description
|
61
|
+
expect( @matcher.failure_message_when_negated ).to eq "expected Item to not " + @matcher.description
|
62
62
|
end
|
63
63
|
it "should explicit used options if different than expected" do
|
64
64
|
@matcher = validate_length_range 1..10, :name, :allow_blank => true
|
65
65
|
@matcher.matches? subject
|
66
66
|
explanation = " but called with option(s) :allow_nil => true instead"
|
67
|
-
@matcher.failure_message.
|
68
|
-
@matcher.
|
67
|
+
expect( @matcher.failure_message ).to eq "expected Item to " + @matcher.description + explanation
|
68
|
+
expect( @matcher.failure_message_when_negated ).to eq "expected Item to not " + @matcher.description + explanation
|
69
69
|
end
|
70
70
|
it "should warn if invalid options are used" do
|
71
71
|
@matcher = validate_length_range 1..10, :name, :allow_anything => true
|
72
72
|
@matcher.matches? subject
|
73
73
|
explanation = " but option :allow_anything is not valid"
|
74
|
-
@matcher.failure_message.
|
75
|
-
@matcher.
|
74
|
+
expect( @matcher.failure_message ).to eq "expected Item to " + @matcher.description + explanation
|
75
|
+
expect( @matcher.failure_message_when_negated ).to eq "expected Item to not " + @matcher.description + explanation
|
76
76
|
end
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
80
80
|
describe "matchers" do
|
81
|
-
it{
|
82
|
-
it{
|
83
|
-
it{
|
84
|
-
it{
|
85
|
-
it{
|
81
|
+
it{ is_expected.to validate_length_range(1..10, :name) }
|
82
|
+
it{ is_expected.to validate_length_range(1..10, :name, :allow_nil => true) }
|
83
|
+
it{ is_expected.not_to validate_length_range(1..10, :price) }
|
84
|
+
it{ is_expected.not_to validate_length_range(0..10, :name) }
|
85
|
+
it{ is_expected.not_to validate_length_range(1..10, :name, :allow_blank => true) }
|
86
86
|
end
|
87
87
|
|
88
88
|
end
|
@@ -15,24 +15,24 @@ describe "validate_max_length_matcher" do
|
|
15
15
|
|
16
16
|
describe "arguments" do
|
17
17
|
it "should require attribute" do
|
18
|
-
|
18
|
+
expect do
|
19
19
|
@matcher = validate_max_length
|
20
|
-
|
20
|
+
end.to raise_error
|
21
21
|
end
|
22
22
|
it "should require additionnal parameters" do
|
23
|
-
|
23
|
+
expect do
|
24
24
|
@matcher = validate_max_length :name
|
25
|
-
|
25
|
+
end.to raise_error
|
26
26
|
end
|
27
27
|
it "should refuse invalid additionnal parameters" do
|
28
|
-
|
28
|
+
expect do
|
29
29
|
@matcher = validate_max_length :id, :name
|
30
|
-
|
30
|
+
end.to raise_error
|
31
31
|
end
|
32
32
|
it "should accept valid additionnal parameters" do
|
33
|
-
|
33
|
+
expect do
|
34
34
|
@matcher = validate_max_length 4, :name
|
35
|
-
|
35
|
+
end.not_to raise_error
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
@@ -40,49 +40,49 @@ describe "validate_max_length_matcher" do
|
|
40
40
|
describe "without option" do
|
41
41
|
it "should contain a description" do
|
42
42
|
@matcher = validate_max_length 4, :name
|
43
|
-
@matcher.description.
|
43
|
+
expect( @matcher.description ).to eq "validate length of :name is less than or equal to 4"
|
44
44
|
end
|
45
45
|
it "should set failure messages" do
|
46
46
|
@matcher = validate_max_length 4, :name
|
47
47
|
@matcher.matches? subject
|
48
|
-
@matcher.failure_message.
|
49
|
-
@matcher.
|
48
|
+
expect( @matcher.failure_message ).to eq "expected Item to " + @matcher.description
|
49
|
+
expect( @matcher.failure_message_when_negated ).to eq "expected Item to not " + @matcher.description
|
50
50
|
end
|
51
51
|
end
|
52
52
|
describe "with options" do
|
53
53
|
it "should contain a description" do
|
54
54
|
@matcher = validate_max_length 4, :name, :allow_nil => true
|
55
|
-
@matcher.description.
|
55
|
+
expect( @matcher.description ).to eq "validate length of :name is less than or equal to 4 with option(s) :allow_nil => true"
|
56
56
|
end
|
57
57
|
it "should set failure messages" do
|
58
58
|
@matcher = validate_max_length 4, :price, :allow_nil => true
|
59
59
|
@matcher.matches? subject
|
60
|
-
@matcher.failure_message.
|
61
|
-
@matcher.
|
60
|
+
expect( @matcher.failure_message ).to eq "expected Item to " + @matcher.description
|
61
|
+
expect( @matcher.failure_message_when_negated ).to eq "expected Item to not " + @matcher.description
|
62
62
|
end
|
63
63
|
it "should explicit used options if different than expected" do
|
64
64
|
@matcher = validate_max_length 4, :name, :allow_blank => true
|
65
65
|
@matcher.matches? subject
|
66
66
|
explanation = " but called with option(s) :allow_nil => true instead"
|
67
|
-
@matcher.failure_message.
|
68
|
-
@matcher.
|
67
|
+
expect( @matcher.failure_message ).to eq "expected Item to " + @matcher.description + explanation
|
68
|
+
expect( @matcher.failure_message_when_negated ).to eq "expected Item to not " + @matcher.description + explanation
|
69
69
|
end
|
70
70
|
it "should warn if invalid options are used" do
|
71
71
|
@matcher = validate_max_length 4, :name, :allow_anything => true
|
72
72
|
@matcher.matches? subject
|
73
73
|
explanation = " but option :allow_anything is not valid"
|
74
|
-
@matcher.failure_message.
|
75
|
-
@matcher.
|
74
|
+
expect( @matcher.failure_message ).to eq "expected Item to " + @matcher.description + explanation
|
75
|
+
expect( @matcher.failure_message_when_negated ).to eq "expected Item to not " + @matcher.description + explanation
|
76
76
|
end
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
80
80
|
describe "matchers" do
|
81
|
-
it{
|
82
|
-
it{
|
83
|
-
it{
|
84
|
-
it{
|
85
|
-
it{
|
81
|
+
it{ is_expected.to validate_max_length(4, :name) }
|
82
|
+
it{ is_expected.to validate_max_length(4, :name, :allow_nil => true) }
|
83
|
+
it{ is_expected.not_to validate_max_length(4, :price) }
|
84
|
+
it{ is_expected.not_to validate_max_length(3, :name) }
|
85
|
+
it{ is_expected.not_to validate_max_length(4, :name, :allow_blank => true) }
|
86
86
|
end
|
87
87
|
|
88
88
|
end
|
@@ -15,24 +15,24 @@ describe "validate_min_length_matcher" do
|
|
15
15
|
|
16
16
|
describe "arguments" do
|
17
17
|
it "should require attribute" do
|
18
|
-
|
18
|
+
expect do
|
19
19
|
@matcher = validate_min_length
|
20
|
-
|
20
|
+
end.to raise_error
|
21
21
|
end
|
22
22
|
it "should require additionnal parameters" do
|
23
|
-
|
23
|
+
expect do
|
24
24
|
@matcher = validate_min_length :name
|
25
|
-
|
25
|
+
end.to raise_error
|
26
26
|
end
|
27
27
|
it "should refuse invalid additionnal parameters" do
|
28
|
-
|
28
|
+
expect do
|
29
29
|
@matcher = validate_min_length :id, :name
|
30
|
-
|
30
|
+
end.to raise_error
|
31
31
|
end
|
32
32
|
it "should accept valid additionnal parameters" do
|
33
|
-
|
33
|
+
expect do
|
34
34
|
@matcher = validate_min_length 4, :name
|
35
|
-
|
35
|
+
end.not_to raise_error
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
@@ -40,49 +40,49 @@ describe "validate_min_length_matcher" do
|
|
40
40
|
describe "without option" do
|
41
41
|
it "should contain a description" do
|
42
42
|
@matcher = validate_min_length 4, :name
|
43
|
-
@matcher.description.
|
43
|
+
expect( @matcher.description ).to eq "validate length of :name is greater than or equal to 4"
|
44
44
|
end
|
45
45
|
it "should set failure messages" do
|
46
46
|
@matcher = validate_min_length 4, :name
|
47
47
|
@matcher.matches? subject
|
48
|
-
@matcher.failure_message.
|
49
|
-
@matcher.
|
48
|
+
expect( @matcher.failure_message ).to eq "expected Item to " + @matcher.description
|
49
|
+
expect( @matcher.failure_message_when_negated ).to eq "expected Item to not " + @matcher.description
|
50
50
|
end
|
51
51
|
end
|
52
52
|
describe "with options" do
|
53
53
|
it "should contain a description" do
|
54
54
|
@matcher = validate_min_length 4, :name, :allow_nil => true
|
55
|
-
@matcher.description.
|
55
|
+
expect( @matcher.description ).to eq "validate length of :name is greater than or equal to 4 with option(s) :allow_nil => true"
|
56
56
|
end
|
57
57
|
it "should set failure messages" do
|
58
58
|
@matcher = validate_min_length 4, :price, :allow_nil => true
|
59
59
|
@matcher.matches? subject
|
60
|
-
@matcher.failure_message.
|
61
|
-
@matcher.
|
60
|
+
expect( @matcher.failure_message ).to eq "expected Item to " + @matcher.description
|
61
|
+
expect( @matcher.failure_message_when_negated ).to eq "expected Item to not " + @matcher.description
|
62
62
|
end
|
63
63
|
it "should explicit used options if different than expected" do
|
64
64
|
@matcher = validate_min_length 4, :name, :allow_blank => true
|
65
65
|
@matcher.matches? subject
|
66
66
|
explanation = " but called with option(s) :allow_nil => true instead"
|
67
|
-
@matcher.failure_message.
|
68
|
-
@matcher.
|
67
|
+
expect( @matcher.failure_message ).to eq "expected Item to " + @matcher.description + explanation
|
68
|
+
expect( @matcher.failure_message_when_negated ).to eq "expected Item to not " + @matcher.description + explanation
|
69
69
|
end
|
70
70
|
it "should warn if invalid options are used" do
|
71
71
|
@matcher = validate_min_length 4, :name, :allow_anything => true
|
72
72
|
@matcher.matches? subject
|
73
73
|
explanation = " but option :allow_anything is not valid"
|
74
|
-
@matcher.failure_message.
|
75
|
-
@matcher.
|
74
|
+
expect( @matcher.failure_message ).to eq "expected Item to " + @matcher.description + explanation
|
75
|
+
expect( @matcher.failure_message_when_negated ).to eq "expected Item to not " + @matcher.description + explanation
|
76
76
|
end
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
80
80
|
describe "matchers" do
|
81
|
-
it{
|
82
|
-
it{
|
83
|
-
it{
|
84
|
-
it{
|
85
|
-
it{
|
81
|
+
it{ is_expected.to validate_min_length(4, :name) }
|
82
|
+
it{ is_expected.to validate_min_length(4, :name, :allow_nil => true) }
|
83
|
+
it{ is_expected.not_to validate_min_length(4, :price) }
|
84
|
+
it{ is_expected.not_to validate_min_length(3, :name) }
|
85
|
+
it{ is_expected.not_to validate_min_length(4, :name, :allow_blank => true) }
|
86
86
|
end
|
87
87
|
|
88
88
|
end
|
@@ -15,14 +15,14 @@ describe "validate_not_string_matcher" do
|
|
15
15
|
|
16
16
|
describe "arguments" do
|
17
17
|
it "should require attribute" do
|
18
|
-
|
18
|
+
expect do
|
19
19
|
@matcher = validate_not_string
|
20
|
-
|
20
|
+
end.to raise_error
|
21
21
|
end
|
22
22
|
it "should refuse additionnal parameters" do
|
23
|
-
|
23
|
+
expect do
|
24
24
|
@matcher = validate_not_string :name, :id
|
25
|
-
|
25
|
+
end.to raise_error
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
@@ -30,48 +30,48 @@ describe "validate_not_string_matcher" do
|
|
30
30
|
describe "without option" do
|
31
31
|
it "should contain a description" do
|
32
32
|
@matcher = validate_not_string :name
|
33
|
-
@matcher.description.
|
33
|
+
expect( @matcher.description ).to eq "validate that :name is not a string"
|
34
34
|
end
|
35
35
|
it "should set failure messages" do
|
36
36
|
@matcher = validate_not_string :name
|
37
37
|
@matcher.matches? subject
|
38
|
-
@matcher.failure_message.
|
39
|
-
@matcher.
|
38
|
+
expect( @matcher.failure_message ).to eq "expected Item to " + @matcher.description
|
39
|
+
expect( @matcher.failure_message_when_negated ).to eq "expected Item to not " + @matcher.description
|
40
40
|
end
|
41
41
|
end
|
42
42
|
describe "with options" do
|
43
43
|
it "should contain a description" do
|
44
44
|
@matcher = validate_not_string :name, :allow_nil => true
|
45
|
-
@matcher.description.
|
45
|
+
expect( @matcher.description ).to eq "validate that :name is not a string with option(s) :allow_nil => true"
|
46
46
|
end
|
47
47
|
it "should set failure messages" do
|
48
48
|
@matcher = validate_not_string :price, :allow_nil => true
|
49
49
|
@matcher.matches? subject
|
50
|
-
@matcher.failure_message.
|
51
|
-
@matcher.
|
50
|
+
expect( @matcher.failure_message ).to eq "expected Item to " + @matcher.description
|
51
|
+
expect( @matcher.failure_message_when_negated ).to eq "expected Item to not " + @matcher.description
|
52
52
|
end
|
53
53
|
it "should explicit used options if different than expected" do
|
54
54
|
@matcher = validate_not_string :name, :allow_blank => true
|
55
55
|
@matcher.matches? subject
|
56
56
|
explanation = " but called with option(s) :allow_nil => true instead"
|
57
|
-
@matcher.failure_message.
|
58
|
-
@matcher.
|
57
|
+
expect( @matcher.failure_message ).to eq "expected Item to " + @matcher.description + explanation
|
58
|
+
expect( @matcher.failure_message_when_negated ).to eq "expected Item to not " + @matcher.description + explanation
|
59
59
|
end
|
60
60
|
it "should warn if invalid options are used" do
|
61
61
|
@matcher = validate_not_string :name, :allow_anything => true
|
62
62
|
@matcher.matches? subject
|
63
63
|
explanation = " but option :allow_anything is not valid"
|
64
|
-
@matcher.failure_message.
|
65
|
-
@matcher.
|
64
|
+
expect( @matcher.failure_message ).to eq "expected Item to " + @matcher.description + explanation
|
65
|
+
expect( @matcher.failure_message_when_negated ).to eq "expected Item to not " + @matcher.description + explanation
|
66
66
|
end
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
70
|
describe "matchers" do
|
71
|
-
it{
|
72
|
-
it{
|
73
|
-
it{
|
74
|
-
it{
|
71
|
+
it{ is_expected.to validate_not_string(:name) }
|
72
|
+
it{ is_expected.to validate_not_string(:name, :allow_nil => true) }
|
73
|
+
it{ is_expected.not_to validate_not_string(:price) }
|
74
|
+
it{ is_expected.not_to validate_not_string(:name, :allow_blank => true) }
|
75
75
|
end
|
76
76
|
|
77
77
|
end
|
@@ -15,14 +15,14 @@ describe "validate_numeric_matcher" do
|
|
15
15
|
|
16
16
|
describe "arguments" do
|
17
17
|
it "should require attribute" do
|
18
|
-
|
18
|
+
expect do
|
19
19
|
@matcher = validate_numeric
|
20
|
-
|
20
|
+
end.to raise_error
|
21
21
|
end
|
22
22
|
it "should refuse additionnal parameters" do
|
23
|
-
|
23
|
+
expect do
|
24
24
|
@matcher = validate_numeric :name, :id
|
25
|
-
|
25
|
+
end.to raise_error
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
@@ -30,48 +30,48 @@ describe "validate_numeric_matcher" do
|
|
30
30
|
describe "without option" do
|
31
31
|
it "should contain a description" do
|
32
32
|
@matcher = validate_numeric :name
|
33
|
-
@matcher.description.
|
33
|
+
expect( @matcher.description ).to eq "validate that :name is a valid float"
|
34
34
|
end
|
35
35
|
it "should set failure messages" do
|
36
36
|
@matcher = validate_numeric :name
|
37
37
|
@matcher.matches? subject
|
38
|
-
@matcher.failure_message.
|
39
|
-
@matcher.
|
38
|
+
expect( @matcher.failure_message ).to eq "expected Item to " + @matcher.description
|
39
|
+
expect( @matcher.failure_message_when_negated ).to eq "expected Item to not " + @matcher.description
|
40
40
|
end
|
41
41
|
end
|
42
42
|
describe "with options" do
|
43
43
|
it "should contain a description" do
|
44
44
|
@matcher = validate_numeric :name, :allow_nil => true
|
45
|
-
@matcher.description.
|
45
|
+
expect( @matcher.description ).to eq "validate that :name is a valid float with option(s) :allow_nil => true"
|
46
46
|
end
|
47
47
|
it "should set failure messages" do
|
48
48
|
@matcher = validate_numeric :price, :allow_nil => true
|
49
49
|
@matcher.matches? subject
|
50
|
-
@matcher.failure_message.
|
51
|
-
@matcher.
|
50
|
+
expect( @matcher.failure_message ).to eq "expected Item to " + @matcher.description
|
51
|
+
expect( @matcher.failure_message_when_negated ).to eq "expected Item to not " + @matcher.description
|
52
52
|
end
|
53
53
|
it "should explicit used options if different than expected" do
|
54
54
|
@matcher = validate_numeric :name, :allow_blank => true
|
55
55
|
@matcher.matches? subject
|
56
56
|
explanation = " but called with option(s) :allow_nil => true instead"
|
57
|
-
@matcher.failure_message.
|
58
|
-
@matcher.
|
57
|
+
expect( @matcher.failure_message ).to eq "expected Item to " + @matcher.description + explanation
|
58
|
+
expect( @matcher.failure_message_when_negated ).to eq "expected Item to not " + @matcher.description + explanation
|
59
59
|
end
|
60
60
|
it "should warn if invalid options are used" do
|
61
61
|
@matcher = validate_numeric :name, :allow_anything => true
|
62
62
|
@matcher.matches? subject
|
63
63
|
explanation = " but option :allow_anything is not valid"
|
64
|
-
@matcher.failure_message.
|
65
|
-
@matcher.
|
64
|
+
expect( @matcher.failure_message ).to eq "expected Item to " + @matcher.description + explanation
|
65
|
+
expect( @matcher.failure_message_when_negated ).to eq "expected Item to not " + @matcher.description + explanation
|
66
66
|
end
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
70
|
describe "matchers" do
|
71
|
-
it{
|
72
|
-
it{
|
73
|
-
it{
|
74
|
-
it{
|
71
|
+
it{ is_expected.to validate_numeric(:name) }
|
72
|
+
it{ is_expected.to validate_numeric(:name, :allow_nil => true) }
|
73
|
+
it{ is_expected.not_to validate_numeric(:price) }
|
74
|
+
it{ is_expected.not_to validate_numeric(:name, :allow_blank => true) }
|
75
75
|
end
|
76
76
|
|
77
77
|
end
|