packages feed

dani-sqlite-0.1.0.0: test-query/DirectSqlite.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}

module DirectSqlite
  ( testDirectSqlite,
  )
where

import Common
import Control.Exception (bracket)
import Sqlite qualified as DS

testDirectSqlite :: TestEnv -> Test
testDirectSqlite TestEnv {..} = TestCase $ do
  let dsConn = conn
  bracket (DS.prepare dsConn "SELECT 1+1") DS.finalize testDirect
  [MkSolo (res :: Int)] <- select_ conn "SELECT 1+2"
  assertEqual "1+2" 3 res
  where
    testDirect stmt = do
      DS.Row <- DS.step stmt
      res <- DS.column stmt 0
      assertEqual "1+1" (SqlInteger 2) res