/// <summary> /// Verify the RopCloneStream operation related requirements. /// </summary> /// <param name="ropCloneStreamResponse">The RopCloneStream response buffer structure.</param> private void VerifyRopCloneStream(RopCloneStreamResponse ropCloneStreamResponse) { // Since the RopCloneStream ROP response was parsed successfully, MS-OXCPRPT_R75603 can be captured directly. Site.CaptureRequirement( 75603, @"[In Processing RopCloneStream] The server responds with a RopCloneStream ROP response buffer."); if (Common.IsRequirementEnabled(753, this.Site)) { if (ropCloneStreamResponse.ReturnValue.Equals((uint)CPRPTErrorCode.None)) { // If this operation is performed successfully, the following requirement can be captured. Site.CaptureRequirement( 753, @"[In Appendix A: Product Behavior] Implementation does implement the RopCloneStream ROP. (<18> Section 3.2.5.23: Exchange 2003 and Exchange 2007 implement the RopCloneStream ROP ([MS-OXCROPS] section 2.2.9.12).)"); // If this operation is performed successfully, that means this operation is valid on Stream objects. Site.CaptureRequirement( 39801, @"[In RopCloneStream ROP] This operation is valid on Stream objects."); } } }
/// <summary> /// Verify RopCloneStream Response /// </summary> /// <param name="ropCloneStreamResponse">The response of RopCloneStream request</param> /// <param name="outputHandleIndex">The field of OutputHandleIndex in RopCloneStream request</param> private void VerifyRopCloneStreamResponse(RopCloneStreamResponse ropCloneStreamResponse, byte outputHandleIndex) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R3495"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R3495 Site.CaptureRequirementIfAreEqual<Type>( typeof(byte), ropCloneStreamResponse.RopId.GetType(), 3495, @"[In RopCloneStream ROP Response Buffer]RopId (1 byte): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R3497"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R3497 Site.CaptureRequirementIfAreEqual<byte>( (byte)RopId.RopCloneStream, ropCloneStreamResponse.RopId, 3497, @"[In RopCloneStream ROP Response Buffer,RopId (1 byte)]For this operation[RopCloneStream], this field is set to 0x3B."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R3498"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R3498 Site.CaptureRequirementIfAreEqual<Type>( typeof(byte), ropCloneStreamResponse.OutputHandleIndex.GetType(), 3498, @"[In RopCloneStream ROP Response Buffer]OutputHandleIndex (1 byte): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R3499"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R3499 Site.CaptureRequirementIfAreEqual<byte>( outputHandleIndex, ropCloneStreamResponse.OutputHandleIndex, 3499, @"[In RopCloneStream ROP Response Buffer,OutputHandleIndex (1 byte)]This index MUST be set to the value specified in the OutputHandleIndex field in the request."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R3501"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R3501 Site.CaptureRequirementIfAreEqual<Type>( typeof(uint), ropCloneStreamResponse.ReturnValue.GetType(), 3501, @"[In RopCloneStream ROP Response Buffer]ReturnValue (4 bytes): An unsigned integer."); }