about summary refs log tree commit diff
path: root/test/Xanthous/Data/EntitiesSpec.hs
blob: e403503743c0e442cec872b32e45257824105bd5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
--------------------------------------------------------------------------------
module Xanthous.Data.EntitiesSpec (main, test) where
--------------------------------------------------------------------------------
import           Test.Prelude
--------------------------------------------------------------------------------
import qualified Data.Aeson as JSON
--------------------------------------------------------------------------------
import           Xanthous.Data.Entities
--------------------------------------------------------------------------------

main :: IO ()
main = defaultMain test

test :: TestTree
test = testGroup "Xanthous.Data.Entities"
  [ testGroup "Collision"
    [ testProperty "JSON round-trip" $ \(c :: Collision) ->
        JSON.decode (JSON.encode c) === Just c
    , testGroup "JSON encoding examples"
      [ testCase "Stop" $ JSON.encode Stop @?= "\"Stop\""
      , testCase "Combat" $ JSON.encode Combat @?= "\"Combat\""
      ]
    ]
  , testGroup "EntityAttributes"
    [ testProperty "JSON round-trip" $ \(ea :: EntityAttributes) ->
        JSON.decode (JSON.encode ea) === Just ea
    ]
  ]