rsmp_schemer 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5f23ae0165f3b4dc8d68e61df4478eb60871487273f3f17af3a0903373fc889b
4
- data.tar.gz: 94ebfc23355613e74959648481b6edac1cce6c22a5339c94651f3e86f9e9428f
3
+ metadata.gz: 82a864ad0c18ba82e9aed1074af548dac54e6a0e396cb2d7b567cf0bec629c24
4
+ data.tar.gz: 7fb5c1565865a0833e8a555131e46e604d93a20e5c118218abb95b6c8730541c
5
5
  SHA512:
6
- metadata.gz: b17100f32895d3d7542bf93bff1da5a2bfd89ac869c5e9fb77bf9e3cfe3710452448893c96885c1f9e4eb7f3ea06c7ce7860be55969fe9721586a975f01a4b5e
7
- data.tar.gz: 6025a9a9cf344aa20fdfd728eeb2ea5e8af8c73b694a472201771daa49b022453067e1353888cd854e3bca04e704f41912d0785d10605d402c890ddeef5345d0
6
+ metadata.gz: b36b9110c2c9cad63986e2bb8979f875cff92675abc989b77bb021ae159bb271f9d818258f1d3187c8461e90392cde2cb2221a4f9566d221c39ce20bf809f7a0
7
+ data.tar.gz: 9c0f371915fac4a32f8fa2cc4795aab5ce86864283facc15426911fd3e23d90c6e6cc974b76f853d8b4d671e834d97a0981e83d4ebda1a724c6d3ec3753f0909
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rsmp_schemer (0.4.0)
5
- json_schemer (~> 0.2.18)
4
+ rsmp_schemer (0.4.1)
5
+ json_schemer (~> 0.2.21)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
@@ -11,13 +11,13 @@ GEM
11
11
  ecma-re-validator (0.4.0)
12
12
  regexp_parser (~> 2.2)
13
13
  hana (1.3.7)
14
- json_schemer (0.2.20)
14
+ json_schemer (0.2.21)
15
15
  ecma-re-validator (~> 0.3)
16
16
  hana (~> 1.3)
17
17
  regexp_parser (~> 2.0)
18
18
  uri_template (~> 0.7)
19
19
  rake (13.0.6)
20
- regexp_parser (2.2.1)
20
+ regexp_parser (2.5.0)
21
21
  rspec (3.9.0)
22
22
  rspec-core (~> 3.9.0)
23
23
  rspec-expectations (~> 3.9.0)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RSMP
4
4
  module Schemer
5
- VERSION = "0.4.0"
5
+ VERSION = "0.4.1"
6
6
  end
7
7
  end
data/rsmp_schemer.gemspec CHANGED
@@ -39,7 +39,7 @@ Gem::Specification.new do |spec|
39
39
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
40
40
  spec.require_paths = ["lib"]
41
41
 
42
- spec.add_dependency "json_schemer", "~> 0.2.18"
42
+ spec.add_dependency "json_schemer", "~> 0.2.21"
43
43
 
44
44
  spec.add_development_dependency "rspec", "~> 3.9.0"
45
45
  spec.add_development_dependency "rspec-expectations", "~> 3.9.1"
@@ -9,22 +9,26 @@
9
9
  "aSp" : {
10
10
  "description" : "Alarm message variant",
11
11
  "type" : "string",
12
- "enum" : [ "Issue", "Acknowledge", "Suspend", "Resume" ]
12
+ "enum" : [ "Issue", "Acknowledge", "Suspend", "Resume",
13
+ "issue", "acknowledge", "suspend", "resume" ]
13
14
  },
14
15
  "ack" : {
15
16
  "description" : "Acknowledgement",
16
17
  "type" : "string",
17
- "enum" : [ "Acknowledged", "notAcknowledged" ]
18
+ "enum" : [ "Acknowledged", "notAcknowledged",
19
+ "acknowledged", "NotAcknowledged" ]
18
20
  },
19
21
  "aS" : {
20
22
  "description" : "Status",
21
23
  "type" : "string",
22
- "enum" : [ "inActive", "Active" ]
24
+ "enum" : [ "inActive", "Active",
25
+ "InActive", "active" ]
23
26
  },
24
27
  "sS" : {
25
28
  "description" : "Suspended",
26
29
  "type" : "string",
27
- "enum" : [ "suspended", "notSuspended" ]
30
+ "enum" : [ "suspended", "notSuspended",
31
+ "Suspended", "NotSuspended" ]
28
32
  },
29
33
  "aTs" : { "$ref": "definitions.json#/timestamp" },
30
34
  "cat" : {
@@ -89,6 +89,21 @@ RSpec.describe "Traffic Light Controller RSMP SXL Schema validation" do
89
89
  ])
90
90
  end
91
91
 
92
+ it 'accept states with first letter in lowercase' do
93
+ invalid = message.dup
94
+ invalid['aSp'] = "issue"
95
+ expect( validate(invalid) ).to be_nil
96
+
97
+ invalid['aSp'] = "acknowledge"
98
+ expect( validate(invalid) ).to be_nil
99
+
100
+ invalid['aSp'] = "suspend"
101
+ expect( validate(invalid) ).to be_nil
102
+
103
+ invalid['aSp'] = "resume"
104
+ expect( validate(invalid) ).to be_nil
105
+ end
106
+
92
107
  it 'catches wrong state type' do
93
108
  invalid = message.dup
94
109
  invalid['aSp'] = 123
@@ -0,0 +1 @@
1
+ .DS_Store
@@ -9,22 +9,26 @@
9
9
  "aSp" : {
10
10
  "description" : "Alarm message variant",
11
11
  "type" : "string",
12
- "enum" : [ "Issue", "Acknowledge", "Suspend", "Resume" ]
12
+ "enum" : [ "Issue", "Acknowledge", "Suspend", "Resume",
13
+ "issue", "acknowledge", "suspend", "resume" ]
13
14
  },
14
15
  "ack" : {
15
16
  "description" : "Acknowledgement",
16
17
  "type" : "string",
17
- "enum" : [ "Acknowledged", "notAcknowledged" ]
18
+ "enum" : [ "Acknowledged", "notAcknowledged",
19
+ "acknowledged", "NotAcknowledged" ]
18
20
  },
19
21
  "aS" : {
20
22
  "description" : "Status",
21
23
  "type" : "string",
22
- "enum" : [ "inActive", "Active" ]
24
+ "enum" : [ "inActive", "Active",
25
+ "InActive", "active" ]
23
26
  },
24
27
  "sS" : {
25
28
  "description" : "Suspended",
26
29
  "type" : "string",
27
- "enum" : [ "suspended", "notSuspended" ]
30
+ "enum" : [ "suspended", "notSuspended",
31
+ "Suspended", "NotSuspended" ]
28
32
  },
29
33
  "aTs" : { "$ref": "definitions.json#/timestamp" },
30
34
  "cat" : {
@@ -89,6 +89,21 @@ RSpec.describe "Traffic Light Controller RSMP SXL Schema validation" do
89
89
  ])
90
90
  end
91
91
 
92
+ it 'accept states with first letter in lowercase' do
93
+ invalid = message.dup
94
+ invalid['aSp'] = "issue"
95
+ expect( validate(invalid) ).to be_nil
96
+
97
+ invalid['aSp'] = "acknowledge"
98
+ expect( validate(invalid) ).to be_nil
99
+
100
+ invalid['aSp'] = "suspend"
101
+ expect( validate(invalid) ).to be_nil
102
+
103
+ invalid['aSp'] = "resume"
104
+ expect( validate(invalid) ).to be_nil
105
+ end
106
+
92
107
  it 'catches wrong state type' do
93
108
  invalid = message.dup
94
109
  invalid['aSp'] = 123
@@ -10,9 +10,10 @@ RSpec.describe "Traffic Light Controller RSMP SXL Schema validation" do
10
10
  { "vers" => "3.1.1" },
11
11
  { "vers" => "3.1.2" },
12
12
  { "vers" => "3.1.3" },
13
- { "vers" => "3.1.4" }
13
+ { "vers" => "3.1.4" },
14
+ { "vers" => "3.1.5" }
14
15
  ],
15
- "SXL" => "1.1"
16
+ "SXL" => "1.0.15"
16
17
  }}
17
18
 
18
19
  it 'accepts valid message' do
@@ -9,7 +9,8 @@
9
9
  "aSp" : {
10
10
  "description" : "Alarm specialization",
11
11
  "type" : "string",
12
- "enum" : [ "Issue", "Acknowledge", "Suspend", "Resume", "Request" ]
12
+ "enum" : [ "Issue", "Acknowledge", "Suspend", "Resume", "Request",
13
+ "issue", "acknowledge", "suspend", "resume", "request" ]
13
14
  }
14
15
  },
15
16
  "required" : [ "aSp"],
@@ -27,7 +28,8 @@
27
28
  {
28
29
  "required" : [ "aSp" ],
29
30
  "properties" : {
30
- "aSp" : { "enum" : [ "Suspend","Resume"] }
31
+ "aSp" : { "enum" : [ "Suspend","Resume",
32
+ "suspend", "resume"] }
31
33
  }
32
34
  },
33
35
  {
@@ -42,7 +44,8 @@
42
44
  "required" : [ "aSp", "sS" ],
43
45
  "properties" : {
44
46
  "aSp" : { "const" : "Suspend" },
45
- "sS" : { "enum" : [ "suspended", "notSuspended" ] }
47
+ "sS" : { "enum" : [ "suspended", "notSuspended",
48
+ "Suspended", "NotSuspended" ] }
46
49
  }
47
50
  },
48
51
  "then": { "$ref": "alarm_suspended_resumed.json" }
@@ -3,17 +3,20 @@
3
3
  "ack" : {
4
4
  "description" : "Acknowledgement",
5
5
  "type" : "string",
6
- "enum" : [ "Acknowledged", "notAcknowledged" ]
6
+ "enum" : [ "Acknowledged", "notAcknowledged",
7
+ "acknowledged", "NotAcknowledged" ]
7
8
  },
8
9
  "aS" : {
9
10
  "description" : "Active status",
10
11
  "type" : "string",
11
- "enum" : [ "inActive", "Active" ]
12
+ "enum" : [ "inActive", "Active",
13
+ "InActive", "active" ]
12
14
  },
13
15
  "sS" : {
14
16
  "description" : "Suspend status",
15
17
  "type" : "string",
16
- "enum" : [ "suspended", "notSuspended" ]
18
+ "enum" : [ "suspended", "notSuspended",
19
+ "Suspended", "NotSuspended" ]
17
20
  },
18
21
  "aTs" : { "$ref": "definitions.json#/timestamp" },
19
22
  "cat" : {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rsmp_schemer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emil Tin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-04-05 00:00:00.000000000 Z
11
+ date: 2022-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json_schemer
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.2.18
19
+ version: 0.2.21
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.2.18
26
+ version: 0.2.21
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -95,7 +95,6 @@ files:
95
95
  - schemas/core_3.1.2/Gemfile.lock
96
96
  - schemas/core_3.1.2/LICENSE
97
97
  - schemas/core_3.1.2/README.md
98
- - schemas/core_3.1.2/examples/validate.rb
99
98
  - schemas/core_3.1.2/schema/core/aggregated_status.json
100
99
  - schemas/core_3.1.2/schema/core/alarm.json
101
100
  - schemas/core_3.1.2/schema/core/command_request.json
@@ -257,12 +256,12 @@ files:
257
256
  - schemas/core_3.1.3/spec/spec_helper.rb
258
257
  - schemas/core_3.1.3/spec/tlc/M0001_spec.rb
259
258
  - schemas/core_3.1.3/spec/tlc/S0007_spec.rb
259
+ - schemas/core_3.1.4/.gitignore
260
260
  - schemas/core_3.1.4/.rspec
261
261
  - schemas/core_3.1.4/Gemfile
262
262
  - schemas/core_3.1.4/Gemfile.lock
263
263
  - schemas/core_3.1.4/LICENSE
264
264
  - schemas/core_3.1.4/README.md
265
- - schemas/core_3.1.4/examples/validate.rb
266
265
  - schemas/core_3.1.4/schema/core/aggregated_status.json
267
266
  - schemas/core_3.1.4/schema/core/alarm.json
268
267
  - schemas/core_3.1.4/schema/core/command_request.json
@@ -281,7 +280,6 @@ files:
281
280
  - schemas/core_3.1.4/schema/core/version.json
282
281
  - schemas/core_3.1.4/schema/core/watchdog.json
283
282
  - schemas/core_3.1.4/spec/core/aggregated_status_spec.rb
284
- - schemas/core_3.1.4/spec/core/alarm_request_spec.rb
285
283
  - schemas/core_3.1.4/spec/core/alarm_spec.rb
286
284
  - schemas/core_3.1.4/spec/core/command_request_spec.rb
287
285
  - schemas/core_3.1.4/spec/core/command_response_spec.rb
@@ -1,35 +0,0 @@
1
- require 'json_schemer'
2
-
3
- message = {
4
- "mType" => "rSMsg",
5
- "mId" => "4173c2c8-a933-43cb-9425-66d4613731ed",
6
- "type" => "CommandRequest",
7
- "siteId" => [
8
- { "sId" => "RN+SI0001" }
9
- ],
10
- "cId" => "O+14439=481WA001",
11
- "arg" => [
12
- {
13
- "n" => "timeplan",
14
- "cO" => "setPlan",
15
- "v" => "1"
16
- }
17
- ]
18
- }
19
-
20
- # try validating a message against our schema
21
- schema_core = Pathname.new('schema/core/rsmp.json')
22
- schemer_core = JSONSchemer.schema(schema_core)
23
-
24
- def validate message, schemer
25
- if schemer.valid? message
26
- 'ok'
27
- else
28
- schemer.validate(message).map do |item|
29
- [item['data_pointer'],item['type'],item['details']].compact.join(' ')
30
- end
31
- end
32
- end
33
-
34
- puts "core: #{validate message, schemer_core}"
35
-
@@ -1,35 +0,0 @@
1
- require 'json_schemer'
2
-
3
- message = {
4
- "mType" => "rSMsg",
5
- "mId" => "4173c2c8-a933-43cb-9425-66d4613731ed",
6
- "type" => "CommandRequest",
7
- "siteId" => [
8
- { "sId" => "RN+SI0001" }
9
- ],
10
- "cId" => "O+14439=481WA001",
11
- "arg" => [
12
- {
13
- "n" => "timeplan",
14
- "cO" => "setPlan",
15
- "v" => "1"
16
- }
17
- ]
18
- }
19
-
20
- # try validating a message against our schema
21
- schema_core = Pathname.new('schema/core/rsmp.json')
22
- schemer_core = JSONSchemer.schema(schema_core)
23
-
24
- def validate message, schemer
25
- if schemer.valid? message
26
- 'ok'
27
- else
28
- schemer.validate(message).map do |item|
29
- [item['data_pointer'],item['type'],item['details']].compact.join(' ')
30
- end
31
- end
32
- end
33
-
34
- puts "core: #{validate message, schemer_core}"
35
-
@@ -1,72 +0,0 @@
1
- RSpec.describe "Traffic Light Controller RSMP SXL Schema validation" do
2
- let(:message) {{
3
- "mType" => "rSMsg",
4
- "type" => "Alarm",
5
- "mId" => "E68A0010-C336-41ac-BD58-5C80A72C7092",
6
- "cId" => "AB+84001=860SG001",
7
- "aCId" => "A0001",
8
- "aSp" => "Request"
9
- }}
10
-
11
- it 'accepts valid alarm request' do
12
- expect( validate(message) ).to be_nil
13
- end
14
-
15
-
16
- it 'catches missing component id' do
17
- invalid = message.dup
18
- invalid.delete 'cId'
19
- expect( validate(invalid) ).to eq([
20
- ["", "required", {"missing_keys"=>["cId"]}]
21
- ])
22
- end
23
-
24
- it 'catches missing alarm code id' do
25
- invalid = message.dup
26
- invalid.delete 'aCId'
27
- expect( validate(invalid) ).to eq([
28
- ["", "required", {"missing_keys"=>["aCId"]}]
29
- ])
30
- end
31
-
32
- it 'catches bad alarm code id' do
33
- invalid = message.dup
34
- invalid['aCId'] = "001"
35
- expect( validate(invalid) ).to eq([
36
- ["/aCId", "pattern"]
37
- ])
38
- end
39
-
40
- it 'catches wrong alarm code id type' do
41
- invalid = message.dup
42
- invalid['aCId'] = 123
43
- expect( validate(invalid) ).to eq([
44
- ["/aCId", "string"]
45
- ])
46
- end
47
-
48
- it 'catches missing extended alarm code id' do
49
- invalid = message.dup
50
- invalid.delete 'xACId'
51
- expect( validate(invalid) ).to eq([
52
- ["", "required", {"missing_keys"=>["xACId"]}]
53
- ])
54
- end
55
-
56
- it 'catches wrong extended alarm code id type' do
57
- invalid = message.dup
58
- invalid['xACId'] = 123
59
- expect( validate(invalid) ).to eq([
60
- ["/xACId", "string"]
61
- ])
62
- end
63
-
64
- it 'catches extraneous alarm code id' do
65
- invalid = message.dup
66
- invalid['aS'] = 'Active'
67
- expect( validate(invalid) ).to eq([
68
- ["", "required", {"missing_keys"=>["aS"]}]
69
- ])
70
- end
71
-
72
- end