Skip to content

Commit

Permalink
💚 Add tests for long and short types
Browse files Browse the repository at this point in the history
  • Loading branch information
ImNotAVirus committed Jul 19, 2019
1 parent 1bf9dc2 commit f76fd96
Show file tree
Hide file tree
Showing 2 changed files with 262 additions and 0 deletions.
131 changes: 131 additions & 0 deletions test/lib/elven_gard/protocol/binary/long_type_test.exs
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
defmodule ElvenGard.Protocol.Binary.LongTypeTest do
use ExUnit.Case

alias ElvenGard.Protocol.Binary.LongType

describe "Encode binary long type:" do
@tag :pending
test "default behaviour (unsigned + big)" do
got = LongType.encode(0x1337)
expected = <<0x1337::size(64)>>

assert expected == got
end

@tag :pending
test "default behaviour with overflow (unsigned + big)" do
got = LongType.encode(0x909090901337133713371337)
expected = <<0x1337133713371337::size(64)>>

assert expected == got
end

test "signed + little" do
got = LongType.encode(0x1337, signed: true, endian: :little)
expected = <<0x1337::signed-little-size(64)>>

assert expected == got
end

test "unsigned + little" do
got = LongType.encode(0x1337, signed: false, endian: :little)
expected = <<0x1337::unsigned-little-size(64)>>

assert expected == got
end

@tag :pending
test "signed + big" do
got = LongType.encode(0x1337, signed: true, endian: :big)
expected = <<0x1337::signed-big-size(64)>>

assert expected == got
end

@tag :pending
test "unsigned + big" do
got = LongType.encode(0x1337, signed: false, endian: :big)
expected = <<0x1337::unsigned-big-size(64)>>

assert expected == got
end

test "signed + native" do
got = LongType.encode(0x1337, signed: true, endian: :native)
expected = <<0x1337::signed-native-size(64)>>

assert expected == got
end

test "unsigned + native" do
got = LongType.encode(0x1337, signed: false, endian: :native)
expected = <<0x1337::unsigned-native-size(64)>>

assert expected == got
end
end

describe "Decode binary long type:" do
@tag :pending
test "default behaviour without rest (unsigned + big)" do
got = LongType.decode(<<0x1337::size(64)>>)
expected = {0x1337, <<>>}

assert expected == got
end

@tag :pending
test "default behaviour with rest (unsigned + big)" do
got = LongType.decode(<<0x1337::size(64), 0x42::signed-size(64), 0x01::little-size(64)>>)
expected = {0x1337, <<0x42::signed-size(64), 0x01::little-size(64)>>}

assert expected == got
end

test "signed + little" do
got = LongType.decode(<<0x1337::signed-little-size(64)>>, signed: true, endian: :little)
expected = {0x1337, <<>>}

assert expected == got
end

test "unsigned + little" do
got = LongType.decode(<<0x1337::unsigned-little-size(64)>>, signed: false, endian: :little)

expected = {0x1337, <<>>}

assert expected == got
end

@tag :pending
test "signed + big" do
got = LongType.decode(<<0x1337::signed-big-size(64)>>, signed: true, endian: :big)
expected = {0x1337, <<>>}

assert expected == got
end

@tag :pending
test "unsigned + big" do
got = LongType.decode(<<0x1337::unsigned-big-size(64)>>, signed: false, endian: :big)
expected = {0x1337, <<>>}

assert expected == got
end

test "signed + native" do
got = LongType.decode(<<0x1337::signed-native-size(64)>>, signed: true, endian: :native)
expected = {0x1337, <<>>}

assert expected == got
end

test "unsigned + native" do
got = LongType.decode(<<0x1337::unsigned-native-size(64)>>, signed: false, endian: :native)

expected = {0x1337, <<>>}

assert expected == got
end
end
end
131 changes: 131 additions & 0 deletions test/lib/elven_gard/protocol/binary/short_type_test.exs
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
defmodule ElvenGard.Protocol.Binary.ShortTypeTest do
use ExUnit.Case

alias ElvenGard.Protocol.Binary.ShortType

describe "Encode binary short type:" do
@tag :pending
test "default behaviour (unsigned + big)" do
got = ShortType.encode(0x1337)
expected = <<0x1337::size(16)>>

assert expected == got
end

@tag :pending
test "default behaviour with overflow (unsigned + big)" do
got = ShortType.encode(0x901337)
expected = <<0x1337::size(16)>>

assert expected == got
end

test "signed + little" do
got = ShortType.encode(0x1337, signed: true, endian: :little)
expected = <<0x1337::signed-little-size(16)>>

assert expected == got
end

test "unsigned + little" do
got = ShortType.encode(0x1337, signed: false, endian: :little)
expected = <<0x1337::unsigned-little-size(16)>>

assert expected == got
end

@tag :pending
test "signed + big" do
got = ShortType.encode(0x1337, signed: true, endian: :big)
expected = <<0x1337::signed-big-size(16)>>

assert expected == got
end

@tag :pending
test "unsigned + big" do
got = ShortType.encode(0x1337, signed: false, endian: :big)
expected = <<0x1337::unsigned-big-size(16)>>

assert expected == got
end

test "signed + native" do
got = ShortType.encode(0x1337, signed: true, endian: :native)
expected = <<0x1337::signed-native-size(16)>>

assert expected == got
end

test "unsigned + native" do
got = ShortType.encode(0x1337, signed: false, endian: :native)
expected = <<0x1337::unsigned-native-size(16)>>

assert expected == got
end
end

describe "Decode binary short type:" do
@tag :pending
test "default behaviour without rest (unsigned + big)" do
got = ShortType.decode(<<0x1337::size(16)>>)
expected = {0x1337, <<>>}

assert expected == got
end

@tag :pending
test "default behaviour with rest (unsigned + big)" do
got = ShortType.decode(<<0x1337::size(16), 0x42::signed-size(16), 0x01::little-size(16)>>)
expected = {0x1337, <<0x42::signed-size(16), 0x01::little-size(16)>>}

assert expected == got
end

test "signed + little" do
got = ShortType.decode(<<0x1337::signed-little-size(16)>>, signed: true, endian: :little)
expected = {0x1337, <<>>}

assert expected == got
end

test "unsigned + little" do
got = ShortType.decode(<<0x1337::unsigned-little-size(16)>>, signed: false, endian: :little)

expected = {0x1337, <<>>}

assert expected == got
end

@tag :pending
test "signed + big" do
got = ShortType.decode(<<0x1337::signed-big-size(16)>>, signed: true, endian: :big)
expected = {0x1337, <<>>}

assert expected == got
end

@tag :pending
test "unsigned + big" do
got = ShortType.decode(<<0x1337::unsigned-big-size(16)>>, signed: false, endian: :big)
expected = {0x1337, <<>>}

assert expected == got
end

test "signed + native" do
got = ShortType.decode(<<0x1337::signed-native-size(16)>>, signed: true, endian: :native)
expected = {0x1337, <<>>}

assert expected == got
end

test "unsigned + native" do
got = ShortType.decode(<<0x1337::unsigned-native-size(16)>>, signed: false, endian: :native)

expected = {0x1337, <<>>}

assert expected == got
end
end
end

0 comments on commit f76fd96

Please sign in to comment.