packages feed

data-rfc5280-0.1.0.0: test/Rfc5280/PolicyMappingsSpec.hs

{-# LANGUAGE OverloadedStrings #-}

{- |
Module      : Rfc5280.PolicyMappingsSpec
Copyright   : (c) 2026 Tim Emiola
Maintainer  : Tim Emiola <adetokunbo@emio.la>
SPDX-License-Identifier: BSD3

Tests for 'Data.Rfc5280.PolicyMappings'.
-}
module Rfc5280.PolicyMappingsSpec (spec) where

import Data.Rfc5280 (NonEmpty (..), renderConfig)
import Data.Rfc5280.PolicyMappings
import Test.Hspec


spec :: Spec
spec = describe "module Data.Rfc5280.PolicyMappings" $ do
  context "mkPolicyMappings" $ do
    it "renders a single mapping" $
      renderConfig (mkPolicyMappings (mkPolicyMapping (1 :| [2, 3]) (2 :| [5, 4])) [])
        `shouldBe` "1.2.3:2.5.4"
    it "renders two mappings" $
      renderConfig
        ( mkPolicyMappings
            (mkPolicyMapping (1 :| [2, 3]) (2 :| [5, 4]))
            [mkPolicyMapping (1 :| [2, 4]) (2 :| [5, 5])]
        )
        `shouldBe` "1.2.3:2.5.4,1.2.4:2.5.5"
    it "renders a mapping with multi-arc OIDs" $
      renderConfig
        ( mkPolicyMappings
            (mkPolicyMapping (2 :| [16, 840, 1, 101, 3, 2, 1, 3, 6]) (2 :| [16, 840, 1, 101, 3, 2, 1, 12, 4]))
            []
        )
        `shouldBe` "2.16.840.1.101.3.2.1.3.6:2.16.840.1.101.3.2.1.12.4"