2020-01-13 13:11:15 -07:00
|
|
|
Mox.defmock(FarmbotFirmware.UartTestAdapter, for: FarmbotFirmware.UartAdapter)
|
|
|
|
|
2020-01-13 08:29:25 -07:00
|
|
|
defmodule FarmbotFirmware.UARTTransportTest do
|
|
|
|
use ExUnit.Case
|
2020-01-13 13:11:15 -07:00
|
|
|
import Mox
|
|
|
|
setup [:verify_on_exit!]
|
2020-01-13 08:29:25 -07:00
|
|
|
doctest FarmbotFirmware.UARTTransport
|
|
|
|
|
2020-01-13 14:15:26 -07:00
|
|
|
test "FarmbotFirmware.UARTTransport.init/1" do
|
|
|
|
expect(FarmbotFirmware.UartTestAdapter, :start_link, fn ->
|
|
|
|
{:ok, :FAKE_UART}
|
2020-01-13 13:11:15 -07:00
|
|
|
end)
|
|
|
|
|
2020-01-13 14:15:26 -07:00
|
|
|
init_args = [
|
|
|
|
device: :FAKE_DEVICE,
|
|
|
|
handle_gcode: :FAKE_GCODE_HANDLER,
|
|
|
|
reset: :FAKE_RESETER
|
|
|
|
]
|
|
|
|
|
|
|
|
{:ok, state, 0} = FarmbotFirmware.UARTTransport.init(init_args)
|
|
|
|
assert state.device == Keyword.fetch!(init_args, :device)
|
|
|
|
assert state.handle_gcode == Keyword.fetch!(init_args, :handle_gcode)
|
|
|
|
assert state.reset == Keyword.fetch!(init_args, :reset)
|
2020-01-13 13:11:15 -07:00
|
|
|
end
|
|
|
|
|
2020-01-13 14:15:26 -07:00
|
|
|
test "FarmbotFirmware.UARTTransport.terminate/2" do
|
|
|
|
expect(FarmbotFirmware.UartTestAdapter, :stop, fn uart ->
|
|
|
|
assert uart == :whatever
|
|
|
|
end)
|
|
|
|
|
|
|
|
state = %{uart: :whatever}
|
|
|
|
FarmbotFirmware.UARTTransport.terminate(nil, state)
|
2020-01-13 13:11:15 -07:00
|
|
|
end
|
|
|
|
|
|
|
|
test "FarmbotFirmware.UARTTransport.reset/2" do
|
|
|
|
empty_state = %{reset: nil}
|
2020-01-13 14:15:26 -07:00
|
|
|
ok_state = %{reset: %{reset: :fake_reset}}
|
2020-01-13 13:11:15 -07:00
|
|
|
assert :ok == FarmbotFirmware.UARTTransport.reset(empty_state)
|
|
|
|
assert :fake_reset == FarmbotFirmware.UARTTransport.reset(ok_state)
|
2020-01-13 08:29:25 -07:00
|
|
|
end
|
2020-01-13 14:15:26 -07:00
|
|
|
|
|
|
|
test "FarmbotFirmware.UARTTransport.open/2" do
|
|
|
|
me = self()
|
|
|
|
|
|
|
|
expect(FarmbotFirmware.UartTestAdapter, :open, fn pid, path, opts ->
|
|
|
|
assert pid == me
|
|
|
|
assert path == "/dev/null"
|
|
|
|
assert opts == [a: :b]
|
|
|
|
end)
|
|
|
|
|
|
|
|
FarmbotFirmware.UARTTransport.open(me, "/dev/null", a: :b)
|
|
|
|
end
|
2020-01-13 08:29:25 -07:00
|
|
|
end
|