@@ -31,7 +31,7 @@ Person
3131|]
3232
3333testList :: Test
34−testList = TestList $ map mkInProcessTest [testGetBy, testDelete, testUpdate, testCount]
34+testList = TestList $ map mkInProcessTest [testGetBy, testDelete, testUpdate, testCount, testSelect]
3535
3636main :: IO ()
3737main = do
@@ -139,8 +139,21 @@ testCount = do
139139 liftIO $ assertEqual "count age" 1 c1
140140 c2 <- count [PersonAge !=. 400]
141141 liftIO $ assertEqual "count age2" 2 c2
142−
143−
144142
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 ()
146+testSelect = do
147+ let name1 = "Michael"
148+ age1 = 26
149+ name2 = "John"
150+ age2 = 30
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]))
145158
146159