packages feed

amazonka-test-2.0: src/Test/Amazonka/Assert.hs

-- |
-- Module      : Test.Amazonka.Assert
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : provisional
-- Portability : non-portable (GHC extensions)
module Test.Amazonka.Assert where

import Control.Monad
import Test.Amazonka.Diff
import Test.Amazonka.Orphans ()
import Test.Tasty.HUnit

assertDiff :: (Eq a, Show a) => String -> a -> Either String a -> Assertion
assertDiff _ _ (Left m) = assertFailure m
assertDiff n e (Right a) = unless (e == a) (msg >>= assertFailure)
  where
    msg = do
      d <- diff e a
      return $!
        "[Expected]:\n"
          ++ show e
          ++ "\n["
          ++ n
          ++ "]:\n"
          ++ show a
          ++ "\n"
          ++ d