ttn-0.1.0.0: test/ParseSpec.hs
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE OverloadedStrings #-}
module ParseSpec where
import Text.RawString.QQ
import SpecHelper
spec :: Spec
spec = do
it "parses samples" $ do
mapM_ (\x -> parse x `shouldSatisfy` isRight) [p1, p2, p3, p4, p5, p6]
main :: IO ()
main = hspec spec
p1 = [r|
{
"payload": "YPkvASYgAAAemoR/",
"message": {
"app_id": "basetest",
"dev_id": "tester",
"port": 0
},
"gateway_id": "eui-b827ebfffe114355",
"config": {
"modulation": "LORA",
"data_rate": "SF9BW125",
"airtime": 144384000,
"frequency": 869525000,
"power": 27
}
}
|]
p2 = [r|
{
"app_id": "basetest",
"dev_id": "tester",
"hardware_serial": "0004A30B001E0D4D",
"port": 1,
"counter": 1276,
"confirmed": true,
"payload_raw": "jZOoQaCyMkI=",
"metadata": {
"time": "2018-02-09T19:10:19.912012664Z",
"frequency": 867.3,
"modulation": "LORA",
"data_rate": "SF12BW125",
"airtime": 1482752000,
"coding_rate": "4/5",
"gateways": [
{
"gtw_id": "eui-b827ebfffec6e5d0",
"timestamp": 2377743228,
"time": "2018-02-09T19:10:19.884395Z",
"channel": 4,
"rssi": -83,
"snr": 8.5,
"rf_chain": 0,
"latitude": 49.19936,
"longitude": 16.57975,
"altitude": 320
},
{
"gtw_id": "eui-1dee0933d840ee1b",
"timestamp": 4138754052,
"time": "2018-02-09T19:16:34.416079Z",
"channel": 4,
"rssi": -115,
"snr": -16,
"rf_chain": 0
}
]
}
}
|]
p3 = [r|
{
"payload": "YO0qASYgmwblb5If",
"message": {
"app_id": "basetest",
"dev_id": "tester",
"port": 0
},
"gateway_id": "eui-b827ebfffec6e5d0",
"config": {
"modulation": "LORA",
"data_rate": "SF9BW125",
"airtime": 144384000,
"counter": 1691,
"frequency": 869525000,
"power": 27
}
}
|]
p4 = [r|
{
"app_id": "basetest",
"dev_id": "tester",
"hardware_serial": "0004A30B001E0D4D",
"port": 1,
"counter": 1276,
"confirmed": true,
"payload_raw": "jZOoQaCyMkI=",
"metadata": {
"time": "2018-02-09T19:10:19.912012664Z",
"frequency": 867.3,
"modulation": "LORA",
"data_rate": "SF12BW125",
"airtime": 1482752000,
"coding_rate": "4/5",
"gateways": [
{
"gtw_id": "eui-b827ebfffec6e5d0",
"timestamp": 2377743228,
"time": "2018-02-09T19:10:19.884395Z",
"channel": 4,
"rssi": -83,
"snr": 8.5,
"rf_chain": 0,
"latitude": 49.19936,
"longitude": 16.57975,
"altitude": 320
},
{
"gtw_id": "eui-1dee0933d840ee1b",
"timestamp": 4138754052,
"time": "2018-02-09T19:16:34.416079Z",
"channel": 4,
"rssi": -115,
"snr": -16,
"rf_chain": 0
}
]
}
}
|]
p5 = [r|
{
"app_id": "basetest",
"dev_id": "tester",
"hardware_serial": "0004A30B001E0D4D",
"port": 1,
"counter": 0,
"confirmed": true,
"is_retry": true,
"payload_raw": "SA==",
"metadata": {
"time": "2017-10-27T20:31:23.636977619Z",
"frequency": 867.5,
"modulation": "LORA",
"data_rate": "SF12BW125",
"coding_rate": "4/5",
"gateways": [
{
"gtw_id": "eui-b827ebfffec6e5d0",
"timestamp": 2729574940,
"time": "2017-10-27T20:31:23.3235Z",
"channel": 5,
"rssi": -112,
"snr": -9.2,
"rf_chain": 0,
"latitude": 49.19936,
"longitude": 16.57975,
"altitude": 320
}
]
}
}
|]
p6 = [r|
{
"app_id": "basetest",
"dev_id": "tester",
"hardware_serial": "0004A30B001E0D4D",
"port": 1,
"counter": 3,
"confirmed": true,
"payload_raw": "8mmxQVBmM0I=",
"metadata": {
"time": "2017-10-28T03:43:47.534601976Z",
"frequency": 867.1,
"modulation": "LORA",
"data_rate": "SF12BW125",
"coding_rate": "4/5",
"gateways": [
{
"gtw_id": "eui-b827ebfffec6e5d0",
"timestamp": 2903809348,
"time": "2017-10-28T03:43:47.361855Z",
"channel": 3,
"rssi": -119,
"snr": -10.5,
"rf_chain": 0,
"latitude": 49.19936,
"longitude": 16.57975,
"altitude": 320
}
]
}
}
|]