/// <summary> /// Verify RopDeletePropertiesNoReplicate Failure Response /// </summary> /// <param name="ropDeletePropertiesNoReplicateResponse">The failure response of RopDeletePropertiesNoReplicate request</param> /// <param name="inputHandleIndex">The field of InputHandleIndex in RopDeletePropertiesNoReplicate request</param> private void VerifyRopDeletePropertiesNoReplicateFailureResponse(RopDeletePropertiesNoReplicateResponse ropDeletePropertiesNoReplicateResponse, byte inputHandleIndex) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R2944"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R2944 Site.CaptureRequirementIfAreEqual<Type>( typeof(byte), ropDeletePropertiesNoReplicateResponse.RopId.GetType(), 2944, @"[In RopDeletePropertiesNoReplicate ROP Failure Response Buffer]RopId (1 byte): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R2946"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R2946 Site.CaptureRequirementIfAreEqual<byte>( (byte)RopId.RopDeletePropertiesNoReplicate, ropDeletePropertiesNoReplicateResponse.RopId, 2946, @"[In RopDeletePropertiesNoReplicate ROP Failure Response Buffer,RopId (1 byte)]For this operation[RopDeletePropertiesNoReplicate], this field is set to 0x7A."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R2947"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R2947 Site.CaptureRequirementIfAreEqual<Type>( typeof(byte), ropDeletePropertiesNoReplicateResponse.InputHandleIndex.GetType(), 2947, @"[In RopDeletePropertiesNoReplicate ROP Failure Response Buffer]InputHandleIndex (1 byte): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R2948"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R2948 Site.CaptureRequirementIfAreEqual<byte>( inputHandleIndex, ropDeletePropertiesNoReplicateResponse.InputHandleIndex, 2948, @"[In RopDeletePropertiesNoReplicate 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_R2950"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R2950 Site.CaptureRequirementIfAreEqual<Type>( typeof(uint), ropDeletePropertiesNoReplicateResponse.ReturnValue.GetType(), 2950, @"[In RopDeletePropertiesNoReplicate ROP Failure Response Buffer]ReturnValue (4 bytes): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R2952"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R2952 Site.CaptureRequirementIfAreNotEqual<uint>( SuccessReturnValue, ropDeletePropertiesNoReplicateResponse.ReturnValue, 2952, @"[In RopDeletePropertiesNoReplicate ROP Failure Response Buffer,ReturnValue (4 bytes)]For this response[Failure Response], this field is set to a value other than 0x00000000."); }
/// <summary> /// Verify the RopDeletePropertiesNoReplicate operation related requirements. /// </summary> /// <param name="ropDeletePropertiesNoReplicateResponse">The RopDeletePropertiesNoReplicate response buffer structure.</param> /// <param name="objectType">Indicates which object type the RopDeletePropertiesNoReplicate operation is acting on.</param> private void VerifyRopDeletePropertiesNoReplicate(RopDeletePropertiesNoReplicateResponse ropDeletePropertiesNoReplicateResponse, ServerObjectType objectType) { if (ropDeletePropertiesNoReplicateResponse.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( 837, @"[In RopDeletePropertiesNoReplicate] 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( 839, @"[In RopDeletePropertiesNoReplicate] 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( 841, @"[In RopDeletePropertiesNoReplicate] 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( 843, @"[In RopDeletePropertiesNoReplicate] This ROP is supported for Logon objects."); } if (ropDeletePropertiesNoReplicateResponse.PropertyProblemCount != 0) { // The parser has ensured the field satisfied the format, otherwise the response cannot be received. Site.CaptureRequirement( 84407, @"[In RopDeletePropertiesNoReplicate ROP Response Buffer] PropertyProblems (variable): An array of PropertyProblem structures ([MS-OXCDATA] section 2.7)."); } // The parser has ensured the field satisfied the format, otherwise the response cannot be received. Site.CaptureRequirement( 84405, @"[In RopDeletePropertiesNoReplicate ROP Response Buffer] PropertyProblemCount: 2 bytes integer."); } if (ropDeletePropertiesNoReplicateResponse.ReturnValue == 0x8004010F) { // The parser has ensured the field satisfied the format, otherwise the response cannot be received. Site.CaptureRequirement( "MS-OXCDATA", 2055, @"[In Additional Error Codes] The numeric value (hex) for error code NotFound is 0x8004010F, %x0F.01.04.80."); } ushort numberOfPropertyProblem = 0; if (ropDeletePropertiesNoReplicateResponse.PropertyProblemCount > 0) { for (int counter = 0; counter < ropDeletePropertiesNoReplicateResponse.PropertyProblems.Length; counter++) { this.VerifyPropertyProblemSturctureInCDATA(); } numberOfPropertyProblem = (ushort)ropDeletePropertiesNoReplicateResponse.PropertyProblems.Length; } Site.CaptureRequirementIfAreEqual<ushort>( numberOfPropertyProblem, ropDeletePropertiesNoReplicateResponse.PropertyProblemCount, 84406, @"[In RopDeletePropertiesNoReplicate ROP Response Buffer] PropertyProblemCount: An integer that specifies the number of elements contained in the PropertyProblems field."); }
/// <summary> /// Verify RopDeletePropertiesNoReplicate Success Response /// </summary> /// <param name="ropDeletePropertiesNoReplicateResponse">The success response of RopDeletePropertiesNoReplicate request</param> /// <param name="inputHandleIndex">The field of InputHandleIndex in RopDeletePropertiesNoReplicate request</param> private void VerifyRopDeletePropertiesNoReplicateSuccessResponse(RopDeletePropertiesNoReplicateResponse ropDeletePropertiesNoReplicateResponse, byte inputHandleIndex) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R2930"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R2930 Site.CaptureRequirementIfAreEqual<Type>( typeof(byte), ropDeletePropertiesNoReplicateResponse.RopId.GetType(), 2930, @"[In RopDeletePropertiesNoReplicate ROP Success Response Buffer]RopId (1 byte): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R2932"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R2932 Site.CaptureRequirementIfAreEqual<byte>( (byte)RopId.RopDeletePropertiesNoReplicate, ropDeletePropertiesNoReplicateResponse.RopId, 2932, @"[In RopDeletePropertiesNoReplicate ROP Success Response Buffer,RopId (1 byte)]For this operation[RopDeletePropertiesNoReplicate], this field is set to 0x7A."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R2933"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R2933 Site.CaptureRequirementIfAreEqual<Type>( typeof(byte), ropDeletePropertiesNoReplicateResponse.InputHandleIndex.GetType(), 2933, @"[In RopDeletePropertiesNoReplicate ROP Success Response Buffer]InputHandleIndex (1 byte): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R2934"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R2934 Site.CaptureRequirementIfAreEqual<byte>( inputHandleIndex, ropDeletePropertiesNoReplicateResponse.InputHandleIndex, 2934, @"[In RopDeletePropertiesNoReplicate 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_R2936"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R2936 Site.CaptureRequirementIfAreEqual<Type>( typeof(uint), ropDeletePropertiesNoReplicateResponse.ReturnValue.GetType(), 2936, @"[In RopDeletePropertiesNoReplicate ROP Success Response Buffer]ReturnValue (4 bytes): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R2938"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R2938 Site.CaptureRequirementIfAreEqual<uint>( SuccessReturnValue, ropDeletePropertiesNoReplicateResponse.ReturnValue, 2938, @"[In RopDeletePropertiesNoReplicate 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_R2939"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R2939 Site.CaptureRequirementIfAreEqual<Type>( typeof(ushort), ropDeletePropertiesNoReplicateResponse.PropertyProblemCount.GetType(), 2939, @"[In RopDeletePropertiesNoReplicate ROP Success Response Buffer]PropertyProblemCount (2 bytes): An unsigned integer."); // According to the de-serialize approach of ropDeletePropertiesNoReplicateResponse,if the PropertyProblemCount's value is greater than 0, the error operation occurs. if (ropDeletePropertiesNoReplicateResponse.PropertyProblemCount > 0) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R2941"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R2941 Site.CaptureRequirementIfAreEqual<Type>( typeof(PropertyProblem[]), ropDeletePropertiesNoReplicateResponse.PropertyProblems.GetType(), 2941, @"[In RopDeletePropertiesNoReplicate ROP Success Response Buffer]PropertyProblems (variable): An array of PropertyProblem structures."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R2942"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R2942 Site.CaptureRequirementIfAreEqual<int>( ropDeletePropertiesNoReplicateResponse.PropertyProblemCount, ropDeletePropertiesNoReplicateResponse.PropertyProblems.Length, 2942, @"[In RopDeletePropertiesNoReplicate 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_R2940"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R2940 Site.CaptureRequirementIfAreEqual<int>( ropDeletePropertiesNoReplicateResponse.PropertyProblems.Length, ropDeletePropertiesNoReplicateResponse.PropertyProblemCount, 2940, @"[In RopDeletePropertiesNoReplicate ROP Success Response Buffer,PropertyProblemCount (2 bytes)]This value specifies the number of PropertyProblem structures in the PropertyProblems field."); foreach (PropertyProblem propertyProblem in ropDeletePropertiesNoReplicateResponse.PropertyProblems) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCDATA_R46"); // Verify MS-OXCROPS requirement: MS-OXCDATA_R46 Site.CaptureRequirementIfAreEqual<Type>( typeof(ushort), propertyProblem.Index.GetType(), "MS-OXCDATA", 46, @"[In PropertyProblem Structure] Index (2 bytes): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCDATA_R48"); // Verify MS-OXCROPS requirement: MS-OXCDATA_R48 Site.CaptureRequirementIfAreEqual<Type>( typeof(PropertyTag), propertyProblem.PropertyTag.GetType(), "MS-OXCDATA", 48, @"[In PropertyProblem Structure] PropertyTag (4 bytes): A PropertyTag structure, as specified in section 2.9."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCDATA_R50"); // Verify MS-OXCROPS requirement: MS-OXCDATA_R50 Site.CaptureRequirementIfAreEqual<Type>( typeof(uint), propertyProblem.ErrorCode.GetType(), "MS-OXCDATA", 50, @"[In PropertyProblem Structure] ErrorCode (4 bytes): An unsigned integer."); } } }