module Lorentz.Contracts.Upgradeable.Test
(
testUpgradeableContractDoc
, testSingleVersion
) where
import Prelude
import Test.HUnit (assertFailure)
import Lorentz.Contracts.Upgradeable.Common
import Lorentz.Test.Doc
testSingleVersion :: DocTest
testSingleVersion :: DocTest
testSingleVersion =
HasCallStack =>
String -> (HasCallStack => ContractDoc -> Assertion) -> DocTest
String -> (HasCallStack => ContractDoc -> Assertion) -> DocTest
mkDocTest String
"Version documented" ((HasCallStack => ContractDoc -> Assertion) -> DocTest)
-> (HasCallStack => ContractDoc -> Assertion) -> DocTest
forall a b. (a -> b) -> a -> b
$
\ContractDoc
doc ->
case ContractDoc -> [DVersion]
forall d. DocItem d => ContractDoc -> [d]
allContractDocItems @DVersion ContractDoc
doc of
[] -> String -> Assertion
forall a. HasCallStack => String -> IO a
assertFailure String
"Contract contains no 'DVersion'"
[DVersion
_] -> Assertion
forall (f :: * -> *). Applicative f => f ()
pass
[DVersion]
_ -> String -> Assertion
forall a. HasCallStack => String -> IO a
assertFailure String
"Contract contains several 'DVersion's"
testUpgradeableContractDoc :: [DocTest]
testUpgradeableContractDoc :: [DocTest]
testUpgradeableContractDoc = [[DocTest]] -> [DocTest]
forall a. Monoid a => [a] -> a
mconcat
[ [DocTest]
testLorentzDoc
, [ DocTest
testSingleVersion
]
]