The Go client doesn't do proper error checking. E.g. it doesn't check whether the received method name is correct nor if the message type has the expected value.
The following PR enhances the Go client error handling by the following:
- Check if method name is correct -> if not return thrift.WRONG_METHOD_NAME
- Check if MessageType is thrift.REPLY or EXCEPTION -> if not return thrift.INVALID_MESSAGE_TYPE_EXCEPTION
- Checking the sequence id is done before checking the message type
Includes test cases for every error case.