/// <summary> /// Verify RopFindRow Failure Response /// </summary> /// <param name="ropFindRowResponse">The response of RopFindRow request</param> /// <param name="inputHandleIndex">The field of InputHandleIndex in RopFindRow request</param> private void VerifyRopFindRowFailureResponse(RopFindRowResponse ropFindRowResponse, byte inputHandleIndex) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1487"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1487 Site.CaptureRequirementIfAreEqual<Type>( typeof(byte), ropFindRowResponse.RopId.GetType(), 1487, @"[In RopFindRow ROP Failure Response Buffer] RopId (1 byte): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1489"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1489 Site.CaptureRequirementIfAreEqual<byte>( (byte)RopId.RopFindRow, ropFindRowResponse.RopId, 1489, @"[In RopFindRow ROP Failure Response Buffer] RopId (1 byte): For this operation[RopFindRow], this field[RopId (1 byte)] is set to 0x4F."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1490"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1490 Site.CaptureRequirementIfAreEqual<Type>( typeof(byte), ropFindRowResponse.InputHandleIndex.GetType(), 1490, @"[In RopFindRow ROP Failure Response Buffer] InputHandleIndex (1 byte): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1491"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1491 Site.CaptureRequirementIfAreEqual<byte>( inputHandleIndex, ropFindRowResponse.InputHandleIndex, 1491, @"[In RopFindRow 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_R1492"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1492 Site.CaptureRequirementIfAreEqual<Type>( typeof(uint), ropFindRowResponse.ReturnValue.GetType(), 1492, @"[In RopFindRow ROP Failure Response Buffer] ReturnValue (4 bytes): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1494"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1494 Site.CaptureRequirementIfAreNotEqual<uint>( SuccessReturnValue, ropFindRowResponse.ReturnValue, 1494, @"[In RopFindRow ROP Failure Response Buffer] ReturnValue (4 bytes): For this response[Failure Response], this field is set to a value other than 0x00000000."); }
/// <summary> /// Verify RopFindRow Response /// </summary> /// <param name="findRowResponse">RopFindRowResponse structure data that needs verification</param> private void VerifyRopFindRowResponse(RopFindRowResponse findRowResponse) { this.VerifyRPCLayerRequirement(); if (findRowResponse.ReturnValue == 0x00000000) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCTABL_R237"); // Verify MS-OXCTABL requirement: MS-OXCTABL_R237 Site.CaptureRequirementIfAreEqual<Type>( typeof(byte), findRowResponse.RowNoLongerVisible.GetType(), 237, @"[In RopFindRow ROP Response Buffer] RowNoLongerVisible (1 byte): A Boolean that indicates whether the row to which the bookmark pointed is no longer visible."); if (findRowResponse.HasRowData == 0x01) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCTABL_R245"); // Verify MS-OXCTABL requirement: MS-OXCTABL_R245 Site.CaptureRequirementIfIsNotNull( findRowResponse.RowData, 245, @"[In RopFindRow ROP Response Buffer] If the value of the HasRowData field is ""TRUE"" (0x01), the RowData field MUST be present."); this.VerifyPropertyRowStructure(findRowResponse.RowData); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCTABL_R244"); // Verify MS-OXCTABL requirement: MS-OXCTABL_R244 Site.CaptureRequirementIfAreEqual<Type>( typeof(PropertyRow), findRowResponse.RowData.GetType(), 244, @"[In RopFindRow ROP Response Buffer] RowData (variable): A PropertyRow structure, as specified in [MS-OXCDATA] section 2.8.1, that specifies the row."); } // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCTABL_R242"); // Verify MS-OXCTABL requirement: MS-OXCTABL_R242 Site.CaptureRequirementIfIsTrue( findRowResponse.HasRowData == 0x01 || findRowResponse.HasRowData == 0x00, 242, @"[In RopFindRow ROP Response Buffer] HasRowData (1 byte): A Boolean that specifies whether a row is included in this response."); } if (findRowResponse.HasRowData == 0x00) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCTABL_R246"); // Verify MS-OXCTABL requirement: MS-OXCTABL_R246 Site.CaptureRequirementIfIsNull( findRowResponse.RowData, 246, @"[In RopFindRow ROP Response Buffer] If the value of HasRowData is ""FALSE"" (0x00), the RowData field MUST NOT be present."); } }
/// <summary> /// Verify RopFindRow Success Response /// </summary> /// <param name="ropFindRowResponse">The response of RopFindRow request</param> /// <param name="inputHandleIndex">The field of InputHandleIndex in RopFindRow request</param> private void VerifyRopFindRowSuccessResponse(RopFindRowResponse ropFindRowResponse, byte inputHandleIndex) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1471"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1471 Site.CaptureRequirementIfAreEqual<Type>( typeof(byte), ropFindRowResponse.RopId.GetType(), 1471, @"[In RopFindRow ROP Success Response Buffer] RopId (1 byte): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1473"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1473 Site.CaptureRequirementIfAreEqual<byte>( (byte)RopId.RopFindRow, ropFindRowResponse.RopId, 1473, @"[In RopFindRow ROP Success Response Buffer] RopId (1 byte): For this operation[RopFindRow], this field[RopId (1 byte)] is set to 0x4F."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1474"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1474 Site.CaptureRequirementIfAreEqual<Type>( typeof(byte), ropFindRowResponse.InputHandleIndex.GetType(), 1474, @"[In RopFindRow ROP Success Response Buffer] InputHandleIndex (1 byte): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1475"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1475 Site.CaptureRequirementIfAreEqual<byte>( inputHandleIndex, ropFindRowResponse.InputHandleIndex, 1475, @"[In RopFindRow ROP Success Response Buffer] InputHandleIndex (1 byte): This index MUST be set to the InputHandleIndex specified in the request."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1476"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1476 Site.CaptureRequirementIfAreEqual<Type>( typeof(uint), ropFindRowResponse.ReturnValue.GetType(), 1476, @"[In RopFindRow ROP Success Response Buffer] ReturnValue (4 bytes): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1478"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1478 Site.CaptureRequirementIfAreEqual<uint>( SuccessReturnValue, ropFindRowResponse.ReturnValue, 1478, @"[In RopFindRow 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_R1479,RowNoLongerVisible:{0}", ropFindRowResponse.RowNoLongerVisible); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1479 // If RowNoLongerVisible is byte type and can be boolean type representation, then verify R1479 bool isVerifyR1479 = (typeof(byte) == ropFindRowResponse.RowNoLongerVisible.GetType()) && ((Convert.ToBoolean(ropFindRowResponse.RowNoLongerVisible) == true) || (Convert.ToBoolean(ropFindRowResponse.RowNoLongerVisible) == false)); Site.CaptureRequirementIfIsTrue( isVerifyR1479, 1479, @"[In RopFindRow ROP Success Response Buffer] RowNoLongerVisible (1 byte): A Boolean."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1481,HasRowData:{0}", ropFindRowResponse.HasRowData); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1481 // If HasRowData is byte type and can be boolean type representation, then verify R1481 bool isVerifyR1481 = (typeof(byte) == ropFindRowResponse.HasRowData.GetType()) && ((Convert.ToBoolean(ropFindRowResponse.HasRowData) == true) || (Convert.ToBoolean(ropFindRowResponse.HasRowData) == false)); Site.CaptureRequirementIfIsTrue( isVerifyR1481, 1481, @"[In RopFindRow ROP Success Response Buffer] HasRowData (1 byte): A Boolean."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1483"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1483 Site.CaptureRequirementIfAreEqual<Type>( typeof(PropertyRow), ropFindRowResponse.RowData.GetType(), 1483, @"[In RopFindRow ROP Success Response Buffer] RowData (variable): A PropertyRow structure"); }