test: Packets store_packet edge cases (nested/string-keyed data_extended)
This commit is contained in:
parent
de521c2d71
commit
1d22e6e59b
1 changed files with 71 additions and 0 deletions
|
|
@ -166,6 +166,77 @@ defmodule Aprsme.PacketsTest do
|
|||
end
|
||||
end
|
||||
|
||||
describe "store_packet/1 with additional edge cases" do
|
||||
test "stores a packet with string-keyed data_extended" do
|
||||
packet_data = %{
|
||||
sender: "STRKEY1",
|
||||
base_callsign: "STRKEY1",
|
||||
ssid: "0",
|
||||
destination: "APRS",
|
||||
raw_packet: "STRKEY1>APRS",
|
||||
data_type: "position",
|
||||
data_extended: %{
|
||||
"latitude" => 33.0,
|
||||
"longitude" => -96.0,
|
||||
"symbol_table_id" => "/",
|
||||
"symbol_code" => ">"
|
||||
}
|
||||
}
|
||||
|
||||
assert {:ok, packet} = Packets.store_packet(packet_data)
|
||||
assert packet.sender == "STRKEY1"
|
||||
end
|
||||
|
||||
test "stores a packet with nested position map inside data_extended" do
|
||||
packet_data = %{
|
||||
sender: "NESTPOS1",
|
||||
base_callsign: "NESTPOS1",
|
||||
ssid: "0",
|
||||
destination: "APRS",
|
||||
raw_packet: "NESTPOS1>APRS",
|
||||
data_type: "position",
|
||||
data_extended: %{
|
||||
position: %{latitude: 33.0, longitude: -96.0}
|
||||
}
|
||||
}
|
||||
|
||||
assert {:ok, packet} = Packets.store_packet(packet_data)
|
||||
assert packet.sender == "NESTPOS1"
|
||||
end
|
||||
|
||||
test "device_identifier is set from destination fallback when DeviceParser returns nil" do
|
||||
packet_data = %{
|
||||
sender: "DEVFALL1",
|
||||
base_callsign: "DEVFALL1",
|
||||
ssid: "0",
|
||||
destination: "APUNKNOWN",
|
||||
raw_packet: "DEVFALL1>APUNKNOWN:=3950.00N/09830.00W>",
|
||||
data_type: "position",
|
||||
lat: 39.83,
|
||||
lon: -98.5
|
||||
}
|
||||
|
||||
assert {:ok, packet} = Packets.store_packet(packet_data)
|
||||
assert is_binary(packet.device_identifier)
|
||||
end
|
||||
|
||||
test "handles a binary lat/lon that can be parsed" do
|
||||
packet_data = %{
|
||||
sender: "BINCOORD1",
|
||||
base_callsign: "BINCOORD1",
|
||||
ssid: "0",
|
||||
destination: "APRS",
|
||||
raw_packet: "BINCOORD1>APRS",
|
||||
data_type: "position",
|
||||
lat: "39.833",
|
||||
lon: "-98.5"
|
||||
}
|
||||
|
||||
assert {:ok, packet} = Packets.store_packet(packet_data)
|
||||
assert packet.sender == "BINCOORD1"
|
||||
end
|
||||
end
|
||||
|
||||
describe "store_bad_packet/2" do
|
||||
test "stores bad packet from string" do
|
||||
error = %{message: "Parse error", type: "ParseError"}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue