Microsoft.Protocols.TestSuites.MS_AUTHWS.MS_AUTHWSAdapter.ValidateLoginResponse C# (CSharp) Method

ValidateLoginResponse() private method

Validate the Login Response.
private ValidateLoginResponse ( LoginResult result ) : void
result LoginResult The response result of Login.
return void
        private void ValidateLoginResponse(LoginResult result)
        {
            XmlElement xmlResponse = SchemaValidation.LastRawResponseXml;
            bool isResponseValid = SchemaValidation.ValidationResult == ValidationResult.Success;

            // If the server response is validated successfully, we can make sure that the server responds with an LoginSoapOut response message, MS-AUTHWS_49, MS-AUTHWS_51, MS-AUTHWS_57 and MS-AUTHWS_40 can be verified.
            Site.CaptureRequirementIfIsTrue(
                isResponseValid,
                49,
                @"[In Login] [The Login operation is defined as follow:]
<wsdl:operation name=""Login"">
    <wsdl:input message=""tns:LoginSoapIn"" />
    <wsdl:output message=""tns:LoginSoapOut"" />
</wsdl:operation>");

            Site.CaptureRequirementIfIsTrue(
                isResponseValid,
                51,
                @"[In Login] [If the protocol client sends a LoginSoapIn request WSDL message] and the protocol server responds with a LoginSoapOut response WSDL message, as specified in section 3.1.4.1.1.2.");

            Site.CaptureRequirementIfIsTrue(
                isResponseValid,
                57,
                @"[In LoginSoapOut] The LoginSoapOut message is the response WSDL message that is used by a protocol server when logging on a user in response to a LoginSoapIn request message.");

            Site.CaptureRequirementIfIsTrue(
                isResponseValid,
                40,
                @"[In Message Processing Events and Sequencing Rules] The following table summarizes the list of WSDL operations[Login, Mode] that are defined by this protocol.");

            // If the server response is validated successfully, and the LoginResponse has returned, MS-AUTHWS_59 can be verified.
            Site.CaptureRequirementIfIsTrue(
                this.ResponseExists(xmlResponse, "LoginResponse"),
                59,
                @"[In LoginSoapOut] The SOAP body contains a LoginResponse element, as specified in section 3.1.4.1.2.2.");

            // If the server response is validated successfully, we can make sure that the server responds with LoginResponse, MS-AUTHWS_66 can be verified.
            Site.CaptureRequirementIfIsTrue(
                isResponseValid,
                66,
                @"[In LoginResponse] [The LoginResponse element is defined as follows:]
<s:element name=""LoginResponse"">
  <s:complexType>
    <s:sequence>
      <s:element name=""LoginResult"" type=""tns:LoginResult""/>
    </s:sequence>
  </s:complexType>
</s:element>");

            if (result != null)
            {
                // If LoginResult element exist, and the server response pass the validation successfully, we can make sure LoginResult is defined according to the schema, MS-AUTHWS_71,  MS-AUTHWS_67, MS-AUTHWS_69 can be verified. 
                Site.CaptureRequirementIfIsTrue(
                isResponseValid,
                71,
                @"[In LoginResult] [The LoginResult complex type is defined as follows:]
<s:complexType name=""LoginResult"">
  <s:sequence>
    <s:element name=""CookieName"" type=""s:string"" minOccurs=""0""/>
    <s:element name=""ErrorCode"" type=""tns:LoginErrorCode""/>
    <s:element name=""TimeoutSeconds"" type=""s:int"" minOccurs=""0"" maxOccurs=""1""/>
  </s:sequence>
</s:complexType>");

                Site.CaptureRequirementIfIsTrue(
                    isResponseValid,
                    67,
                    @"[In LoginResponse] LoginResult: A LoginResult complex type, as specified in section 3.1.4.1.3.1.");

                Site.CaptureRequirementIfIsTrue(
                    isResponseValid,
                    69,
                    @"[In LoginResult] The LoginResult complex type contains an error code.");

                // If LoginResult element exist, and the server response pass the validation successfully, we can make sure LoginErrorCode is defined according to the schema, MS-AUTHWS_79, MS-AUTHWS_75 and MS-AUTHWS_80 can be verified. 
                Site.CaptureRequirementIfIsTrue(
                    isResponseValid,
                    79,
                    @"[In LoginErrorCode] [The LoginErrorCode simple type is defined as follows:]
<s:simpleType name=""LoginErrorCode"">
  <s:restriction base=""s:string"">
    <s:enumeration value=""NoError""/>
    <s:enumeration value=""NotInFormsAuthenticationMode""/>
    <s:enumeration value=""PasswordNotMatch""/>
  </s:restriction>
</s:simpleType>");

                Site.CaptureRequirementIfIsTrue(
                    isResponseValid,
                    75,
                    @"[In LoginResult] ErrorCode: An error code, as specified in section 3.1.4.1.4.1.");

                Site.CaptureRequirementIfIsTrue(
                    isResponseValid,
                    80,
                    @"[In LoginErrorCode] The LoginErrorCode field has three allowable values:  [NoError, NotInFormsAuthenticationMode, PasswordNotMatch].");
            }

            this.ValidateAndCaptureCommonMessageSyntax();
        }