rsmp_schemer 0.4.0 → 0.4.1

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.
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