tres/test/lib/openflow/ofp_error_test.exs
2019-05-05 23:39:46 +09:00

77 lines
1.4 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