diff --git a/test/Network/Minio/XmlGenerator/Test.hs b/test/Network/Minio/XmlGenerator/Test.hs index c32852e..64555d3 100644 --- a/test/Network/Minio/XmlGenerator/Test.hs +++ b/test/Network/Minio/XmlGenerator/Test.hs @@ -20,6 +20,7 @@ module Network.Minio.XmlGenerator.Test ) where +import qualified Data.ByteString.Lazy as LBS import Lib.Prelude import Network.Minio.Data import Network.Minio.TestHelpers @@ -28,6 +29,7 @@ import Network.Minio.XmlParser (parseNotification) import Test.Tasty import Test.Tasty.HUnit import Text.RawString.QQ (r) +import Text.XML (def, parseLBS) xmlGeneratorTests :: TestTree xmlGeneratorTests = @@ -120,7 +122,13 @@ testMkPutNotificationRequest = testMkSelectRequest :: Assertion testMkSelectRequest = mapM_ assertFn cases where - assertFn (a, b) = assertEqual "selectRequest XML should match: " b $ mkSelectRequest a + assertFn (a, b) = + let generatedReqDoc = parseLBS def $ LBS.fromStrict $ mkSelectRequest a + expectedReqDoc = parseLBS def $ LBS.fromStrict b + in case (generatedReqDoc, expectedReqDoc) of + (Right genDoc, Right expDoc) -> assertEqual "selectRequest XML should match: " expDoc genDoc + (Left err, _) -> assertFailure $ "Generated selectRequest failed to parse as XML" ++ show err + (_, Left err) -> assertFailure $ "Expected selectRequest failed to parse as XML" ++ show err cases = [ ( SelectRequest "Select * from S3Object" @@ -143,8 +151,8 @@ testMkSelectRequest = mapM_ assertFn cases <> quoteEscapeCharacter "\"" ) (Just False), - [r|Select * from S3ObjectSQLGZIP,IGNORE"" -,""ASNEEDED + [r|Select * from S3ObjectSQLGZIP,IGNORE"" +,""ASNEEDED FALSE|] ), ( setRequestProgressEnabled False $ @@ -168,7 +176,7 @@ testMkSelectRequest = mapM_ assertFn cases <> quoteCharacter "\"" <> quoteEscapeCharacter "\"" ), - [r|Select * from S3ObjectSQLNONE,""ASNEEDED + [r|Select * from S3ObjectSQLNONE,""ASNEEDED FALSE|] ) ]