Specifications:
Verify status S0014 current time plan
- 
Given the site is connected
 - 
When we request the status
 - 
We should receive a status response before timeout
 
11 12 13 14 15 16 17 18
# File 'spec/site/tlc/signal_plans_spec.rb', line 11 Validator::SiteTester.connected do |task,supervisor,site| if RSMP::Proxy.version_meets_requirement?( site.sxl_version, '>=1.1' ) status_list = { S0014: [:status,:source] } else status_list = { S0014: [:status] } end request_status_and_confirm site, "current time plan", status_list end
- 
 Verify that we change time plan (signal program) We try switching all programs configured
- 
Given the site is connected
 - 
And there is a Validator.get_config(‘validator’) with a time plan
 - 
When we send the command
 - 
We should receive a confirmative command response before timeout
 
29 30 31 32 33 34
# File 'spec/site/tlc/signal_plans_spec.rb', line 29 plans = Validator.get_config('items','plans') skip("No time plans configured") if plans.nil? || plans.empty? Validator::SiteTester.connected do |task,supervisor,site| prepare task, site plans.each { |plan| switch_plan plan } end
- 
 Verify status S0018 number of time plans Deprecated from 1.2, use S0022 instead.
- 
Given the site is connected
 - 
When we request the status
 - 
We should receive a status response before timeout
 
44 45 46 47
# File 'spec/site/tlc/signal_plans_spec.rb', line 44 Validator::SiteTester.connected do |task,supervisor,site| request_status_and_confirm site, "number of time plans", { S0018: [:number] } end
- 
 Verify status S0022 list of time plans
- 
Given the site is connected
 - 
When we request the status
 - 
We should receive a status response before timeout
 
56 57 58 59
# File 'spec/site/tlc/signal_plans_spec.rb', line 56 Validator::SiteTester.connected do |task,supervisor,site| request_status_and_confirm site, "list of time plans", { S0022: [:status] } end
- 
 Verify status S0026 week time table
- 
Given the site is connected
 - 
When we request the status
 - 
We should receive a status response before timeout
 
68 69 70 71
# File 'spec/site/tlc/signal_plans_spec.rb', line 68 Validator::SiteTester.connected do |task,supervisor,site| request_status_and_confirm site, "week time table", { S0026: [:status] } end
- 
 Verify that we can set week table with M0016
- 
Given the site is connected
 - 
When we send the command
 - 
We should receive a confirmative command response before timeout
 
80 81 82 83 84
# File 'spec/site/tlc/signal_plans_spec.rb', line 80 Validator::SiteTester.connected do |task,supervisor,site| status = "0-1,6-2" prepare task, site set_week_table status end
- 
 Verify status S0027 time tables
- 
Given the site is connected
 - 
When we request the status
 - 
We should receive a status response before timeout
 
93 94 95 96
# File 'spec/site/tlc/signal_plans_spec.rb', line 93 Validator::SiteTester.connected do |task,supervisor,site| request_status_and_confirm site, "command table", { S0027: [:status] } end
- 
 Verify that we can set day table with M0017
- 
Given the site is connected
 - 
When we send the command
 - 
We should receive a confirmative command response before timeout
 
105 106 107 108 109
# File 'spec/site/tlc/signal_plans_spec.rb', line 105 Validator::SiteTester.connected do |task,supervisor,site| status = "12-1-12-59,1-0-23-12" prepare task, site set_day_table status end
- 
 Verify status S0097 version of traffic program
- 
Given the site is connected
 - 
When we request the status
 - 
We should receive a status response before timeout
 
118 119 120 121
# File 'spec/site/tlc/signal_plans_spec.rb', line 118 Validator::SiteTester.connected do |task,supervisor,site| request_status_and_confirm site, "version of traffic program", { S0097: [:timestamp,:checksum] } end
- 
 Verify status S0098 configuration of traffic parameters
- 
Given the site is connected
 - 
When we request the status
 - 
We should receive a status response before timeout
 
130 131 132 133 134 135 136 137 138 139 140 141 142
# File 'spec/site/tlc/signal_plans_spec.rb', line 130 Validator::SiteTester.connected do |task,supervisor,site| result = request_status_and_confirm site, "config of traffic parameters", { S0098: [:timestamp,:config,:version] } # the site should have stored the received status = result[:collector]..first expect().to be_an(RSMP::StatusResponse) values = .attributes['sS'].map { |item| [item['n'], item['s']] }.to_h expect(values['timestamp']).not_to be_empty expect(values['config']).not_to be_empty expect(values['timestamp']).not_to be_empty end
- 
 Verify status S0023 command table
- 
Given the site is connected
 - 
When we request the status
 - 
We should receive a status response before timeout
 
151 152 153 154
# File 'spec/site/tlc/signal_plans_spec.rb', line 151 Validator::SiteTester.connected do |task,supervisor,site| request_status_and_confirm site, "command table", { S0023: [:status] } end
- 
 Verify that dynamic bands can the set with M0014
- 
Given the site is connected
 - 
When we send the command
 - 
We should receive a confirmative command response before timeout
 
163 164 165 166 167 168
# File 'spec/site/tlc/signal_plans_spec.rb', line 163 Validator::SiteTester.connected do |task,supervisor,site| plan = Validator.get_config('items','plans').first status = "1-12" prepare task, site set_dynamic_bands plan, status end
- 
 Verify that dynamic bands can be read and changed
- 
Given the site is connected
 - 
And we read dynamic band
 - 
When we set dynamic band to 2x previous value
 - 
Then reading dynamic bands should confirm the change
 - 
Finally when we revert dynamic band to previous value
 - 
Then reading dynamic bands should confirm the reversion
 
181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196
# File 'spec/site/tlc/signal_plans_spec.rb', line 181 Validator::SiteTester.connected do |task,supervisor,site| prepare task, site plan = Validator.get_config('items','plans').first band = 3 value = get_dynamic_bands(plan, band) || 0 expect( value ).to be_a(Integer) new_value = value + 1 set_dynamic_bands plan, "#{band}-#{new_value}" expect( get_dynamic_bands(plan, band) ).to eq(new_value) set_dynamic_bands plan, "#{band}-#{value}" expect( get_dynamic_bands(plan, band) ).to eq(value) end
- 
 Verify command M0023 timeout of dynamic bands
- 
Given the site is connected
 - 
When we send command to set timeout
 - 
Then we should get a confirmation
 - 
When we send command to disable timeout
 - 
Then we should get a confirmation
 
207 208 209 210 211 212 213
# File 'spec/site/tlc/signal_plans_spec.rb', line 207 Validator::SiteTester.connected do |task,supervisor,site| prepare task, site status = 10 set_timeout_for_dynamic_bands status status = 0 set_timeout_for_dynamic_bands status end
- 
 Verify status S0024 offset time
- 
Given the site is connected
 - 
Request status
 - 
Expect status response before timeout
 
222 223 224 225
# File 'spec/site/tlc/signal_plans_spec.rb', line 222 Validator::SiteTester.connected do |task,supervisor,site| request_status_and_confirm site, "offset time", { S0024: [:status] } end
- 
 - 
Verify connection
 - 
Send control command to set dynamic_bands
 - 
Wait for status = true
 
232 233 234 235 236 237
# File 'spec/site/tlc/signal_plans_spec.rb', line 232 Validator::SiteTester.connected do |task,supervisor,site| plan = Validator.get_config('items','plans').first status = 99 prepare task, site set_offset status, plan end
- 
 Verify status S0028 cycle time
- 
Given the site is connected
 - 
When we request the status
 - 
We should receive a status response before timeout
 
246 247 248 249
# File 'spec/site/tlc/signal_plans_spec.rb', line 246 Validator::SiteTester.connected do |task,supervisor,site| request_status_and_confirm site, "cycle time", { S0028: [:status] } end
- 
 Verify that cycle time can be changed with M0018
- 
Given the site is connected
 - 
And we read cycle times
 - 
When we extend cycle time of curent plan with 5s
 - 
Then reading the cycle time should confirm the change
 - 
Finally when we revert cycle time to previous value
 - 
Then reading cycle time should confirm the reversion
 
261 262 263 264 265
# File 'spec/site/tlc/signal_plans_spec.rb', line 261 Validator::SiteTester.connected do |task,supervisor,site| with_cycle_time_extended(site) do log "Cycle time extension confirmed" end end
-