Tests for query
This commit is contained in:
		@@ -1,6 +1,39 @@
 | 
			
		||||
module Test.Data.Query where
 | 
			
		||||
 | 
			
		||||
import Test.Tasty
 | 
			
		||||
import Test.Tasty.HUnit
 | 
			
		||||
 | 
			
		||||
import Data.Buuka
 | 
			
		||||
       (BuukaEntry(..), URL(..))
 | 
			
		||||
import Data.Functor.Foldable
 | 
			
		||||
       (cata)
 | 
			
		||||
import Data.Query
 | 
			
		||||
 | 
			
		||||
test_startswith :: Assertion
 | 
			
		||||
test_startswith = do
 | 
			
		||||
  let entry = BuukaEntry (URL "http://example.com") (Just "foo")
 | 
			
		||||
  cata evaluate (startsWith Url "http://") entry @?= True
 | 
			
		||||
  cata evaluate (startsWith Url "https://") entry @?= False
 | 
			
		||||
  cata evaluate (startsWith Title "foo") entry @?= True
 | 
			
		||||
  cata evaluate (startsWith Title "bar") entry @?= False
 | 
			
		||||
 | 
			
		||||
test_endswith :: Assertion
 | 
			
		||||
test_endswith = do
 | 
			
		||||
  let entry = BuukaEntry (URL "http://example.com") (Just "foo")
 | 
			
		||||
  cata evaluate (endsWith Url "com") entry @?= True
 | 
			
		||||
  cata evaluate (endsWith Url "fi") entry @?= False
 | 
			
		||||
  cata evaluate (endsWith Title "foo") entry @?= True
 | 
			
		||||
  cata evaluate (endsWith Title "bar") entry @?= False
 | 
			
		||||
 | 
			
		||||
test_and :: Assertion
 | 
			
		||||
test_and = do
 | 
			
		||||
  let entry = BuukaEntry (URL "http://example.com") (Just "foo")
 | 
			
		||||
  cata evaluate (startsWith Url "http://" .&&. endsWith Url ".com") entry @?= True
 | 
			
		||||
  cata evaluate (startsWith Url "http://" .&&. endsWith Url ".fi") entry @?= False
 | 
			
		||||
 | 
			
		||||
tests :: TestTree
 | 
			
		||||
tests = testGroup "Data.Query" []
 | 
			
		||||
tests = testGroup "Data.Query"
 | 
			
		||||
  [ testCase "Queries startsWith" test_startswith
 | 
			
		||||
  , testCase "Queries endsWith" test_endswith
 | 
			
		||||
  , testCase "Queries and" test_and
 | 
			
		||||
  ]
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user