public void BrowseMessageSerializationTest()
        {
            var sm = new BrowseMessage(Servicetype, Domain, InterfaceIndex);

            var bm = ServiceMessageTestHelper.SerializeDeserializeTest(sm);

            bm.Payload.ServiceType.Should().Be(Servicetype);
            bm.Payload.Domain.Should().Be(Domain);
            bm.Payload.InterfaceIndex.Should().Be(InterfaceIndex);
        }
        public void RequestMessageWithErrorReturnPortSerializationTest()
        {
            var sm = new BrowseMessage(Servicetype, Domain, InterfaceIndex);

            sm.SetSubordinateID(1); // Marks message as subordinate

            // Subordinate message with no ErrorReturnPort value set should throw on serialization
            Action act = () => sm.GetBytes();

            act.Should().Throw <InvalidOperationException>();

            sm.Payload.ErrorReturnPort = Port;

            var bm = ServiceMessageTestHelper.SerializeDeserializeTest(sm);

            bm.Payload.ErrorReturnPort.Should().Be(Port);
        }
Пример #3
0
        /// <summary>
        /// Returns the references that meet the filter criteria for one or more nodes.
        /// </summary>
        public BrowseResponseMessage Browse(BrowseMessage request)
        {
            try
            {
                lock (m_lock)
                {
                    // verify the session.
                    VerifySession(request.RequestHeader, false);

                    // process each node being browsed.
                    ListOfBrowseResult   results         = new ListOfBrowseResult();
                    ListOfDiagnosticInfo diagnosticInfos = new ListOfDiagnosticInfo();

                    for (int ii = 0; ii < request.NodesToBrowse.Count; ii++)
                    {
                        BrowseResult   result         = new BrowseResult();
                        DiagnosticInfo diagnosticInfo = new DiagnosticInfo();

                        m_nodeManager.Browse(
                            request.NodesToBrowse[ii],
                            result,
                            diagnosticInfo);

                        results.Add(result);
                        diagnosticInfos.Add(diagnosticInfo);
                    }

                    // return the response.
                    BrowseResponseMessage response = new BrowseResponseMessage();

                    response.ResponseHeader  = CreateResponseHeader(request.RequestHeader);
                    response.Results         = results;
                    response.DiagnosticInfos = diagnosticInfos;

                    return(response);
                }
            }
            catch (Exception e)
            {
                throw CreateSoapFault(request.RequestHeader, e);
            }
        }