A & C Shelving

Support for the shelving mode, including the TimedShelve, OneShotShelve and Unshelve methods.


Questions? Contact us
Generated: 21/11/2021 at 17:21:20 p.m.
A & C Shelving - 16 Test Cases
Test Case Id Test Type Keywords Test Case Description Test Requirements Expected Result

000

CTT Unavailable  Browse()  Call()  Walk through the address space checking the type definition of OneShotShelve, TimedShelve, and Unshelve methods. Method signatures match the specifications: Part 9 sections 5.8.2.2, 5.8.2.3, and 5.8.2.4.

001

CTT Unavailable  Browse()  Call()  Prepare a list of ALL fields (including inherited) including the Shelving properties that can be filtered (in a SELECT clause). In a loop, add the ""next"" field to a SELECT clause in a MonitoredItem.Filter.
Note: A single WHERE clause to receive this type of Alarm only.
The fields list array (to be tested) should start with the EventId. Note: the loop should jump 3 or 4 at a time (not 1 at a time).
Step #
Action
Expected Result(s)

1

Server accepts the subscription/monitoring request.

2

Invoke the event by writing to the trigger node and then call Publish.

The event is received in the Publish response and contains the list of fields requested only.

3

Repeat the loop by adding the "next" field until the last iteration where all fields are selected.

002

CTT Unavailable  Call()  Invoke an event by writing to a trigger (Hi value). Call Publish and then call Acknowledge for the event. Make sure shelving properties are added into the filter.
Step #
Action
Expected Result(s)

1

Publish receives the event and verify ShelvingState is not shelved.

2

Call OneShotShelve and then call Publish.

Event received and property ShelvingState=OneShotShelved and LastTransition was from unshelved to OneShotShelved.

3

Invoke the event again by writing to a trigger (HiHi) value; wait 1-second and call Publish and then Acknowledge the event.

Event received and property ShelvingState=OneShotShelved.

4

Write to the trigger (normal) value to clear the event.

Event received and the alarm state is inactive, shelved state is not shelved, and the last transition is from Shelved to Unshelved, and the retain bit is set to False.

003

CTT Unavailable  Call()  Invoke an event by writing to a trigger (Loalue). Call Publish and then call Acknowledge for the event. Make sure shelving properties are added into the filter.
Step #
Action
Expected Result(s)

1

Publish receives the event and verify ShelvingState is not shelved.

2

Call OneShotShelve and then call Publish.

Event received and property ShelvingState=OneShotShelved and LastTransition was from unshelved to OneShotShelved.

3

Invoke the event again by writing to a trigger (LoLO) value; wait 1-second and call Publish and then Acknowledge the event.

Event received and property ShelvingState=OneShotShelved.

4

Write to the trigger (normal) value to clear the event.

Event received and the alarm state is inactive, shelved state is not shelved, and the last transition is from Shelved to Unshelved, and the retain bit is set to False.

004

CTT Unavailable  Call()  Invoke an event by writing to a trigger (HiHi value). Call Publish, call Acknowledge on the event, and then shelve the event using the TimedShelving (interval set to 13-seconds). Make sure shelving properties are added into the filter.
Step #
Action
Expected Result(s)

1

Initial event received. All calls successful.

2

Call Publish.

Event received and the ShelvingState=TimedShelved and the state is from unshelved to TimedShelved.

3

In a loop of approx. 30-seconds: (1) in a loop of approx. 5-seconds: write to the trigger to cause an alarm (Hi..HiHi..Hi..HiHi etc.) (2) call Publish (3) repeat steps 1 & 2 until 30-seconds completes.

All operations are successful. All initial publish calls yield an event with the state showing it is still shelved and the UnshelveTime property continues to count down (examine at the end of the test), until the 15th second transpires when the shelved state goes to unshelved. Subsequent publish calls yield the event (ShelvingState=unshelved) because it is no longer shelved.

005

CTT Unavailable  Call()  Invoke an event by writing to a trigger (LoLo value). Call Publish, call Acknowledge on the event, and then shelve the event using the TimedShelving (interval set to 13-seconds). Make sure shelving properties are added into the filter.
Step #
Action
Expected Result(s)

1

Initial event received. All calls successful.

2

Call Publish.

Event received and the ShelvingState=TimedShelved and the state is from unshelved to TimedShelved.

3

In a loop of approx. 30-seconds: (1) in a loop of approx. 5-seconds: write to the trigger to cause an alarm (Lo..LoLo..Lo..LoLo etc.) (2) call Publish (3) repeat steps 1 & 2 until 30-seconds completes.

All operations are successful. All initial publish calls yield an event with the state showing it is still shelved and the UnshelveTime property continues to count down (examine at the end of the test), until the 15th second transpires when the shelved state goes to unshelved. Subsequent publish calls yield the event (ShelvingState=unshelved) because it is no longer shelved.

006

CTT Unavailable  Call()  Invoke an event by writing to a trigger (Hi value). Call Publish, call Acknowledge on the event, and then shelve the event using the TimedShelving (interval set to 13-seconds). Make sure shelving properties are added into the filter.
Step #
Action
Expected Result(s)

1

Initial event received. All calls successful.

2

In a loop of approx. 30-seconds: (1) in a loop of approx. 5-seconds: write to the trigger to change the alarm state (Hi..normal..Lo..normal..Hi etc.) (2) call Publish (3) repeat steps 1 & 2 until 30-seconds completes.

All operations are successful. All initial publish calls yield an event with the state showing it is still shelved and the UnshelveTime property continues to count down (examine at the end of the test), until the 15th second transpires when the shelved state goes to unshelved. Subsequent publish calls yield the event (ShelvingState=unshelved) because it is no longer shelved.

007

CTT Unavailable  Call()  Invoke an event by writing to a trigger (Hi value). Call Publish, call Acknowledge on the event, and then shelve the event using the TimedShelving specify a value exceeding the max timer duration using TimedShelving. TimedShelving returns BadShelvingTimeOutOfRange.

008

CTT Unavailable  Call()  Specify a value exceeding the max timer duration and then oneShotShelve and leave the system alone. After the MaxTimedShelve property duration transpires the shelving state returns to unshelved.

Note: the value of the property should be a 'reasonable' value; if not then log as a warning.

009

CTT Unavailable  Call()  Invoke an event by writing to a trigger (HiHi value). Call Publish and then shelve the event using the OneShotShelve and call Publish again.
Step #
Action
Expected Result(s)

1

Initial Publish receives the event. Second Publish also receives the event and the ShelvedState=OneShotShelve.

2

Invoke the event again by writing to a trigger (Hi) value; wait 1-second and call Publish; write to trigger (HiHi).

Events are received and the ShelvedState is still OneShotShelve.

3

Invoke the UnShelve() method to reactivate the alarm condition.

Success.

4

Call Publish.

Alarm received and the ShelvedState is Unshelved. The transition shows from OneShotShelved to Unshelved.

010

CTT Unavailable  Call()  Repeat test #9 except using the TimedShelving of 15 minutes.

011

CTT Unavailable  Call()  Call OneOneShotShelve twice. Service result is BadConditionAlreadyShelved.

012

CTT Unavailable  Call()  Call TimedShelve twice. Service result is BadConditionAlreadyShelved.

013

CTT Unavailable  Call()  Call Unshelve twice. Service result is BadConditionNotShelved.

014

CTT Unavailable  Call()  Invoke an event by writing to a trigger (HiHi value). Call Publish and then shelve the event using the TimedShelve and call Publish again. Testing the transition: TimedShelvedToOneShotShelved
Step #
Action
Expected Result(s)

1

ShelvingState=TimedShelve and transition goes from unshelved to timedShelve.

2

Call OneShotShelve and then call Publish.

ShelvingState=OneShotShelve and transition goes from TimedShelved to OneShotShelve.

3

Return to normal.

ShelvingState=Unshelved and transition goes from OneShotShelved to Unshelved.

015

CTT Unavailable  Call()  Invoke an event by writing to a trigger (HiHi value). Call Publish and then shelve the event using the OneShotShelve and call Publish again. Test transition: OneShotShelvedToTimedShelved
Step #
Action
Expected Result(s)

1

ShelvingState=OneShotShelve and transition goes from unshelved to OneShotShelve.

2

Call TimedShelve and then call Publish.

ShelvingState=TimedShelve and transition goes from OneShotShelved to TimedShelve.

3

Return to normal.

ShelvingState=TimeShelved.

4

Wait for the timer to expire and re-evaluate the shelving state.

ShelvingState=Unshelved and transition goes from TimedShelved to Unshelved.