Current section
Files
Jump to
Current section
Files
test/model_test.exs
defmodule ModelTest do
use ExUnit.Case
alias Modbux.Model
@state %{0x50 => %{{:c, 0x5152} => 0, {:c, 0x5153} => 0, {:c, 0x5155} => 0}}
test "invalid slave" do
assert {nil, @state} == Model.reads(@state, {81, :c, 20818, 1})
assert {nil, @state} == Model.write(@state, {81, :c, 20818, 1})
assert {nil, @state} == Model.writes(@state, {81, :c, 20818, [1, 1]})
end
test "invalid address" do
assert {{:error, :eaddr}, @state} == Model.reads(@state, {80, :c, 20830, 1})
assert {{:error, :eaddr}, @state} == Model.write(@state, {80, :c, 20830, 1})
assert {{:error, :eaddr}, @state} == Model.writes(@state, {80, :c, 20830, [1, 1]})
end
test "invalid address (# bytes to read)" do
assert {{:error, :eaddr}, @state} == Model.reads(@state, {80, :c, 20818, 3})
assert {{:error, :eaddr}, @state} == Model.writes(@state, {80, :c, 20818, [1, 1, 1]})
end
test "illegal function" do
assert {{:error, :eaddr}, @state} == Model.reads(@state, {80, :fc, 20818, 1})
assert {{:error, :eaddr}, @state} == Model.write(@state, {80, :fc, 20818, 1})
assert {{:error, :eaddr}, @state} == Model.writes(@state, {80, :fc, 20818, [1, 1]})
end
test "valid slave, function, address and number of bytes" do
assert {{:ok, [0]}, @state} == Model.reads(@state, {80, :c, 20818, 1})
d_state = %{0x50 => %{{:c, 0x5152} => 1, {:c, 0x5153} => 0, {:c, 0x5155} => 0}}
assert {{:ok, nil}, d_state} == Model.write(@state, {80, :c, 20818, 1})
d_state = %{0x50 => %{{:c, 0x5152} => 1, {:c, 0x5153} => 1, {:c, 0x5155} => 0}}
assert {{:ok, nil}, d_state} == Model.writes(@state, {80, :c, 20818, [1, 1]})
end
end