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);
}
}