]> gitweb.michael.orlitzky.com - dead/htsn-import.git/blobdiff - src/TSN/XML/News.hs
Use 'def' in a few places where default values are required.
[dead/htsn-import.git] / src / TSN / XML / News.hs
index 31587a35b0435ca6665c82b8e3a905ccbaa07855..661279272e5f1056221fdcb1e06cbfc1ccfe5157 100644 (file)
@@ -30,6 +30,7 @@ import Database.Groundhog.Core ( DefaultKey )
 import Database.Groundhog.TH (
   groundhog,
   mkPersist )
+import System.Console.CmdArgs.Default ( Default(..) )
 import Test.Tasty ( TestTree, testGroup )
 import Test.Tasty.HUnit ( (@?=), testCase )
 import Text.XML.HXT.Core (
@@ -51,7 +52,7 @@ import TSN.Codegen (
   tsn_codegen_config,
   tsn_db_field_namer ) -- Used in a test
 import TSN.DbImport ( DbImport(..), ImportResult(..) )
-import Xml ( ToFromXml(..), pickle_unpickle )
+import Xml ( ToFromXml(..), pickle_unpickle, unpickleable )
 
 
 
@@ -171,23 +172,23 @@ instance ToFromXml Message where
   -- used our named fields.
   to_xml (Message {..}) =
     MessageXml
-      0
-      ""
+      def
+      def
       db_mid
-      ""
+      def
       db_sport
       db_url
-      []
-      []
+      def
+      def
       db_sms
       db_text
       db_continue
-      ""
+      def
 
   -- We don't need the key argument (from_xml_fk) since the XML type
   -- contains more information in this case.
-  from_xml (MessageXml _ _ c _ e f _ _ g h i _) =
-    Message c e f g h i
+  from_xml (MessageXml _ _ c _ e f _ _ i j k _) =
+    Message c e f i j k
 
 
 mkPersist tsn_codegen_config [groundhog|
@@ -333,15 +334,8 @@ news_tests =
   testGroup
     "News tests"
     [ test_news_fields_have_correct_names,
-      test_pickle_of_unpickle_is_identity ]
-
-
-test_pickle_of_unpickle_is_identity :: TestTree
-test_pickle_of_unpickle_is_identity =
-  testCase "pickle composed with unpickle is the identity" $ do
-    let path = "test/xml/newsxml.xml"
-    (expected :: [MessageXml], actual) <- pickle_unpickle "message" path
-    actual @?= expected
+      test_pickle_of_unpickle_is_identity,
+      test_unpickle_succeeds ]
 
 
 test_news_fields_have_correct_names :: TestTree
@@ -363,3 +357,22 @@ test_news_fields_have_correct_names =
     actual = ["mid", "sport", "url", "sms", "text", "continue"]
 
     check (x,y) = (x @?= y)
+
+
+-- | Warning, succeess of this test does not mean that unpickling
+--   succeeded.
+test_pickle_of_unpickle_is_identity :: TestTree
+test_pickle_of_unpickle_is_identity =
+  testCase "pickle composed with unpickle is the identity" $ do
+    let path = "test/xml/newsxml.xml"
+    (expected :: [MessageXml], actual) <- pickle_unpickle "message" path
+    actual @?= expected
+
+
+test_unpickle_succeeds :: TestTree
+test_unpickle_succeeds =
+  testCase "unpickling succeeds" $ do
+  let path = "test/xml/newsxml.xml"
+  actual <- unpickleable path pickle_message
+  let expected = True
+  actual @?= expected