packages feed

xing-api-0.1.1: tests/Types/AwardTest.hs

{-# OPTIONS_GHC -F -pgmF htfpp #-}
{-# LANGUAGE OverloadedStrings #-}

module Types.AwardTest where

import Test.Framework
import Web.XING
import Data.Maybe
import Data.Aeson
import qualified Data.ByteString.Lazy as BSL

-- valid fields

noContentAward :: BSL.ByteString
noContentAward
  = "  {                          \
    \     \"name\":         \"\", \
    \     \"date_awarded\": 2007, \
    \     \"url\":          null  \
    \  }                          "

test_noContent :: IO ()
test_noContent
  = assertValidAward noContentAward

test_noContentMappedCorrect :: IO ()
test_noContentMappedCorrect
  = assertEqual (Award "" 2007 Nothing) (fromJust.parseAward $ noContentAward)

test_fullAwardMappedCorrect :: IO ()
test_fullAwardMappedCorrect
  = assertEqual (Award "Spacewalker" 1998 (Just "http://nasa.gov")) ((fromJust.parseAward)
      "  {                                         \
      \     \"name\":         \"Spacewalker\",     \
      \     \"url\":          \"http://nasa.gov\", \
      \     \"date_awarded\": 1998                 \
      \  }                                         ")

parseAward
  :: BSL.ByteString
  -> Maybe Award
parseAward = decode

assertValidAward
  :: BSL.ByteString
  -> IO ()
assertValidAward = assertBool . isJust . parseAward