/// <summary> /// Convert the responsemessage struct defined in adapter to stack /// </summary> /// <param name="responseMessage">The response message of send initialInfoMeaage or segmentInfoMessage</param> /// <returns>Return the ResponseMessage type defined in stack</returns> public static RESPONSE_MESSAGE ConvertToStackForResponseMsg(ResponseMessage responseMessage) { RESPONSE_MESSAGE responseMessageStack; responseMessageStack.ResponseCode = ConvertToStackForResponseCode(responseMessage.ResponseCode); responseMessageStack.TransportHeader = ConvertToStackForTransHeader(responseMessage.TransportHeader); return responseMessageStack; }
/// <summary> /// Capture the ResponseMessage RS. /// </summary> /// <param name="responseMsg">A ResponseMessage message of an INITIAL_OFFER_MESSAGE.</param> private void ValidateInitialOfferMessageResponse(ResponseMessage responseMsg) { // Capture MS-PCHC R55 uint expect = sizeof(ResponseCode); uint actual = responseMsg.TransportHeader.Size; Site.CaptureRequirementIfAreEqual<uint>( expect, actual, 55, @"[In Transport Header] The transport adds the following header[Size (4 bytes): Total message size in bytes, excluding this field] in front of any response protocol message."); // Capture MS-PCHC R56 Site.Log.Add( LogEntryKind.Debug, "Verify MS-PCHC_R56, Record responseMsg.ResponseCode Type:{0}", responseMsg.ResponseCode.ToString()); // The received message is the same type as ResponseMessage, so this can be directly validated Site.CaptureRequirement( 56, @"[In Response Code] Each response message contains a response code, as specified below [Transportheader (4 bytes), ResponseCode (1 byte)]."); // Capture MS-PCHC R58 Site.CaptureRequirementIfAreEqual<uint>( 1, sizeof(ResponseCode), 58, @"[In Response Code] ResponseCode (1 byte): A code that indicates the server response to the client request message."); // Capture MS-PCHC R61 Site.CaptureRequirementIfIsTrue( responseMsg.ResponseCode == ResponseCode.INTERESTED || responseMsg.ResponseCode == ResponseCode.OK, 61, @"[In Response Code] In an INITIAL_OFFER_MESSAGE (section 2.2.1.3), the response code MUST be either OK or INTERESTED."); // Capture MS-PCHC R131 Site.CaptureRequirementIfIsTrue( responseMsg.ResponseCode == ResponseCode.INTERESTED || responseMsg.ResponseCode == ResponseCode.OK, 131, @"[In Response Message] Response messages are sent in response to the following request messages: INITIAL_OFFER_MESSAGE, section 2.2.1.3, SEGMENT_INFO_MESSAGE, section 2.2.1.4."); }
/// <summary> /// Capture the ResponseMessage RS. /// </summary> /// <param name="responseMsg">A ResponseMessage message of an INITIAL_OFFER_MESSAGE.</param> private void ValidateSegmentInfoResponse(ResponseMessage responseMsg) { // Capture MS-PCHC R55 uint expect = sizeof(ResponseCode); uint actual = responseMsg.TransportHeader.Size; Site.CaptureRequirementIfAreEqual<uint>( expect, actual, 55, @"[In Transport Header] The transport adds the following header[Size (4 bytes): Total message size in bytes, excluding this field] in front of any response protocol message."); // Capture MS-PCHC R56 Site.Log.Add( LogEntryKind.Debug, "Verify MS-PCHC_R56, Record responseMsg.ResponseCode Type:{0}", responseMsg.ResponseCode.ToString()); // The received message is the same type as ResponseMessage, so this can be directly validated Site.CaptureRequirement( 56, @"[In Response Code] Each response message contains a response code, as specified below [Transportheader (4 bytes), ResponseCode (1 byte)]."); // Capture MS-PCHC R58 Site.CaptureRequirementIfAreEqual<uint>( 1, sizeof(ResponseCode), 58, @"[In Response Code] ResponseCode (1 byte): A code that indicates the server response to the client request message."); // Capture MS-PCHC R62 Site.CaptureRequirementIfAreEqual<ResponseCode>( ResponseCode.OK, responseMsg.ResponseCode, 62, @"[In Response Code] In a SEGMENT_INFO_MESSAGE (section 2.2.1.4), the response code MUST be OK."); Site.Log.Add( LogEntryKind.Debug, "Verify MS-PCHC_R72, Record responseMsg Type:{0}", responseMsg.ToString()); // Capture MS-PCHC R72 // The received message is the same type as ResponseMessage, so this can be directly validated Site.CaptureRequirement( 72, @"[In INITIAL_OFFER_MESSAGE Request Received] The hosted cache MUST respond with a correctly formatted response message, as specified in section 2.2.2."); }