rsmp_schemer 0.4.1 → 0.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 (192) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +15 -15
  3. data/lib/rsmp_schemer/version.rb +3 -3
  4. data/rsmp_schemer.gemspec +2 -2
  5. data/schemas/core_3.1.3/Gemfile.lock +20 -20
  6. data/schemas/core_3.1.3/schema/core/alarm.json +8 -4
  7. data/schemas/core_3.1.3/schema/core/core.json +0 -1
  8. data/schemas/core_3.1.3/schema/core/rsmp.json +0 -9
  9. data/schemas/core_3.1.3/spec/core/alarm_spec.rb +20 -7
  10. data/schemas/core_3.1.3/spec/core/command_request_spec.rb +3 -6
  11. data/schemas/core_3.1.3/spec/core/command_response_spec.rb +1 -43
  12. data/schemas/core_3.1.3/spec/core/status_request_spec.rb +4 -8
  13. data/schemas/core_3.1.3/spec/core/status_response_spec.rb +13 -8
  14. data/schemas/core_3.1.3/spec/core/status_subscribe_spec.rb +4 -8
  15. data/schemas/core_3.1.3/spec/core/status_unsubscribe_spec.rb +4 -8
  16. data/schemas/core_3.1.3/spec/core/status_update_spec.rb +4 -8
  17. data/schemas/core_3.1.3/spec/schemer_helper.rb +19 -17
  18. data/schemas/tlc_1.0.15/Gemfile.lock +17 -17
  19. data/schemas/tlc_1.0.15/README.md +7 -0
  20. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0001.json +1 -1
  21. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0002.json +1 -1
  22. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0003.json +1 -1
  23. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0004.json +1 -1
  24. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0005.json +1 -1
  25. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0006.json +1 -1
  26. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0007.json +1 -1
  27. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0008.json +1 -1
  28. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0009.json +1 -1
  29. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0010.json +1 -1
  30. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0101.json +1 -1
  31. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0201.json +1 -1
  32. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0202.json +1 -1
  33. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0301.json +1 -1
  34. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0302.json +1 -1
  35. data/schemas/tlc_1.0.15/schema/tlc/commands/M0002.json +1 -1
  36. data/schemas/tlc_1.0.15/schema/tlc/commands/M0003.json +1 -1
  37. data/schemas/tlc_1.0.15/schema/tlc/commands/M0004.json +1 -1
  38. data/schemas/tlc_1.0.15/schema/tlc/commands/M0005.json +1 -1
  39. data/schemas/tlc_1.0.15/schema/tlc/commands/M0006.json +1 -1
  40. data/schemas/tlc_1.0.15/schema/tlc/commands/M0007.json +1 -1
  41. data/schemas/tlc_1.0.15/schema/tlc/commands/M0008.json +1 -1
  42. data/schemas/tlc_1.0.15/schema/tlc/commands/M0010.json +1 -1
  43. data/schemas/tlc_1.0.15/schema/tlc/commands/M0011.json +1 -1
  44. data/schemas/tlc_1.0.15/schema/tlc/commands/M0012.json +1 -1
  45. data/schemas/tlc_1.0.15/schema/tlc/commands/M0013.json +1 -1
  46. data/schemas/tlc_1.0.15/schema/tlc/commands/M0014.json +1 -1
  47. data/schemas/tlc_1.0.15/schema/tlc/commands/M0015.json +1 -1
  48. data/schemas/tlc_1.0.15/schema/tlc/commands/M0016.json +1 -1
  49. data/schemas/tlc_1.0.15/schema/tlc/commands/M0017.json +1 -1
  50. data/schemas/tlc_1.0.15/schema/tlc/commands/M0018.json +1 -1
  51. data/schemas/tlc_1.0.15/schema/tlc/commands/M0019.json +1 -1
  52. data/schemas/tlc_1.0.15/schema/tlc/commands/M0020.json +1 -1
  53. data/schemas/tlc_1.0.15/schema/tlc/commands/M0021.json +1 -1
  54. data/schemas/tlc_1.0.15/schema/tlc/commands/M0103.json +1 -1
  55. data/schemas/tlc_1.0.15/schema/tlc/commands/M0104.json +1 -1
  56. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0001.json +1 -1
  57. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0002.json +1 -1
  58. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0003.json +1 -1
  59. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0004.json +1 -1
  60. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0005.json +1 -1
  61. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0006.json +1 -1
  62. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0007.json +1 -1
  63. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0008.json +1 -1
  64. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0009.json +1 -1
  65. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0010.json +1 -1
  66. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0011.json +1 -1
  67. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0012.json +1 -1
  68. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0013.json +1 -1
  69. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0014.json +1 -1
  70. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0015.json +1 -1
  71. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0016.json +1 -1
  72. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0017.json +1 -1
  73. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0018.json +1 -1
  74. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0019.json +1 -1
  75. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0020.json +1 -1
  76. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0021.json +1 -1
  77. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0022.json +1 -1
  78. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0023.json +1 -1
  79. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0024.json +1 -1
  80. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0025.json +1 -1
  81. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0026.json +1 -1
  82. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0027.json +1 -1
  83. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0028.json +2 -2
  84. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0029.json +1 -1
  85. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0030.json +1 -1
  86. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0031.json +1 -1
  87. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0091.json +1 -1
  88. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0092.json +1 -1
  89. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0095.json +1 -1
  90. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0096.json +1 -1
  91. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0097.json +1 -1
  92. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0098.json +2 -2
  93. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0201.json +1 -1
  94. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0202.json +2 -2
  95. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0203.json +2 -2
  96. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0204.json +2 -2
  97. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0205.json +3 -3
  98. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0206.json +3 -3
  99. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0207.json +3 -3
  100. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0208.json +11 -11
  101. data/schemas/tlc_1.0.15/schema/tlc/sxl.yaml +1655 -0
  102. metadata +8 -97
  103. data/schemas/core_3.1.3/examples/validate.rb +0 -32
  104. data/schemas/core_3.1.3/schema/core/aggregated_status_request.json +0 -9
  105. data/schemas/core_3.1.3/schema/tlc/alarms/A0001.json +0 -7
  106. data/schemas/core_3.1.3/schema/tlc/alarms/A0002.json +0 -7
  107. data/schemas/core_3.1.3/schema/tlc/alarms/A0003.json +0 -7
  108. data/schemas/core_3.1.3/schema/tlc/alarms/A0004.json +0 -7
  109. data/schemas/core_3.1.3/schema/tlc/alarms/A0005.json +0 -7
  110. data/schemas/core_3.1.3/schema/tlc/alarms/A0006.json +0 -7
  111. data/schemas/core_3.1.3/schema/tlc/alarms/A0007.json +0 -7
  112. data/schemas/core_3.1.3/schema/tlc/alarms/A0008.json +0 -19
  113. data/schemas/core_3.1.3/schema/tlc/alarms/A0009.json +0 -7
  114. data/schemas/core_3.1.3/schema/tlc/alarms/A0101.json +0 -7
  115. data/schemas/core_3.1.3/schema/tlc/alarms/A0201.json +0 -20
  116. data/schemas/core_3.1.3/schema/tlc/alarms/A0202.json +0 -20
  117. data/schemas/core_3.1.3/schema/tlc/alarms/A0301.json +0 -49
  118. data/schemas/core_3.1.3/schema/tlc/alarms/A0302.json +0 -59
  119. data/schemas/core_3.1.3/schema/tlc/alarms/alarms.json +0 -68
  120. data/schemas/core_3.1.3/schema/tlc/commands/M0001.json +0 -48
  121. data/schemas/core_3.1.3/schema/tlc/commands/M0002.json +0 -39
  122. data/schemas/core_3.1.3/schema/tlc/commands/M0003.json +0 -39
  123. data/schemas/core_3.1.3/schema/tlc/commands/M0004.json +0 -30
  124. data/schemas/core_3.1.3/schema/tlc/commands/M0005.json +0 -39
  125. data/schemas/core_3.1.3/schema/tlc/commands/M0006.json +0 -39
  126. data/schemas/core_3.1.3/schema/tlc/commands/M0007.json +0 -30
  127. data/schemas/core_3.1.3/schema/tlc/commands/M0008.json +0 -40
  128. data/schemas/core_3.1.3/schema/tlc/commands/M0010.json +0 -30
  129. data/schemas/core_3.1.3/schema/tlc/commands/M0011.json +0 -30
  130. data/schemas/core_3.1.3/schema/tlc/commands/M0012.json +0 -29
  131. data/schemas/core_3.1.3/schema/tlc/commands/M0013.json +0 -1
  132. data/schemas/core_3.1.3/schema/tlc/commands/M0014.json +0 -38
  133. data/schemas/core_3.1.3/schema/tlc/commands/M0015.json +0 -38
  134. data/schemas/core_3.1.3/schema/tlc/commands/M0016.json +0 -29
  135. data/schemas/core_3.1.3/schema/tlc/commands/M0017.json +0 -29
  136. data/schemas/core_3.1.3/schema/tlc/commands/M0018.json +0 -38
  137. data/schemas/core_3.1.3/schema/tlc/commands/M0019.json +0 -49
  138. data/schemas/core_3.1.3/schema/tlc/commands/M0020.json +0 -49
  139. data/schemas/core_3.1.3/schema/tlc/commands/M0021.json +0 -1
  140. data/schemas/core_3.1.3/schema/tlc/commands/M0103.json +0 -39
  141. data/schemas/core_3.1.3/schema/tlc/commands/M0104.json +0 -1
  142. data/schemas/core_3.1.3/schema/tlc/commands/command_requests.json +0 -7
  143. data/schemas/core_3.1.3/schema/tlc/commands/command_responses.json +0 -7
  144. data/schemas/core_3.1.3/schema/tlc/commands/commands.json +0 -97
  145. data/schemas/core_3.1.3/schema/tlc/statuses/S0001.json +0 -45
  146. data/schemas/core_3.1.3/schema/tlc/statuses/S0002.json +0 -17
  147. data/schemas/core_3.1.3/schema/tlc/statuses/S0003.json +0 -26
  148. data/schemas/core_3.1.3/schema/tlc/statuses/S0004.json +0 -26
  149. data/schemas/core_3.1.3/schema/tlc/statuses/S0005.json +0 -18
  150. data/schemas/core_3.1.3/schema/tlc/statuses/S0006.json +0 -27
  151. data/schemas/core_3.1.3/schema/tlc/statuses/S0007.json +0 -26
  152. data/schemas/core_3.1.3/schema/tlc/statuses/S0008.json +0 -26
  153. data/schemas/core_3.1.3/schema/tlc/statuses/S0009.json +0 -26
  154. data/schemas/core_3.1.3/schema/tlc/statuses/S0010.json +0 -26
  155. data/schemas/core_3.1.3/schema/tlc/statuses/S0011.json +0 -26
  156. data/schemas/core_3.1.3/schema/tlc/statuses/S0012.json +0 -26
  157. data/schemas/core_3.1.3/schema/tlc/statuses/S0013.json +0 -27
  158. data/schemas/core_3.1.3/schema/tlc/statuses/S0014.json +0 -17
  159. data/schemas/core_3.1.3/schema/tlc/statuses/S0015.json +0 -17
  160. data/schemas/core_3.1.3/schema/tlc/statuses/S0016.json +0 -17
  161. data/schemas/core_3.1.3/schema/tlc/statuses/S0017.json +0 -17
  162. data/schemas/core_3.1.3/schema/tlc/statuses/S0018.json +0 -17
  163. data/schemas/core_3.1.3/schema/tlc/statuses/S0019.json +0 -17
  164. data/schemas/core_3.1.3/schema/tlc/statuses/S0020.json +0 -27
  165. data/schemas/core_3.1.3/schema/tlc/statuses/S0021.json +0 -18
  166. data/schemas/core_3.1.3/schema/tlc/statuses/S0022.json +0 -17
  167. data/schemas/core_3.1.3/schema/tlc/statuses/S0023.json +0 -18
  168. data/schemas/core_3.1.3/schema/tlc/statuses/S0024.json +0 -18
  169. data/schemas/core_3.1.3/schema/tlc/statuses/S0025.json +0 -80
  170. data/schemas/core_3.1.3/schema/tlc/statuses/S0026.json +0 -18
  171. data/schemas/core_3.1.3/schema/tlc/statuses/S0027.json +0 -18
  172. data/schemas/core_3.1.3/schema/tlc/statuses/S0028.json +0 -18
  173. data/schemas/core_3.1.3/schema/tlc/statuses/S0029.json +0 -17
  174. data/schemas/core_3.1.3/schema/tlc/statuses/S0030.json +0 -1
  175. data/schemas/core_3.1.3/schema/tlc/statuses/S0031.json +0 -1
  176. data/schemas/core_3.1.3/schema/tlc/statuses/S0091.json +0 -27
  177. data/schemas/core_3.1.3/schema/tlc/statuses/S0092.json +0 -27
  178. data/schemas/core_3.1.3/schema/tlc/statuses/S0095.json +0 -17
  179. data/schemas/core_3.1.3/schema/tlc/statuses/S0096.json +0 -68
  180. data/schemas/core_3.1.3/schema/tlc/statuses/S0097.json +0 -26
  181. data/schemas/core_3.1.3/schema/tlc/statuses/S0201.json +0 -26
  182. data/schemas/core_3.1.3/schema/tlc/statuses/S0202.json +0 -26
  183. data/schemas/core_3.1.3/schema/tlc/statuses/S0203.json +0 -26
  184. data/schemas/core_3.1.3/schema/tlc/statuses/S0204.json +0 -98
  185. data/schemas/core_3.1.3/schema/tlc/statuses/S0205.json +0 -26
  186. data/schemas/core_3.1.3/schema/tlc/statuses/S0206.json +0 -26
  187. data/schemas/core_3.1.3/schema/tlc/statuses/S0207.json +0 -26
  188. data/schemas/core_3.1.3/schema/tlc/statuses/S0208.json +0 -98
  189. data/schemas/core_3.1.3/schema/tlc/statuses/statuses.json +0 -181
  190. data/schemas/core_3.1.3/schema/tlc/sxl.json +0 -24
  191. data/schemas/core_3.1.3/spec/tlc/M0001_spec.rb +0 -67
  192. data/schemas/core_3.1.3/spec/tlc/S0007_spec.rb +0 -233
@@ -1,98 +0,0 @@
1
- {
2
- "allOf" : [
3
- { "properties" : {
4
- "description": "Traffic Counting: Number of vehicles of given classification",
5
- "n" : { "enum" : ["start", "P", "PS", "L", "LS", "B", "SP", "MC", "C", "F"] }
6
- }},
7
- {
8
- "if" : { "required" : ["n"], "properties" : { "n" : { "const" : "start" }}},
9
- "then" : { "properties" : {
10
- "s" : {
11
- "$description": "Time stamp for start of measuring. Format according to W3C XML dateTime with a resolution of 3 decimal places. All time stamps in UTC. E.g. 2009-10-02T14:34:34.341Z",
12
- "$ref": "../../core/definitions.json#/timestamp"
13
- }
14
- }}
15
- },
16
- {
17
- "if" : { "required" : ["n"], "properties" : { "n" : { "const" : "P" }}},
18
- "then" : { "properties" : {
19
- "s" : {
20
- "$description": "Number of cars<br> Value expressed as an integer with a range of 0-65535.<br> Contains data from all detector logics. Each detector logic is separated with a comma. <br> The value is set to “-1” if no data could be measured (e.g. detector fault)<br>",
21
- "$ref": "../../core/definitions.json#/integer_list"
22
- }
23
- }}
24
- },
25
- {
26
- "if" : { "required" : ["n"], "properties" : { "n" : { "const" : "PS" }}},
27
- "then" : { "properties" : {
28
- "s" : {
29
- "$description": "Number of cars with trailers<br> Value expressed as an integer with a range of 0-65535.<br> Contains data from all detector logics. Each detector logic is separated with a comma. <br> The value is set to “-1” if no data could be measured (e.g. detector fault)<br>",
30
- "$ref": "../../core/definitions.json#/integer_list"
31
- }
32
- }}
33
- },
34
- {
35
- "if" : { "required" : ["n"], "properties" : { "n" : { "const" : "L" }}},
36
- "then" : { "properties" : {
37
- "s" : {
38
- "$description": "Number of trucks<br> Value expressed as an integer with a range of 0-65535.<br> Contains data from all detector logics. Each detector logic is separated with a comma. <br> The value is set to “-1” if no data could be measured (e.g. detector fault)<br>",
39
- "$ref": "../../core/definitions.json#/integer_list"
40
- }
41
- }}
42
- },
43
- {
44
- "if" : { "required" : ["n"], "properties" : { "n" : { "const" : "LS" }}},
45
- "then" : { "properties" : {
46
- "s" : {
47
- "$description": "Number of trucks with trailers<br> Value expressed as an integer with a range of 0-65535.<br> Contains data from all detector logics. Each detector logic is separated with a comma. <br> The value is set to “-1” if no data could be measured (e.g. detector fault)<br>",
48
- "$ref": "../../core/definitions.json#/integer_list"
49
- }
50
- }}
51
- },
52
- {
53
- "if" : { "required" : ["n"], "properties" : { "n" : { "const" : "B" }}},
54
- "then" : { "properties" : {
55
- "s" : {
56
- "$description": "Number of busses<br> Value expressed as an integer with a range of 0-65535.<br> Contains data from all detector logics. Each detector logic is separated with a comma. <br> The value is set to “-1” if no data could be measured (e.g. detector fault)<br>",
57
- "$ref": "../../core/definitions.json#/integer_list"
58
- }
59
- }}
60
- },
61
- {
62
- "if" : { "required" : ["n"], "properties" : { "n" : { "const" : "SP" }}},
63
- "then" : { "properties" : {
64
- "s" : {
65
- "$description": "Number of trams<br> Value expressed as an integer with a range of 0-65535.<br> Contains data from all detector logics. Each detector logic is separated with a comma. <br> The value is set to “-1” if no data could be measured (e.g. detector fault)<br>",
66
- "$ref": "../../core/definitions.json#/integer_list"
67
- }
68
- }}
69
- },
70
- {
71
- "if" : { "required" : ["n"], "properties" : { "n" : { "const" : "MC" }}},
72
- "then" : { "properties" : {
73
- "s" : {
74
- "$description": "Number of motor cycles<br> Value expressed as an integer with a range of 0-65535.<br> Contains data from all detector logics. Each detector logic is separated with a comma. <br> The value is set to “-1” if no data could be measured (e.g. detector fault)<br>",
75
- "$ref": "../../core/definitions.json#/integer_list"
76
- }
77
- }}
78
- },
79
- {
80
- "if" : { "required" : ["n"], "properties" : { "n" : { "const" : "C" }}},
81
- "then" : { "properties" : {
82
- "s" : {
83
- "$description": "Number of bicycles<br> Value expressed as an integer with a range of 0-65535.<br> Contains data from all detector logics. Each detector logic is separated with a comma. <br> The value is set to “-1” if no data could be measured (e.g. detector fault)<br>",
84
- "$ref": "../../core/definitions.json#/integer_list"
85
- }
86
- }}
87
- },
88
- {
89
- "if" : { "required" : ["n"], "properties" : { "n" : { "const" : "F" }}},
90
- "then" : { "properties" : {
91
- "s" : {
92
- "$description": "Number of pedestrians<br> Value expressed as an integer with a range of 0-65535.<br> Contains data from all detector logics. Each detector logic is separated with a comma. <br> The value is set to “-1” if no data could be measured (e.g. detector fault)<br>",
93
- "$ref": "../../core/definitions.json#/integer_list"
94
- }
95
- }}
96
- }
97
- ]
98
- }
@@ -1,181 +0,0 @@
1
- {
2
- "properties" : {
3
- "sS" : {
4
- "items" : {
5
- "allOf" : [
6
- {
7
- "properties": { "sCI" : { "enum": ["S0001", "S0002", "S0003", "S0004", "S0005", "S0006", "S0007", "S0008", "S0009", "S0010", "S0011", "S0012", "S0013", "S0014", "S0015", "S0016", "S0017", "S0018", "S0019", "S0020", "S0021", "S0022", "S0023", "S0024", "S0025", "S0026", "S0027", "S0028", "S0029", "S0030", "S0031", "S0091", "S0092", "S0095", "S0096", "S0097", "S0201", "S0202", "S0203", "S0204", "S0205", "S0206", "S0207", "S0208"] }}
8
- },
9
- {
10
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0001" }}},
11
- "then" : { "$ref" : "S0001.json" }
12
- },
13
- {
14
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0002" }}},
15
- "then" : { "$ref" : "S0002.json" }
16
- },
17
- {
18
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0003" }}},
19
- "then" : { "$ref" : "S0003.json" }
20
- },
21
- {
22
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0004" }}},
23
- "then" : { "$ref" : "S0004.json" }
24
- },
25
- {
26
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0005" }}},
27
- "then" : { "$ref" : "S0005.json" }
28
- },
29
- {
30
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0006" }}},
31
- "then" : { "$ref" : "S0006.json" }
32
- },
33
- {
34
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0007" }}},
35
- "then" : { "$ref" : "S0007.json" }
36
- },
37
- {
38
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0008" }}},
39
- "then" : { "$ref" : "S0008.json" }
40
- },
41
- {
42
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0009" }}},
43
- "then" : { "$ref" : "S0009.json" }
44
- },
45
- {
46
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0010" }}},
47
- "then" : { "$ref" : "S0010.json" }
48
- },
49
- {
50
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0011" }}},
51
- "then" : { "$ref" : "S0011.json" }
52
- },
53
- {
54
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0012" }}},
55
- "then" : { "$ref" : "S0012.json" }
56
- },
57
- {
58
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0013" }}},
59
- "then" : { "$ref" : "S0013.json" }
60
- },
61
- {
62
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0014" }}},
63
- "then" : { "$ref" : "S0014.json" }
64
- },
65
- {
66
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0015" }}},
67
- "then" : { "$ref" : "S0015.json" }
68
- },
69
- {
70
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0016" }}},
71
- "then" : { "$ref" : "S0016.json" }
72
- },
73
- {
74
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0017" }}},
75
- "then" : { "$ref" : "S0017.json" }
76
- },
77
- {
78
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0018" }}},
79
- "then" : { "$ref" : "S0018.json" }
80
- },
81
- {
82
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0019" }}},
83
- "then" : { "$ref" : "S0019.json" }
84
- },
85
- {
86
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0020" }}},
87
- "then" : { "$ref" : "S0020.json" }
88
- },
89
- {
90
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0021" }}},
91
- "then" : { "$ref" : "S0021.json" }
92
- },
93
- {
94
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0022" }}},
95
- "then" : { "$ref" : "S0022.json" }
96
- },
97
- {
98
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0023" }}},
99
- "then" : { "$ref" : "S0023.json" }
100
- },
101
- {
102
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0024" }}},
103
- "then" : { "$ref" : "S0024.json" }
104
- },
105
- {
106
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0025" }}},
107
- "then" : { "$ref" : "S0025.json" }
108
- },
109
- {
110
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0026" }}},
111
- "then" : { "$ref" : "S0026.json" }
112
- },
113
- {
114
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0027" }}},
115
- "then" : { "$ref" : "S0027.json" }
116
- },
117
- {
118
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0028" }}},
119
- "then" : { "$ref" : "S0028.json" }
120
- },
121
- {
122
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0029" }}},
123
- "then" : { "$ref" : "S0029.json" }
124
- },
125
- {
126
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0030" }}},
127
- "then" : { "$ref" : "S0030.json" }
128
- },
129
- {
130
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0091" }}},
131
- "then" : { "$ref" : "S0091.json" }
132
- },
133
- {
134
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0092" }}},
135
- "then" : { "$ref" : "S0092.json" }
136
- },
137
- {
138
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0095" }}},
139
- "then" : { "$ref" : "S0095.json" }
140
- },
141
- {
142
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0096" }}},
143
- "then" : { "$ref" : "S0096.json" }
144
- },
145
- {
146
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0201" }}},
147
- "then" : { "$ref" : "S0201.json" }
148
- },
149
- {
150
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0202" }}},
151
- "then" : { "$ref" : "S0202.json" }
152
- },
153
- {
154
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0203" }}},
155
- "then" : { "$ref" : "S0203.json" }
156
- },
157
- {
158
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0204" }}},
159
- "then" : { "$ref" : "S0204.json" }
160
- },
161
- {
162
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0205" }}},
163
- "then" : { "$ref" : "S0205.json" }
164
- },
165
- {
166
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0206" }}},
167
- "then" : { "$ref" : "S0206.json" }
168
- },
169
- {
170
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0207" }}},
171
- "then" : { "$ref" : "S0207.json" }
172
- },
173
- {
174
- "if": { "required" : ["sCI"], "properties" : { "sCI": { "const": "S0208" }}},
175
- "then" : { "$ref" : "S0208.json" }
176
- }
177
- ]
178
- }
179
- }
180
- }
181
- }
@@ -1,24 +0,0 @@
1
- {
2
- "description": "A schema validatating message against the RSMP SXL for Traffic Light Controllers",
3
- "allOf" : [
4
- {
5
- "$ref": "../core/rsmp.json"
6
- },
7
- {
8
- "if" : { "required" : ["type"], "properties" : { "type" : { "const" : "CommandRequest" }}},
9
- "then" : { "$ref" : "commands/command_requests.json" }
10
- },
11
- {
12
- "if" : { "required" : ["type"], "properties" : { "type" : { "const" : "CommandResponse" }}},
13
- "then" : { "$ref" : "commands/command_responses.json" }
14
- },
15
- {
16
- "if" : { "required" : ["type"], "properties" : { "type" : { "enum" : ["StatusRequest","StatusResponse","StatusSubscribe","StatusUnsubscribe","StatusUpdate"] }}},
17
- "then" : { "$ref" : "statuses/statuses.json" }
18
- },
19
- {
20
- "if" : { "required" : ["type"], "properties" : { "type" : { "const" : "Alarm" }}},
21
- "then" : { "$ref" : "alarms/alarms.json" }
22
- }
23
- ]
24
- }
@@ -1,67 +0,0 @@
1
- RSpec.describe "Traffic Light Controller RSMP SXL Schema validation" do
2
- let(:message) {{
3
- "mType" => "rSMsg",
4
- "mId" => "4173c2c8-a933-43cb-9425-66d4613731ed",
5
- "type" => "CommandRequest",
6
- "siteId" => [
7
- { "sId" => "RN+SI0001" }
8
- ],
9
- "cId" => "O+14439=481WA001",
10
- "arg" => [
11
- {
12
- "cCI" => "M0001",
13
- "n" => "status",
14
- "cO" => "setValue",
15
- "v" => "YellowFlash"
16
- }
17
- ]
18
- }}
19
-
20
- it 'accepts valid command' do
21
- expect( validate(message) ).to be_nil
22
- end
23
-
24
- it 'catches bad value' do
25
- invalid = message.dup
26
- invalid["arg"].first['v'] = 'bad'
27
- expect( validate(invalid) ).to eq([
28
- ["/arg/0/v", "enum"]
29
- ])
30
- end
31
-
32
- it 'catches bad name' do
33
- invalid = message.dup
34
- invalid["arg"].first['n'] = 'bad'
35
- expect( validate(invalid) ).to eq([
36
- ["/arg/0/n", "enum"]
37
- ])
38
- end
39
-
40
- it 'catches bad status values' do
41
- invalid = message.dup
42
- invalid["arg"].first['n'] = 'status'
43
- invalid["arg"].first['v'] = 'bad'
44
- expect( validate(invalid) ).to eq([
45
- ["/arg/0/v", "enum"]
46
- ])
47
- end
48
-
49
- it 'catches bad timeout values' do
50
- invalid = message.dup
51
- invalid["arg"].first['n'] = 'timeout'
52
- invalid["arg"].first['v'] = 'bad'
53
- expect( validate(invalid) ).to eq([
54
- ["/arg/0/v", "pattern"]
55
- ])
56
- end
57
-
58
- it 'catches bad intersection values' do
59
- invalid = message.dup
60
- invalid["arg"].first['n'] = 'intersection'
61
- invalid["arg"].first['v'] = 'bad'
62
- expect( validate(invalid) ).to eq([
63
- ["/arg/0/v", "pattern"]
64
- ])
65
- end
66
-
67
- end
@@ -1,233 +0,0 @@
1
- RSpec.describe "Traffic Light Controller RSMP SXL Schema validation" do
2
- let(:message) {{
3
- "mType" => "rSMsg",
4
- "mId" => "4173c2c8-a933-43cb-9425-66d4613731ed",
5
- "type" => "StatusResponse",
6
- "cId" => "O+14439=481WA001",
7
- "sTs" => "2015-06-08T09:15:18.266Z",
8
- "sS" => [
9
- { "sCI" => "S0007", "n" => "intersection", "s" => "1,2,3", "q" => "recent" },
10
- { "sCI" => "S0007", "n" => "status", "s" => "True,False,True", "q" => "recent" }
11
- ]
12
- }}
13
-
14
- it 'accepts valid status request with a single intersection' do
15
- message["sS"] = [
16
- { "sCI" => "S0007", "n" => "intersection", "s" => "0", "q" => "recent" },
17
- { "sCI" => "S0007", "n" => "status", "s" => "True", "q" => "recent" }
18
- ]
19
- expect( validate(message) ).to be_nil
20
-
21
- message["sS"] = [
22
- { "sCI" => "S0007", "n" => "intersection", "s" => "0", "q" => "recent" },
23
- { "sCI" => "S0007", "n" => "status", "s" => "False", "q" => "recent" }
24
- ]
25
- expect( validate(message) ).to be_nil
26
- end
27
-
28
- it 'accepts valid status request with two intersections' do
29
- message["sS"] = [
30
- { "sCI" => "S0007", "n" => "intersection", "s" => "1,2", "q" => "recent" },
31
- { "sCI" => "S0007", "n" => "status", "s" => "True,True", "q" => "recent" }
32
- ]
33
- expect( validate(message) ).to be_nil
34
-
35
- message["sS"] = [
36
- { "sCI" => "S0007", "n" => "intersection", "s" => "1,2", "q" => "recent" },
37
- { "sCI" => "S0007", "n" => "status", "s" => "True,False", "q" => "recent" }
38
- ]
39
- expect( validate(message) ).to be_nil
40
-
41
- message["sS"] = [
42
- { "sCI" => "S0007", "n" => "intersection", "s" => "1,2", "q" => "recent" },
43
- { "sCI" => "S0007", "n" => "status", "s" => "False,True", "q" => "recent" }
44
- ]
45
- expect( validate(message) ).to be_nil
46
-
47
- message["sS"] = [
48
- { "sCI" => "S0007", "n" => "intersection", "s" => "1,2", "q" => "recent" },
49
- { "sCI" => "S0007", "n" => "status", "s" => "False,True", "q" => "recent" }
50
- ]
51
- expect( validate(message) ).to be_nil
52
- end
53
-
54
- it 'catches bad intersections list' do
55
- invalid = message.dup
56
- invalid["sS"] = [
57
- { "sCI" => "S0007", "n" => "intersection", "s" => "1,2,", "q" => "recent" },
58
- ]
59
- expect( validate(invalid) ).to eq([
60
- ["/sS/0/s", "pattern"]
61
- ])
62
-
63
- invalid["sS"] = [
64
- { "sCI" => "S0007", "n" => "intersection", "s" => ",1,2", "q" => "recent" },
65
- ]
66
- expect( validate(invalid) ).to eq([
67
- ["/sS/0/s", "pattern"]
68
- ])
69
-
70
- invalid["sS"] = [
71
- { "sCI" => "S0007", "n" => "intersection", "s" => ",", "q" => "recent" },
72
- ]
73
- expect( validate(invalid) ).to eq([
74
- ["/sS/0/s", "pattern"]
75
- ])
76
-
77
- invalid["sS"] = [
78
- { "sCI" => "S0007", "n" => "intersection", "s" => "1,,2", "q" => "recent" },
79
- ]
80
- expect( validate(invalid) ).to eq([
81
- ["/sS/0/s", "pattern"]
82
- ])
83
-
84
- invalid["sS"] = [
85
- { "sCI" => "S0007", "n" => "intersection", "s" => "1,a", "q" => "recent" },
86
- ]
87
- expect( validate(invalid) ).to eq([
88
- ["/sS/0/s", "pattern"]
89
- ])
90
- end
91
-
92
- it 'catches bad intersections list' do
93
- invalid = message.dup
94
- invalid["sS"] = [
95
- { "sCI" => "S0007", "n" => "status", "s" => "True,False,", "q" => "recent" },
96
- ]
97
- expect( validate(invalid) ).to eq([
98
- ["/sS/0/s", "pattern"]
99
- ])
100
-
101
- invalid["sS"] = [
102
- { "sCI" => "S0007", "n" => "status", "s" => ",True,False", "q" => "recent" },
103
- ]
104
- expect( validate(invalid) ).to eq([
105
- ["/sS/0/s", "pattern"]
106
- ])
107
-
108
- invalid["sS"] = [
109
- { "sCI" => "S0007", "n" => "status", "s" => ",", "q" => "recent" },
110
- ]
111
- expect( validate(invalid) ).to eq([
112
- ["/sS/0/s", "pattern"]
113
- ])
114
-
115
- invalid["sS"] = [
116
- { "sCI" => "S0007", "n" => "status", "s" => "True,,False", "q" => "recent" },
117
- ]
118
- expect( validate(invalid) ).to eq([
119
- ["/sS/0/s", "pattern"]
120
- ])
121
-
122
- invalid["sS"] = [
123
- { "sCI" => "S0007", "n" => "status", "s" => "True,1", "q" => "recent" },
124
- ]
125
- expect( validate(invalid) ).to eq([
126
- ["/sS/0/s", "pattern"]
127
- ])
128
- end
129
- it 'catches missing component id' do
130
- invalid = message.dup
131
- invalid.delete 'cId'
132
- expect( validate(invalid) ).to eq([
133
- ["", "required", {"missing_keys"=>["cId"]}]
134
- ])
135
- end
136
-
137
- it 'catches bad status code' do
138
- invalid = message.dup
139
- invalid['sS'].first['sCI'] = '99'
140
- expect( validate(invalid) ).to eq([
141
- ["/sS/0/sCI", "pattern"],
142
- ["/sS/0/sCI", "enum"]
143
- ])
144
- end
145
-
146
- it 'catches missing sS' do
147
- invalid = message.dup
148
- invalid.delete 'sS'
149
- expect( validate(invalid) ).to eq([
150
- ["", "required", {"missing_keys"=>['sS']}]
151
- ])
152
- end
153
-
154
- it 'catches empty sS array' do
155
- invalid = message.dup
156
- invalid['sS'].clear
157
- expect( validate(invalid) ).to eq([
158
- ["/sS", "minItems"]
159
- ])
160
- end
161
-
162
- it 'catches bad sS type' do
163
- invalid = message.dup
164
- invalid['sS'] = {}
165
- expect( validate(invalid) ).to eq([
166
- ["/sS", "array"]
167
- ])
168
- end
169
-
170
- it 'catches missing status code' do
171
- invalid = message.dup
172
- invalid['sS'].first.delete 'sCI'
173
- expect( validate(invalid) ).to eq([
174
- ["/sS/0", "required", {"missing_keys"=>["sCI"]}]
175
- ])
176
- end
177
-
178
- it 'catches bad status code' do
179
- invalid = message.dup
180
- invalid['sS'].first['sCI'] = 3
181
- expect( validate(invalid) ).to eq([
182
- ["/sS/0/sCI", "string"],
183
- ["/sS/0/sCI", "enum"]
184
- ])
185
-
186
- invalid['sS'].first['sCI'] = '3'
187
- expect( validate(invalid) ).to eq([
188
- ["/sS/0/sCI", "pattern"],
189
- ["/sS/0/sCI", "enum"]
190
- ])
191
- end
192
-
193
- it 'catches missing name' do
194
- invalid = message.dup
195
- invalid['sS'].first.delete 'n'
196
- expect( validate(invalid) ).to eq([
197
- ["/sS/0", "required", {"missing_keys"=>["n"]}]
198
- ])
199
- end
200
-
201
- it 'catches bad name' do
202
- invalid = message.dup
203
- invalid['sS'].first['n'] = 3
204
- expect( validate(invalid) ).to eq([
205
- ["/sS/0/n", "string"],
206
- ["/sS/0/n", "enum"]
207
- ])
208
- end
209
-
210
- it 'catches missing value' do
211
- invalid = message.dup
212
- invalid['sS'].first.delete 's'
213
- expect( validate(invalid) ).to eq([
214
- ["/sS/0", "required", {"missing_keys"=>["s"]}]
215
- ])
216
- end
217
-
218
- it 'catches missing quality' do
219
- invalid = message.dup
220
- invalid['sS'].first.delete 'q'
221
- expect( validate(invalid) ).to eq([
222
- ["/sS/0", "required", {"missing_keys"=>["q"]}]
223
- ])
224
- end
225
-
226
- it 'catches bad quality' do
227
- invalid = message.dup
228
- invalid['sS'].first['q'] = 'great'
229
- expect( validate(invalid) ).to eq([
230
- ["/sS/0/q", "enum"]
231
- ])
232
- end
233
- end