/// <summary> /// Capture requirements related with WhoAmI Sub-request. /// </summary> /// <param name="whoamiSubResponse">Containing the WhoAmISubResponse information</param> /// <param name="site">Instance of ITestSite</param> public static void ValidateWhoAmISubResponse(WhoAmISubResponseType whoamiSubResponse, ITestSite site) { // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R765 site.CaptureRequirement( "MS-FSSHTTP", 765, @"[In WhoAmISubResponseType][WhoAmISubResponseType schema is:] <xs:complexType name=""WhoAmISubResponseType""> <xs:complexContent> <xs:extension base=""tns:SubResponseType""> <xs:sequence minOccurs=""0"" maxOccurs=""1""> <xs:element name=""SubResponseData"" type=""tns:WhoAmISubResponseDataType""/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType>"); // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R1316 site.CaptureRequirementIfAreEqual<Type>( typeof(WhoAmISubResponseType), whoamiSubResponse.GetType(), "MS-FSSHTTP", 1316, @"[In WhoAmI Subrequest][The protocol client sends a WhoAmI SubRequest message, which is of type WhoAmISubRequestType] The protocol server responds with a WhoAmI SubResponse message, which is of type WhoAmISubResponseType as specified in section 2.3.1.22."); // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R4692 site.CaptureRequirementIfAreEqual<Type>( typeof(WhoAmISubResponseType), whoamiSubResponse.GetType(), "MS-FSSHTTP", 4692, @"[In SubResponseElementGenericType] Depending on the Type attribute specified in the SubRequest element, the SubResponseElementGenericType MUST take one of the forms: WhoAmISubResponseType."); // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R5746 site.CaptureRequirementIfAreEqual<Type>( typeof(WhoAmISubResponseType), whoamiSubResponse.GetType(), "MS-FSSHTTP", 5746, @"[In SubResponseType] The SubResponseElementGenericType takes one of the following forms: WhoAmISubResponseType."); ErrorCodeType errorCode; site.Assert.IsTrue(Enum.TryParse<ErrorCodeType>(whoamiSubResponse.ErrorCode, true, out errorCode), "Fail to convert the error code string {0} to the Enum type ErrorCodeType", whoamiSubResponse.ErrorCode); if (errorCode == ErrorCodeType.Success) { // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R268 site.CaptureRequirementIfIsNotNull( whoamiSubResponse.SubResponseData, "MS-FSSHTTP", 268, @"[In SubResponseElementGenericType][The SubResponseData element MUST be sent as part of the SubResponse element in a cell storage service response message if the ErrorCode attribute that is part of the SubResponse element is set to a value of ""Success"" and one of the following conditions is true:] The Type attribute that is specified in the SubRequest element is set to a value of ""WhoAmI""."); } // Verify requirements related with its base type: SubResponseType ValidateSubResponseType(whoamiSubResponse as SubResponseType, site); // Verify requirements related with SubResponseDataType if (whoamiSubResponse.SubResponseData != null) { ValidateWhoAmISubResponseDataType(whoamiSubResponse.SubResponseData, site); } }