/// <summary> /// Verify RopGetPerUserLongTermIds Failure Response /// </summary> /// <param name="ropGetPerUserLongTermIdsResponse">The failure response of RopGetPerUserLongTermIds request</param> /// <param name="inputHandleIndex">The field of InputHandleIndex in RopGetPerUserLongTermIds request</param> private void VerifyRopGetPerUserLongTermIdsFailureResponse(RopGetPerUserLongTermIdsResponse ropGetPerUserLongTermIdsResponse, byte inputHandleIndex) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R414"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R414 Site.CaptureRequirementIfAreEqual<Type>( typeof(byte), ropGetPerUserLongTermIdsResponse.RopId.GetType(), 414, @"[In RopGetPerUserLongTermIds ROP Failure Response Buffer] RopId (1 byte): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R416"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R416 Site.CaptureRequirementIfAreEqual<byte>( (byte)RopId.RopGetPerUserLongTermIds, ropGetPerUserLongTermIdsResponse.RopId, 416, @"[In RopGetPerUserLongTermIds ROP Failure Response Buffer] RopId (1 byte): For this operation[RopGetPerUserLongTermIds], this field[RopId (1 byte)] is set to 0x60."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R417"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R417 Site.CaptureRequirementIfAreEqual<Type>( typeof(byte), ropGetPerUserLongTermIdsResponse.InputHandleIndex.GetType(), 417, @"[In RopGetPerUserLongTermIds ROP Failure Response Buffer] InputHandleIndex (1 byte): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R418"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R418 Site.CaptureRequirementIfAreEqual<byte>( inputHandleIndex, ropGetPerUserLongTermIdsResponse.InputHandleIndex, 418, @"[In RopGetPerUserLongTermIds ROP Failure Response Buffer] InputHandleIndex (1 byte): This index MUST be set to the value specified in the InputHandleIndex field in the request."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R419"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R419 Site.CaptureRequirementIfAreEqual<Type>( typeof(uint), ropGetPerUserLongTermIdsResponse.ReturnValue.GetType(), 419, @"[In RopGetPerUserLongTermIds ROP Failure Response Buffer] ReturnValue (4 bytes): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R421"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R421 Site.CaptureRequirementIfAreNotEqual<uint>( SuccessReturnValue, ropGetPerUserLongTermIdsResponse.ReturnValue, 421, @"[In RopGetPerUserLongTermIds ROP Failure Response Buffer] ReturnValue (4 bytes): For this response[Failure Response], this field[ReturnValue (4 bytes)] is set to a value other than 0x00000000."); }
/// <summary> /// Verify the response by sending the ROP RopGetPerUserLongTermIds. /// </summary> /// <param name="response">The structure of ROP RopGetPerUserLongTermIds response.</param> private void VerifyRopGetPerUserLongTermIds(RopGetPerUserLongTermIdsResponse response) { if (response.ReturnValue == 0) { if (response.LongTermIds != null && response.LongTermIds.Length > 0) { // Add the debug information this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCSTOR_R468"); // If the response can be parsed successfully and the return value is success, indicates the ROP's functionality is consistent with its description. this.Site.CaptureRequirement( 468, @"[In RopGetPerUserLongTermIds ROP] The RopGetPerUserLongTermIds ROP ([MS-OXCROPS] section 2.2.3.10) is used to obtain the LongTermIDs (as specified in [MS-OXCDATA] section 2.2.1.3.1) of folders in a public folders message store that contain per-user read/unread data identified by a REPLGUID."); // Add the debug information this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCSTOR_R474"); // Verify MS-OXCSTOR requirement: MS-OXCSTOR_R474 // If the response can be parsed successfully and the return value is success, this requirement can be verified directly. this.Site.CaptureRequirement( 474, @"[In RopGetPerUserLongTermIds ROP Success Response Buffer] LongTermIds: Contains an array of LongTermID structures, as specified in [MS-OXCDATA] section 2.2.1.3.1, of folders in the public message store for which this user has cached read/unread information."); } bool isLongTermIdCountConsistent = ((response.LongTermIds == null) && (response.LongTermIdCount == 0)) || ((response.LongTermIds != null) && (response.LongTermIdCount == (ushort)response.LongTermIds.Length)); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCSTOR_R475, the LongTermIdCount is: {0}.", response.LongTermIdCount); // Verify MS-OXCSTOR requirement: MS-OXCSTOR_R475 bool isVerify475 = isLongTermIdCountConsistent; Site.CaptureRequirementIfIsTrue( isVerify475, 475, @"[In RopGetPerUserLongTermIds ROP Success Response Buffer] LongTermIds: The number of items in this array MUST be the same as the value of the LongTermIdCount field (section 2.2.1.10.2)."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCSTOR_R472, the LongTermIdCount is: {0}.", response.LongTermIdCount); // Verify MS-OXCSTOR requirement: MS-OXCSTOR_R472 bool isVerify472 = isLongTermIdCountConsistent; Site.CaptureRequirementIfIsTrue( isVerify472, 472, @"[In RopGetPerUserLongTermIds ROP Success Response Buffer] LongTermIdCount: Specifies the number of entries in the following array."); } }
/// <summary> /// Verify RopGetPerUserLongTermIds Success Response /// </summary> /// <param name="ropGetPerUserLongTermIdsResponse">The success response of RopGetPerUserLongTermIds request</param> /// <param name="inputHandleIndex">The field of InputHandleIndex in RopGetPerUserLongTermIds request</param> private void VerifyRopGetPerUserLongTermIdsSuccessResponse(RopGetPerUserLongTermIdsResponse ropGetPerUserLongTermIdsResponse, byte inputHandleIndex) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R400"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R400 Site.CaptureRequirementIfAreEqual<Type>( typeof(byte), ropGetPerUserLongTermIdsResponse.RopId.GetType(), 400, @"[In RopGetPerUserLongTermIds ROP Success Response Buffer] RopId (1 byte): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R402"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R402 Site.CaptureRequirementIfAreEqual<byte>( (byte)RopId.RopGetPerUserLongTermIds, ropGetPerUserLongTermIdsResponse.RopId, 402, @"[In RopGetPerUserLongTermIds ROP Success Response Buffer] RopId (1 byte): For this operation[RopGetPerUserLongTermIds], this field[RopId (1 byte)] is set to 0x60."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R403"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R403 Site.CaptureRequirementIfAreEqual<Type>( typeof(byte), ropGetPerUserLongTermIdsResponse.InputHandleIndex.GetType(), 403, @"[In RopGetPerUserLongTermIds ROP Success Response Buffer] InputHandleIndex (1 byte): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R404"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R404 Site.CaptureRequirementIfAreEqual<byte>( inputHandleIndex, ropGetPerUserLongTermIdsResponse.InputHandleIndex, 404, @"[In RopGetPerUserLongTermIds ROP Success Response Buffer] InputHandleIndex (1 byte): This index MUST be set to the value specified in the InputHandleIndex field in the request."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R405"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R405 Site.CaptureRequirementIfAreEqual<Type>( typeof(uint), ropGetPerUserLongTermIdsResponse.ReturnValue.GetType(), 405, @"[In RopGetPerUserLongTermIds ROP Success Response Buffer] ReturnValue (4 bytes): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R407"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R407 Site.CaptureRequirementIfAreEqual<uint>( SuccessReturnValue, ropGetPerUserLongTermIdsResponse.ReturnValue, 407, @"[In RopGetPerUserLongTermIds ROP Success Response Buffer] ReturnValue (4 bytes): For this response[Success Response], this field[ReturnValue (4 bytes)] is set to 0x00000000."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R408"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R408 Site.CaptureRequirementIfAreEqual<Type>( typeof(ushort), ropGetPerUserLongTermIdsResponse.LongTermIdCount.GetType(), 408, @"[In RopGetPerUserLongTermIds ROP Success Response Buffer] LongTermIdCount (2 bytes): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R410"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R410 Site.CaptureRequirementIfAreEqual<Type>( typeof(LongTermId[]), ropGetPerUserLongTermIdsResponse.LongTermIds.GetType(), 410, @"[In RopGetPerUserLongTermIds ROP Success Response Buffer] LongTermIds (variable): An array of LongTermID structures, of which the format is specified in [MS-OXCDATA] section 2.2.1.3.1. "); }