rsmp_schemer 0.3.2 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (218) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +23 -22
  3. data/lib/rsmp_schemer/version.rb +3 -3
  4. data/rsmp_schemer.gemspec +3 -3
  5. data/schemas/core_3.1.2/schema/core/alarm.json +8 -4
  6. data/schemas/core_3.1.2/spec/core/alarm_spec.rb +15 -0
  7. data/schemas/core_3.1.3/Gemfile.lock +20 -20
  8. data/schemas/core_3.1.3/schema/core/alarm.json +8 -4
  9. data/schemas/core_3.1.3/schema/core/core.json +0 -1
  10. data/schemas/core_3.1.3/schema/core/rsmp.json +0 -9
  11. data/schemas/core_3.1.3/spec/core/alarm_spec.rb +20 -7
  12. data/schemas/core_3.1.3/spec/core/command_request_spec.rb +3 -6
  13. data/schemas/core_3.1.3/spec/core/command_response_spec.rb +1 -43
  14. data/schemas/core_3.1.3/spec/core/status_request_spec.rb +4 -8
  15. data/schemas/core_3.1.3/spec/core/status_response_spec.rb +13 -8
  16. data/schemas/core_3.1.3/spec/core/status_subscribe_spec.rb +4 -8
  17. data/schemas/core_3.1.3/spec/core/status_unsubscribe_spec.rb +4 -8
  18. data/schemas/core_3.1.3/spec/core/status_update_spec.rb +4 -8
  19. data/schemas/core_3.1.3/spec/schemer_helper.rb +19 -17
  20. data/schemas/core_3.1.4/.gitignore +1 -0
  21. data/schemas/core_3.1.4/schema/core/alarm.json +8 -4
  22. data/schemas/core_3.1.4/spec/core/alarm_spec.rb +15 -0
  23. data/schemas/core_3.1.4/spec/core/version_spec.rb +3 -2
  24. data/schemas/core_3.1.5/.gitignore +1 -0
  25. data/schemas/core_3.1.5/schema/core/alarm.json +40 -41
  26. data/schemas/core_3.1.5/schema/core/alarm_issue.json +44 -0
  27. data/schemas/core_3.1.5/schema/core/alarm_suspend_resume.json +3 -0
  28. data/schemas/core_3.1.5/schema/core/alarm_suspended_resumed.json +47 -0
  29. data/schemas/core_3.1.5/schema/core/command_response.json +1 -1
  30. data/schemas/core_3.1.5/schema/core/status_response.json +1 -1
  31. data/schemas/core_3.1.5/schema/core/status_update.json +1 -1
  32. data/schemas/core_3.1.5/spec/core/alarm_issue_spec.rb +299 -0
  33. data/schemas/core_3.1.5/spec/core/alarm_resume_spec.rb +93 -0
  34. data/schemas/core_3.1.5/spec/core/alarm_resumed_spec.rb +277 -0
  35. data/schemas/core_3.1.5/spec/core/alarm_suspend_spec.rb +93 -0
  36. data/schemas/core_3.1.5/spec/core/alarm_suspended_spec.rb +277 -0
  37. data/schemas/core_3.1.5/spec/core/version_spec.rb +3 -2
  38. data/schemas/tlc_1.0.15/Gemfile.lock +17 -17
  39. data/schemas/tlc_1.0.15/README.md +7 -0
  40. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0001.json +1 -1
  41. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0002.json +1 -1
  42. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0003.json +1 -1
  43. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0004.json +1 -1
  44. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0005.json +1 -1
  45. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0006.json +1 -1
  46. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0007.json +1 -1
  47. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0008.json +1 -1
  48. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0009.json +1 -1
  49. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0010.json +1 -1
  50. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0101.json +1 -1
  51. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0201.json +1 -1
  52. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0202.json +1 -1
  53. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0301.json +1 -1
  54. data/schemas/tlc_1.0.15/schema/tlc/alarms/A0302.json +1 -1
  55. data/schemas/tlc_1.0.15/schema/tlc/commands/M0002.json +1 -1
  56. data/schemas/tlc_1.0.15/schema/tlc/commands/M0003.json +1 -1
  57. data/schemas/tlc_1.0.15/schema/tlc/commands/M0004.json +1 -1
  58. data/schemas/tlc_1.0.15/schema/tlc/commands/M0005.json +1 -1
  59. data/schemas/tlc_1.0.15/schema/tlc/commands/M0006.json +1 -1
  60. data/schemas/tlc_1.0.15/schema/tlc/commands/M0007.json +1 -1
  61. data/schemas/tlc_1.0.15/schema/tlc/commands/M0008.json +1 -1
  62. data/schemas/tlc_1.0.15/schema/tlc/commands/M0010.json +1 -1
  63. data/schemas/tlc_1.0.15/schema/tlc/commands/M0011.json +1 -1
  64. data/schemas/tlc_1.0.15/schema/tlc/commands/M0012.json +1 -1
  65. data/schemas/tlc_1.0.15/schema/tlc/commands/M0013.json +1 -1
  66. data/schemas/tlc_1.0.15/schema/tlc/commands/M0014.json +1 -1
  67. data/schemas/tlc_1.0.15/schema/tlc/commands/M0015.json +1 -1
  68. data/schemas/tlc_1.0.15/schema/tlc/commands/M0016.json +1 -1
  69. data/schemas/tlc_1.0.15/schema/tlc/commands/M0017.json +1 -1
  70. data/schemas/tlc_1.0.15/schema/tlc/commands/M0018.json +1 -1
  71. data/schemas/tlc_1.0.15/schema/tlc/commands/M0019.json +1 -1
  72. data/schemas/tlc_1.0.15/schema/tlc/commands/M0020.json +1 -1
  73. data/schemas/tlc_1.0.15/schema/tlc/commands/M0021.json +1 -1
  74. data/schemas/tlc_1.0.15/schema/tlc/commands/M0103.json +1 -1
  75. data/schemas/tlc_1.0.15/schema/tlc/commands/M0104.json +1 -1
  76. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0001.json +1 -1
  77. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0002.json +1 -1
  78. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0003.json +1 -1
  79. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0004.json +1 -1
  80. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0005.json +1 -1
  81. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0006.json +1 -1
  82. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0007.json +1 -1
  83. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0008.json +1 -1
  84. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0009.json +1 -1
  85. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0010.json +1 -1
  86. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0011.json +1 -1
  87. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0012.json +1 -1
  88. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0013.json +1 -1
  89. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0014.json +1 -1
  90. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0015.json +1 -1
  91. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0016.json +1 -1
  92. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0017.json +1 -1
  93. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0018.json +1 -1
  94. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0019.json +1 -1
  95. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0020.json +1 -1
  96. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0021.json +1 -1
  97. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0022.json +1 -1
  98. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0023.json +1 -1
  99. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0024.json +1 -1
  100. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0025.json +1 -1
  101. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0026.json +1 -1
  102. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0027.json +1 -1
  103. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0028.json +2 -2
  104. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0029.json +1 -1
  105. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0030.json +1 -1
  106. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0031.json +1 -1
  107. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0091.json +1 -1
  108. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0092.json +1 -1
  109. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0095.json +1 -1
  110. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0096.json +1 -1
  111. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0097.json +1 -1
  112. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0098.json +2 -2
  113. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0201.json +1 -1
  114. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0202.json +2 -2
  115. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0203.json +2 -2
  116. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0204.json +2 -2
  117. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0205.json +3 -3
  118. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0206.json +3 -3
  119. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0207.json +3 -3
  120. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0208.json +11 -11
  121. data/schemas/tlc_1.0.15/schema/tlc/sxl.yaml +1655 -0
  122. metadata +20 -105
  123. data/schemas/core_3.1.2/examples/validate.rb +0 -35
  124. data/schemas/core_3.1.3/examples/validate.rb +0 -32
  125. data/schemas/core_3.1.3/schema/core/aggregated_status_request.json +0 -9
  126. data/schemas/core_3.1.3/schema/tlc/alarms/A0001.json +0 -7
  127. data/schemas/core_3.1.3/schema/tlc/alarms/A0002.json +0 -7
  128. data/schemas/core_3.1.3/schema/tlc/alarms/A0003.json +0 -7
  129. data/schemas/core_3.1.3/schema/tlc/alarms/A0004.json +0 -7
  130. data/schemas/core_3.1.3/schema/tlc/alarms/A0005.json +0 -7
  131. data/schemas/core_3.1.3/schema/tlc/alarms/A0006.json +0 -7
  132. data/schemas/core_3.1.3/schema/tlc/alarms/A0007.json +0 -7
  133. data/schemas/core_3.1.3/schema/tlc/alarms/A0008.json +0 -19
  134. data/schemas/core_3.1.3/schema/tlc/alarms/A0009.json +0 -7
  135. data/schemas/core_3.1.3/schema/tlc/alarms/A0101.json +0 -7
  136. data/schemas/core_3.1.3/schema/tlc/alarms/A0201.json +0 -20
  137. data/schemas/core_3.1.3/schema/tlc/alarms/A0202.json +0 -20
  138. data/schemas/core_3.1.3/schema/tlc/alarms/A0301.json +0 -49
  139. data/schemas/core_3.1.3/schema/tlc/alarms/A0302.json +0 -59
  140. data/schemas/core_3.1.3/schema/tlc/alarms/alarms.json +0 -68
  141. data/schemas/core_3.1.3/schema/tlc/commands/M0001.json +0 -48
  142. data/schemas/core_3.1.3/schema/tlc/commands/M0002.json +0 -39
  143. data/schemas/core_3.1.3/schema/tlc/commands/M0003.json +0 -39
  144. data/schemas/core_3.1.3/schema/tlc/commands/M0004.json +0 -30
  145. data/schemas/core_3.1.3/schema/tlc/commands/M0005.json +0 -39
  146. data/schemas/core_3.1.3/schema/tlc/commands/M0006.json +0 -39
  147. data/schemas/core_3.1.3/schema/tlc/commands/M0007.json +0 -30
  148. data/schemas/core_3.1.3/schema/tlc/commands/M0008.json +0 -40
  149. data/schemas/core_3.1.3/schema/tlc/commands/M0010.json +0 -30
  150. data/schemas/core_3.1.3/schema/tlc/commands/M0011.json +0 -30
  151. data/schemas/core_3.1.3/schema/tlc/commands/M0012.json +0 -29
  152. data/schemas/core_3.1.3/schema/tlc/commands/M0013.json +0 -1
  153. data/schemas/core_3.1.3/schema/tlc/commands/M0014.json +0 -38
  154. data/schemas/core_3.1.3/schema/tlc/commands/M0015.json +0 -38
  155. data/schemas/core_3.1.3/schema/tlc/commands/M0016.json +0 -29
  156. data/schemas/core_3.1.3/schema/tlc/commands/M0017.json +0 -29
  157. data/schemas/core_3.1.3/schema/tlc/commands/M0018.json +0 -38
  158. data/schemas/core_3.1.3/schema/tlc/commands/M0019.json +0 -49
  159. data/schemas/core_3.1.3/schema/tlc/commands/M0020.json +0 -49
  160. data/schemas/core_3.1.3/schema/tlc/commands/M0021.json +0 -1
  161. data/schemas/core_3.1.3/schema/tlc/commands/M0103.json +0 -39
  162. data/schemas/core_3.1.3/schema/tlc/commands/M0104.json +0 -1
  163. data/schemas/core_3.1.3/schema/tlc/commands/command_requests.json +0 -7
  164. data/schemas/core_3.1.3/schema/tlc/commands/command_responses.json +0 -7
  165. data/schemas/core_3.1.3/schema/tlc/commands/commands.json +0 -97
  166. data/schemas/core_3.1.3/schema/tlc/statuses/S0001.json +0 -45
  167. data/schemas/core_3.1.3/schema/tlc/statuses/S0002.json +0 -17
  168. data/schemas/core_3.1.3/schema/tlc/statuses/S0003.json +0 -26
  169. data/schemas/core_3.1.3/schema/tlc/statuses/S0004.json +0 -26
  170. data/schemas/core_3.1.3/schema/tlc/statuses/S0005.json +0 -18
  171. data/schemas/core_3.1.3/schema/tlc/statuses/S0006.json +0 -27
  172. data/schemas/core_3.1.3/schema/tlc/statuses/S0007.json +0 -26
  173. data/schemas/core_3.1.3/schema/tlc/statuses/S0008.json +0 -26
  174. data/schemas/core_3.1.3/schema/tlc/statuses/S0009.json +0 -26
  175. data/schemas/core_3.1.3/schema/tlc/statuses/S0010.json +0 -26
  176. data/schemas/core_3.1.3/schema/tlc/statuses/S0011.json +0 -26
  177. data/schemas/core_3.1.3/schema/tlc/statuses/S0012.json +0 -26
  178. data/schemas/core_3.1.3/schema/tlc/statuses/S0013.json +0 -27
  179. data/schemas/core_3.1.3/schema/tlc/statuses/S0014.json +0 -17
  180. data/schemas/core_3.1.3/schema/tlc/statuses/S0015.json +0 -17
  181. data/schemas/core_3.1.3/schema/tlc/statuses/S0016.json +0 -17
  182. data/schemas/core_3.1.3/schema/tlc/statuses/S0017.json +0 -17
  183. data/schemas/core_3.1.3/schema/tlc/statuses/S0018.json +0 -17
  184. data/schemas/core_3.1.3/schema/tlc/statuses/S0019.json +0 -17
  185. data/schemas/core_3.1.3/schema/tlc/statuses/S0020.json +0 -27
  186. data/schemas/core_3.1.3/schema/tlc/statuses/S0021.json +0 -18
  187. data/schemas/core_3.1.3/schema/tlc/statuses/S0022.json +0 -17
  188. data/schemas/core_3.1.3/schema/tlc/statuses/S0023.json +0 -18
  189. data/schemas/core_3.1.3/schema/tlc/statuses/S0024.json +0 -18
  190. data/schemas/core_3.1.3/schema/tlc/statuses/S0025.json +0 -80
  191. data/schemas/core_3.1.3/schema/tlc/statuses/S0026.json +0 -18
  192. data/schemas/core_3.1.3/schema/tlc/statuses/S0027.json +0 -18
  193. data/schemas/core_3.1.3/schema/tlc/statuses/S0028.json +0 -18
  194. data/schemas/core_3.1.3/schema/tlc/statuses/S0029.json +0 -17
  195. data/schemas/core_3.1.3/schema/tlc/statuses/S0030.json +0 -1
  196. data/schemas/core_3.1.3/schema/tlc/statuses/S0031.json +0 -1
  197. data/schemas/core_3.1.3/schema/tlc/statuses/S0091.json +0 -27
  198. data/schemas/core_3.1.3/schema/tlc/statuses/S0092.json +0 -27
  199. data/schemas/core_3.1.3/schema/tlc/statuses/S0095.json +0 -17
  200. data/schemas/core_3.1.3/schema/tlc/statuses/S0096.json +0 -68
  201. data/schemas/core_3.1.3/schema/tlc/statuses/S0097.json +0 -26
  202. data/schemas/core_3.1.3/schema/tlc/statuses/S0201.json +0 -26
  203. data/schemas/core_3.1.3/schema/tlc/statuses/S0202.json +0 -26
  204. data/schemas/core_3.1.3/schema/tlc/statuses/S0203.json +0 -26
  205. data/schemas/core_3.1.3/schema/tlc/statuses/S0204.json +0 -98
  206. data/schemas/core_3.1.3/schema/tlc/statuses/S0205.json +0 -26
  207. data/schemas/core_3.1.3/schema/tlc/statuses/S0206.json +0 -26
  208. data/schemas/core_3.1.3/schema/tlc/statuses/S0207.json +0 -26
  209. data/schemas/core_3.1.3/schema/tlc/statuses/S0208.json +0 -98
  210. data/schemas/core_3.1.3/schema/tlc/statuses/statuses.json +0 -181
  211. data/schemas/core_3.1.3/schema/tlc/sxl.json +0 -24
  212. data/schemas/core_3.1.3/spec/tlc/M0001_spec.rb +0 -67
  213. data/schemas/core_3.1.3/spec/tlc/S0007_spec.rb +0 -233
  214. data/schemas/core_3.1.4/examples/validate.rb +0 -35
  215. data/schemas/core_3.1.4/spec/core/alarm_request_spec.rb +0 -72
  216. data/schemas/core_3.1.5/examples/validate.rb +0 -35
  217. data/schemas/core_3.1.5/spec/core/alarm_request_spec.rb +0 -72
  218. data/schemas/core_3.1.5/spec/core/alarm_spec.rb +0 -298
@@ -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
@@ -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
@@ -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