packages feed

hjsonschema-1.0.0.0: test/Local/Reference.hs

module Local.Reference where

import           Test.Tasty               (TestTree)
import qualified Test.Tasty.HUnit         as HU

import           Data.Validator.Reference

referenceTests :: [TestTree]
referenceTests =
    [ HU.testCase "updateResolutionScope test cases" updateResolutionScopeTests
    , HU.testCase "resolveReference test cases" resolveReferenceTests
    ]

updateResolutionScopeTests :: IO ()
updateResolutionScopeTests = do
    HU.assertEqual
        "case 1 result"
        Nothing
        (updateResolutionScope Nothing Nothing)
    HU.assertEqual
        "case 2 result"
        Nothing
        (updateResolutionScope Nothing (Just "#"))
    HU.assertEqual
        "case 3 result"
        (Just "foo")
        (updateResolutionScope Nothing (Just "foo"))
    HU.assertEqual
        "case 4 result"
        (Just "/./bar") -- TODO: Normalize after updateResolutionScope.
        (updateResolutionScope (Just "/foo") (Just "./bar"))

resolveReferenceTests :: IO ()
resolveReferenceTests = do
    HU.assertEqual
        "case 1 result"
        (Just "/bar", Nothing)
        (resolveReference (Just "/foo") "bar")
    HU.assertEqual
        "case 2 result"
        (Just "/baz", Nothing)
        (resolveReference (Just "/foo/bar") "/baz")
    HU.assertEqual
        "case 3 result"
        (Nothing, Just "/bar")
        (resolveReference Nothing "#/bar")
    HU.assertEqual
        "case 4 result"
        (Just "/foo", Just "/bar")
        (resolveReference (Just "/foo") "#/bar")