sk-api 1.0.6 → 1.1.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.
@@ -1,9 +1,72 @@
1
1
  require 'test/unit'
2
+ require 'open-uri'
3
+ require 'pp'
2
4
  require File.dirname(__FILE__) + '/../lib/jsonschema'
3
5
 
4
6
  class JSONSchemaTest < Test::Unit::TestCase
7
+ def test_self_schema
8
+ data1 = {
9
+ "$schema"=> {
10
+ "properties"=> {
11
+ "name"=> {
12
+ "type"=> "string"
13
+ },
14
+ "age" => {
15
+ "type"=> "integer",
16
+ "maximum"=> 125,
17
+ "optional"=> true
18
+ }
19
+ }
20
+ },
21
+ "name" => "John Doe",
22
+ "age" => 30,
23
+ "type" => "object"
24
+ }
25
+ assert_nothing_raised{
26
+ JSON::Schema.validate(data1)
27
+ }
28
+ data2 = {
29
+ "$schema"=> {
30
+ "properties"=> {
31
+ "name"=> {
32
+ "type"=> "integer"
33
+ },
34
+ "age" => {
35
+ "type"=> "integer",
36
+ "maximum"=> 125,
37
+ "optional"=> true
38
+ }
39
+ }
40
+ },
41
+ "name" => "John Doe",
42
+ "age" => 30,
43
+ "type" => "object"
44
+ }
45
+ assert_raise(JSON::Schema::ValueError){
46
+ JSON::Schema.validate(data2)
47
+ }
48
+ data3 = {
49
+ "$schema"=> {
50
+ "properties"=> {
51
+ "name"=> {
52
+ "type"=> "integer"
53
+ },
54
+ "age" => {
55
+ "type"=> "integer",
56
+ "maximum"=> 125,
57
+ "optional"=> true
58
+ }
59
+ }
60
+ },
61
+ "name" => "John Doe",
62
+ }
63
+ assert_raise(JSON::Schema::ValueError){
64
+ JSON::Schema.validate(data3)
65
+ }
66
+ end
67
+
5
68
  def test_maximum
6
- schema = {
69
+ schema1 = {
7
70
  "type" => "object",
8
71
  "properties" => {
9
72
  "prop01" => {
@@ -32,6 +95,91 @@ class JSONSchemaTest < Test::Unit::TestCase
32
95
  "prop01"=> 9,
33
96
  "prop02"=> 21
34
97
  }
98
+ assert_nothing_raised{
99
+ JSON::Schema.validate(data1, schema1)
100
+ }
101
+ assert_nothing_raised{
102
+ JSON::Schema.validate(data2, schema1)
103
+ }
104
+ assert_raise(JSON::Schema::ValueError){
105
+ JSON::Schema.validate(data3, schema1)
106
+ }
107
+ assert_raise(JSON::Schema::ValueError){
108
+ JSON::Schema.validate(data4, schema1)
109
+ }
110
+ schema2 = {
111
+ "type" => "object",
112
+ "properties" => {
113
+ "prop01" => {
114
+ "type" => "number",
115
+ "maximum" => 10,
116
+ "maximumCanEqual" => true
117
+ },
118
+ "prop02" => {
119
+ "type" => "integer",
120
+ "maximum" => 20,
121
+ "maximumCanEqual" => false
122
+ }
123
+ }
124
+ }
125
+ data5 = {
126
+ "prop01"=> 10,
127
+ "prop02"=> 10
128
+ }
129
+ data6 = {
130
+ "prop01"=> 10,
131
+ "prop02"=> 19
132
+ }
133
+ data7 = {
134
+ "prop01"=> 11,
135
+ "prop02"=> 19
136
+ }
137
+ data8 = {
138
+ "prop01"=> 9,
139
+ "prop02"=> 20
140
+ }
141
+ assert_nothing_raised{
142
+ JSON::Schema.validate(data5, schema2)
143
+ }
144
+ assert_nothing_raised{
145
+ JSON::Schema.validate(data6, schema2)
146
+ }
147
+ assert_raise(JSON::Schema::ValueError){
148
+ JSON::Schema.validate(data7, schema2)
149
+ }
150
+ assert_raise(JSON::Schema::ValueError){
151
+ JSON::Schema.validate(data8, schema2)
152
+ }
153
+ end
154
+
155
+ def test_extends
156
+ schema = {
157
+ "type" => "object",
158
+ "properties" => {
159
+ "prop01" => {
160
+ "type" => "number",
161
+ "minimum" => 10
162
+ },
163
+ "prop02" => {}
164
+ }
165
+ }
166
+ schema["properties"]["prop02"]["extends"] = schema["properties"]["prop01"]
167
+ data1 = {
168
+ "prop01"=> 21,
169
+ "prop02"=> 21
170
+ }
171
+ data2 = {
172
+ "prop01"=> 10,
173
+ "prop02"=> 20
174
+ }
175
+ data3 = {
176
+ "prop01"=> 9,
177
+ "prop02"=> 21
178
+ }
179
+ data4 = {
180
+ "prop01"=> 10,
181
+ "prop02"=> 9
182
+ }
35
183
  assert_nothing_raised{
36
184
  JSON::Schema.validate(data1, schema)
37
185
  }
@@ -47,9 +195,9 @@ class JSONSchemaTest < Test::Unit::TestCase
47
195
  end
48
196
 
49
197
  def test_minimum
50
- schema = {
198
+ schema1 = {
51
199
  "type" => "object",
52
- "properties" => {
200
+ "properties" => {
53
201
  "prop01" => {
54
202
  "type" => "number",
55
203
  "minimum" => 10
@@ -77,16 +225,52 @@ class JSONSchemaTest < Test::Unit::TestCase
77
225
  "prop02"=> 19
78
226
  }
79
227
  assert_nothing_raised{
80
- JSON::Schema.validate(data1, schema)
228
+ JSON::Schema.validate(data1, schema1)
81
229
  }
82
230
  assert_nothing_raised{
83
- JSON::Schema.validate(data2, schema)
231
+ JSON::Schema.validate(data2, schema1)
84
232
  }
85
233
  assert_raise(JSON::Schema::ValueError){
86
- JSON::Schema.validate(data3, schema)
234
+ JSON::Schema.validate(data3, schema1)
87
235
  }
88
236
  assert_raise(JSON::Schema::ValueError){
89
- JSON::Schema.validate(data4, schema)
237
+ JSON::Schema.validate(data4, schema1)
238
+ }
239
+ schema2 = {
240
+ "type" => "object",
241
+ "properties" => {
242
+ "prop01" => {
243
+ "type" => "number",
244
+ "minimum" => 10,
245
+ "minimumCanEqual" => false
246
+ },
247
+ "prop02" => {
248
+ "type" => "integer",
249
+ "minimum" => 19,
250
+ "minimumCanEqual" => true
251
+ }
252
+ }
253
+ }
254
+ data5 = {
255
+ "prop01"=> 11,
256
+ "prop02"=> 19
257
+ }
258
+ data6 = {
259
+ "prop01"=> 10,
260
+ "prop02"=> 19
261
+ }
262
+ data7 = {
263
+ "prop01"=> 11,
264
+ "prop02"=> 18
265
+ }
266
+ assert_nothing_raised{
267
+ JSON::Schema.validate(data5, schema2)
268
+ }
269
+ assert_raise(JSON::Schema::ValueError){
270
+ JSON::Schema.validate(data6, schema2)
271
+ }
272
+ assert_raise(JSON::Schema::ValueError){
273
+ JSON::Schema.validate(data7, schema2)
90
274
  }
91
275
  end
92
276
 
@@ -392,9 +576,22 @@ class JSONSchemaTest < Test::Unit::TestCase
392
576
  data2 = {
393
577
  "prop02"=>"blah"
394
578
  }
579
+ data3 = {
580
+ "prop01"=>"blah"
581
+ }
582
+ data4 = {
583
+ "prop01"=>"test",
584
+ "prop03"=>1,
585
+ }
395
586
  assert_raise(JSON::Schema::ValueError){
396
587
  JSON::Schema.validate(data2, schema)
397
588
  }
589
+ assert_raise(JSON::Schema::ValueError){
590
+ JSON::Schema.validate(data3, schema)
591
+ }
592
+ assert_raise(JSON::Schema::ValueError){
593
+ JSON::Schema.validate(data4, schema)
594
+ }
398
595
  end
399
596
 
400
597
  def test_default
@@ -799,4 +996,3 @@ class JSONSchemaTest < Test::Unit::TestCase
799
996
  end
800
997
  end
801
998
  end
802
-
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sk-api
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 19
4
5
  prerelease: false
5
6
  segments:
6
7
  - 1
8
+ - 1
7
9
  - 0
8
- - 6
9
- version: 1.0.6
10
+ version: 1.1.0
10
11
  platform: ruby
11
12
  authors:
12
13
  - Georg Leciejewski
@@ -14,16 +15,18 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-04-16 00:00:00 +02:00
18
+ date: 2010-11-07 00:00:00 +01:00
18
19
  default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
22
  name: rspec
22
23
  prerelease: false
23
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
24
26
  requirements:
25
27
  - - ">="
26
28
  - !ruby/object:Gem::Version
29
+ hash: 3
27
30
  segments:
28
31
  - 0
29
32
  version: "0"
@@ -45,9 +48,11 @@ files:
45
48
  - Rakefile
46
49
  - VERSION
47
50
  - init.rb
48
- - lib/activeresource_patches/README
49
- - lib/activeresource_patches/base.rb
50
- - lib/activeresource_patches/validations.rb
51
+ - lib/patches/README
52
+ - lib/patches/ar2/base.rb
53
+ - lib/patches/ar2/validations.rb
54
+ - lib/patches/ar3/base.rb
55
+ - lib/patches/ar3/validations.rb
51
56
  - lib/resources/address.rb
52
57
  - lib/resources/base.rb
53
58
  - lib/resources/client.rb
@@ -81,23 +86,27 @@ rdoc_options:
81
86
  require_paths:
82
87
  - lib
83
88
  required_ruby_version: !ruby/object:Gem::Requirement
89
+ none: false
84
90
  requirements:
85
91
  - - ">="
86
92
  - !ruby/object:Gem::Version
93
+ hash: 3
87
94
  segments:
88
95
  - 0
89
96
  version: "0"
90
97
  required_rubygems_version: !ruby/object:Gem::Requirement
98
+ none: false
91
99
  requirements:
92
100
  - - ">="
93
101
  - !ruby/object:Gem::Version
102
+ hash: 3
94
103
  segments:
95
104
  - 0
96
105
  version: "0"
97
106
  requirements: []
98
107
 
99
108
  rubyforge_project:
100
- rubygems_version: 1.3.6
109
+ rubygems_version: 1.3.7
101
110
  signing_key:
102
111
  specification_version: 3
103
112
  summary: Interact with SalesKing