-
Alice Brenon authored5c766a5a
TestArticleRecord.hs 942 B
{-# LANGUAGE OverloadedStrings #-}
module GEODE.Metadata.TestArticleRecord (testArticleRecord) where
import Data.Csv (ToNamedRecord(..))
import Data.Foldable (toList)
import Data.HashMap.Strict ((!?))
import GEODE.Metadata (Work(..), ArticleRecord(..))
import GEODE.Metadata.TSV.Header (getHeader, for)
import Test.HUnit (Test(..), (~?=))
import Test.HUnit.Extra (isJust)
testArticleRecord :: Test
testArticleRecord = TestLabel "Testing the ArticleRecord data type" $
TestList [ testToNamedRecord ]
testToNamedRecord :: Test
testToNamedRecord = TestLabel "Testing ToNamedRecord instance" $
TestList [ has3Keys, validDefaultHeader ]
where
has3Keys = length aNamedRecord ~?= 3
validDefaultHeader = TestList . toList $
(isJust . (aNamedRecord !?)) <$> getHeader (for :: ArticleRecord)
aNamedRecord = toNamedRecord aPrimaryKey
aPrimaryKey :: ArticleRecord
aPrimaryKey = ArticleRecord LGE 1 1212 -- ALCALA DE HÉNARÈS