@@ -9,7 +9,8 @@ import ProjectM36.Error
99import qualified Data.ByteString.Lazy as BS
1010import System.Exit
1111import Data.Word
12−import ProjectM36.RelationalExpression
12+import ProjectM36.DatabaseContextExpression
13+import ProjectM36.InclusionDependencyValidation
1314import qualified ProjectM36.DisconnectedTransaction as Discon
1415import qualified Data.UUID as U
1516import qualified Data.Set as S
@@ -38,10 +39,16 @@ root 1
3839|--- branchA aaaa
3940|--- branchB bbbb
4041-}
41−
4242createTrans :: TransactionId -> TransactionInfo -> DatabaseContext -> Transaction
4343createTrans tid info ctx = Transaction tid info (Schemas ctx M.empty)
4444
45+--copied from ProjectM36.Client so that Client doesn't need to export this
46+defaultDatabaseContextEvalState :: DatabaseContext -> DatabaseContextEvalState
47+defaultDatabaseContextEvalState context = DatabaseContextEvalState {
48+ dbcontext = context,
49+ constraintValidator = checkConstraints
50+ }
51+
4552basicTransactionGraph :: IO TransactionGraph
4653basicTransactionGraph = do
4754 let bsGraph = bootstrapTransactionGraph uuidRoot DBC.empty --dateExamples
@@ -113,10 +120,10 @@ testSubGraphToFirstAncestorMoreTransactions = TestCase $ do
113120
114121 -- add another relvar to branchB
115122 branchBTrans <- assertMaybe (transactionForHead "branchB" graph) "failed to get branchB head"
116− updatedBranchBContext <- case runState (evalContextExpr (Assign "branchBOnlyRelvar" (ExistingRelation relationTrue))) (concreteDatabaseContext branchBTrans) of
123+ updatedBranchBContext <- case runState (evalContextExpr (Assign "branchBOnlyRelvar" (ExistingRelation relationTrue))) (defaultDatabaseContextEvalState (concreteDatabaseContext branchBTrans)) of
117124 (Just err, _) -> assertFailure (show err) >> undefined
118125 (Nothing, context) -> pure context
119− (_, graph') <- addTransaction "branchB" (createTrans (fakeUUID 3) (TransactionInfo (transactionId branchBTrans) S.empty) updatedBranchBContext) graph
126+ (_, graph') <- addTransaction "branchB" (createTrans (fakeUUID 3) (TransactionInfo (transactionId branchBTrans) S.empty) (dbcontext updatedBranchBContext)) graph
120127 branchBTrans' <- assertMaybe (transactionForHead "branchB" graph') "failed to get branchB head"
121128 assertEqual "branchB id 3" (fakeUUID 3) (transactionId branchBTrans')
122129
@@ -140,10 +147,10 @@ testSelectedBranchMerge = TestCase $ do
140147
141148 -- add another relvar to branchB
142149 branchBTrans <- assertMaybe (transactionForHead "branchB" graph) "failed to get branchB head"
143− updatedBranchBContext <- case runState (evalContextExpr (Assign "branchBOnlyRelvar" (ExistingRelation relationTrue))) (concreteDatabaseContext branchBTrans) of
150+ updatedBranchBContext <- case runState (evalContextExpr (Assign "branchBOnlyRelvar" (ExistingRelation relationTrue))) (defaultDatabaseContextEvalState (concreteDatabaseContext branchBTrans)) of
144151 (Just err, _) -> assertFailure (show err) >> undefined
145152 (Nothing, context) -> pure context
146− (_, graph') <- addTransaction "branchB" (createTrans (fakeUUID 3) (TransactionInfo (transactionId branchBTrans) S.empty) updatedBranchBContext) graph
153+ (_, graph') <- addTransaction "branchB" (createTrans (fakeUUID 3) (TransactionInfo (transactionId branchBTrans) S.empty) (dbcontext updatedBranchBContext)) graph
147154 --create the merge transaction in the graph
148155 let eGraph' = mergeTransactions (fakeUUID 4) (fakeUUID 10) (SelectedBranchMergeStrategy "branchA") ("branchA", "branchB") graph'
149156