Skip to content

Commit

Permalink
Add tests for Metadata serialisation.
Browse files Browse the repository at this point in the history
- Round-tripping of MA-era Metadata
- Check that Shelley-era metadata deserialises as MA-era.
  • Loading branch information
nc6 authored and redxaxder committed Nov 19, 2020
1 parent 1a00dbf commit 52d2860
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 18 deletions.
2 changes: 1 addition & 1 deletion shelley-ma/impl/src/Cardano/Ledger/ShelleyMA/Metadata.hs
Expand Up @@ -121,7 +121,7 @@ instance
encMetadataRaw ::
(Core.AnnotatedData (Core.Script era)) =>
MetadataRaw era ->
Encode ('Closed 'Dense) (MetadataRaw era)
Encode ( 'Closed 'Dense) (MetadataRaw era)
encMetadataRaw (MetadataRaw blob sp) =
Rec MetadataRaw
!> To blob
Expand Down
@@ -1,38 +1,43 @@
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeApplications #-}

module Test.Cardano.Ledger.ShelleyMA.Serialisation.CDDL
module Test.Cardano.Ledger.ShelleyMA.Serialisation.CDDL
( cddlTests,
)
where


import Cardano.Ledger.Allegra (AllegraEra)
import qualified Cardano.Ledger.Core as Core
import Cardano.Ledger.Mary (MaryEra)
import Cardano.Ledger.Shelley (ShelleyEra)
import qualified Data.ByteString.Lazy as BSL
import Test.Shelley.Spec.Ledger.ConcreteCryptoTypes (C_Crypto)
import Test.Shelley.Spec.Ledger.Serialisation.CDDLUtils
( cddlTest,
cddlTest',
)
import Test.Tasty (TestTree, testGroup, withResource)


import qualified Cardano.Ledger.Core as Core
import Test.Shelley.Spec.Ledger.ConcreteCryptoTypes (C_Crypto)
import Cardano.Ledger.Mary (MaryEra)
import Cardano.Ledger.Allegra (AllegraEra)

import Test.Tasty (TestTree, withResource, testGroup)
import qualified Data.ByteString.Lazy as BSL
type S = ShelleyEra C_Crypto

type A = AllegraEra C_Crypto

type M = MaryEra C_Crypto

cddlTests :: Int -> TestTree
cddlTests n = withResource combinedCDDL (const (pure ())) $ \cddl ->
testGroup "CDDL roundtrip tests" $
[ cddlTest @(Core.Value A) n "coin"
--, cddlTest @(Core.Value M) n "value"
-- , cddlTest' @(Core.TxBody M) n "transaction_body"
-- , cddlTest' @(Core.TxBody A) n "transaction_body"
, cddlTest' @(Core.Script M) n "native_script"
, cddlTest' @(Core.Script A) n "native_script"
[ cddlTest @(Core.Value A) n "coin",
--, cddlTest @(Core.Value M) n "value"
-- , cddlTest' @(Core.TxBody M) n "transaction_body"
-- , cddlTest' @(Core.TxBody A) n "transaction_body"
cddlTest' @(Core.Script M) n "native_script",
cddlTest' @(Core.Script A) n "native_script",
-- Verify that Shelley-era metadata will validate correctly as MA-era
-- metadata
cddlTest' @(Core.Metadata S) n "metadata",
cddlTest' @(Core.Metadata M) n "metadata",
cddlTest' @(Core.Metadata A) n "metadata"
]
<*> pure cddl

Expand Down

0 comments on commit 52d2860

Please sign in to comment.