Packages

Cafex is a pure Elixir implementation of Kafka client.

Current section

Files

Jump to
misha_cafex test protocol heartbeat_test.exs
Raw

test/protocol/heartbeat_test.exs

defmodule Cafex.Protocol.Heartbeat.Test do
use ExUnit.Case, async: true
alias Cafex.Protocol.Heartbeat
alias Cafex.Protocol.Heartbeat.Request
alias Cafex.Protocol.Heartbeat.Response
test "Heartbeat protocol implementation" do
req = %Request{}
assert Heartbeat.has_response?(req) == true
assert Heartbeat.decoder(req) == Heartbeat
assert Heartbeat.api_key(req) == Cafex.Protocol.api_key(:heartbeat)
assert Heartbeat.api_version(req) == 0
end
test "encode a valid Heartbeat request" do
good_request = << 19 :: 16-signed,
"cafex_test_consumer" :: binary,
2 :: 32-signed,
42 :: 16-signed,
"cafex-e6f5cd5e-116b-49a3-a3ca-8746779f3cc5" :: binary>>
request = %Request{
group_id: "cafex_test_consumer",
generation_id: 2,
member_id: "cafex-e6f5cd5e-116b-49a3-a3ca-8746779f3cc5"
}
assert good_request == Cafex.Protocol.Request.encode(request)
end
test "parse_response correctly parse a valid response" do
response = <<0 :: 16-signed>>
expected_response = %Response{error: :no_error}
assert expected_response == Heartbeat.decode(response)
end
end