schemacop 2.3.2 → 2.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.
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