tres/test/ofp_error_test.exs
2017-11-13 22:52:53 +09:00

56 lines
1.3 KiB
Elixir

defmodule OfpErrorTest do
use ExUnit.Case
doctest Openflow
describe "Openflow.read/1" do
test "with OFP_ERROR packet" do
{:ok, error, ""} =
"test/packet_data/ofp_error.raw"
|> File.read!
|> Openflow.read
assert error.version == 4
assert error.xid == 0
assert error.type == :bad_action
assert error.code == :unsupported_order
assert error.data == "fugafuga"
end
end
describe "Openflow.to_binary/1" do
test "with %Openflow.Error{}" do
error = %Openflow.ErrorMsg{
version: 4,
xid: 0,
type: :bad_action,
code: :unsupported_order,
data: "fugafuga",
}
expect =
"test/packet_data/ofp_error.raw"
|> File.read!
assert Openflow.to_binary(error) == expect
end
test "with experimenter %Openflow.Error{}" do
error = %Openflow.ErrorMsg{
version: 4,
xid: 0,
type: :experimenter,
exp_type: 1,
experimenter: 0xdeadbeef,
data: "hogehoge",
}
expect = <<
4, 1, 0, 24, 0, 0, 0,
0, 255, 255, 0, 1, 222,
173, 190, 239, 104, 111, 103,
101, 104, 111, 103, 101
>>
assert Openflow.to_binary(error) == expect
end
end
end