示例#1
0
        public ProbeRequest(string Types, ScopesType Scopes, System.Xml.XmlElement[] Any, System.Xml.XmlAttribute[] AnyAttr)
        {
            this.Types = Types;

            this.Scopes  = Scopes;
            this.Any     = Any;
            this.AnyAttr = AnyAttr;
        }
示例#2
0
 public ByeRequest(EndpointReferenceType EndpointReference, string Types, ScopesType Scopes, string XAddrs, uint MetadataVersion, System.Xml.XmlElement[] Any, System.Xml.XmlAttribute[] AnyAttr)
 {
     this.EndpointReference = EndpointReference;
     this.Types             = Types;
     this.Scopes            = Scopes;
     this.XAddrs            = XAddrs;
     this.MetadataVersion   = MetadataVersion;
     this.Any     = Any;
     this.AnyAttr = AnyAttr;
 }
示例#3
0
        public ProbeMatchType[] Probe(string Types, ScopesType Scopes, ref System.Xml.XmlElement[] Any, ref System.Xml.XmlAttribute[] AnyAttr)
        {
            ProbeRequest inValue = new ProbeRequest();

            inValue.Types   = Types;
            inValue.Scopes  = Scopes;
            inValue.Any     = Any;
            inValue.AnyAttr = AnyAttr;
            ProbeResponse retVal = ((DiscoveryLookupPort)(this)).Probe(inValue);

            Any     = retVal.Any;
            AnyAttr = retVal.AnyAttr;
            return(retVal.ProbeMatch);
        }
示例#4
0
        public void Bye(ref EndpointReferenceType EndpointReference, string Types, ScopesType Scopes, string XAddrs, uint MetadataVersion, ref System.Xml.XmlElement[] Any, ref System.Xml.XmlAttribute[] AnyAttr)
        {
            ByeRequest inValue = new ByeRequest();

            inValue.EndpointReference = EndpointReference;
            inValue.Types             = Types;
            inValue.Scopes            = Scopes;
            inValue.XAddrs            = XAddrs;
            inValue.MetadataVersion   = MetadataVersion;
            inValue.Any     = Any;
            inValue.AnyAttr = AnyAttr;
            ByeResponse retVal = ((RemoteDiscoveryPort)(this)).Bye(inValue);

            EndpointReference = retVal.EndpointReference;
            Any     = retVal.Any;
            AnyAttr = retVal.AnyAttr;
        }
        /// <summary>
        /// Capture requirements for Scope structure
        /// </summary>
        /// <param name="scopes">Scope structure</param>
        /// <param name="site">A instance of ITestSite.</param>
        public static void CaptureScopesElementRequirements(ScopesType scopes, ITestSite site)
        {
            // Add debug info
            site.Log.Add(LogEntryKind.Debug, "Scopes: {0}", scopes);

            site.CaptureRequirementIfIsNotNull(
                scopes,
                55,
                @"[In Scopes] Each element in the list is actually a UTF-8-encoded string representation of 
                the HoHoDk value in hexBinary format [XMLSCHEMA1.1/2] [and represents one segment].");

            // Add debug info
            site.Log.Add(LogEntryKind.Debug, "Scopes: {0}", scopes);
            site.CaptureRequirementIfIsTrue(
                scopes.Text.Length > 0,
                158,
                @"[The <Scopes> element represents the list of discovery provider scopes, where]
                each element in the list is a string.");
        }
        /// <summary>
        /// Capture requirements related to Scope structure
        /// </summary>
        /// <param name="scopes">Scope structure</param>
        private void CaptureClientRoleScopesElementRequirements(ScopesType scopes)
        {
            // Since the message parsed by stack layer properly, capture the requirement directly.
            Site.CaptureRequirement(
                53,
                @"[In Scopes] When specified in the request message, the peer MUST populate this value[Scopes]
                to indicate the segments it is searching for.");

            // Assume R174 is satisfied
            bool isR174Verified = true;

            foreach (string scope in scopes.Text)
            {
                // Add debug info.
                Site.Log.Add(TestTools.LogEntryKind.Debug, "scope: {0}", scope);
                if (null == scope)
                {
                    // The scope is not absolute uri, hence R174 is not satisfied
                    isR174Verified = false;
                    break;
                }
            }

            Site.CaptureRequirementIfIsTrue(
                isR174Verified,
                174,
                "Scopes MUST be a list of absolute URIs.");

            // "http://schemas.xmlsoap.org/ws/2005/04/discovery/strcmp0" is the case-sensitive
            // string comparison rule defined in Ws-Discovery
            Site.CaptureRequirementIfAreEqual <string>(
                "http://schemas.xmlsoap.org/ws/2005/04/discovery/strcmp0",
                scopes.MatchBy,
                57,
                @"[In Scopes] The Discovery Protocol uses the case-sensitive string comparison rule defined
                as part of the WSD standard schemas.");
        }