private bool DoBrowseResultMaskTest()
{
// follow tree from each starting node.
bool success = true;
double increment = MaxProgress/AvailableNodes.Count;
double position = 0;
Log("Starting BrowseResultMaskTest for {0} Nodes ({1}% Coverage)", AvailableNodes.Values.Count, Configuration.Coverage);
int counter = 0;
foreach (Node node in AvailableNodes.Values)
{
if (!CheckCoverage(ref counter))
{
continue;
}
try
{
BrowseDescription nodeToBrowse = new BrowseDescription();
nodeToBrowse.NodeId = node.NodeId;
nodeToBrowse.BrowseDirection = BrowseDirection.Both;
nodeToBrowse.IncludeSubtypes = true;
nodeToBrowse.NodeClassMask = 0;
nodeToBrowse.ReferenceTypeId = ReferenceTypeIds.References;
nodeToBrowse.ResultMask = (uint)BrowseResultMask.None;
ReferenceDescriptionCollection references = new ReferenceDescriptionCollection();
if (!Browse(node, nodeToBrowse, references))
{
success = false;
break;
}
}
catch (Exception e)
{
success = false;
Log(e, "BrowseResultMaskTest Failed for Node '{0}'. NodeId = {1}", node, node.NodeId);
}
position += increment;
ReportProgress(position);
}
return success;
}