schemacop 2.3.2 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -0
  3. data/README.md +190 -2
  4. data/RUBY_VERSION +1 -1
  5. data/Rakefile +6 -5
  6. data/VERSION +1 -1
  7. data/doc/Schemacop.html +30 -3
  8. data/doc/Schemacop/ArrayValidator.html +2 -2
  9. data/doc/Schemacop/BooleanValidator.html +1 -1
  10. data/doc/Schemacop/Caster.html +379 -0
  11. data/doc/Schemacop/Collector.html +178 -102
  12. data/doc/Schemacop/Exceptions.html +1 -1
  13. data/doc/Schemacop/Exceptions/InvalidSchemaError.html +1 -1
  14. data/doc/Schemacop/Exceptions/ValidationError.html +1 -1
  15. data/doc/Schemacop/FieldNode.html +17 -5
  16. data/doc/Schemacop/FloatValidator.html +1 -1
  17. data/doc/Schemacop/HashValidator.html +1 -1
  18. data/doc/Schemacop/IntegerValidator.html +1 -1
  19. data/doc/Schemacop/NilValidator.html +1 -1
  20. data/doc/Schemacop/Node.html +95 -83
  21. data/doc/Schemacop/NodeResolver.html +26 -10
  22. data/doc/Schemacop/NodeSupportingField.html +1 -1
  23. data/doc/Schemacop/NodeSupportingType.html +2 -4
  24. data/doc/Schemacop/NodeWithBlock.html +1 -1
  25. data/doc/Schemacop/NumberValidator.html +1 -1
  26. data/doc/Schemacop/ObjectValidator.html +1 -1
  27. data/doc/Schemacop/RootNode.html +1 -1
  28. data/doc/Schemacop/Schema.html +3 -3
  29. data/doc/Schemacop/StringValidator.html +1 -1
  30. data/doc/Schemacop/SymbolValidator.html +1 -1
  31. data/doc/ScopedEnv.html +1 -1
  32. data/doc/_index.html +8 -1
  33. data/doc/class_list.html +1 -1
  34. data/doc/file.README.html +184 -3
  35. data/doc/index.html +184 -3
  36. data/doc/method_list.html +93 -61
  37. data/doc/top-level-namespace.html +1 -1
  38. data/lib/schemacop.rb +14 -0
  39. data/lib/schemacop/caster.rb +38 -0
  40. data/lib/schemacop/collector.rb +34 -6
  41. data/lib/schemacop/field_node.rb +25 -3
  42. data/lib/schemacop/node.rb +10 -2
  43. data/lib/schemacop/node_resolver.rb +10 -2
  44. data/lib/schemacop/node_supporting_type.rb +21 -1
  45. data/lib/schemacop/schema.rb +2 -2
  46. data/lib/schemacop/validator/array_validator.rb +1 -1
  47. data/lib/schemacop/validator/float_validator.rb +1 -1
  48. data/lib/schemacop/validator/integer_validator.rb +1 -1
  49. data/schemacop.gemspec +14 -8
  50. data/test/casting_test.rb +90 -0
  51. data/test/custom_check_test.rb +14 -14
  52. data/test/custom_if_test.rb +12 -12
  53. data/test/defaults_test.rb +71 -0
  54. data/test/nil_dis_allow_test.rb +6 -6
  55. data/test/node_resolver_test.rb +26 -0
  56. data/test/short_forms_test.rb +73 -66
  57. data/test/test_helper.rb +7 -0
  58. data/test/types_test.rb +5 -5
  59. data/test/validator_array_test.rb +16 -16
  60. data/test/validator_boolean_test.rb +2 -2
  61. data/test/validator_float_test.rb +15 -15
  62. data/test/validator_hash_test.rb +5 -5
  63. data/test/validator_integer_test.rb +9 -9
  64. data/test/validator_nil_test.rb +1 -1
  65. data/test/validator_number_test.rb +19 -19
  66. data/test/validator_object_test.rb +18 -18
  67. data/test/validator_string_test.rb +12 -12
  68. data/test/validator_symbol_test.rb +2 -2
  69. metadata +42 -6
@@ -4,9 +4,9 @@ module Schemacop
4
4
  class CustomCheckTest < Minitest::Test
5
5
  def test_integer_check_short_form
6
6
  s = Schema.new :integer, check: proc { |i| i.even? }
7
- assert_nil s.validate!(2)
8
- assert_nil s.validate!(-8)
9
- assert_nil s.validate!(0)
7
+ assert_nothing_raised { s.validate!(2) }
8
+ assert_nothing_raised { s.validate!(-8) }
9
+ assert_nothing_raised { s.validate!(0) }
10
10
  assert_verr { s.validate!(1) }
11
11
  assert_verr { s.validate!(-7) }
12
12
  assert_verr { s.validate!(2.1) }
@@ -14,7 +14,7 @@ module Schemacop
14
14
 
15
15
  def test_custom_error_message
16
16
  s = Schema.new :integer, check: proc { |i| i.even? ? true : 'Custom error' }
17
- assert_nil s.validate!(2)
17
+ assert_nothing_raised { s.validate!(2) }
18
18
  exception = assert_verr { s.validate!(3) }
19
19
  assert_match(/Custom :check failed: Custom error\./, exception.message)
20
20
  end
@@ -24,9 +24,9 @@ module Schemacop
24
24
  type :integer, check: ->(i) { i.even? }
25
25
  end
26
26
 
27
- assert_nil s.validate!(2)
28
- assert_nil s.validate!(-8)
29
- assert_nil s.validate!(0)
27
+ assert_nothing_raised { s.validate!(2) }
28
+ assert_nothing_raised { s.validate!(-8) }
29
+ assert_nothing_raised { s.validate!(0) }
30
30
  assert_verr { s.validate!(1) }
31
31
  assert_verr { s.validate!(-7) }
32
32
  assert_verr { s.validate!(2.1) }
@@ -36,7 +36,7 @@ module Schemacop
36
36
  s = Schema.new do
37
37
  type :number, check: proc { |x| x == 42 }
38
38
  end
39
- assert_nil s.validate!(42)
39
+ assert_nothing_raised { s.validate!(42) }
40
40
  assert_verr { s.validate!(42.1) }
41
41
  assert_verr { s.validate!(0) }
42
42
  end
@@ -47,7 +47,7 @@ module Schemacop
47
47
  type :integer
48
48
  end
49
49
  end
50
- assert_nil s.validate!([1, 2, 3])
50
+ assert_nothing_raised { s.validate!([1, 2, 3]) }
51
51
  assert_verr { s.validate!([2, 3, 4]) }
52
52
  end
53
53
 
@@ -58,7 +58,7 @@ module Schemacop
58
58
  end
59
59
  end
60
60
 
61
- assert_nil s.validate!([4, 3, 2])
61
+ assert_nothing_raised { s.validate!([4, 3, 2]) }
62
62
  assert_verr { s.validate!([3, 2]) }
63
63
  assert_verr { s.validate!([4, 1]) }
64
64
  end
@@ -68,7 +68,7 @@ module Schemacop
68
68
  opt 1, :integer
69
69
  opt 'two', :string
70
70
  end
71
- assert_nil s.validate!(1 => 1, 'two' => 'two')
71
+ assert_nothing_raised { s.validate!(1 => 1, 'two' => 'two') }
72
72
  assert_verr { s.validate!(1 => 2, 'two' => 'two') }
73
73
  assert_verr { s.validate!(1 => 1, 'two' => 'one') }
74
74
  end
@@ -82,9 +82,9 @@ module Schemacop
82
82
  req :first_name, :string, min: 3
83
83
  end
84
84
 
85
- assert_nil s.validate!(first_name: 'Bob')
86
- assert_nil s.validate!(first_name: 'Sandy')
87
- assert_nil s.validate!(first_name: 'Sansibar')
85
+ assert_nothing_raised { s.validate!(first_name: 'Bob') }
86
+ assert_nothing_raised { s.validate!(first_name: 'Sandy') }
87
+ assert_nothing_raised { s.validate!(first_name: 'Sansibar') }
88
88
 
89
89
  assert_verr { s.validate!(first_name: 'Sandkasten') }
90
90
  assert_verr { s.validate!(first_name: 'a') }
@@ -7,7 +7,7 @@ module Schemacop
7
7
  type :integer, if: proc { |data| data.odd? }
8
8
  end
9
9
 
10
- assert_nil s.validate! 5
10
+ assert_nothing_raised { s.validate! 5 }
11
11
  assert_verr { s.validate! nil }
12
12
  assert_verr { s.validate! 4 }
13
13
  end
@@ -18,8 +18,8 @@ module Schemacop
18
18
  type :string
19
19
  end
20
20
 
21
- assert_nil s.validate!(5)
22
- assert_nil s.validate!('abc')
21
+ assert_nothing_raised { s.validate!(5) }
22
+ assert_nothing_raised { s.validate!('abc') }
23
23
  assert_verr { s.validate!(4) }
24
24
  end
25
25
 
@@ -29,8 +29,8 @@ module Schemacop
29
29
  req :foo, :string, min: 5
30
30
  end
31
31
 
32
- assert_nil s.validate!(foo: 'abc')
33
- assert_nil s.validate!(foo: 'bcdef')
32
+ assert_nothing_raised { s.validate!(foo: 'abc') }
33
+ assert_nothing_raised { s.validate!(foo: 'bcdef') }
34
34
  assert_verr { s.validate!(foo: 'a') }
35
35
  assert_verr { s.validate!(foo: 'bcde') }
36
36
  end
@@ -41,8 +41,8 @@ module Schemacop
41
41
  req :foo, :integer
42
42
  end
43
43
 
44
- assert_nil s.validate!(foo: 3)
45
- assert_nil s.validate!(foo: 'abc')
44
+ assert_nothing_raised { s.validate!(foo: 3) }
45
+ assert_nothing_raised { s.validate!(foo: 'abc') }
46
46
  assert_verr { s.validate!(foo: 'bcd') }
47
47
  assert_verr { s.validate!(foo: true) }
48
48
  end
@@ -61,8 +61,8 @@ module Schemacop
61
61
  end
62
62
  end
63
63
 
64
- assert_nil s.validate!(user: [{ admin: true, admin_only: 'foo' }, { admin: false, non_admin_only: 'foo' }])
65
- assert_nil s.validate!(user: [{ admin: true, admin_only: 'foo' }, { non_admin_only: 'foo' }])
64
+ assert_nothing_raised { s.validate!(user: [{ admin: true, admin_only: 'foo' }, { admin: false, non_admin_only: 'foo' }]) }
65
+ assert_nothing_raised { s.validate!(user: [{ admin: true, admin_only: 'foo' }, { non_admin_only: 'foo' }]) }
66
66
  assert_verr { s.validate!(user: [{ admin: false, admin_only: 'foo' }]) }
67
67
  assert_verr { s.validate!(user: [{ admin: true, non_admin_only: 'foo' }]) }
68
68
  end
@@ -75,8 +75,8 @@ module Schemacop
75
75
  req :bar, :integer
76
76
  end
77
77
 
78
- assert_nil s.validate!(foo: 5, bar: 5)
79
- assert_nil s.validate!(foo: 5, bar: 4)
78
+ assert_nothing_raised { s.validate!(foo: 5, bar: 5) }
79
+ assert_nothing_raised { s.validate!(foo: 5, bar: 4) }
80
80
  assert_verr { s.validate!(foo: 4, bar: 5) }
81
81
  assert_verr { s.validate!(foo: 4, bar: 4) }
82
82
  end
@@ -87,7 +87,7 @@ module Schemacop
87
87
  opt :foo, :integer
88
88
  end
89
89
 
90
- assert_nil s.validate!(foo: 4)
90
+ assert_nothing_raised { s.validate!(foo: 4) }
91
91
  assert_verr { s.validate!({}) }
92
92
  assert_verr { s.validate!('something') }
93
93
  end
@@ -0,0 +1,71 @@
1
+ require 'test_helper'
2
+
3
+ module Schemacop
4
+ class DefaultsTest < Minitest::Test
5
+ def test_basic
6
+ s = Schema.new :integer, default: 42
7
+
8
+ input = nil
9
+ output = s.validate!(input)
10
+
11
+ assert_equal(42, output)
12
+ end
13
+
14
+ def test_hash
15
+ s = Schema.new do
16
+ opt :foo, :string, default: 'bar'
17
+ end
18
+
19
+ input = { foo: nil }
20
+ output = s.validate!(input)
21
+ assert_equal({ foo: 'bar'}, output)
22
+ end
23
+
24
+ def test_missing_hash_key
25
+ s = Schema.new do
26
+ opt :foo, :string, default: 'bar'
27
+ end
28
+
29
+ input = {}
30
+ output = s.validate!(input)
31
+ assert_equal({ foo: 'bar'}, output)
32
+ end
33
+
34
+ def test_entire_hash
35
+ s = Schema.new do
36
+ opt :foo, :hash, default: { name: { first: 'Foo', last: 'Bar' } } do
37
+ req :name do
38
+ req :first
39
+ req :last
40
+ end
41
+ end
42
+ end
43
+
44
+ input = {}
45
+ output = s.validate!(input)
46
+ assert_equal({ foo: { name: { first: 'Foo', last: 'Bar' } } }, output)
47
+ end
48
+
49
+ def test_entire_array
50
+ s = Schema.new do
51
+ opt :foo, :array, default: [{ bar: 42}] do
52
+ req :bar
53
+ end
54
+ end
55
+
56
+ input = {}
57
+ output = s.validate!(input)
58
+ assert_equal({ foo: [{ bar: 42 }] }, output)
59
+ end
60
+
61
+ def test_invalid_default
62
+ s = Schema.new :integer, default: '42'
63
+
64
+ input = nil
65
+
66
+ assert_verr do
67
+ s.validate!(input)
68
+ end
69
+ end
70
+ end
71
+ end
@@ -14,8 +14,8 @@ module Schemacop
14
14
  type :boolean
15
15
  end
16
16
  end
17
- assert_nil s.validate!(o: nil, r: false)
18
- assert_nil s.validate!(o: false, r: false)
17
+ assert_nothing_raised { s.validate!(o: nil, r: false) }
18
+ assert_nothing_raised { s.validate!(o: false, r: false) }
19
19
  assert_verr { s.validate!(o: true, r: nil) }
20
20
  assert_verr { s.validate!(o: nil, r: nil) }
21
21
  assert_verr { s.validate!(r: true) }
@@ -30,10 +30,10 @@ module Schemacop
30
30
  type :boolean
31
31
  end
32
32
  end
33
- assert_nil s.validate!(o: nil, r: false)
34
- assert_nil s.validate!(o: false, r: false)
35
- assert_nil s.validate!(r: true)
36
- assert_nil s.validate!({})
33
+ assert_nothing_raised { s.validate!(o: nil, r: false) }
34
+ assert_nothing_raised { s.validate!(o: false, r: false) }
35
+ assert_nothing_raised { s.validate!(r: true) }
36
+ assert_nothing_raised { s.validate!({}) }
37
37
  assert_verr { s.validate!(o: true, r: nil) }
38
38
  assert_verr { s.validate!(o: nil, r: nil) }
39
39
  end
@@ -0,0 +1,26 @@
1
+ require 'test_helper'
2
+
3
+ module Schemacop
4
+ class NodeResolverTest < Minitest::Test
5
+ class ClassA; end
6
+ class ClassB; end
7
+ class ClassC; end
8
+ class ClassD; end
9
+
10
+ def test_insert_before
11
+ prev_node_classes = NodeResolver.node_classes
12
+
13
+ NodeResolver.node_classes = []
14
+
15
+ NodeResolver.register(ClassA)
16
+ NodeResolver.register(ClassB)
17
+ NodeResolver.register(ClassC)
18
+ NodeResolver.register(ClassD, before: ClassB)
19
+
20
+ assert_equal [ClassA, ClassD, ClassB, ClassC],
21
+ NodeResolver.node_classes
22
+ ensure
23
+ NodeResolver.node_classes = prev_node_classes
24
+ end
25
+ end
26
+ end
@@ -15,8 +15,8 @@ module Schemacop
15
15
  end
16
16
  end
17
17
 
18
- assert_nil s.validate!(r: 3)
19
- assert_nil s.validate!(r: 3, o: 1)
18
+ assert_nothing_raised { s.validate!(r: 3) }
19
+ assert_nothing_raised { s.validate!(r: 3, o: 1) }
20
20
  assert_verr { s.validate!(o: 1) }
21
21
  assert_verr { s.validate!(1) }
22
22
  assert_verr { s.validate!(r: 3, n: 5) }
@@ -30,8 +30,8 @@ module Schemacop
30
30
  end
31
31
  end
32
32
 
33
- assert_nil s.validate!(r: 3)
34
- assert_nil s.validate!(r: 'asd', o: self)
33
+ assert_nothing_raised { s.validate!(r: 3) }
34
+ assert_nothing_raised { s.validate!(r: 'asd', o: self) }
35
35
  assert_verr { s.validate!(o: -5.3) }
36
36
  assert_verr { s.validate!(Class) }
37
37
  assert_verr { s.validate!(r: s, n: true) }
@@ -45,8 +45,8 @@ module Schemacop
45
45
  end
46
46
  end
47
47
 
48
- assert_nil s.validate!(i: 5)
49
- assert_nil s.validate!(i: 5, f: 2.3)
48
+ assert_nothing_raised { s.validate!(i: 5) }
49
+ assert_nothing_raised { s.validate!(i: 5, f: 2.3) }
50
50
  assert_verr { s.validate!(i: 4, f: 2.3) }
51
51
  assert_verr { s.validate!(i: 5, f: 2.2) }
52
52
  assert_verr { s.validate!(i: 5, f: 3.4) }
@@ -57,7 +57,7 @@ module Schemacop
57
57
 
58
58
  def test_inline_type_in_constructor
59
59
  s = Schema.new :integer, min: 2, max: 4
60
- assert_nil s.validate!(3)
60
+ assert_nothing_raised { s.validate!(3) }
61
61
  assert_verr { s.validate!(5) }
62
62
  assert_verr { s.validate!(1) }
63
63
  end
@@ -69,9 +69,9 @@ module Schemacop
69
69
  opt! :optint, :integer, min: 2, max: 3
70
70
  end
71
71
 
72
- assert_nil s.validate!(nilbool: nil, nilint: nil)
73
- assert_nil s.validate!(nilbool: false, nilint: 2)
74
- assert_nil s.validate!(nilbool: false, nilint: 3, optint: 2)
72
+ assert_nothing_raised { s.validate!(nilbool: nil, nilint: nil) }
73
+ assert_nothing_raised { s.validate!(nilbool: false, nilint: 2) }
74
+ assert_nothing_raised { s.validate!(nilbool: false, nilint: 3, optint: 2) }
75
75
  assert_verr { s.validate!(nilbool: false, nilint: 2, optint: nil) }
76
76
  assert_verr { s.validate!(nilbool: false, nilint: 2, optint: 4) }
77
77
  assert_verr { s.validate!(nilbool: false, nilint: -5, optint: 2) }
@@ -81,7 +81,7 @@ module Schemacop
81
81
  s = Schema.new do
82
82
  type(:array, :string)
83
83
  end
84
- assert_nil s.validate!(%w(a b))
84
+ assert_nothing_raised { s.validate!(%w(a b)) }
85
85
  end
86
86
 
87
87
  # TODO: Get the exception message into the assertion
@@ -97,10 +97,10 @@ module Schemacop
97
97
  s = Schema.new do
98
98
  type(:array, [:array, :integer])
99
99
  end
100
- assert_nil s.validate! [[], 3]
101
- assert_nil s.validate! [[:a, 9], 3]
102
- assert_nil s.validate! [[]]
103
- assert_nil s.validate! [3]
100
+ assert_nothing_raised { s.validate! [[], 3] }
101
+ assert_nothing_raised { s.validate! [[:a, 9], 3] }
102
+ assert_nothing_raised { s.validate! [[]] }
103
+ assert_nothing_raised { s.validate! [3] }
104
104
  assert_verr { s.validate! [[], 'string'] }
105
105
  assert_verr { s.validate! [3, 'string'] }
106
106
  assert_verr { s.validate! ['string'] }
@@ -119,7 +119,7 @@ module Schemacop
119
119
  s = Schema.new do
120
120
  type :array, :integer
121
121
  end
122
- assert_nil s.validate! [5]
122
+ assert_nothing_raised { s.validate! [5] }
123
123
  assert_verr { s.validate! [nil] }
124
124
  assert_verr { s.validate! ['a'] }
125
125
  assert_verr { s.validate! [5, 'a'] }
@@ -130,7 +130,7 @@ module Schemacop
130
130
  s = Schema.new do
131
131
  type :array, :array, :integer
132
132
  end
133
- assert_nil s.validate! [[5]]
133
+ assert_nothing_raised { s.validate! [[5]] }
134
134
  assert_verr { s.validate! [5] }
135
135
  assert_verr { s.validate! [[nil]] }
136
136
  assert_verr { s.validate! [['a']] }
@@ -160,22 +160,24 @@ module Schemacop
160
160
  end
161
161
  end
162
162
 
163
- assert_nil s.validate!(
164
- name: 6,
165
- foo: { bar: nil },
166
- attrs: { color: 5 },
167
- id: 'hallo',
168
- callback: :funky_function,
169
- colors: [5, 'sdf'],
170
- cars: [
171
- {
172
- make: 'Tesla',
173
- ps: 5,
174
- electric: nil,
175
- years: [1993, 1990]
176
- }
177
- ]
178
- )
163
+ assert_nothing_raised do
164
+ s.validate!(
165
+ name: 6,
166
+ foo: { bar: nil },
167
+ attrs: { color: 5 },
168
+ id: 'hallo',
169
+ callback: :funky_function,
170
+ colors: [5, 'sdf'],
171
+ cars: [
172
+ {
173
+ make: 'Tesla',
174
+ ps: 5,
175
+ electric: nil,
176
+ years: [1993, 1990]
177
+ }
178
+ ]
179
+ )
180
+ end
179
181
  end
180
182
 
181
183
  def test_super_deep_wild_should_pass
@@ -210,25 +212,27 @@ module Schemacop
210
212
  type :integer, min: 3
211
213
  end
212
214
 
213
- assert_nil s.validate!(
214
- id: 'meine ID',
215
- friends: [
216
- 'Rodney',
217
- true,
218
- false,
219
- {
220
- rod: {
221
- fritz:
222
- [
223
- [1],
224
- [3]
225
- ]
215
+ assert_nothing_raised do
216
+ s.validate!(
217
+ id: 'meine ID',
218
+ friends: [
219
+ 'Rodney',
220
+ true,
221
+ false,
222
+ {
223
+ rod: {
224
+ fritz:
225
+ [
226
+ [1],
227
+ [3]
228
+ ]
229
+ }
226
230
  }
227
- }
228
- ]
229
- )
230
- assert_nil s.validate!(id: 'my ID', friends: nil)
231
- assert_nil s.validate!(3)
231
+ ]
232
+ )
233
+ end
234
+ assert_nothing_raised { s.validate!(id: 'my ID', friends: nil) }
235
+ assert_nothing_raised { s.validate!(3) }
232
236
  end
233
237
 
234
238
  def test_example_from_readme
@@ -244,12 +248,14 @@ module Schemacop
244
248
  end
245
249
  end
246
250
 
247
- assert_nil schema.validate!(
248
- naming: { first_name: 'John',
249
- last_name: 'Doe' },
250
- age: 34,
251
- password: 'my*pass'
252
- )
251
+ assert_nothing_raised do
252
+ schema.validate!(
253
+ naming: { first_name: 'John',
254
+ last_name: 'Doe' },
255
+ age: 34,
256
+ password: 'my*pass'
257
+ )
258
+ end
253
259
 
254
260
  assert_verr do
255
261
  schema.validate!(
@@ -259,6 +265,7 @@ module Schemacop
259
265
  password: 'my*pass'
260
266
  )
261
267
  end
268
+
262
269
  assert_verr do
263
270
  schema.validate!(
264
271
  naming: { first_name: 'John',
@@ -277,8 +284,8 @@ module Schemacop
277
284
  req :description, :string, min: 35
278
285
  end
279
286
 
280
- assert_nil schema2.validate!(description: 'Abstract: a short description')
281
- assert_nil schema2.validate!(description: 'Since this is no abstract, we expect it to be longer.')
287
+ assert_nothing_raised { schema2.validate!(description: 'Abstract: a short description') }
288
+ assert_nothing_raised { schema2.validate!(description: 'Since this is no abstract, we expect it to be longer.') }
282
289
  assert_verr { schema2.validate!(description: 'Abstract: A short description.') }
283
290
  assert_verr { schema2.validate!(description: 'Abstract: This is gonna be way way too long for an abstract.') }
284
291
  assert_verr { schema2.validate!(description: 'This is too short.') }
@@ -288,16 +295,16 @@ module Schemacop
288
295
  s = Schema.new do
289
296
  type :array, :integer, min: 3
290
297
  end
291
- assert_nil s.validate!([3])
292
- assert_nil s.validate!([3, 4, 5])
298
+ assert_nothing_raised { s.validate!([3]) }
299
+ assert_nothing_raised { s.validate!([3, 4, 5]) }
293
300
  assert_verr { s.validate!([3, 2]) }
294
301
  assert_verr { s.validate!([5, 'string']) }
295
302
  end
296
303
 
297
304
  def test_one_line_array_schema
298
305
  s = Schema.new :array, :integer, min: 3
299
- assert_nil s.validate!([3])
300
- assert_nil s.validate!([3, 4, 5])
306
+ assert_nothing_raised { s.validate!([3]) }
307
+ assert_nothing_raised { s.validate!([3, 4, 5]) }
301
308
  assert_verr { s.validate!([3, 2]) }
302
309
  assert_verr { s.validate!([5, 'string']) }
303
310
  end
@@ -306,14 +313,14 @@ module Schemacop
306
313
  s = Schema.new do
307
314
  req :bar
308
315
  end
309
- assert_nil s.validate!(bar: 2)
316
+ assert_nothing_raised { s.validate!(bar: 2) }
310
317
  assert_verr { s.validate!(foo: 2) }
311
318
  assert_verr { s.validate!([2]) }
312
319
  end
313
320
 
314
321
  def test_one_line_string_schema
315
322
  s = Schema.new :string, min: 4
316
- assert_nil s.validate!('1234')
323
+ assert_nothing_raised { s.validate!('1234') }
317
324
  assert_verr { s.validate!('123') }
318
325
  assert_verr { s.validate!(string: '1234') }
319
326
  end
@@ -324,7 +331,7 @@ module Schemacop
324
331
  req :group, Group
325
332
  end
326
333
 
327
- assert_nil s.validate!(user: User.new, group: Group.new)
334
+ assert_nothing_raised { s.validate!(user: User.new, group: Group.new) }
328
335
  assert_verr { s.validate!(user: Group.new, group: User.new) }
329
336
  end
330
337
  end