/// <summary> /// Capture requirements related with CellSubResponseDataType. /// </summary> /// <param name="cellSubResponseData">The cellSubResponseData</param> /// <param name="site">Instance of ITestSite</param> private static void ValidateCellSubResponseDataType(CellSubResponseDataType cellSubResponseData, ITestSite site) { // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R1391 // The SubResponseData of CellSubResponse is of type CellSubResponseDataType, so if cellSubResponse.SubResponseData is not null, then MS-FSSHTTP_R1391 can be captured. site.CaptureRequirementIfAreEqual<Type>( typeof(CellSubResponseDataType), cellSubResponseData.GetType(), "MS-FSSHTTP", 1391, @"[In SubResponseDataGenericType][SubResponseDataGenericType MUST take one of the forms described in the following table] CellSubResponseDataType: Type definition for cell subresponse data."); if (cellSubResponseData.LockTypeSpecified) { // Verified LockTypes ValidateLockTypes(site); } // Verify requirements related with CellSubResponseDataOptionalAttributes if (cellSubResponseData.Etag != null || cellSubResponseData.LastModifiedTime != null || cellSubResponseData.CreateTime != null || cellSubResponseData.ModifiedBy != null || cellSubResponseData.CoalesceErrorMessage != null) { ValidateCellSubResponseDataOptionalAttributes(cellSubResponseData, site); } }
/// <summary> /// Capture requirements related with SubResponseDataOptionalAttributes type /// </summary> /// <param name="subResponseData">The SubResponseData information</param> /// <param name="site">Instance of ITestSite</param> 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); } }
/// <summary> /// Capture requirements related with CellSubResponseDataOptionalAttributes. /// </summary> /// <param name="cellSubResponseData">The cellSubResponseData</param> /// <param name="site">Instance of ITestSite</param> private static void ValidateCellSubResponseDataOptionalAttributes(CellSubResponseDataType cellSubResponseData, ITestSite site) { if (cellSubResponseData.ModifiedBy != null) { // Verify requirements related with UserNameTypes ValidateUserNameTypes(site); } // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R1465 site.CaptureRequirement( "MS-FSSHTTP", 1465, @"[In CellSubResponseDataOptionalAttributes] The CellSubResponseDataOptionalAttributes attribute group contains attributes that is used in SubResponseData elements associated with a SubResponse for a cell subrequest."); // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R1497 site.CaptureRequirement( "MS-FSSHTTP", 1497, @"[In SubResponseDataOptionalAttributes] CellSubResponseDataOptionalAttributes: An attribute group that specifies attributes that MUST be used for SubResponseData elements associated with a subresponse for a cell subrequest."); // Verify MS-FSSHTTP requirement: MS-FSSHTTP_R839 site.CaptureRequirement( "MS-FSSHTTP", 839, @"[In CellSubResponseDataOptionalAttributes] The definition of the CellSubResponseDataOptionalAttributes attribute group is as follows: <xs:attributeGroup name=""CellSubResponseDataOptionalAttributes""> <xs:attribute name=""Etag"" type=""xs:string"" use=""optional"" /> <xs:attribute name=""CreateTime"" type=""xs:integer"" use=""optional""/> <xs:attribute name=""LastModifiedTime"" type=""xs:integer"" use=""optional""/> <xs:attribute name=""ModifiedBy"" type=""tns:UserNameType"" use=""optional"" /> <xs:attribute name=""CoalesceErrorMessage"" type=""xs:string"" use=""optional""/> <xs:attribute name=""CoalesceHResult"" type=""xs:integer"" use=""optional""/> <xs:attribute name=""ContainsHotboxData"" type=""tns:TRUEFALSE"" use=""optional""/> <xs:attribute name=""HaveOnlyDemotionChanges"" type=""tns:TRUEFALSE"" use=""optional""/> </xs:attributeGroup>"); }