module Shaker.TestHelper ( processToTestGroup ) where import Data.Maybe import Test.HUnit as H import Test.Framework.Providers.API as T (Test, testGroup) import Test.Framework.Providers.HUnit convertTestCaseToTestFrameworkTestCase :: (String, H.Test) -> Maybe T.Test convertTestCaseToTestFrameworkTestCase (name, TestCase assertion) = Just $ testCase name assertion convertTestCaseToTestFrameworkTestCase (_, TestLabel name hunit_test) = convertTestCaseToTestFrameworkTestCase (name, hunit_test) convertTestCaseToTestFrameworkTestCase _ = Nothing processToTestGroup :: String -> [(String, H.Test)] -> [T.Test] -> [T.Test] -> T.Test processToTestGroup testName testCaseList assertionList propertyList = testGroup testName $ concat [listHunitTestCase, assertionList, propertyList] where listHunitTestCase = mapMaybe convertTestCaseToTestFrameworkTestCase testCaseList