packages feed

liblastfm-0.1.1.2: tests/Common.hs

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE UnicodeSyntax #-}
module Common where

import Data.Aeson.Types
import Network.Lastfm
import Test.HUnit


check ∷ (Value → Parser a) → Request JSON Send Ready → Assertion
check p q = do
  r ← lastfm q
  case parse p `fmap` r of
    Just (Success _) → assertBool "success" True
    _                → assertFailure $ "Got: " ++ show r


ok ∷ Value → Parser String
ok o = parseJSON o >>= (.: "status")