@@ -2,6 +2,7 @@
22{-# LANGUAGE OverloadedStrings #-}
33import Test.HUnit
44import ProjectM36.Base
5+import ProjectM36.Transaction
56import ProjectM36.TransactionGraph
67import ProjectM36.TransactionGraph.Show
78import ProjectM36.TransactionGraph.Show.Dot
@@ -158,8 +159,9 @@ testUnionMergeStrategy = TestCase $ do
158159 -- add inclusion dependency in branchA
159160
160161 let updatedBranchBContext = (transactionContext branchBTrans) {relationVariables = M.insert branchBOnlyRelVarName branchBOnlyRelVar (relationVariables (transactionContext branchBTrans)) }
161− updatedBranchAContext = (transactionContext branchATrans) {inclusionDependencies = M.insert "branchAOnlyIncDep" branchAOnlyIncDep (inclusionDependencies (transactionContext branchATrans)) }
162+ updatedBranchAContext = (transactionContext branchATrans) {inclusionDependencies = M.insert branchAOnlyIncDepName branchAOnlyIncDep (inclusionDependencies (transactionContext branchATrans)) }
162163 branchBOnlyRelVar = relationTrue
164+ branchAOnlyIncDepName = "branchAOnlyIncDep"
163165 branchBOnlyRelVarName = "branchBOnlyRelVar"
164166 branchAOnlyIncDep = InclusionDependency (ExistingRelation relationTrue) (ExistingRelation relationTrue)
165167
@@ -168,9 +170,16 @@ testUnionMergeStrategy = TestCase $ do
168170 assertEqual "branchBOnlyRelVar should appear in the merge" (M.lookup branchBOnlyRelVarName (relationVariables mergeContext1)) (Just relationTrue)
169171
170172 (_, graph'') <- addTransaction "branchA" (Transaction (fakeUUID 4) (TransactionInfo (transactionUUID branchATrans) S.empty) updatedBranchAContext) graph'
171− let eMergeGraph = mergeTransactions (fakeUUID 5) (fakeUUID 1) UnionMergeStrategy ("branchA", "branchB") graph''
173+ let eMergeGraph = mergeTransactions (fakeUUID 5) (fakeUUID 3) UnionMergeStrategy ("branchA", "branchB") graph''
172174 case eMergeGraph of
173175 Left err -> assertFailure ("expected merge success: " ++ show err)
174− Right (mergeDiscon, mergeGraph) -> pure ()
176+ Right (mergeDiscon, mergeGraph) -> do
177+ -- check that the new merge transaction has the correct parents
178+ mergeTrans <- assertEither $ transactionForUUID (fakeUUID 5) mergeGraph
179+ let mergeContext = transactionContext mergeTrans
180+ assertEqual "merge transaction parents" (transactionParentIds mergeTrans) (S.fromList [fakeUUID 3, fakeUUID 4])
181+ -- check that the new merge tranasction has elements from both A and B branches
182+ assertEqual "merge transaction relvars" (Just relationTrue) (M.lookup branchBOnlyRelVarName (relationVariables mergeContext))
183+ assertEqual "merge transaction incdeps" (Just branchAOnlyIncDep) (M.lookup branchAOnlyIncDepName (inclusionDependencies mergeContext))
175184
176185