{-# LANGUAGE OverloadedStrings #-} import Data.Aeson import Data.HashMap.Strict import Database.Cayley.Client as C import Database.Cayley.Types as CT import Test.Hspec main :: IO () main = hspec $ do describe "write" $ it "writes a quad to Cayley server" $ do c <- connectCayley defaultCayleyConfig write c Quad { subject = "", predicate = "", C.object = "", label = Nothing } `shouldReturn` Just (Object (fromList [("result",String "Successfully wrote 1 quads.")])) describe "query" $ it "query Cayley server" $ do c <- connectCayley defaultCayleyConfig Right a <- query c "graph.Vertex('').In('').All()" encode a `shouldBe` "[{\"id\":\"\"}]" describe "shape" $ it "returns the description of the last query executed" $ do c <- connectCayley defaultCayleyConfig queryShape c "graph.Vertex('').In('').All()" `shouldReturn` Right (Shape {nodes = [Node {CT.id = 4, tags = Nothing, values = Just [""], isLinkNode = False, isFixed = True},Node {CT.id = 8, tags = Nothing, values = Just [""], isLinkNode = False, isFixed = True},Node {CT.id = 2, tags = Nothing, values = Nothing, isLinkNode = True, isFixed = False},Node {CT.id = 1, tags = Just ["id"], values = Nothing, isLinkNode = False, isFixed = False}], links = [Link {source = 1, target = 4, linkNode = 2}]}) describe "writeNQuadFile" $ it "writes quads from a file to Cayley server" $ do c <- connectCayley defaultCayleyConfig (writeNQuadFile c "./tests/testdata.nq" >>= results) `shouldReturn` Right 15