Monitor Client Modify

Use ModifyMonitoredItems Service to change the configuration setting. Use SetMonitoringMode Service to disable / enable sampling and / or publishing. ModifyMonitoredItems General Test Cases * The following test-cases assume that a subscription has been previously setup, and items added. SetMonitoringMode General Test Cases * The following test-cases assume that a subscription has been previously setup, and items added. DeleteMonitoredItems General Test Cases * The following test-cases assume that a subscription has been previously setup, and items added.


Questions? Contact us
Generated: 22/11/2021 at 17:22:12 p.m.
Monitor Client Modify - 69 Test Cases
Test Case Id Test Type Keywords Test Case Description Test Requirements Expected Result

001

CTT ModifyMonitoredItems  Monitor use of the method for correct usage, and to verify that multiple operations are batched into a single service call where possible.
Client reports the modification success.
The clientHandles are correct per node being modified.

002

Lab ModifyMonitoredItems  Change the TimestampsToReturn to a different value, e.g.
a. Source_0 to Server_1
b. Server_1 to Both_2
c. Both_2 to Neither_3
d. Neither_3 to Source_0.
Verify the values the client is reporting match those sent by the server as proof that the item(s) changed as requested.

003

Lab ModifyMonitoredItems  Change the TimestampsToReturn for multiple subscriptions.
One call to the UA Server per subscription is performed, regardless of how the end-user specifies this behavior.

004

Lab ModifyMonitoredItems  Modify the sampling rate for one item,
e.g. to 500ms.
Client reports the modification success.

005

Lab ModifyMonitoredItems  Modify the sampling rate for multiple items, e.g. to 500ms.
A single call is made to the UA server.

006

Lab ModifyMonitoredItems  Modify the sampling rates varying the per item, e.g.:
* 250
* 1500
* 5000
Ideally, all requests will be collected in the client before issuing a single call to the UA Server.
Acceptable: one call per sampling rate change, for all applicable nodes.
Acceptable: one call per node to specify a sampling rate.

007

Lab ModifyMonitoredItems  Modify the filter for one item,
e.g. from no Filter, to using a deadbandAbsolute of 10.
Client reports the modification success.

008

Lab ModifyMonitoredItems  Modify the filter for one integer-based item specifying a deadbandAbsolute of 10 with a dataChangeTrigger of STATUS_0.
Client reports the modification success.

009

Lab ModifyMonitoredItems  Modify the filter for one integer-based item specifying a deadbandAbsolute of 100 with a dataChangeTrigger of STATUS_VALUE_1.
Client reports the modification success.

010

Lab ModifyMonitoredItems  Modify the filter for one float-based item specifying a deadbandAbsolute of 0.05 with a dataChangeTrigger of STATUS_VALUE_TIMESTAMP_2.
Client reports the modification success.

011

Lab ModifyMonitoredItems  Modify multiple items to use a deadbandAbsolute of 10, with a dataChangeTrigger of value.
Client reports the modification success.

012

Lab ModifyMonitoredItems  Modify the filter for multiple integer-based item specifying a deadbandAbsolute of 100 with a dataChangeTrigger of Value.
Client reports the modification success.

013

Lab ModifyMonitoredItems  Modify the filter for multiple float-based item specifying a deadbandAbsolute of 0.05 with a dataChangeTrigger of ValueTimestamp.
samplingInterval = 0 is specified.
Client reports the modification success.

014

Lab ModifyMonitoredItems  Modify 1 MonitoredItem where the node is the Server object, the attributeId is the EventNotifier and the filter requests one BaseEventType property. Change the filter to request additional BaseEventType properties.
samplingInterval = 0 is specified.
Client reports the modification success.

015

Lab ModifyMonitoredItems  Add 1 MonitoredItem where the node is the Server object, and a filter defined to report events where the Severity is greater than 600.
samplingInterval = 0 is specified.
Client reports the modification success.

016

Lab ModifyMonitoredItems  Add 1 MonitoredItem where the node is the Server object and a filter defined to report events where the Severity is between 700 and 100.
samplingInterval = 0 is specified.
Client reports the modification success.

017

Lab ModifyMonitoredItems  Add 1 MonitoredItem where the node supports events (not the Server object) and specify the attributeId = eventNotifier.
samplingInterval = 0 is specified.
Client reports the modification success.

018

Lab ModifyMonitoredItems  Modify the queue size for one of item,
e.g. from 5 to 20.
Client reports the modification success.

019

Lab ModifyMonitoredItems  Modify the Queue size for multiple items, e.g. to 2.
Client reports the modification success.

020

Lab ModifyMonitoredItems  Modify the QueueSize for all items, e.g. to 10.
Client reports the modification success.

021

Lab ModifyMonitoredItems  Modify a single item and set the DiscardOldest = false.
Client reports the modification success.

022

Lab ModifyMonitoredItems  Modify multiple items and set DiscardOldest = false.
Client reports the modification success.

023

Lab ModifyMonitoredItems  Modify multiple items (5 or more) to use a new sampling rate, queue size, and to discard the oldest values, e.g.
sampling rate: to 5000ms
queue size: to 2
Client reports the modification success.
Client makes a single request.

024

Lab ModifyMonitoredItems  Modify multiple items (5 or more) and vary the DiscardOldest by toggling between True/False.
Client reports the modification success.
Ideally the Client makes a single request.

025

Lab ModifyMonitoredItems  In a scenario where a triggering item links to 1 or mode nodes.
Modify the triggering node SamplingInterval = 2000ms.
Ideally the Client makes a single request.

026

Lab ModifyMonitoredItems  In a scenario where a triggering item links to 1 or mode nodes.
Modify the triggering node filter to use a DataChangeFilter:
* Deadband type = Absolute
* Value = 10
* Trigger = Value
Ideally the Client makes a single request.

027

Lab ModifyMonitoredItems  In a scenario where a triggering item links to 1 or mode nodes.
Modify one or more triggered nodes filter to use a DataChangeFilter:
* Deadband type = Absolute
* Value = 10
* Trigger = Value
Ideally the Client makes a single request.

028

Lab ModifyMonitoredItems  In a scenario where a triggering item links to 1 or mode nodes.
Modify the triggering node and one or more triggered nodes to `reset` their values back to the `defaults` as defined for each service this document.
Ideally the Client makes a single request.

029

Lab ModifyMonitoredItems  In a scenario where a triggering item links to 1 or mode nodes.
Modify one or more triggered items and set DiscardOldest = false.
Ideally the Client makes a single request.

030

Lab ModifyMonitoredItems  Modify 1 MonitoredItem where the node is the Server object, the attributeId is the EventNotifier and the filter requests several BaseEventType properties. Change the filter to request additional BaseEventType properties.
samplingInterval = 0 is specified.
Client reports the modification success.

031

Lab ModifyMonitoredItems  Modify 1 MonitoredItem where the node is the Server object, the attributeId is the EventNotifier and the filter requests several BaseEventType properties. Change the filter to request no BaseEventType properties.
samplingInterval = 0 is specified.
Client reports the modification success.

Err-001

Inject the following test cases:

1. ServiceResult = Bad_NothingToDo
2. ServiceResult = Bad_TooManyOperations
3. ServiceResult = Bad_TimestampsToReturnInvalid
4. ServiceResult = Bad_SubscriptionIdInvalid
Client logs and/or displays the error condition to the end-user.

Err-002

CTT ModifyMonitoredItems  ServiceResult = Good, but the first result is set to one of the operation level error codes as specified in Part 4, section 5.12.3.4:
1. Bad_MonitoredItemIdInvalid
2. Bad_MonitoredItemFilterInvalid
3. Bad_MonitoredItemFilterUnsupported
4. Bad_FilterNotAllowed
Client logs and/or displays the error condition to the end-user.
Client continues processing the remaining results and uses the remaining items where possible.

Err-003

CTT ModifyMonitoredItems  ServiceResult = Good, but all results are set to one of the operation level error codes as specified in Part 4, section 5.12.3.4:
a. Bad_MonitoredItemIdInvalid
b. Bad_MonitoredItemFilterInvalid
c. Bad_MonitoredItemFilterUnsupported
d. Bad_FilterNotAllowed
Client logs and/or displays the error condition to the end-user.

Err-004

Inject the following error
1. serviceResult is Good.
Results[0] revisedSamplingInterval != requested samplingInterval.
2. serviceResult is Good.
Results[0] revisedSamplingInterval is 10* requested samplingInterval.
3. serviceResult is Good.
Results[0] revisedSamplingInterval is ½ the requested samplingInterval
4. serviceResult is Good.
Results[*] revisedSamplingInterval != requested samplingInterval.
5. serviceResult is Good, but the revisedSamplingInterval is a Negative number.
6. serviceResult is Good, but the revisedSamplingInterval is NaN.
Client logs and/or displays an error message to the end-user. Client reports the samplingInterval revision, but continues to use the MonitoredItems in the subscription.

Err-005

Inject the following testcases
1. serviceResult is Good, but the revisedQueueSize != requested queueSize.
2. serviceResult is Good, but the revisedQueueSize is decades larger than the requested queueSize.
3. serviceResult is Good, but the revisedQueueSize is 0.
Client logs and/or displays an information message to the end-user.

Err-006

CTT ModifyMonitoredItems  Unavailable  Client has added 1 monitored item (e.g., Server object) and created a filter which will return the value of one BaseEventType property upon receipt of any event associated with the monitored item. Client calls ModifyMonitoredItems modifying the filter to instead return the value of all BaseEventType properties upon receipt of any event associated with the monitored item. selectClauseResults[x].StatusCode (where 'x' is the index of one of the filters) returned by the server is one of:
a) Bad_TypeDefinitionInvalid
b) Bad_NodeIdUnknown
c) Bad_AttributeIdInvalid
d) Bad_IndexRangeInvalid
e) Bad_TypeMismatch.
Client reports the error.

Err-007

CTT ModifyMonitoredItems  Unavailable  Client has added 1 monitored item (e.g., Server object) and created a filter which will return the value of all BaseEventType properties upon receipt of any event associated with the monitored item. Client calls ModifyMonitoredItems modifying the filter to instead return the value of just one BaseEventType property upon receipt of any event associated with the monitored item. selectClauseResults[0].StatusCode returned by the server is one of:
a) Bad_TypeDefinitionInvalid
b) Bad_NodeIdUnknown
c) Bad_AttributeIdInvalid
d) Bad_IndexRangeInvalid
e) Bad_TypeMismatch.
Client reports the error.

Err-008

CTT ModifyMonitoredItems  Unavailable  Client has added 1 monitored item (e.g., Server object) and created a filter which will return the value of one BaseEventType property upon receipt of any event associated with the monitored item. Client calls ModifyMonitoredItems modifying the filter to instead return the value of all BaseEventType properties upon receipt of any event associated with the monitored item. selectClauseResults[x-z].StatusCode (where 'x', 'y', 'z' are the indices of any three filters) returned by the server is one of:
a) Bad_TypeDefinitionInvalid
b) Bad_NodeIdUnknown
c) Bad_AttributeIdInvalid
d) Bad_IndexRangeInvalid
e) Bad_TypeMismatch.
Client reports the error.

Err-009

CTT ModifyMonitoredItems  Unavailable  Client has added 1 monitored item where the node is the Server object, and a filter defined to report events where the Severity is greater than 500. Client calls ModifyMonitoredItems modifying the filter's 'where' clause to instead report events where the severity is greater than 600. EventFilterResult.whereClauseResult.operandStatusCodes[0] returned by the server is one of:
a) Bad_FilterOperandCountMismatch
b) Bad_FilterOperatorInvalid
c) Bad_FilterOperatorUnsupported.
Client reports the error.

032

SetMonitoringMode  Monitor use of the method for correct usage, and to verify that multiple operations are batched into a single service call where possible.
Client reports the modification success.
The ClientHandles are correct per node being modified.

033

SetMonitoringMode  For multiple subscriptions, change the monitoring mode, e.g. from Reporting_2 to Disabled_0.
To enable this, the client will need to issue one call per subscription, regardless of how the UI/client presents the information.

034

SetMonitoringMode  For 1 MonitoredItem, MonitoringMode = Disabled_0.
Client batches all requests for a subscription into a single call to the server.

035

SetMonitoringMode  For 1 MonitoredItem, MonitoringMode = Sampling_1.
Client reports the modification success.

036

SetMonitoringMode  For 1 MonitoredItem, MonitoringMode = Reporting_2.
Client reports the modification success.

037

SetMonitoringMode  For 1 MonitoredItem, MonitoringMode = Disabled_0.
Client reports the modification success.

038

SetMonitoringMode  Client modifies the mode of all items in a subscription to Disabled_0.
Client reports the modification success.

039

SetMonitoringMode  Client modifies the mode of all items in a subscription to Sampling_1.
Client reports the modification success.

040

SetMonitoringMode  Client modifies the mode multiple items where:
a. Item1 = Disabled_0.
b. Item2 = Sampling_1.
c. Item3 = Reporting_2.
For this kind of action, 3 calls to SetMonitoringMode are required.

041

SetMonitoringMode  For a active subscription with PublishingMode=Enabled and where all items are actively reporting data.
Client modifies half of the items in a subscription where every other (odd) item is set to Disabled_0 and the remaining items are left unchanged.
A single call is made to modify the MonitoringMode.

042

SetMonitoringMode  Client requests diagnostic information within the headers.
The client is able to capture and record any diagnostics it receives.

043

SetMonitoringMode  In a scenario where a triggering item links to 1 or mode nodes.
Change the MonitoringMode of the triggering item:
a. Reporting to Disabled
b. Disabled to Sampling
c. Sampling to Reporting
A single call is made.
Client reports the modification success.

044

SetMonitoringMode  In a scenario where a triggering item links to 1 or mode nodes.
Change the MonitoringMode of one or more triggered nodes:
a. Reporting to Disabled
b. Disabled to Sampling
c. Sampling to Reporting
A single call is made.
Client reports the modification success.

045

SetMonitoringMode  In a scenario where a triggering item links to 1 or mode nodes.
Change all nodes to Disabled.
A single call is made.
Client reports the modification success.

046

SetMonitoringMode  In a scenario where a triggering item links to 1 or mode nodes.
Change all nodes to Reporting.
A single call is made.
Client reports the modification success.

047

SetMonitoringMode  In a scenario where a triggering item links to 1 or mode nodes.
a. Change the triggering node to Sampling.
b. Change the triggered nodes to reporting.
A single call is made.
Client reports the modification success.

Err-010

Inject the following test cases
1. ServiceResult = Bad_NothingToDo.
2. ServiceResult = Bad_TooManyOperations.
3. ServiceResult = Bad_SubscriptionIdInvalid.
4. ServiceResult = Bad_MonitoringModeInvalid
Client reports the error to the end-user and does no further processing of the results.

Err-011

Inject the following error codes:
1. ServiceResult = Good, but results[0] = Bad_MonitoredItemIdInvalid.
2. ServiceResult = Good, but all results[] = Bad_MonitoredItemIdInvalid.
3. ServiceResult = Good, but results[] parameter is empty.
4. Service result is Good, but every other result is Bad_MonitoredItemIdInvalid.
Client reports each result in error. Remaining items are still processed.

048

DeleteMonitoredItems  Monitor use of the method for correct usage, and to verify that multiple operations are batched into a single service call where possible.

049

DeleteMonitoredItems  Delete a monitoredItem from one subscription.

050

DeleteMonitoredItems  Delete multiple nodes (5 or more) in a single call leaving some nodes in the subscription.
The client issues one call to do this.

051

DeleteMonitoredItems  Delete all nodes in a subscription, leaving the subscription empty of MonitoredItems.
The client issues one call to do this.

052

DeleteMonitoredItems  Delete all nodes in all subscriptions, leaving behind empty subscriptions.
The client will need to issue one call per subscription.

053

DeleteMonitoredItems  In a scenario where a triggering item links to 1 or mode nodes.
Delete all nodes that make-up the trigger, i.e. the triggering node and all triggered links.
The client issues one call to do this.

054

DeleteMonitoredItems  In a scenario where a triggering item links to 1 or mode nodes.
Delete the triggering node.
The end-user is notified and/or required to authorize the removal of the triggering node which will orphan the triggered nodes.

055

DeleteMonitoredItems  In a scenario where a triggering item links to 1 or mode nodes.
Delete one or more triggered nodes.
The client should not permit this without end-user confirmation.
The client calls SetTriggering and properly removes the triggered item(s) first.

056

DeleteMonitoredItems  In a scenario where a triggering item links to 2 or mode nodes.
Delete one 1 triggered node, leaving at least one triggered node remaining.
The client should not permit this without end-user confirmation.
The client calls SetTriggering and properly removes the triggered item.

057

DeleteMonitoredItems  Delete a Node from more than one subscription.
If the client permits the end-user to make this appear as a single call on the back-end the request will physically utilize multiple calls, one per specified subscription.

Err-012

Inject the following test cases
1. ServiceResult = Bad_NothingToDo
2. ServiceResult = Bad_TooManyOperations
3. ServiceResult = Bad_SubscriptionIdInvalid
4. ServiceResult = Good, but the first result is set to Bad_MonitoredItemIdInvalid.
5. ServiceResult = Good, and all results are set to Bad_MonitoredItemIdInvalid.
a,b,c,e: Client reports the error to the end-user and does no further processing of the results.
d: Client reports each result in error. Remaining items are still processed.