module Main
where

import Control.Concurrent

import Test.HUnit
import Test.HUnit.Gui

main = do
  testInfo <- runTestGui bigLongTests
  exitWhenGuiCloses testInfo

bigLongTests :: Test
bigLongTests = test [ "long-running success" ~: fakeTest True 2000
                    , "quick-running success" ~: fakeTest True 500
                    , "long-running failure" ~: fakeTest False 2000
                    , "quick-running failure" ~: fakeTest False 500
                    ]

fakeTest :: Bool -> Int -> IO ()
fakeTest success milliseconds = do
  threadDelay $ milliseconds * 1000
  assertBool "No msg" success