schemacop 2.3.0 → 2.4.2

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 (74) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +41 -0
  3. data/LICENSE +1 -1
  4. data/README.md +204 -14
  5. data/RUBY_VERSION +1 -1
  6. data/Rakefile +6 -5
  7. data/VERSION +1 -1
  8. data/doc/Schemacop.html +32 -5
  9. data/doc/Schemacop/ArrayValidator.html +4 -4
  10. data/doc/Schemacop/BooleanValidator.html +4 -4
  11. data/doc/Schemacop/Caster.html +379 -0
  12. data/doc/Schemacop/Collector.html +180 -104
  13. data/doc/Schemacop/Exceptions.html +3 -3
  14. data/doc/Schemacop/Exceptions/InvalidSchemaError.html +3 -3
  15. data/doc/Schemacop/Exceptions/ValidationError.html +3 -3
  16. data/doc/Schemacop/FieldNode.html +19 -7
  17. data/doc/Schemacop/FloatValidator.html +4 -4
  18. data/doc/Schemacop/HashValidator.html +4 -4
  19. data/doc/Schemacop/IntegerValidator.html +4 -4
  20. data/doc/Schemacop/NilValidator.html +4 -4
  21. data/doc/Schemacop/Node.html +97 -85
  22. data/doc/Schemacop/NodeResolver.html +28 -12
  23. data/doc/Schemacop/NodeSupportingField.html +4 -4
  24. data/doc/Schemacop/NodeSupportingType.html +5 -7
  25. data/doc/Schemacop/NodeWithBlock.html +4 -4
  26. data/doc/Schemacop/NumberValidator.html +4 -4
  27. data/doc/Schemacop/ObjectValidator.html +3 -3
  28. data/doc/Schemacop/RootNode.html +4 -4
  29. data/doc/Schemacop/Schema.html +5 -5
  30. data/doc/Schemacop/StringValidator.html +3 -3
  31. data/doc/Schemacop/SymbolValidator.html +4 -4
  32. data/doc/ScopedEnv.html +3 -3
  33. data/doc/_index.html +11 -4
  34. data/doc/class_list.html +1 -1
  35. data/doc/css/style.css +10 -6
  36. data/doc/file.README.html +198 -16
  37. data/doc/frames.html +1 -1
  38. data/doc/index.html +198 -16
  39. data/doc/js/app.js +55 -0
  40. data/doc/method_list.html +81 -49
  41. data/doc/top-level-namespace.html +3 -3
  42. data/lib/schemacop.rb +14 -0
  43. data/lib/schemacop/caster.rb +38 -0
  44. data/lib/schemacop/collector.rb +34 -6
  45. data/lib/schemacop/field_node.rb +24 -3
  46. data/lib/schemacop/node.rb +16 -4
  47. data/lib/schemacop/node_resolver.rb +10 -2
  48. data/lib/schemacop/node_supporting_type.rb +19 -1
  49. data/lib/schemacop/schema.rb +2 -2
  50. data/lib/schemacop/validator/array_validator.rb +1 -1
  51. data/lib/schemacop/validator/float_validator.rb +1 -1
  52. data/lib/schemacop/validator/integer_validator.rb +1 -1
  53. data/lib/schemacop/validator/object_validator.rb +1 -1
  54. data/schemacop.gemspec +15 -9
  55. data/test/casting_test.rb +90 -0
  56. data/test/custom_check_test.rb +20 -13
  57. data/test/custom_if_test.rb +12 -12
  58. data/test/defaults_test.rb +71 -0
  59. data/test/nil_dis_allow_test.rb +6 -6
  60. data/test/node_resolver_test.rb +26 -0
  61. data/test/short_forms_test.rb +84 -66
  62. data/test/test_helper.rb +7 -0
  63. data/test/types_test.rb +5 -5
  64. data/test/validator_array_test.rb +16 -16
  65. data/test/validator_boolean_test.rb +2 -2
  66. data/test/validator_float_test.rb +15 -15
  67. data/test/validator_hash_test.rb +5 -5
  68. data/test/validator_integer_test.rb +9 -9
  69. data/test/validator_nil_test.rb +1 -1
  70. data/test/validator_number_test.rb +19 -19
  71. data/test/validator_object_test.rb +52 -18
  72. data/test/validator_string_test.rb +12 -12
  73. data/test/validator_symbol_test.rb +2 -2
  74. metadata +43 -14
@@ -4,22 +4,29 @@ 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) }
13
13
  end
14
14
 
15
+ def test_custom_error_message
16
+ s = Schema.new :integer, check: proc { |i| i.even? ? true : 'Custom error' }
17
+ assert_nothing_raised { s.validate!(2) }
18
+ exception = assert_verr { s.validate!(3) }
19
+ assert_match(/Custom :check failed: Custom error\./, exception.message)
20
+ end
21
+
15
22
  def test_integer_check_with_lambda
16
23
  s = Schema.new do
17
24
  type :integer, check: ->(i) { i.even? }
18
25
  end
19
26
 
20
- assert_nil s.validate!(2)
21
- assert_nil s.validate!(-8)
22
- 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) }
23
30
  assert_verr { s.validate!(1) }
24
31
  assert_verr { s.validate!(-7) }
25
32
  assert_verr { s.validate!(2.1) }
@@ -29,7 +36,7 @@ module Schemacop
29
36
  s = Schema.new do
30
37
  type :number, check: proc { |x| x == 42 }
31
38
  end
32
- assert_nil s.validate!(42)
39
+ assert_nothing_raised { s.validate!(42) }
33
40
  assert_verr { s.validate!(42.1) }
34
41
  assert_verr { s.validate!(0) }
35
42
  end
@@ -40,7 +47,7 @@ module Schemacop
40
47
  type :integer
41
48
  end
42
49
  end
43
- assert_nil s.validate!([1, 2, 3])
50
+ assert_nothing_raised { s.validate!([1, 2, 3]) }
44
51
  assert_verr { s.validate!([2, 3, 4]) }
45
52
  end
46
53
 
@@ -51,7 +58,7 @@ module Schemacop
51
58
  end
52
59
  end
53
60
 
54
- assert_nil s.validate!([4, 3, 2])
61
+ assert_nothing_raised { s.validate!([4, 3, 2]) }
55
62
  assert_verr { s.validate!([3, 2]) }
56
63
  assert_verr { s.validate!([4, 1]) }
57
64
  end
@@ -61,7 +68,7 @@ module Schemacop
61
68
  opt 1, :integer
62
69
  opt 'two', :string
63
70
  end
64
- assert_nil s.validate!(1 => 1, 'two' => 'two')
71
+ assert_nothing_raised { s.validate!(1 => 1, 'two' => 'two') }
65
72
  assert_verr { s.validate!(1 => 2, 'two' => 'two') }
66
73
  assert_verr { s.validate!(1 => 1, 'two' => 'one') }
67
74
  end
@@ -75,9 +82,9 @@ module Schemacop
75
82
  req :first_name, :string, min: 3
76
83
  end
77
84
 
78
- assert_nil s.validate!(first_name: 'Bob')
79
- assert_nil s.validate!(first_name: 'Sandy')
80
- 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') }
81
88
 
82
89
  assert_verr { s.validate!(first_name: 'Sandkasten') }
83
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
@@ -5,6 +5,17 @@ module Schemacop
5
5
  class User; end
6
6
  class Group; end
7
7
 
8
+ def test_untyped
9
+ s = Schema.new do
10
+ req :foo
11
+ end
12
+
13
+ assert_nothing_raised { s.validate!(foo: 3) }
14
+ assert_nothing_raised { s.validate!(foo: '42') }
15
+ assert_nothing_raised { s.validate!(foo: Object.new) }
16
+ assert_verr { s.validate!(foo: nil) }
17
+ end
18
+
8
19
  def test_constructor_defaults_to_hash
9
20
  s = Schema.new do
10
21
  req! :r do
@@ -15,8 +26,8 @@ module Schemacop
15
26
  end
16
27
  end
17
28
 
18
- assert_nil s.validate!(r: 3)
19
- assert_nil s.validate!(r: 3, o: 1)
29
+ assert_nothing_raised { s.validate!(r: 3) }
30
+ assert_nothing_raised { s.validate!(r: 3, o: 1) }
20
31
  assert_verr { s.validate!(o: 1) }
21
32
  assert_verr { s.validate!(1) }
22
33
  assert_verr { s.validate!(r: 3, n: 5) }
@@ -30,8 +41,8 @@ module Schemacop
30
41
  end
31
42
  end
32
43
 
33
- assert_nil s.validate!(r: 3)
34
- assert_nil s.validate!(r: 'asd', o: self)
44
+ assert_nothing_raised { s.validate!(r: 3) }
45
+ assert_nothing_raised { s.validate!(r: 'asd', o: self) }
35
46
  assert_verr { s.validate!(o: -5.3) }
36
47
  assert_verr { s.validate!(Class) }
37
48
  assert_verr { s.validate!(r: s, n: true) }
@@ -45,8 +56,8 @@ module Schemacop
45
56
  end
46
57
  end
47
58
 
48
- assert_nil s.validate!(i: 5)
49
- assert_nil s.validate!(i: 5, f: 2.3)
59
+ assert_nothing_raised { s.validate!(i: 5) }
60
+ assert_nothing_raised { s.validate!(i: 5, f: 2.3) }
50
61
  assert_verr { s.validate!(i: 4, f: 2.3) }
51
62
  assert_verr { s.validate!(i: 5, f: 2.2) }
52
63
  assert_verr { s.validate!(i: 5, f: 3.4) }
@@ -57,7 +68,7 @@ module Schemacop
57
68
 
58
69
  def test_inline_type_in_constructor
59
70
  s = Schema.new :integer, min: 2, max: 4
60
- assert_nil s.validate!(3)
71
+ assert_nothing_raised { s.validate!(3) }
61
72
  assert_verr { s.validate!(5) }
62
73
  assert_verr { s.validate!(1) }
63
74
  end
@@ -69,9 +80,9 @@ module Schemacop
69
80
  opt! :optint, :integer, min: 2, max: 3
70
81
  end
71
82
 
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)
83
+ assert_nothing_raised { s.validate!(nilbool: nil, nilint: nil) }
84
+ assert_nothing_raised { s.validate!(nilbool: false, nilint: 2) }
85
+ assert_nothing_raised { s.validate!(nilbool: false, nilint: 3, optint: 2) }
75
86
  assert_verr { s.validate!(nilbool: false, nilint: 2, optint: nil) }
76
87
  assert_verr { s.validate!(nilbool: false, nilint: 2, optint: 4) }
77
88
  assert_verr { s.validate!(nilbool: false, nilint: -5, optint: 2) }
@@ -81,7 +92,7 @@ module Schemacop
81
92
  s = Schema.new do
82
93
  type(:array, :string)
83
94
  end
84
- assert_nil s.validate!(%w(a b))
95
+ assert_nothing_raised { s.validate!(%w(a b)) }
85
96
  end
86
97
 
87
98
  # TODO: Get the exception message into the assertion
@@ -97,10 +108,10 @@ module Schemacop
97
108
  s = Schema.new do
98
109
  type(:array, [:array, :integer])
99
110
  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]
111
+ assert_nothing_raised { s.validate! [[], 3] }
112
+ assert_nothing_raised { s.validate! [[:a, 9], 3] }
113
+ assert_nothing_raised { s.validate! [[]] }
114
+ assert_nothing_raised { s.validate! [3] }
104
115
  assert_verr { s.validate! [[], 'string'] }
105
116
  assert_verr { s.validate! [3, 'string'] }
106
117
  assert_verr { s.validate! ['string'] }
@@ -119,7 +130,7 @@ module Schemacop
119
130
  s = Schema.new do
120
131
  type :array, :integer
121
132
  end
122
- assert_nil s.validate! [5]
133
+ assert_nothing_raised { s.validate! [5] }
123
134
  assert_verr { s.validate! [nil] }
124
135
  assert_verr { s.validate! ['a'] }
125
136
  assert_verr { s.validate! [5, 'a'] }
@@ -130,7 +141,7 @@ module Schemacop
130
141
  s = Schema.new do
131
142
  type :array, :array, :integer
132
143
  end
133
- assert_nil s.validate! [[5]]
144
+ assert_nothing_raised { s.validate! [[5]] }
134
145
  assert_verr { s.validate! [5] }
135
146
  assert_verr { s.validate! [[nil]] }
136
147
  assert_verr { s.validate! [['a']] }
@@ -160,22 +171,24 @@ module Schemacop
160
171
  end
161
172
  end
162
173
 
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
- )
174
+ assert_nothing_raised do
175
+ s.validate!(
176
+ name: 6,
177
+ foo: { bar: nil },
178
+ attrs: { color: 5 },
179
+ id: 'hallo',
180
+ callback: :funky_function,
181
+ colors: [5, 'sdf'],
182
+ cars: [
183
+ {
184
+ make: 'Tesla',
185
+ ps: 5,
186
+ electric: nil,
187
+ years: [1993, 1990]
188
+ }
189
+ ]
190
+ )
191
+ end
179
192
  end
180
193
 
181
194
  def test_super_deep_wild_should_pass
@@ -210,25 +223,27 @@ module Schemacop
210
223
  type :integer, min: 3
211
224
  end
212
225
 
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
- ]
226
+ assert_nothing_raised do
227
+ s.validate!(
228
+ id: 'meine ID',
229
+ friends: [
230
+ 'Rodney',
231
+ true,
232
+ false,
233
+ {
234
+ rod: {
235
+ fritz:
236
+ [
237
+ [1],
238
+ [3]
239
+ ]
240
+ }
226
241
  }
227
- }
228
- ]
229
- )
230
- assert_nil s.validate!(id: 'my ID', friends: nil)
231
- assert_nil s.validate!(3)
242
+ ]
243
+ )
244
+ end
245
+ assert_nothing_raised { s.validate!(id: 'my ID', friends: nil) }
246
+ assert_nothing_raised { s.validate!(3) }
232
247
  end
233
248
 
234
249
  def test_example_from_readme
@@ -244,12 +259,14 @@ module Schemacop
244
259
  end
245
260
  end
246
261
 
247
- assert_nil schema.validate!(
248
- naming: { first_name: 'John',
249
- last_name: 'Doe' },
250
- age: 34,
251
- password: 'my*pass'
252
- )
262
+ assert_nothing_raised do
263
+ schema.validate!(
264
+ naming: { first_name: 'John',
265
+ last_name: 'Doe' },
266
+ age: 34,
267
+ password: 'my*pass'
268
+ )
269
+ end
253
270
 
254
271
  assert_verr do
255
272
  schema.validate!(
@@ -259,6 +276,7 @@ module Schemacop
259
276
  password: 'my*pass'
260
277
  )
261
278
  end
279
+
262
280
  assert_verr do
263
281
  schema.validate!(
264
282
  naming: { first_name: 'John',
@@ -277,8 +295,8 @@ module Schemacop
277
295
  req :description, :string, min: 35
278
296
  end
279
297
 
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.')
298
+ assert_nothing_raised { schema2.validate!(description: 'Abstract: a short description') }
299
+ assert_nothing_raised { schema2.validate!(description: 'Since this is no abstract, we expect it to be longer.') }
282
300
  assert_verr { schema2.validate!(description: 'Abstract: A short description.') }
283
301
  assert_verr { schema2.validate!(description: 'Abstract: This is gonna be way way too long for an abstract.') }
284
302
  assert_verr { schema2.validate!(description: 'This is too short.') }
@@ -288,16 +306,16 @@ module Schemacop
288
306
  s = Schema.new do
289
307
  type :array, :integer, min: 3
290
308
  end
291
- assert_nil s.validate!([3])
292
- assert_nil s.validate!([3, 4, 5])
309
+ assert_nothing_raised { s.validate!([3]) }
310
+ assert_nothing_raised { s.validate!([3, 4, 5]) }
293
311
  assert_verr { s.validate!([3, 2]) }
294
312
  assert_verr { s.validate!([5, 'string']) }
295
313
  end
296
314
 
297
315
  def test_one_line_array_schema
298
316
  s = Schema.new :array, :integer, min: 3
299
- assert_nil s.validate!([3])
300
- assert_nil s.validate!([3, 4, 5])
317
+ assert_nothing_raised { s.validate!([3]) }
318
+ assert_nothing_raised { s.validate!([3, 4, 5]) }
301
319
  assert_verr { s.validate!([3, 2]) }
302
320
  assert_verr { s.validate!([5, 'string']) }
303
321
  end
@@ -306,14 +324,14 @@ module Schemacop
306
324
  s = Schema.new do
307
325
  req :bar
308
326
  end
309
- assert_nil s.validate!(bar: 2)
327
+ assert_nothing_raised { s.validate!(bar: 2) }
310
328
  assert_verr { s.validate!(foo: 2) }
311
329
  assert_verr { s.validate!([2]) }
312
330
  end
313
331
 
314
332
  def test_one_line_string_schema
315
333
  s = Schema.new :string, min: 4
316
- assert_nil s.validate!('1234')
334
+ assert_nothing_raised { s.validate!('1234') }
317
335
  assert_verr { s.validate!('123') }
318
336
  assert_verr { s.validate!(string: '1234') }
319
337
  end
@@ -324,7 +342,7 @@ module Schemacop
324
342
  req :group, Group
325
343
  end
326
344
 
327
- assert_nil s.validate!(user: User.new, group: Group.new)
345
+ assert_nothing_raised { s.validate!(user: User.new, group: Group.new) }
328
346
  assert_verr { s.validate!(user: Group.new, group: User.new) }
329
347
  end
330
348
  end