defmodule RoutingTableTest do use ExUnit.Case doctest RoutingTable test "RoutingTable" do t = RoutingTable.new() assert nil == RoutingTable.add(t, {192, 168, 1, 0}, 24, :lan) assert nil == RoutingTable.add(t, {8193, 3512, 34211, 0, 0, 35374, 880, 1}, 64, :lan) assert %{value: :lan} = RoutingTable.lookup(t, {192, 168, 1, 2}) assert true = RoutingTable.reachable?(t, {192, 168, 1, 2}) assert %{value: :lan} = RoutingTable.lookup(t, {8193, 3512, 34211, 0, 0, 35374, 880, 29492}) assert true = RoutingTable.reachable?(t, {8193, 3512, 34211, 0, 0, 35374, 880, 29492}) assert :lan = RoutingTable.match(t, {192, 168, 1, 1}, 24) assert true = RoutingTable.reachable?(t, {192, 168, 1, 1}, 24) assert :lan = RoutingTable.match(t, {8193, 3512, 34211, 0, 0, 35374, 880, 29492}, 64) assert true = RoutingTable.reachable?(t, {8193, 3512, 34211, 0, 0, 35374, 880, 29492}, 64) assert nil == RoutingTable.lookup(t, {8, 8, 8, 8}) assert false == RoutingTable.reachable?(t, {8, 8, 8, 8}) assert nil == RoutingTable.match(t, {8, 8, 8, 8}, 32) assert false == RoutingTable.reachable?(t, {8, 8, 8, 8}, 32) assert %{ets: 330, inet4: {1248, 1168}, inet6: {1344, 1168}} = RoutingTable.memory(t) assert %{ets: 2, inet4: 1, inet6: 1} = RoutingTable.length(t) assert :lan = RoutingTable.remove(t, {8193, 3512, 34211, 0, 0, 35374, 880, 1}, 64) assert nil == RoutingTable.lookup(t, {8193, 3512, 34211, 0, 0, 35374, 880, 29492}) assert %{ets: 2, inet4: 1, inet6: 0} = RoutingTable.length(t) assert :lan == RoutingTable.remove(t, {192, 168, 1, 0}, 24) assert %{ets: 1, inet4: 0, inet6: 0} = RoutingTable.length(t) assert nil == RoutingTable.add(t, {8193, 3512, 34211, 0, 0, 35374, 880, 1}, 64, :lan) assert :lan = RoutingTable.add(t, {8193, 3512, 34211, 0, 0, 35374, 880, 1}, 64, :lan2) assert %{ets: 2, inet4: 0, inet6: 1} = RoutingTable.length(t) end end