about summary refs log tree commit diff
path: root/users/grfn/xanthous/test/Xanthous/Game/StateSpec.hs
blob: 34584f73b2ada7f6e4fe45fabf7bf692e6c342ce (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
29
30
--------------------------------------------------------------------------------
module Xanthous.Game.StateSpec (main, test) where
--------------------------------------------------------------------------------
import           Test.Prelude
--------------------------------------------------------------------------------
import           Xanthous.Game.State
import           Xanthous.Entities.Raws (raws)
import           Xanthous.Generators.Level.LevelContents (entityFromRaw)
import           Control.Monad.Random (evalRandT)
import           System.Random (getStdGen)
--------------------------------------------------------------------------------

main :: IO ()
main = defaultMain test

test :: TestTree
test = testGroup "Xanthous.Game.StateSpec"
  [ testGroup "entityTypeName"
    [ testCase "for a creature" $ do
        let gormlakRaw = raws ^?! ix "gormlak"
        creature <- runRand $ entityFromRaw gormlakRaw
        entityTypeName creature @?= "Creature"
    , testCase "for an item" $ do
        let stickRaw = raws ^?! ix "stick"
        item <- runRand $ entityFromRaw stickRaw
        entityTypeName item @?= "Item"
    ]
  ]
  where
    runRand x = evalRandT x =<< getStdGen