/// <summary>
        /// Verify RopCopyFolder Null Destination Failure Response
        /// </summary>
        /// <param name="ropCopyFolderResponse">The response of RopCopyFolder request</param>
        /// <param name="sourceHandleIndex">The field of SourceHandleIndex in RopCopyFolder request</param>
        /// <param name="destHandleIndex">The field of DestHandleIndex in RopCopyFolder request</param>
        private void VerifyRopCopyFolderNullDestinationFailureResponse(RopCopyFolderResponse ropCopyFolderResponse, byte sourceHandleIndex, uint destHandleIndex)
        {
            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R870");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R870
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(byte),
                ropCopyFolderResponse.RopId.GetType(),
                870,
                @"[In RopCopyFolder ROP Null Destination Failure Response Buffer] RopId (1 byte): An unsigned integer.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R872");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R872
            Site.CaptureRequirementIfAreEqual<byte>(
                (byte)RopId.RopCopyFolder,
                ropCopyFolderResponse.RopId,
                872,
                @"[In RopCopyFolder ROP Null Destination Failure Response Buffer] RopId (1 byte): For this operation[RopCopyFolder], this field[RopId (1 byte)] is set to 0x36.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R873");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R873
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(byte),
                ropCopyFolderResponse.SourceHandleIndex.GetType(),
                873,
                @"[In RopCopyFolder ROP Null Destination Failure Response Buffer] SourceHandleIndex (1 byte): An unsigned integer.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R874");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R874
            Site.CaptureRequirementIfAreEqual<byte>(
                sourceHandleIndex,
                ropCopyFolderResponse.SourceHandleIndex,
                874,
                @"[In RopCopyFolder ROP Null Destination Failure Response Buffer] SourceHandleIndex (1 byte): This index MUST be set to the value specified in the SourceHandleIndex field in the request.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R875");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R875
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(uint),
                ropCopyFolderResponse.ReturnValue.GetType(),
                875,
                @"[In RopCopyFolder ROP Null Destination Failure Response Buffer] ReturnValue (4 bytes): An unsigned integer.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R877");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R877
            Site.CaptureRequirementIfAreEqual<uint>(
                ReturnValueForRopMoveFolderResponseAndMoveCopyMessage,
                ropCopyFolderResponse.ReturnValue,
                877,
                @"[In RopCopyFolder ROP Null Destination Failure Response Buffer] ReturnValue (4 bytes): For this response[Null Destination Failure Response], this field is set to 0x00000503.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R878");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R878
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(uint),
                ropCopyFolderResponse.DestHandleIndex.GetType(),
                878,
                @"[In RopCopyFolder ROP Null Destination Failure Response Buffer] DestHandleIndex (4 bytes): An unsigned integer.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R879");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R879
            Site.CaptureRequirementIfAreEqual<uint>(
                destHandleIndex,
                ropCopyFolderResponse.DestHandleIndex,
                879,
                @"[In RopCopyFolder ROP Null Destination Failure Response Buffer] DestHandleIndex (4 bytes): This index[DestHandleIndex (4 bytes)] MUST be set to the value specified in the DestHandleIndex field in the request.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R880,PartialCompletion:{0}", ropCopyFolderResponse.PartialCompletion);

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R880
            // If PartialCompletion is byte type and can be boolean type representation, then verify R880
            bool isVerifyR880 = (typeof(byte) == ropCopyFolderResponse.PartialCompletion.GetType()) &&
                                ((Convert.ToBoolean(ropCopyFolderResponse.PartialCompletion) == true) ||
                                (Convert.ToBoolean(ropCopyFolderResponse.PartialCompletion) == false));

            Site.CaptureRequirementIfIsTrue(
                isVerifyR880,
                880,
                @"[In RopCopyFolder ROP Null Destination Failure Response Buffer] PartialCompletion (1 byte): A Boolean.");
        }
        /// <summary>
        /// Verify the response of RopCopyFolder ROP operation.
        /// </summary>
        /// <param name="copyFolderResponse">The response of RopCopyFolder operation</param>
        private void VerifyRopCopyFolder(RopCopyFolderResponse copyFolderResponse)
        {
            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCFOLD_R217");

            // Verify MS-OXCFOLD requirement: MS-OXCFOLD_R217
            Site.CaptureRequirementIfAreEqual<uint>(
                Constants.SuccessCode,
                copyFolderResponse.ReturnValue,
                217,
                @"[In RopCopyFolder ROP Response Buffer] ReturnValue (4 bytes): The server returns 0x00000000 to indicate success.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCFOLD_R196");

            // Verify MS-OXCFOLD requirement: MS-OXCFOLD_R196
            Site.CaptureRequirementIfAreEqual<uint>(
                Constants.SuccessCode,
                copyFolderResponse.ReturnValue,
                196,
                @"[In RopCopyFolder ROP] The RopCopyFolder ROP ([MS-OXCROPS] section 2.2.4.8) copies a folder from one parent folder to another parent folder.");
        }
        /// <summary>
        /// Verify RopCopyFolder Response
        /// </summary>
        /// <param name="ropCopyFolderResponse">The response of RopCopyFolder request</param>
        /// <param name="sourceHandleIndex">The field SourceHandleIndex in RopCopyFolder request</param>
        private void VerifyRopCopyFolderResponse(RopCopyFolderResponse ropCopyFolderResponse, byte sourceHandleIndex)
        {
            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R860");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R860
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(byte),
                ropCopyFolderResponse.RopId.GetType(),
                860,
                @"[In RopCopyFolder ROP Response Buffer] RopId (1 byte): An unsigned integer.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R862");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R862
            Site.CaptureRequirementIfAreEqual<byte>(
                (byte)RopId.RopCopyFolder,
                ropCopyFolderResponse.RopId,
                862,
                @"[In RopCopyFolder ROP Response Buffer] RopId (1 byte): For this operation[RopCopyFolder], this field[RopId (1 byte)] is set to 0x36.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R863");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R863
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(byte),
                ropCopyFolderResponse.SourceHandleIndex.GetType(),
                863,
                @"[In RopCopyFolder ROP Response Buffer] SourceHandleIndex (1 byte): An unsigned integer.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R864");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R864
            Site.CaptureRequirementIfAreEqual<byte>(
                sourceHandleIndex,
                ropCopyFolderResponse.SourceHandleIndex,
                864,
                @"[In RopCopyFolder ROP Response Buffer] SourceHandleIndex (1 byte): This index[SourceHandleIndex (1 byte)] MUST be set to the value specified in the SourceHandleIndex field in the request.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R865");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R865
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(uint),
                ropCopyFolderResponse.ReturnValue.GetType(),
                865,
                @"[In RopCopyFolder ROP Response Buffer] ReturnValue (4 bytes): An unsigned integer.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R867");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R867
            Site.CaptureRequirementIfAreNotEqual<uint>(
                ReturnValueForRopMoveFolderResponseAndMoveCopyMessage,
                ropCopyFolderResponse.ReturnValue,
                867,
                @"[In RopCopyFolder ROP Response Buffer] ReturnValue (4 bytes): For this response[Response Buffer], this field[ReturnValue (4 bytes)] is set to a value other than 0x00000503.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R868,PartialCompletion:{0}", ropCopyFolderResponse.PartialCompletion);

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R868
            // If PartialCompletion is byte type and can be boolean type representation, then verify R868
            bool isVerifyR868 = (typeof(byte) == ropCopyFolderResponse.PartialCompletion.GetType()) &&
                                ((Convert.ToBoolean(ropCopyFolderResponse.PartialCompletion) == true) ||
                                (Convert.ToBoolean(ropCopyFolderResponse.PartialCompletion) == false));

            Site.CaptureRequirementIfIsTrue(
                isVerifyR868,
                868,
                @"[In RopCopyFolder ROP Response Buffer] PartialCompletion (1 byte): A Boolean.");
        }