packages feed

simple-sql-parser-0.7.0: tests/Language/SQL/SimpleSQL/QueryExprs.hs

{-
These are the tests for the queryExprs parsing which parses multiple
query expressions from one string.
-}

{-# LANGUAGE OverloadedStrings #-}
module Language.SQL.SimpleSQL.QueryExprs (queryExprsTests) where

import Language.SQL.SimpleSQL.TestTypes
import Language.SQL.SimpleSQL.Syntax

queryExprsTests :: TestItem
queryExprsTests = Group "query exprs" $ map (uncurry (TestStatements ansi2011))
    [("select 1",[ms])
    ,("select 1;",[ms])
    ,("select 1;select 1",[ms,ms])
    ,(" select 1;select 1; ",[ms,ms])
    ,("SELECT CURRENT_TIMESTAMP;"
     ,[SelectStatement $ toQueryExpr $ makeSelect
      {msSelectList = [(Iden [Name Nothing "CURRENT_TIMESTAMP"],Nothing)]}])
    ,("SELECT \"CURRENT_TIMESTAMP\";"
     ,[SelectStatement $ toQueryExpr $ makeSelect
      {msSelectList = [(Iden [Name (Just ("\"","\"")) "CURRENT_TIMESTAMP"],Nothing)]}])
    ]
  where
    ms = SelectStatement $ toQueryExpr $ makeSelect {msSelectList = [(NumLit "1",Nothing)]}