X-Git-Url: http://gitweb.michael.orlitzky.com/?p=dead%2Fhalcyon.git;a=blobdiff_plain;f=src%2FTwitter%2FStatus.hs;h=506a2c0bbe26ff67a561e7eee6b2e73d0629fb9f;hp=6238b684deffecd9094f2383069f739c179ae468;hb=e3864f89a0cae34d4d280efeb52ea5f761ddb44a;hpb=20c7ebd7b03a4f5057dcb9fa3482bd6cb47e0fe4 diff --git a/src/Twitter/Status.hs b/src/Twitter/Status.hs index 6238b68..506a2c0 100644 --- a/src/Twitter/Status.hs +++ b/src/Twitter/Status.hs @@ -22,9 +22,8 @@ import Data.Time.Clock ( UTCTime ) import Data.Time.Format ( parseTime ) import Data.Time.LocalTime ( TimeZone, utcToZonedTime ) import System.Locale ( defaultTimeLocale, rfc822DateFormat ) -import Test.Framework ( Test, testGroup ) -import Test.Framework.Providers.HUnit ( testCase ) -import Test.HUnit ( Assertion, assertEqual ) +import Test.Tasty ( TestTree, testGroup ) +import Test.Tasty.HUnit ( (@?=), testCase ) import Text.Regex ( matchRegex, mkRegex ) import Html ( replace_entities ) @@ -89,6 +88,7 @@ show_created_at mtz = -- | Returns a nicely-formatted String representing the given 'Status' -- object. +-- pretty_print :: Maybe TimeZone -> Status -> String pretty_print mtz status = concat [ name, @@ -110,6 +110,7 @@ pretty_print mtz status = -- | Given a list of statuses, returns the greatest status_id -- belonging to one of the statuses in the list. +-- get_max_status_id :: Timeline -> Integer get_max_status_id statuses = maximum status_ids @@ -118,6 +119,7 @@ get_max_status_id statuses = -- | Parse one username from a word. +-- parse_username :: String -> Maybe String parse_username word = case matches of @@ -130,13 +132,16 @@ parse_username word = -- | Parse all usernames of the form \@username from a status. +-- parse_usernames_from_status :: Status -> [String] parse_usernames_from_status status = mapMaybe parse_username status_words where status_words = splitWs (text status) + -- | Get all referenced users' timeline URLs. +-- make_user_timeline_urls :: Status -> [String] make_user_timeline_urls status = map screen_name_to_timeline_url usernames @@ -144,20 +149,17 @@ make_user_timeline_urls status = usernames = parse_usernames_from_status status -status_tests :: Test +status_tests :: TestTree status_tests = - testGroup "Status Tests" [ tc1 ] - where - tc1 = testCase "All usernames are parsed." test_parse_usernames + testGroup "Status Tests" [ test_parse_usernames ] -test_parse_usernames :: Assertion +test_parse_usernames :: TestTree test_parse_usernames = - assertEqual - "All usernames are parsed." - expected_usernames - actual_usernames + testCase description $ actual @?= expected where + description = "all usernames are parsed" + dummy_user = User { screen_name = "nobody" } dummy_text = "Hypothesis: @donsbot and @bonus500 are two " ++ "personalities belonging to the same person." @@ -169,5 +171,5 @@ test_parse_usernames = retweeted = False } - actual_usernames = parse_usernames_from_status dummy_status - expected_usernames = ["donsbot", "bonus500"] + actual = parse_usernames_from_status dummy_status + expected = ["donsbot", "bonus500"]