Describe the bug
in MapMateSerializerAndDeserializer at line 93, the content-type of the response is hijacked by the content-type of the request (if present).
if (!contentType.isEmpty()) {
responseContentType = contentType;
} else {
responseContentType = defaultContentType;
}
This leads to awkward behaviour. For example, in the case where the incoming request is application/x-www-form-urlencoded, and I've configured
httpmate.assumingTheDefaultContentType(ContentType.json())
httpmate attempts to marshall the response to application/x-www-form-urlencoded, which is not the expected behaviour.
To Reproduce
....mappingRequestsAndResponsesUsing(mapMate()
.matchingTheContentType(fromString("application/x-www-form-urlencoded"))
.toTheMarshallerType(marshallingType("application/x-www-form-urlencoded"))
.assumingTheDefaultContentType(ContentType.json())
.usingTheSerializer(...)
.andTheDeserializer(...))
Expected behavior
Expected the response content-type to be the content type specified in assumingTheDefaultContentType(...), as there is to my knowledger no way to specify the response content-type in any other way at the moment (The concept of a HttpMateChainKeys.RESPONSE_CONTENT_TYPE separate from HttpMateChainKeys.CONTENT_TYPE does not exist yet).