Add unit-tests for parseLocation in XmlParser.Test
This commit is contained in:
parent
1f73204e38
commit
19eda8622f
52
test/Network/Minio/XmlParser/Test.hs
Normal file
52
test/Network/Minio/XmlParser/Test.hs
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
module Network.Minio.XmlParser.Test
|
||||||
|
(
|
||||||
|
testParseLocation
|
||||||
|
) where
|
||||||
|
|
||||||
|
import Test.Tasty.HUnit
|
||||||
|
|
||||||
|
import Lib.Prelude
|
||||||
|
|
||||||
|
import Network.Minio.Data
|
||||||
|
import Network.Minio.XmlParser
|
||||||
|
|
||||||
|
|
||||||
|
euLocationXml :: LByteString
|
||||||
|
euLocationXml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\
|
||||||
|
\<LocationConstraint xmlns=\"http://s3.amazonaws.com/doc/2006-03-01/\">EU</LocationConstraint>"
|
||||||
|
|
||||||
|
badLocationXml :: LByteString
|
||||||
|
badLocationXml = "ClearlyInvalidXml"
|
||||||
|
|
||||||
|
usLocationXml :: LByteString
|
||||||
|
usLocationXml = "<LocationConstraint xmlns=\"http://s3.amazonaws.com/doc/2006-03-01/\"/>"
|
||||||
|
|
||||||
|
testValidParseLocation :: Assertion
|
||||||
|
testValidParseLocation = do
|
||||||
|
txt <- runExceptT $ parseLocation euLocationXml
|
||||||
|
let location = case txt of
|
||||||
|
Right loc -> loc
|
||||||
|
Left _ -> ""
|
||||||
|
(isRight txt && location == "EU") @? ("Parsing failed unexpectedly => " ++ show txt)
|
||||||
|
|
||||||
|
testInvalidParseLocation :: Assertion
|
||||||
|
testInvalidParseLocation = do
|
||||||
|
txt <- runExceptT $ parseLocation badLocationXml
|
||||||
|
(isLeft txt) @? ("Parsing succeeded unexpectedly => " ++ show txt)
|
||||||
|
|
||||||
|
testEmptyParseLocation :: Assertion
|
||||||
|
testEmptyParseLocation = do
|
||||||
|
txt <- runExceptT $ parseLocation usLocationXml
|
||||||
|
let location = case txt of
|
||||||
|
Right loc -> loc
|
||||||
|
Left _ -> ""
|
||||||
|
(isRight txt && location == "") @? ("Parsing failed unexpectedly => " ++ show txt)
|
||||||
|
|
||||||
|
testParseLocation :: Assertion
|
||||||
|
testParseLocation = do
|
||||||
|
-- 1. Test parsing of a valid location xml.
|
||||||
|
testValidParseLocation
|
||||||
|
-- 2. Test parsing of an invalid location xml.
|
||||||
|
testInvalidParseLocation
|
||||||
|
-- 3. Test parsing of a valid, empty location xml.
|
||||||
|
testEmptyParseLocation
|
||||||
@ -13,6 +13,7 @@ import Control.Monad.Trans.Resource (runResourceT)
|
|||||||
import Network.Minio
|
import Network.Minio
|
||||||
-- import Network.Minio.S3API
|
-- import Network.Minio.S3API
|
||||||
import Network.Minio.XmlGenerator.Test
|
import Network.Minio.XmlGenerator.Test
|
||||||
|
import Network.Minio.XmlParser.Test
|
||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = defaultMain tests
|
main = defaultMain tests
|
||||||
@ -87,4 +88,5 @@ unitTests = testGroup "Unit tests"
|
|||||||
isLeft ret @? ("putObject unexpected success => " ++ show ret)
|
isLeft ret @? ("putObject unexpected success => " ++ show ret)
|
||||||
|
|
||||||
, testCase "Test mkCreateBucketConfig." testMkCreateBucketConfig
|
, testCase "Test mkCreateBucketConfig." testMkCreateBucketConfig
|
||||||
|
, testCase "Test parseLocation." testParseLocation
|
||||||
]
|
]
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user