]> gitweb.michael.orlitzky.com - dead/htsn-import.git/blobdiff - src/TSN/XML/Odds.hs
Add a test for Odds_XML-long-import.xml and remove it from the TODO.
[dead/htsn-import.git] / src / TSN / XML / Odds.hs
index 6e47380c62802e856b59a9c438cf53f831da298d..5bdf2ba702a5d04f65248cef505cb5d5680f7631 100644 (file)
@@ -37,11 +37,9 @@ import Database.Groundhog (
   deleteAll,
   insert_,
   migrate,
-  runMigration,
-  silentMigrationLogger,
   update )
 import Database.Groundhog.Core ( DefaultKey )
-import Database.Groundhog.Generic ( runDbConn )
+import Database.Groundhog.Generic ( runDbConn, runMigrationSilent )
 import Database.Groundhog.Sqlite ( withSqliteConn )
 import Database.Groundhog.TH (
   groundhog,
@@ -68,7 +66,11 @@ import Text.XML.HXT.Core (
 import TSN.Codegen ( tsn_codegen_config )
 import TSN.Database ( insert_or_select )
 import TSN.DbImport ( DbImport(..), ImportResult(..), run_dbmigrate )
-import TSN.Picklers ( xp_date_padded, xp_tba_time, xp_time_stamp )
+import TSN.Picklers (
+  xp_attr_option,
+  xp_date_padded,
+  xp_tba_time,
+  xp_time_stamp )
 import TSN.Team ( FromXmlFkTeams(..), Team(..) )
 import TSN.XmlImport ( XmlImport(..), XmlImportFkTeams(..) )
 import Xml (
@@ -650,7 +652,7 @@ pickle_casino =
   xpElem "Casino" $
   xpWrap (from_tuple, H.convert) $
   xpTriple
-    (xpAttr "ClientID" $ xpOption xpInt)
+    (xpAttr "ClientID" xp_attr_option)
     (xpAttr "Name" $ xpOption xpText)
     (xpOption xpText)
   where
@@ -807,7 +809,10 @@ test_pickle_of_unpickle_is_identity = testGroup "pickle-unpickle tests"
           "test/xml/Odds_XML-tba-game-time.xml",
 
     check "pickle composed with unpickle is the identity (empty casino)"
-          "test/xml/Odds_XML-empty-casino.xml" ]
+          "test/xml/Odds_XML-empty-casino.xml",
+
+    check "pickle composed with unpickle is the identity (long import)"
+          "test/xml/Odds_XML-long-import.xml" ]
   where
     check desc path = testCase desc $ do
       (expected, actual) <- pickle_unpickle pickle_message path
@@ -840,7 +845,10 @@ test_unpickle_succeeds = testGroup "unpickle tests"
           "test/xml/Odds_XML-tba-game-time.xml",
 
     check "unpickling succeeds (empty casino)"
-          "test/xml/Odds_XML-empty-casino.xml" ]
+          "test/xml/Odds_XML-empty-casino.xml",
+
+    check "unpickling succeeds (long-import)"
+          "test/xml/Odds_XML-long-import.xml" ]
   where
     check desc path = testCase desc $ do
       actual <- unpickleable path pickle_message
@@ -887,6 +895,10 @@ test_on_delete_cascade = testGroup "cascading delete tests"
     check "deleting odds deleted its children (empty casino)"
           "test/xml/Odds_XML-empty-casino.xml"
           11 -- 5 casinos, 6 teams
+    ,
+    check "deleting odds deleted its children (long import)"
+          "test/xml/Odds_XML-long-import.xml"
+          219 -- 5 casinos, 214 teams
     ]
   where
     check desc path expected = testCase desc $ do
@@ -897,7 +909,7 @@ test_on_delete_cascade = testGroup "cascading delete tests"
       let d = undefined :: OddsGame
       let e = undefined :: OddsGameLine
       actual <- withSqliteConn ":memory:" $ runDbConn $ do
-                  runMigration silentMigrationLogger $ do
+                  runMigrationSilent $ do
                     migrate a
                     migrate b
                     migrate c