on master help sign in
add branchB transaction to test merge result WIP
commit8c77b4a65f5fbaa4bb55ab6baae0d40ba7679331 authorAgentM <agentm@themactionfaction.com> dateTue 14 Jun 2016, 22:41 (10 years ago) parent9f12c25
1 file changed+17−5
test/TransactionGraph/Merge.hs+17−5
test/TransactionGraph/Merge.hs+17−5
@@ -9,8 +9,11 @@ import ProjectM36.Error
99import qualified Data.ByteString.Lazy as BS
1010import System.Exit
1111import Data.Word
12+import ProjectM36.RelationalExpression
1213import qualified Data.UUID as U
1314import qualified ProjectM36.DatabaseContext as DBC
15+import Control.Monad.State hiding (join)
16+import ProjectM36.Relation (relationTrue)
1417import Debug.Trace
1518
1619main :: IO ()
@@ -98,10 +101,19 @@ testSelectedBranchMerge = TestCase $ do
98101 graph <- basicTransactionGraph
99102 assertGraph graph
100103
101− let eGraph' = mergeTransactions (fakeUUID 3) (fakeUUID 10) (SelectedBranchMergeStrategy "branchA") ("branchA", "branchB") graph
102− (DisconnectedTransaction _ mergedContext, graph') <- assertEither eGraph'
103− assertGraph graph'
104+ -- add another relvar to branchB
105+ branchBTrans <- assertMaybe (transactionForHead "branchB" graph) "failed to get branchB head"
106+ updatedBranchBContext <- case runState (evalContextExpr (Assign "branchBOnlyRelvar" (ExistingRelation relationTrue))) (transactionContext branchBTrans) of
107+ (Just err, _) -> assertFailure (show err) >> undefined
108+ (Nothing, context) -> pure context
109+ (_, graph') <- addTransaction "branchB" (fakeUUID 3) updatedBranchBContext branchBTrans graph
110+ --create the merge transaction in the graph
111+ let eGraph' = mergeTransactions (fakeUUID 4) (fakeUUID 10) (SelectedBranchMergeStrategy "branchA") ("branchA", "branchB") graph'
112+ putStrLn "SPAMMO"
113+
114+ (DisconnectedTransaction _ mergedContext, graph'') <- assertEither eGraph'
115+ assertGraph graph''
104116 --validate that the branchB was removed
105− rootTrans <- assertEither $ transactionForUUID (fakeUUID 1) graph'
106− assertEqual "head still available" (transactionForHead "branchB" graph') Nothing
117+ rootTrans <- assertEither $ transactionForUUID (fakeUUID 1) graph''
118+ assertEqual "head still available" (transactionForHead "branchB" graph'') Nothing
107119 --assertEqual "bad merge" mergedContext (transactionContext rootTrans)