/// <summary>
        /// Verify RopSetPropertiesNoReplicate Failure Response
        /// </summary>
        /// <param name="ropSetPropertiesNoReplicateResponse">The failure response of SetPropertiesNoReplicate request</param>
        /// <param name="inputHandleIndex">The field of InputHandleIndex in RopSetPropertiesNoReplicate request</param>
        private void VerifyRopSetPropertiesNoReplicateFailureResponse(RopSetPropertiesNoReplicateResponse ropSetPropertiesNoReplicateResponse, byte inputHandleIndex)
        {
            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R2861");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R2861
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(byte),
                ropSetPropertiesNoReplicateResponse.RopId.GetType(),
                2861,
                @"[In RopSetPropertiesNoReplicate ROP Failure Response Buffer]RopId (1 byte): An unsigned integer.");

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

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R2863
            Site.CaptureRequirementIfAreEqual<byte>(
                (byte)RopId.RopSetPropertiesNoReplicate,
                ropSetPropertiesNoReplicateResponse.RopId,
                2863,
                @"[In RopSetPropertiesNoReplicate ROP Failure Response Buffer,RopId (1 byte)]For this operation[RopSetPropertiesNoReplicate], this field is set to 0x79.");

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

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R2864
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(byte),
                ropSetPropertiesNoReplicateResponse.InputHandleIndex.GetType(),
                2864,
                @"[In RopSetPropertiesNoReplicate ROP Failure Response Buffer]InputHandleIndex (1 byte): An unsigned integer.");

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

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R2865
            Site.CaptureRequirementIfAreEqual<byte>(
                inputHandleIndex,
                ropSetPropertiesNoReplicateResponse.InputHandleIndex,
                2865,
                @"[In RopSetPropertiesNoReplicate 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_R2867");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R2867
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(uint),
                ropSetPropertiesNoReplicateResponse.ReturnValue.GetType(),
                2867,
                @"[In RopSetPropertiesNoReplicate ROP Failure Response Buffer]ReturnValue (4 bytes): An unsigned integer.");

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

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R2869
            Site.CaptureRequirementIfAreNotEqual<uint>(
                SuccessReturnValue,
                ropSetPropertiesNoReplicateResponse.ReturnValue,
                2869,
                @"[In RopSetPropertiesNoReplicate ROP Failure Response Buffer,ReturnValue (4 bytes)]For this response[Failure Response], this field is set to a value other than 0x00000000.");
        }
Пример #2
0
        /// <summary>
        /// Verify the RopSetPropertiesNoReplicate operation related requirements.
        /// </summary>
        /// <param name="ropSetPropertiesNoReplicateResponse">The RopSetPropertiesNoReplicate response buffer structure.</param>
        /// <param name="objectType">Indicates which object type the RopSetPropertiesNoReplicate operation is acting on.</param>
        private void VerifyRopSetPropertiesNoReplicate(RopSetPropertiesNoReplicateResponse ropSetPropertiesNoReplicateResponse, ServerObjectType objectType)
        {
            if (ropSetPropertiesNoReplicateResponse.ReturnValue.Equals((uint)CPRPTErrorCode.None))
            {
                if (objectType == ServerObjectType.Message)
                {
                    // If the object type this operation acting on is Message object and this operation is performed successfully, then the following requirement can be captured.
                    Site.CaptureRequirement(
                        826,
                        @"[In RopSetPropertiesNoReplicate ROP] This ROP is supported for Message objects.");
                }

                if (objectType == ServerObjectType.Folder)
                {
                    // If the object type this operation acting on is Folder object and this operation is performed successfully, then the following requirement can be captured.
                    Site.CaptureRequirement(
                        828,
                        @"[In RopSetPropertiesNoReplicate ROP] This ROP is supported for Folder objects.");
                }

                if (objectType == ServerObjectType.Attachment)
                {
                    // If the object type this operation acting on is Attachment object and this operation is performed successfully, then the following requirement can be captured.
                    Site.CaptureRequirement(
                        830,
                        @"[In RopSetPropertiesNoReplicate ROP] This ROP is supported for Attachment objects.");
                }

                if (objectType == ServerObjectType.Logon)
                {
                    // If the object type this operation acting on is Logon object and this operation is performed successfully, then the following requirement can be captured.
                    Site.CaptureRequirement(
                        832,
                        @"[In RopSetPropertiesNoReplicate ROP] This ROP is supported for Logon objects.");
                }

                // The parser has ensured the field satisfied the format, otherwise the response cannot be received.
                Site.CaptureRequirement(
                  83307,
                  @"[In RopSetPropertiesNoReplicate ROP Response Buffer] propertyProblemCount: 2 bytes integer.");
            }

            ushort numberOfPropertyProblem = 0;
            if (ropSetPropertiesNoReplicateResponse.PropertyProblemCount != 0)
            {
                for (int counter = 0; counter < ropSetPropertiesNoReplicateResponse.PropertyProblems.Length; counter++)
                {
                    this.VerifyPropertyProblemSturctureInCDATA();
                }

                numberOfPropertyProblem = (ushort)ropSetPropertiesNoReplicateResponse.PropertyProblems.Length;
            }

            Site.CaptureRequirementIfAreEqual<ushort>(
             numberOfPropertyProblem,
             ropSetPropertiesNoReplicateResponse.PropertyProblemCount,
             83308,
             @"[In RopSetPropertiesNoReplicate ROP Response Buffer] propertyProblemCount: An integer that specifies the number of elements contained in the PropertyProblems field.");
        }
        /// <summary>
        /// Verify RopSetPropertiesNoReplicate Success Response
        /// </summary>
        /// <param name="ropSetPropertiesNoReplicateResponse">The success response of RopSetPropertiesNoReplicate request</param>
        /// <param name="inputHandleIndex">The field of InputHandleIndex in RopSetPropertiesNoReplicate request</param>
        private void VerifyRopSetPropertiesNoReplicateSuccessResponse(RopSetPropertiesNoReplicateResponse ropSetPropertiesNoReplicateResponse, byte inputHandleIndex)
        {
            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R2847");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R2847
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(byte),
                ropSetPropertiesNoReplicateResponse.RopId.GetType(),
                2847,
                @"[In RopSetPropertiesNoReplicate ROP Success Response Buffer]RopId (1 byte): An unsigned integer.");

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

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R2849
            Site.CaptureRequirementIfAreEqual<byte>(
                (byte)RopId.RopSetPropertiesNoReplicate,
                ropSetPropertiesNoReplicateResponse.RopId,
                2849,
                @"[In RopSetPropertiesNoReplicate ROP Success Response Buffer,RopId (1 byte)]For this operation[RopSetPropertiesNoReplicate], this field is set to 0x79.");

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

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R2850
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(byte),
                ropSetPropertiesNoReplicateResponse.InputHandleIndex.GetType(),
                2850,
                @"[In RopSetPropertiesNoReplicate ROP Success Response Buffer]InputHandleIndex (1 byte): An unsigned integer.");

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

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R2851
            Site.CaptureRequirementIfAreEqual<byte>(
                inputHandleIndex,
                ropSetPropertiesNoReplicateResponse.InputHandleIndex,
                2851,
                @"[In RopSetPropertiesNoReplicate 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_R2853");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R2853
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(uint),
                ropSetPropertiesNoReplicateResponse.ReturnValue.GetType(),
                2853,
                @"[In RopSetPropertiesNoReplicate ROP Success Response Buffer]ReturnValue (4 bytes): An unsigned integer.");

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

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R2855
            Site.CaptureRequirementIfAreEqual<uint>(
                SuccessReturnValue,
                ropSetPropertiesNoReplicateResponse.ReturnValue,
                2855,
                @"[In RopSetPropertiesNoReplicate ROP Success Response Buffer,ReturnValue (4 bytes)]For this response[Success Response], this field is set to 0x00000000.");

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

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R2856
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(ushort),
                ropSetPropertiesNoReplicateResponse.PropertyProblemCount.GetType(),
                2856,
                @"[In RopSetPropertiesNoReplicate ROP Success Response Buffer]PropertyProblemCount (2 bytes): An unsigned integer.");

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

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R2858
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(PropertyProblem[]),
                ropSetPropertiesNoReplicateResponse.PropertyProblems.GetType(),
                2858,
                @"[In RopSetPropertiesNoReplicate ROP Success Response Buffer]PropertyProblems (variable): An array of PropertyProblem structures.");

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

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R2859
            Site.CaptureRequirementIfAreEqual<int>(
                ropSetPropertiesNoReplicateResponse.PropertyProblemCount,
                ropSetPropertiesNoReplicateResponse.PropertyProblems.Length,
                2859,
                @"[In RopSetPropertiesNoReplicate ROP Success Response Buffer,PropertyProblems (variable)]The number of structures contained in this field is specified by the PropertyProblemCount field.");

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

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R2857
            Site.CaptureRequirementIfAreEqual<int>(
                ropSetPropertiesNoReplicateResponse.PropertyProblems.Length,
                ropSetPropertiesNoReplicateResponse.PropertyProblemCount,
                2857,
                @"[In RopSetPropertiesNoReplicate ROP Success Response Buffer,PropertyProblemCount (2 bytes)]This value specifies the number of PropertyProblem structures in the PropertyProblems field.");
        }