View Basic

Support the View Service Set (Browse, BrowseNext).


Questions? Contact us
Generated: 21/11/2021 at 17:21:20 p.m.
View Basic - 48 Test Cases
Test Case Id Test Type Keywords Test Case Description Test Requirements Expected Result

001

CTT Browse()  Full browse of a valid node, without filters, view=null, browseDirection = Both, requestedMaxReferencesPerNode = 0, referenceTypeId = null, nodeClassMask = 0xFF, resultMask = 0x3F. Service result = Good. Operation result = Good . One element in results[]; browsed references in results[0] are correct - which means that all references have been returned (forward and reverse).

002

CTT Browse()  Browse the same node as in (001) with browseDirection = Forward.
If there are no forward or no inverse references on the node, a different node must be used to complete this test.
Service result = Good. Operation result = Good. Browsed references in results[0] must match the forward references in the result from (1).

003

CTT Browse()  Browse the same node as in (001) with browseDirection = Inverse.
If there are no forward or no inverse references on the node, a different node must be used to complete this test.
Service result = Good. Operation result = Good. Browsed references in results[0] must match the inverse references in the result from (1).

004

CTT Browse()  Browse the same node as in (001) with referenceTypeId set to a valid ReferenceType NodeId and includeSubtype = false.
If the node has no references of the specified type, or no references that differ from the specified type, a different node must be used to complete this test.
Service result = Good. Operation result = Good. All references in results[0] must be of the requested type (and all references of the requested type should be returned unless there were too many). The order of the references may appear sorted or not.

005

CTT Browse()  Browse the same node as in (001) with referenceTypeId set to a valid ReferenceType NodeId and includeSubtype = true.
If the node has no references of the specified type, or no references that differ from the specified type or its subtypes, a different node must be used to complete this test.
Service result = Good. Operation result = Good. All references in results[0] must be of the requested type or requested type`s subtype (and all references matching that criteria should be returned unless there were too many). The order of the references may appear sorted or not.

006

CTT Browse()  Browse the same node as in (1) with nodeClassMask set to each defined nodeClass (except 128, Views; see test 18).
If the node has no references of the selected nodeClass or has references of only one nodeClass, a different node must be used to complete this test.
Service result = Good. Operation result = Good. Only references of the selected nodeClass are returned.

007

CTT Browse()  Specify multiple (valid) nodes to browse. Service result = Good. Operation results are Good. The number of results[] matches the number of nodesToBrowse[]. The references in each result are correct.

008

CTT Browse()  Specify multiple nodes to browse, including valid and invalid nodes. Invalid nodes must include a node with invalid syntax in the nodeId, a node not in the address space, a referenceTypeId that has invalid syntax, and a referenceTypeId that does not exist. Service result = Good. Valid nodes have operation results of Good. Invalid nodes have bad operation results of appropriate error (see error test cases below).

009

CTT Browse()  Browse the same node as in (001) with nodeClassMask=0. Service result = Good. Operation result = Good. Browsed references in results[] match the results of (1).

010

CTT Browse()  Browse the same node as in (1) with resultMask set to each defined ReferenceDescription field. Service result = Good. Operation result = Good . Only the specified ReferenceDescription field is returned.

011

Lab Browse()  Browse the same node as in (001) with a valid view. The view defines references that are Forward on the nodeToBrowse, and the view defines references that are Inverse on the nodeToBrowse. Service result = Good. Operation result = Good . Browsed references in results[] includes only those references that are defined in the view.

012

Lab Browse()  Browse the same node as in (001) with a valid view. None of the references defined in the view are on the nodeToBrowse (in any direction). Service result = Good. Operation result = Good. The reference list in results[0] is empty.

013

Lab Browse()  Browse the same node as in (001) with a valid view and requestedMaxReferencesPerNode = 1. The view defines multiple references that are on the nodeToBrowse (in either direction). Service result = Good. Operation result = Good . One reference in results[0] and a valid ContinuationPoint are returned.

014

CTTResources  Browse()  In a loop (half-million), create a session, browse a node (that has at least two references) with requestedMaxReferencesPerNode=1, close the session. Within the loop, the service result = Good. The operation result = Good and the ContinuationPoint is not null. Check for resource leaks (the unused ContinuationPoints should be freed).

015

CTT Browse()  Browse the same node as in (001) with referenceTypeId set to a valid ReferenceType NodeId and includeSubtype = false.
The specified reference type must have at least one subtype.
If the node has no references of one of the specified type`s subtypes, or no references that differ from the specified type`s subtypes, a different node must be used to complete this test.
Service result = Good. Operation result = Good. All references in results[0] (if any) must be of the requested type (and all references of the requested type should be returned unless there were too many).

016

CTT Browse()  Browse the same node as in (1) with referenceTypeId set to a valid ReferenceType NodeId and includeSubtype = true.
The specified reference type must have at least one subtype.
If the node has no references of one of the specified type`s subtypes, or no references that differ from the specified type or specified type`s subtypes, a different node must be used to complete this test.
Service result = Good. Operation result = Good. All references in results[0] must be of the requested type or requested type`s subtype (and all references matching that criteria should be returned unless there were too many). The order of the references may appear sorted or not.

017

CTT Browse()  Browse the same node as in (1) with nodeClassMask set to 128 (Views).
If the node has no Views, a different node must be used to complete this test.
If the server has no views, this test passes without needing to be run.
Service result = Good. Operation result = Good. Only View references are returned.

018

CTT Browse()  Browse for a node of each node class. Each node, but for one exception, should return a non-null value for all Reference Description fields.
Nodes that are not class Object or Variable should return a null TypeDefinition.

019

CTT Browse()  Browse with ResultMask set to various (pairwise) combinations:
0x00: ReferenceType
0x3E: IsForward & NodeClass & BrowseName & DisplayName & TypeDefinition
0x15: ReferenceType & NodeClass & DisplayName
0x2B: ReferenceType & IsForward & BrowseName & TypeDefinition
0x07: ReferenceType & IsForward & NodeClass
0x39: ReferenceType & BrowseName & DisplayName & TypeDefinition
0x1A: IsForward & BrowseName & DisplayName
0x24: NodeClass & TypeDefinition
Service result = Good. Operation result = Good. Only the specified ReferenceDescription fields are returned.

020

CTT Browse()  Browse the same node as in (1) with referenceTypeId set to a valid ReferenceType NodeId and includeSubtype = true.
The specified reference type must have at least one subtype that has at least one subtype.
If the node has no references of one of the specified type`s subtypes` subtypes, a different node must be used to complete this test.
Service result = Good. Operation result = Good. All references in results[0] must be of the requested type or requested type`s subtype (and all references matching that criteria should be returned unless there were too many).

021

CTT Unavailable  Browse()  For a given View, invoke a Browse() using default parameters while specifying the viewVersion (current).
Assumption: the version information is retrieved in advance of the test.
All service results are Good.
1 or more references are returned.

022

CTT Unavailable  Browse()  For a given View, and if prior versions of the View are available, then invoke a Browse() for the prior version (i.e. current version – 1) of the View. All service results are Good.
1 or more references are returned.

023

CTT Unavailable  Browse()  For a given View, and if prior versions of the View are available, then invoke a Browse() for the earliest version. All service results are Good.
1 or more references are returned.

024

CTT Unavailable  Browse()  For a given View, invoke a Browse() using default parameters while specifying a View timestamp of now. All service results are Good.
1 or more references are returned.

025

CTT Unavailable  Browse()  For a given View, and if prior versions of the View are available, then invoke a Browse() for the prior timestamp (akin to the version) of the View. All service results are Good.
1 or more references are returned.

026

CTT Unavailable  Browse()  For a given View, and if prior versions of the View are available, then invoke a Browse() for the earliest timestamp (akin to the version number). All service results are Good.
1 or more references are returned.

027

CTT Browse()  Given one node to browse and the node does not exist, and diagnostic info is requested.
When Browse is called then the server returns specified operation diagnostic info.

Given no nodes to browse and diagnostic info is requested.
When Browse is called then the server returns specified service diagnostic info.

028

CTT Browse()  Given one node to browse and the node does not exist, and diagnostic info is not requested.
When Browse is called then the server returns no diagnostic info.

029

Lab Browse()  UA 1.03  Invoke a generic Browse request in an area of the Server's address space which contains a massive quantity of nodes, while employing a relatively short timeout. Client timeout settings must be configurable. The Server's address space will need to be large with a single folder containing hundreds or thousands of nodes.
Step #
Action
Expected Result(s)

1

If the Server is unable to process the request before the timeout, then it responds with a Good/empty response and a continuation point.

2

<p> If a continuation point is received then pass it into a BrowseNext function.</p>

Will accept: Results=0; ContinuationPoint=provided Results=>0; No ContinuationPoint Results=>0; ContinuationPoint provided. Not acceptable: Results=0; No ContinuationPoint and no error.

030

Lab UA 1.04  Browse for nodes specifying a NodeClass filter, where the nodes are known to exist on a Remote server. Repeat the test for each NodeClass. Server must be connected to a remote server, otherwise skip the test. Server will return the nodeIds of those nodes whose NodeClass is not known, regardless of the filter.

031

CTT Unavailable  Browse()  UA 1.04  For each configured Decimal type, read the References. CTT requires settings for this type. A reference is found that identifies the node as a type of Decimal.

032

Browse()  Validate that the server returns an empty BrowseDescriptions when no reference is matching the filter criteria.

SpecLink: 7.6. BrowseResultCreate an BrowseRequest with a filter which results in an empty list of references to be provided in the BrowseResult
ReferenceDescriptions is empty and NOT null.

Err-001

CTT Browse()  Specify a nodeToBrowse that has invalid syntax in the nodeId. Service result = Good. Operation result = Bad_NodeIdInvalid.

Err-002

CTT Browse()  Specify a nodeToBrowse that is not in the address space.
Test a node of each IdentifierType and a node with a non-existent NamespaceIndex.
Service result = Good. Operation result = Bad_NodeIdUnknown.

Err-003

CTT Browse()  Invalid browseDirection enum value. Service result = Good. Operation result = Bad_BrowseDirectionInvalid.

Err-004

CTT Browse()  For view, specify a nodeId that is not in the address space. Service result = Bad_ViewIdUnknown.

Err-005

CTT Unavailable  Browse()  Use a referenceTypeId that has invalid syntax. Service result = Good. Operation result = Bad_ReferenceTypeIdInvalid.

Err-006

CTT Browse()  Specify a referenceTypeId that is not in the address space. Service result = Good. Operation result = Bad_ReferenceTypeIdInvalid.

Err-007

Lab Browse()  Use a view that does not include the nodeToBrowse. Service result = Good. Operation result = Bad_NodeNotInView.

Err-008

CTT Browse()  nodesToBrowse is empty or null. Service result = Bad_NothingToDo.

Err-009

CTT Browse()  For view, specify the nodeId of a node that is not a view. Service result = Bad_ViewIdUnknown.

Err-010

CTT Browse()  For referenceTypeId, specify the nodeId of a node that is not a reference type. Service result = Good. Operation result = Bad_ReferenceTypeIdInvalid.

Err-011

CTT Unavailable  Browse()  For a View with a version greater than 1, specify a view and set the timestamp (in the viewDescription) to Jan-1-1960, i.e. unavailable.
Note: this tests the timestamp, but the version is needed because this test only applies to a view which has a prior version.
Service result = Bad_ViewTimestampInvalid.

Err-012

CTT Unavailable  Browse()  Specify a view and set the viewVersion parameter to Max UInt32, i.e. a value that is not supported/available. Service result = Bad_ViewVersionInvalid.

Err-013

Lab Unavailable  Browse()  For systems where the address space contains nodes that belong to another system (e.g. gateway server) conduct a browse for items (that may have been previously discovered) while the downstream server/device is unavailable. Service result = Good.
Operation level results are Uncertain_NotAllNodesAvailable.

Err-014

CTT Browse()  BrowseNext()  Pass in an empty list or a null value for the ContinuationPoints parameter. Service result = Bad_NothingToDo.

Err-015

CTT Browse()  Given an empty/null authenticationToken, call Browse(). Service Result: `Bad_SecurityChecksFailed`.

Err-016

CTT Browse()  Given a non-existent authenticationToken, call Browse(). Service Result: `Bad_SecurityChecksFailed`.