module Main where
import Test.Tasty
import Test.Tasty.HUnit
import Control.Monad ( liftM )
import Control.Monad.IO.Class ( liftIO )
import Control.Monad.Trans.Resource
import System.Directory ( doesDirectoryExist, doesFileExist )
import System.IO.Temp
main :: IO ()
main = defaultMain $ testGroup "temporary-resourcet"
[ testGroup "createTempDirectory"
[ testCase "release" $ assert test_createTempDirectory_release
, testCase "runResourceT" $ assert test_createTempDirectory_runResourceT
]
, testGroup "openBinaryTempFile"
[ testCase "release" $ assert test_openBinaryTempFile_release
, testCase "runResourceT" $ assert test_openBinaryTempFile_runResourceT
]
, testGroup "openTempFile"
[ testCase "release" $ assert test_openTempFile_release
, testCase "runResourceT" $ assert test_openTempFile_runResourceT
]
]
test_createTempDirectory_release :: IO Bool
test_createTempDirectory_release =
runResourceT $ do
(key, path) <- createTempDirectory Nothing "test-temporary-resourcet-"
release key
liftIO $ liftM not $ doesDirectoryExist path
test_createTempDirectory_runResourceT :: IO Bool
test_createTempDirectory_runResourceT = do
path <- runResourceT $ do
(_, path) <- createTempDirectory Nothing "test-temporary-resourcet-"
return path
liftM not $ doesDirectoryExist path
test_openBinaryTempFile_release :: IO Bool
test_openBinaryTempFile_release =
runResourceT $ do
(key, path, _) <- openBinaryTempFile Nothing "test-temporary-resourcet-"
release key
liftIO $ liftM not $ doesFileExist path
test_openBinaryTempFile_runResourceT :: IO Bool
test_openBinaryTempFile_runResourceT = do
path <- runResourceT $ do
(_, path, _) <- openBinaryTempFile Nothing "test-temporary-resourcet-"
return path
liftM not $ doesFileExist path
test_openTempFile_release :: IO Bool
test_openTempFile_release =
runResourceT $ do
(key, path, _) <- openTempFile Nothing "test-temporary-resourcet-"
release key
liftIO $ liftM not $ doesFileExist path
test_openTempFile_runResourceT :: IO Bool
test_openTempFile_runResourceT = do
path <- runResourceT $ do
(_, path, _) <- openTempFile Nothing "test-temporary-resourcet-"
return path
liftM not $ doesFileExist path