stylish-haskell-0.2.0.2: tests/StylishHaskell/Step/Imports/Tests.hs
--------------------------------------------------------------------------------
module StylishHaskell.Step.Imports.Tests
( tests
) where
--------------------------------------------------------------------------------
import Test.Framework (Test, testGroup)
import Test.Framework.Providers.HUnit (testCase)
import Test.HUnit ((@=?))
--------------------------------------------------------------------------------
import StylishHaskell.Step.Imports
import StylishHaskell.Tests.Util
--------------------------------------------------------------------------------
tests :: Test
tests = testGroup "StylishHaskell.Step.Imports.Tests"
[ case01
, case02
, case03
]
--------------------------------------------------------------------------------
input :: String
input = unlines
[ "module Herp where"
, ""
, "import qualified Data.Map as M"
, "import Control.Monad"
, "import Data.Map (lookup, (!), insert, Map)"
, ""
, "import Herp.Derp.Internals hiding (foo)"
, "import HURR"
, ""
, "herp = putStrLn \"import Hello world\""
]
--------------------------------------------------------------------------------
case01 :: Test
case01 = testCase "case 01" $ expected @=? testStep (step Global) input
where
expected = unlines
[ "module Herp where"
, ""
, "import Control.Monad"
, "import Data.Map (Map, insert, lookup, (!))"
, "import qualified Data.Map as M"
, ""
, "import Herp.Derp.Internals hiding (foo)"
, "import HURR"
, ""
, "herp = putStrLn \"import Hello world\""
]
--------------------------------------------------------------------------------
case02 :: Test
case02 = testCase "case 02" $ expected @=? testStep (step Group) input
where
expected = unlines
[ "module Herp where"
, ""
, "import Control.Monad"
, "import Data.Map (Map, insert, lookup, (!))"
, "import qualified Data.Map as M"
, ""
, "import Herp.Derp.Internals hiding (foo)"
, "import HURR"
, ""
, "herp = putStrLn \"import Hello world\""
]
--------------------------------------------------------------------------------
case03 :: Test
case03 = testCase "case 03" $ expected @=? testStep (step None) input
where
expected = unlines
[ "module Herp where"
, ""
, "import Control.Monad"
, "import Data.Map (Map, insert, lookup, (!))"
, "import qualified Data.Map as M"
, ""
, "import Herp.Derp.Internals hiding (foo)"
, "import HURR"
, ""
, "herp = putStrLn \"import Hello world\""
]