@@ -12,6 +12,9 @@ import ProjectM36.TupleSet
13import System.Exit
13import System.Exit
14import Control.Concurrent
14import Control.Concurrent
15+import Data.UUID (nil)
16+import Data.Either (isRight)
17+import Data.Maybe (isJust)
16testList :: SessionId -> Connection -> Test
19testList :: SessionId -> Connection -> Test
17testList sessionId conn = TestList $ map (\t -> t sessionId conn) [
20testList sessionId conn = TestList $ map (\t -> t sessionId conn) [
@@ -22,7 +25,8 @@ testList sessionId conn = TestList $ map (\t -> t sessionId conn) [
22 testPlanForDatabaseContextExpr,
25 testPlanForDatabaseContextExpr,
23 testTransactionGraphAsRelation,
26 testTransactionGraphAsRelation,
24 testHeadTransactionUUID,
27 testHeadTransactionUUID,
25− testHeadName
28+ testHeadName,
28main :: IO ()
32main :: IO ()
@@ -111,7 +115,8 @@ testTransactionGraphAsRelation sessionId conn = TestCase $ do
112testHeadTransactionUUID :: SessionId -> Connection -> Test
116testHeadTransactionUUID :: SessionId -> Connection -> Test
113testHeadTransactionUUID sessionId conn = TestCase $ do
117testHeadTransactionUUID sessionId conn = TestCase $ do
114− _ <- headTransactionUUID sessionId conn
118+ uuid <- headTransactionUUID sessionId conn
119+ assertBool "invalid head transaction uuid" (isJust uuid)
117testHeadName :: SessionId -> Connection -> Test
122testHeadName :: SessionId -> Connection -> Test
@@ -119,4 +124,17 @@ testHeadName sessionId conn = TestCase $ do
119 mHeadName <- headName sessionId conn
124 mHeadName <- headName sessionId conn
120 assertEqual "headName failure" (Just "master") mHeadName
125 assertEqual "headName failure" (Just "master") mHeadName
122−
127+testSession :: SessionId -> Connection -> Test
128+testSession _ conn = TestCase $ do
129+ -- create and close a new session using AtHead and AtCommit
130+ eSessionId1 <- createSessionAtHead defaultHeadName conn
132+ Left _ -> assertFailure "invalid session"
133+ Right sessionId1 -> do
134+ mHeadUUID <- headTransactionUUID sessionId1 conn
136+ Nothing -> assertFailure "invalid head UUID"
138+ eSessionId2 <- createSessionAtCommit headUUID conn
139+ assertBool ("invalid session: " ++ show eSessionId2) (isRight eSessionId2)
140+ closeSession sessionId1 conn