@@ -31,7 +31,7 @@ Person
33testList :: Test
33testList :: Test
34−testList = TestList $ map mkInProcessTest [testGetBy, testDelete, testUpdate, testCount]
34+testList = TestList $ map mkInProcessTest [testGetBy, testDelete, testUpdate, testCount, testSelect]
36main :: IO ()
36main :: IO ()
@@ -139,8 +139,21 @@ testCount = do
139 liftIO $ assertEqual "count age" 1 c1
139 liftIO $ assertEqual "count age" 1 c1
140 c2 <- count [PersonAge !=. 400]
140 c2 <- count [PersonAge !=. 400]
141 liftIO $ assertEqual "count age2" 2 c2
141 liftIO $ assertEqual "count age2" 2 c2
143+--currently, selection only supports filter/restriction and not sorting
144+--insert two people, test that restriction locates each and both
145+testSelect :: ReaderT ProjectM36Backend IO ()
147+ let name1 = "Michael"
151+ m1 <- insert $ Person name1 age1
152+ m2 <- insert $ Person name2 age2
153+ name1List <- selectList [PersonName ==. name1] []
154+ liftIO $ assertEqual "select name1 len" 1 (length name1List)
155+ liftIO $ assertEqual "select name1 val" name1 ((personName . entityVal . head) name1List)
156+ namesList <- selectList [] []
157+ liftIO $ assertEqual "select names len" 2 (length (namesList :: [Entity Person]))