/// <summary> /// Verify RopQueryColumnsAll Failure Response /// </summary> /// <param name="ropQueryColumnsAllResponse">The response of RopQueryColumnsAll request</param> /// <param name="inputHandleIndex">The field of InputHandleIndex in RopQueryColumnsAll request</param> private void VerifyRopQueryColumnsAllFailureResponse(RopQueryColumnsAllResponse ropQueryColumnsAllResponse, byte inputHandleIndex) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1437"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1437 Site.CaptureRequirementIfAreEqual<Type>( typeof(byte), ropQueryColumnsAllResponse.RopId.GetType(), 1437, @"[In RopQueryColumnsAll ROP Failure Response Buffer] RopId (1 byte): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1439"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1439 Site.CaptureRequirementIfAreEqual<byte>( (byte)RopId.RopQueryColumnsAll, ropQueryColumnsAllResponse.RopId, 1439, @"[In RopQueryColumnsAll ROP Failure Response Buffer] RopId (1 byte): For this operation[RopQueryColumnsAll], this field[RopId (1 byte)] is set to 0x37."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1440"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1440 Site.CaptureRequirementIfAreEqual<Type>( typeof(byte), ropQueryColumnsAllResponse.InputHandleIndex.GetType(), 1440, @"[In RopQueryColumnsAll ROP Failure Response Buffer] InputHandleIndex (1 byte): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1441"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1441 Site.CaptureRequirementIfAreEqual<byte>( inputHandleIndex, ropQueryColumnsAllResponse.InputHandleIndex, 1441, @"[In RopQueryColumnsAll 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_R1442"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1442 Site.CaptureRequirementIfAreEqual<Type>( typeof(uint), ropQueryColumnsAllResponse.ReturnValue.GetType(), 1442, @"[In RopQueryColumnsAll ROP Failure Response Buffer] ReturnValue (4 bytes): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1444"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1444 Site.CaptureRequirementIfAreNotEqual<uint>( SuccessReturnValue, ropQueryColumnsAllResponse.ReturnValue, 1444, @"[In RopQueryColumnsAll ROP Failure Response Buffer] ReturnValue (4 bytes): For this response[Failure Response], this field is set to a value other than 0x00000000."); }
/// <summary> /// Verify RopQueryColumnsALL Response /// </summary> /// <param name="queryColumnsAllResponse">RopQueryColumnsAllResponse structure data that needs verification</param> private void VerifyRopQueryColumnsALLResponse(RopQueryColumnsAllResponse queryColumnsAllResponse) { this.VerifyRPCLayerRequirement(); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCTABL_R220"); // Verify MS-OXCTABL requirement: MS-OXCTABL_R220 Site.CaptureRequirementIfAreEqual<Type>( typeof(ushort), queryColumnsAllResponse.PropertyTagCount.GetType(), 220, @"[In RopQueryColumnsAll ROP Response Buffer] PropertyTagCount (2 bytes): An unsigned integer that specifies the number of property tags in the PropertyTags field."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCTABL_R221"); // Verify MS-OXCTABL requirement: MS-OXCTABL_R221 Site.CaptureRequirementIfAreEqual<Type>( typeof(PropertyTag[]), queryColumnsAllResponse.PropertyTags.GetType(), 221, @"[In RopQueryColumnsAll ROP Response Buffer] PropertyTags (variable): An array of property tags, each of which corresponds to an available column in the table."); for (int i = 0; i < queryColumnsAllResponse.PropertyTags.Length; i++) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCTABL_R222"); // Verify MS-OXCTABL requirement: MS-OXCTABL_R222 Site.CaptureRequirementIfAreEqual<Type>( typeof(PropertyTag), queryColumnsAllResponse.PropertyTags[i].GetType(), 222, @"[In RopQueryColumnsAll ROP Response Buffer] Each property tag is represented by a PropertyTag structure, as specified in [MS-OXCDATA] section 2.9."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCDATA_R181"); // Verify MS-OXCDATA requirement: MS-OXCDATA_R181 Site.CaptureRequirementIfAreEqual<Type>( typeof(ushort), queryColumnsAllResponse.PropertyTags[i].PropertyType.GetType(), "MS-OXCDATA", 181, @"[In PropertyTag Structure] PropertyType (2 bytes): An unsigned integer that identifies the data type of the property value, as specified by the table in section 2.11.1."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCDATA_R182"); // Verify MS-OXCDATA requirement: MS-OXCDATA_R182 Site.CaptureRequirementIfAreEqual<Type>( typeof(ushort), queryColumnsAllResponse.PropertyTags[i].PropertyId.GetType(), "MS-OXCDATA", 182, @"[In PropertyTag Structure] PropertyId (2 bytes): An unsigned integer that identifies the property."); // PtypInteger32 Property Type Value is 0x0003. if (queryColumnsAllResponse.PropertyTags[i].PropertyType == 0x0003) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCDATA_R2691"); // Verify MS-OXCDATA requirement: MS-OXCDATA_R2691 Site.CaptureRequirement( "MS-OXCDATA", 2691, @"[In Property Data Types] PtypInteger32 (PT_LONG, PT_I4, int, ui4) is that 4 bytes; a 32-bit integer [MS-DTYP]: INT32 with Property Type Value 0x0003,%x03.00."); } // PtypInteger64 Property Type Value is 0x0014. if (queryColumnsAllResponse.PropertyTags[i].PropertyType == 0x0014) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCDATA_R2699"); // Verify MS-OXCDATA requirement: MS-OXCDATA_R2699 Site.CaptureRequirement( "MS-OXCDATA", 2699, @"[In Property Data Types] PtypInteger64 (PT_LONGLONG, PT_I8, i8, ui8) is that 8 bytes; a 64-bit integer [MS-DTYP]: LONGLONG with Property Type Value 0x0014,%x14.00."); } } }
/// <summary> /// Verify RopQueryColumnsAll Success Response /// </summary> /// <param name="ropQueryColumnsAllResponse">The response of RopQueryColumnsAll request</param> /// <param name="inputHandleIndex">The field of InputHandleIndex in RopQueryColumnsAll request</param> private void VerifyRopQueryColumnsAllSuccessResponse(RopQueryColumnsAllResponse ropQueryColumnsAllResponse, byte inputHandleIndex) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1423"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1423 Site.CaptureRequirementIfAreEqual<Type>( typeof(byte), ropQueryColumnsAllResponse.RopId.GetType(), 1423, @"[In RopQueryColumnsAll ROP Success Response Buffer] RopId (1 byte): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1425"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1425 Site.CaptureRequirementIfAreEqual<byte>( (byte)RopId.RopQueryColumnsAll, ropQueryColumnsAllResponse.RopId, 1425, @"[In RopQueryColumnsAll ROP Success Response Buffer] RopId (1 byte): For this operation[RopQueryColumnsAll], this field[RopId (1 byte)] is set to 0x37."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1426"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1426 Site.CaptureRequirementIfAreEqual<Type>( typeof(byte), ropQueryColumnsAllResponse.InputHandleIndex.GetType(), 1426, @"[In RopQueryColumnsAll ROP Success Response Buffer] InputHandleIndex (1 byte): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1427"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1427 Site.CaptureRequirementIfAreEqual<byte>( inputHandleIndex, ropQueryColumnsAllResponse.InputHandleIndex, 1427, @"[In RopQueryColumnsAll 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_R1428"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1428 Site.CaptureRequirementIfAreEqual<Type>( typeof(uint), ropQueryColumnsAllResponse.ReturnValue.GetType(), 1428, @"[In RopQueryColumnsAll ROP Success Response Buffer] ReturnValue (4 bytes): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1430"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1430 Site.CaptureRequirementIfAreEqual<uint>( SuccessReturnValue, ropQueryColumnsAllResponse.ReturnValue, 1430, @"[In RopQueryColumnsAll 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_R1431"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1431 Site.CaptureRequirementIfAreEqual<Type>( typeof(ushort), ropQueryColumnsAllResponse.PropertyTagCount.GetType(), 1431, @"[In RopQueryColumnsAll ROP Success Response Buffer] PropertyTagCount (2 bytes): An unsigned integer."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1433"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1433 Site.CaptureRequirementIfAreEqual<Type>( typeof(PropertyTag[]), ropQueryColumnsAllResponse.PropertyTags.GetType(), 1433, @"[In RopQueryColumnsAll ROP Success Response Buffer] PropertyTags (variable): An array of PropertyTag structures."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1434"); // Verify MS-OXCROPS requirement: MS-OXCROPS_R1434 Site.CaptureRequirementIfAreEqual<int>( ropQueryColumnsAllResponse.PropertyTags.Length, ropQueryColumnsAllResponse.PropertyTagCount, 1434, @"[In RopQueryColumnsAll ROP Success Response Buffer] PropertyTags (variable): The number of structures contained in this field is specified by the PropertyTagCount field."); }