packages feed

schema-0.0.1: test/Data/SchemaSpec.hs

module Data.SchemaSpec (spec) where

import           Control.Applicative ((<$>))
import           Data.Proxy          (Proxy (..))
import           Test.Hspec
import           Test.QuickCheck

import           Data.Schema


data Record = Record
  { recordField1 :: Int
  , recordField2 :: Double
  , recordField3 :: String
  }
  deriving (Eq, Show, Read)


instance HasSchema Record where
  schema p = SchemaRecord
    [ Field "recordField1" $ schema $ recordField1 <$> p
    , Field "recordField2" $ schema $ recordField2 <$> p
    , Field "recordField3" $ schema $ recordField3 <$> p
    ]


spec :: Spec
spec = do
  describe "schemas" $ do
    it "can be printed to stdout" $
      print (schema (Proxy :: Proxy Record))