Add unit test for parseListObjectsResponse

This commit is contained in:
Krishnan Parthasarathi 2017-01-22 14:29:33 +05:30 committed by Aditya Manthramurthy
parent 2817d4654d
commit 0d9235b86a

View File

@ -5,16 +5,18 @@ module Network.Minio.XmlParser.Test
import Test.Tasty
import Test.Tasty.HUnit
import Data.Time (addGregorianYearsClip, fromGregorian, UTCTime(..))
import Lib.Prelude
-- import Network.Minio.Data
import Network.Minio.Data
import Network.Minio.XmlParser
xmlParserTests :: TestTree
xmlParserTests = testGroup "XML Parser Tests"
[ testCase "Test parseLocation" testParseLocation
, testCase "Test parseNewMultipartUpload" testParseNewMultipartUpload
, testCase "Test parseListObjectsResponse" testParseListObjectsResult
]
testParseLocation :: Assertion
@ -71,3 +73,31 @@ testParseNewMultipartUpload = do
"EXAMPLEJZ6e0YupT2h66iePQCc9IEbYbDUy4RTpMeoSMLPRp8Z5o1u8feSRonpvnWsKKG35tI2LB9VDPiCgTy.Gq2VxQLYjrue4Nq.NBdqI-"
)
]
testParseListObjectsResult :: Assertion
testParseListObjectsResult = do
let
xmldata = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\
\<ListBucketResult xmlns=\"http://s3.amazonaws.com/doc/2006-03-01/\">\
\<Name>bucket</Name>\
\<Prefix/>\
\<KeyCount>205</KeyCount>\
\<MaxKeys>1000</MaxKeys>\
\<IsTruncated>false</IsTruncated>\
\<Contents>\
\<Key>my-image.jpg</Key>\
\<LastModified>2009-10-12T17:50:30.000Z</LastModified>\
\<ETag>&quot;fba9dede5f27731c9771645a39863328&quot;</ETag>\
\<Size>434234</Size>\
\<StorageClass>STANDARD</StorageClass>\
\</Contents>\
\</ListBucketResult>"
expectedListResult = ListObjectsResult False Nothing [object1] []
object1 = ObjectInfo "my-image.jpg" modifiedTime1 "\"fba9dede5f27731c9771645a39863328\"" 434234
modifiedTime1 = flip UTCTime 64230 $ fromGregorian 2009 10 12
parsedListObjectsResult <- runExceptT $ parseListObjectsResponse xmldata
case parsedListObjectsResult of
Right listObjectsResult -> listObjectsResult @?= expectedListResult
_ -> assertFailure $ "Parsing failed => " ++ show parsedListObjectsResult