aws-sdk-text-converter 0.1.0.0 → 0.2.0.0
raw patch · 4 files changed
+16/−3 lines, 4 files
Files
- Cloud/AWS/Lib/FromText.hs +4/−0
- Cloud/AWS/Lib/ToText.hs +2/−2
- aws-sdk-text-converter.cabal +1/−1
- test/Spec.hs +9/−0
Cloud/AWS/Lib/FromText.hs view
@@ -90,6 +90,10 @@ where fmt = "%FT%T" +instance FromText () where+ fromText _ = return ()+ fromNamedText _ = maybe (return ()) fromText+ deriveFromText :: String -> [String] -> DecsQ deriveFromText dstr strs = do ctrs <- map (\(NormalC name _) -> name) <$> cons
Cloud/AWS/Lib/ToText.hs view
@@ -5,10 +5,10 @@ ) where import Data.ByteString (ByteString)-import qualified Data.ByteString.Char8 as BC import Data.IP (IPv4, AddrRange) import Data.Text (Text) import qualified Data.Text as T+import qualified Data.Text.Encoding as T import Data.Time (UTCTime) import qualified Data.Time as Time import System.Locale (defaultTimeLocale)@@ -22,7 +22,7 @@ toText t = t instance ToText ByteString where- toText = T.pack . BC.unpack+ toText = T.decodeUtf8 instance ToText Bool where toText True = "true"
aws-sdk-text-converter.cabal view
@@ -1,5 +1,5 @@ name: aws-sdk-text-converter-version: 0.1.0.0+version: 0.2.0.0 synopsis: The text converter for aws-sdk. description: The text converter for aws-sdk. license: BSD3
test/Spec.hs view
@@ -3,6 +3,7 @@ import Control.Applicative import Data.IP+import Data.Text import Data.Time import Test.Hspec import Test.HUnit@@ -30,12 +31,18 @@ instance Arbitrary (AddrRange IPv4) where arbitrary = makeAddrRange <$> arbitrary <*> choose (0, 32) +instance Arbitrary Text where+ arbitrary = pack <$> arbitrary+ prop_mclass :: (Eq a, FromText a, ToText a) => a -> Bool prop_mclass a = fromText (toText a) == Just (Just a) testNothing :: IO () testNothing = (fromText "" :: Maybe Int) @=? Nothing +testConvertNothingToUnit :: IO ()+testConvertNothingToUnit = fromNamedText "unit" Nothing @=? Just ()+ data A = B | C deriving (Eq, Show) instance ToText A where@@ -60,3 +67,5 @@ prop "Maybe Int" (prop_mclass :: Int -> Bool) it "convert Nothing" testNothing prop "deriveFromText" (prop_class :: A -> Bool)+ prop "Unit" (\t -> fromText t == Just ())+ it "convert Nothing to Unit" testConvertNothingToUnit