on master help sign in
fix transaction graph merge test

resolves #30

commit7c18077e62c8c006930ba46e80eb7d3ad0fa8b7d authorAgentM <agentm@themactionfaction.com> dateSat 6 Aug 2016, 17:03 (10 years ago) parent7ccb7de
1 file changed+13−14
test/TransactionGraph/Merge.hs+13−14
test/TransactionGraph/Merge.hs+13−14
@@ -1,14 +1,11 @@
11-- tests for transaction merging
22import Test.HUnit
33import ProjectM36.Base
4−import ProjectM36.Relation
54import ProjectM36.Attribute
5+import ProjectM36.Relation
66import ProjectM36.DataTypes.Primitive
77import ProjectM36.Transaction
88import ProjectM36.TransactionGraph
9−import ProjectM36.TransactionGraph.Show
10−import ProjectM36.TransactionGraph.Show.Dot
11−import ProjectM36.DateExamples
129import ProjectM36.Error
1310import qualified Data.ByteString.Lazy as BS
1411import System.Exit
@@ -19,8 +16,6 @@ import qualified Data.Set as S
1916import qualified Data.Map as M
2017import qualified ProjectM36.DatabaseContext as DBC
2118import Control.Monad.State hiding (join)
22−import ProjectM36.Relation (relationTrue)
23−import Debug.Trace
2419
2520main :: IO ()
2621main = do
@@ -31,6 +26,7 @@ testList :: Test
3126testList = TestList [
3227 testSubGraphToFirstAncestorBasic,
3328 testSubGraphToFirstAncestorSnipBranch,
29+ testSubGraphToFirstAncestorMoreTransactions,
3430 testSelectedBranchMerge,
3531 testUnionMergeStrategy,
3632 testUnionPreferMergeStrategy
@@ -98,7 +94,6 @@ testSubGraphToFirstAncestorSnipBranch = TestCase $ do
9894 baseGraph <- basicTransactionGraph
9995 transA <- assertMaybe (transactionForHead "branchA" baseGraph) "failed to get branchA"
10096 transB <- assertMaybe (transactionForHead "branchB" baseGraph) "failed to get branchB"
101− rootTrans <- assertEither (transactionForId (fakeUUID 1) baseGraph)
10297 (_, graph) <- addTransaction "branchC" (Transaction (fakeUUID 12) (TransactionInfo (fakeUUID 1) S.empty) (transactionContext transA)) baseGraph
10398 subgraph <- assertEither $ subGraphOfFirstCommonAncestor graph (transactionHeadsForGraph baseGraph) transA transB S.empty
10499 assertGraph subgraph
@@ -116,13 +111,18 @@ testSubGraphToFirstAncestorMoreTransactions = TestCase $ do
116111 (Just err, _) -> assertFailure (show err) >> undefined
117112 (Nothing, context) -> pure context
118113 (_, graph') <- addTransaction "branchB" (Transaction (fakeUUID 3) (TransactionInfo (transactionId branchBTrans) S.empty) updatedBranchBContext) graph
114+ branchBTrans' <- assertMaybe (transactionForHead "branchB" graph') "failed to get branchB head"
115+ assertEqual "branchB id 3" (fakeUUID 3) (transactionId branchBTrans')
116+
119117 -- add another transaction to branchA
120118 branchATrans <- assertMaybe (transactionForHead "branchA" graph) "failed to get branchA head"
121119 (_, graph'') <- addTransaction "branchA" (Transaction (fakeUUID 4) (TransactionInfo (transactionId branchATrans) S.empty) (transactionContext branchATrans)) graph'
120+ branchATrans' <- assertMaybe (transactionForHead "branchA" graph'') "failed to get branchA head"
121+ assertEqual "branchA id 4" (fakeUUID 4) (transactionId branchATrans')
122122
123123 --retrieve subgraph
124124 let subGraphHeads = M.filter (\t -> elem (transactionId t) [fakeUUID 3, fakeUUID 4]) (transactionHeadsForGraph graph'')
125− subgraph <- assertEither $ subGraphOfFirstCommonAncestor graph'' subGraphHeads branchATrans branchBTrans S.empty
125+ subgraph <- assertEither $ subGraphOfFirstCommonAncestor graph'' subGraphHeads branchATrans' branchBTrans' S.empty
126126 --verify that the subgraph includes both the heads and the common ancestor
127127 let expectedTransSet = S.fromList (map fakeUUID [1,3,4])
128128 assertBool "validate transactions in subgraph" (S.isProperSubsetOf expectedTransSet (S.map transactionId (transactionsForGraph subgraph)))
@@ -141,13 +141,12 @@ testSelectedBranchMerge = TestCase $ do
141141 --create the merge transaction in the graph
142142 let eGraph' = mergeTransactions (fakeUUID 4) (fakeUUID 10) (SelectedBranchMergeStrategy "branchA") ("branchA", "branchB") graph'
143143
144− (DisconnectedTransaction _ mergedContext, graph'') <- assertEither eGraph'
144+ (_, graph'') <- assertEither eGraph'
145145
146146 assertGraph graph''
147147 --validate that the branchB remains
148− rootTrans <- assertEither $ transactionForId (fakeUUID 1) graph''
149− branchBTrans <- assertMaybe (transactionForHead "branchB" graph'') "failed to find branchB head"
150− assertEqual "head of merged transaction was removed" (transactionId branchBTrans) (fakeUUID 3)
148+ branchBTrans' <- assertMaybe (transactionForHead "branchB" graph'') "failed to find branchB head"
149+ assertEqual "head of merged transaction was removed" (transactionId branchBTrans') (fakeUUID 3)
151150
152151 --validate that the branchB relvar does *not* appear in the merge because branchA was selected
153152 mergeTrans <- assertEither (transactionForId (fakeUUID 4) graph'')
@@ -193,13 +192,13 @@ testUnionMergeStrategy = TestCase $ do
193192 branchBOnlyRelVarName = "branchBOnlyRelVar"
194193 branchAOnlyIncDep = InclusionDependency (ExistingRelation relationTrue) (ExistingRelation relationTrue)
195194 (_, graph') <- addTransaction "branchB" (Transaction (fakeUUID 3) (TransactionInfo (transactionId branchBTrans) S.empty) updatedBranchBContext) graph
196− ((DisconnectedTransaction _ mergeContext1), mergedGraph1) <- assertEither $ mergeTransactions (fakeUUID 5) (fakeUUID 10) UnionMergeStrategy ("branchA", "branchB") graph'
195+ ((DisconnectedTransaction _ mergeContext1), _) <- assertEither $ mergeTransactions (fakeUUID 5) (fakeUUID 10) UnionMergeStrategy ("branchA", "branchB") graph'
197196 assertEqual "branchBOnlyRelVar should appear in the merge" (M.lookup branchBOnlyRelVarName (relationVariables mergeContext1)) (Just relationTrue)
198197 (_, graph'') <- addTransaction "branchA" (Transaction (fakeUUID 4) (TransactionInfo (transactionId branchATrans) S.empty) updatedBranchAContext) graph'
199198 let eMergeGraph = mergeTransactions (fakeUUID 5) (fakeUUID 3) UnionMergeStrategy ("branchA", "branchB") graph''
200199 case eMergeGraph of
201200 Left err -> assertFailure ("expected merge success: " ++ show err)
202− Right (mergeDiscon, mergeGraph) -> do
201+ Right (_, mergeGraph) -> do
203202 -- check that the new merge transaction has the correct parents
204203 mergeTrans <- assertEither $ transactionForId (fakeUUID 5) mergeGraph
205204 let mergeContext = transactionContext mergeTrans