rsmp_schemer 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
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