Microsoft.Protocols.TestSuites.SharedAdapter.MsfsshttpAdapterCapture.ValidateSubResponseDataOptionalAttributes C# (CSharp) Method

ValidateSubResponseDataOptionalAttributes() private static method

Capture requirements related with SubResponseDataOptionalAttributes type
private static ValidateSubResponseDataOptionalAttributes ( SubResponseDataGenericType subResponseData, ITestSite site ) : void
subResponseData Microsoft.Protocols.TestSuites.Common.SubResponseDataGenericType The SubResponseData information
site ITestSite Instance of ITestSite
return void
        private static void ValidateSubResponseDataOptionalAttributes(SubResponseDataGenericType subResponseData, ITestSite site)
        {
            // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R458
            site.CaptureRequirement(
                     "MS-FSSHTTP",
                     458,
                     @"[In SubResponseDataOptionalAttributes] The definition of the SubResponseDataOptionalAttributes attribute group is as follows:
                     <xs:attributeGroup name=""SubResponseDataOptionalAttributes"">
                         <xs:attributeGroup ref=""tns:CellSubResponseDataOptionalAttributes""/>
                         <xs:attributeGroup ref=""tns:WhoAmISubResponseDataOptionalAttributes""/>
                         <xs:attribute name=""ServerTime"" type=""xs:positiveInteger"" use=""optional""/>
                         <xs:attribute name=""LockType"" type=""tns:LockTypes"" use=""optional"" />
                         <xs:attribute name=""CoauthStatus"" type=""tns:CoauthStatusType"" use=""optional""/>
                         <xs:attribute name=""TransitionID"" type=""tns:guid"" use=""optional""/>
                         <xs:attribute name=""ExclusiveLockReturnReason"" type=""tns:ExclusiveLockReturnReasonTypes"" use=""optional"" /> 
                     </xs:attributeGroup>");

            // Verify requirements related with CellSubResponseDataOptionalAttributes
            if (subResponseData.Etag != null
                || subResponseData.CreateTime != null
                || subResponseData.ModifiedBy != null
                || subResponseData.LastModifiedTime != null
                || subResponseData.CoalesceErrorMessage != null)
            {
                CellSubResponseDataType cellSubResponseData = new CellSubResponseDataType();
                cellSubResponseData.Etag = subResponseData.Etag;
                cellSubResponseData.CreateTime = subResponseData.CreateTime;
                cellSubResponseData.ModifiedBy = subResponseData.ModifiedBy;
                cellSubResponseData.LastModifiedTime = subResponseData.LastModifiedTime;
                cellSubResponseData.CoalesceErrorMessage = subResponseData.CoalesceErrorMessage;
                ValidateCellSubResponseDataOptionalAttributes(cellSubResponseData, site);
            }

            // Verify requirements related with WhoAmISubResponseDataOptionalAttributes
            if (subResponseData.UserName != null
                || subResponseData.UserEmailAddress != null
                || subResponseData.UserSIPAddress != null)
            {
                WhoAmISubResponseDataType whoamiSubResponseData = new WhoAmISubResponseDataType();
                whoamiSubResponseData.UserName = subResponseData.UserName;
                whoamiSubResponseData.UserEmailAddress = subResponseData.UserEmailAddress;
                whoamiSubResponseData.UserSIPAddress = subResponseData.UserSIPAddress;
                ValidateWhoAmISubResponseDataOptionalAttributes(whoamiSubResponseData, site);
            }

            if (subResponseData.ServerTime != null)
            {
                // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R463
                site.CaptureRequirement(
                         "MS-FSSHTTP",
                         463,
                         @"[In SubResponseDataOptionalAttributes] ServerTime: A positive integer that specifies the server time, which is expressed as a tick count.");
            }

            if (subResponseData.LockTypeSpecified)
            {
                // Verify LockTypes
                ValidateLockTypes(site);
            }

            if (subResponseData.CoauthStatusSpecified)
            {
                // Verify CoauthStatusType
                ValidateCoauthStatusType(site);
            }

            if (subResponseData.TransitionID != null)
            {
                // Verify GUID type
                ValidateGUID(site);
            }

            if (subResponseData.ExclusiveLockReturnReasonSpecified)
            {
                // Verify ExclusiveLockReturnReasonTypes
                ValidateExclusiveLockReturnReasonTypes(site);
            }
        }