packages feed

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
      }
    ]
  }
}
|]