servant-aeson-specs 0.2 → 0.3
raw patch · 4 files changed
+39/−30 lines, 4 filesdep ~servant
Dependency ranges changed: servant
Files
- LICENSE +17/−26
- servant-aeson-specs.cabal +4/−4
- src/Servant/Aeson/Internal.hs +3/−0
- test/Servant/Aeson/RoundtripSpecsSpec.hs +15/−0
LICENSE view
@@ -1,30 +1,21 @@-Copyright (c) 2016, Sönke Hahn--All rights reserved.--Redistribution and use in source and binary forms, with or without-modification, are permitted provided that the following conditions are met:+The MIT License (MIT) - * Redistributions of source code must retain the above copyright- notice, this list of conditions and the following disclaimer.+Copyright (c) 2016 Sönke Hahn - * Redistributions in binary form must reproduce the above- copyright notice, this list of conditions and the following- disclaimer in the documentation and/or other materials provided- with the distribution.+Permission is hereby granted, free of charge, to any person obtaining a copy of+this software and associated documentation files (the "Software"), to deal in+the Software without restriction, including without limitation the rights to+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies+of the Software, and to permit persons to whom the Software is furnished to do+so, subject to the following conditions: - * Neither the name of Sönke Hahn nor the names of other- contributors may be used to endorse or promote products derived- from this software without specific prior written permission.+The above copyright notice and this permission notice shall be included in all+copies or substantial portions of the Software. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+SOFTWARE.
servant-aeson-specs.cabal view
@@ -3,14 +3,14 @@ -- see: https://github.com/sol/hpack name: servant-aeson-specs-version: 0.2+version: 0.3 synopsis: generic tests for aeson serialization in servant description: tests for aeson serialization in servant category: Web homepage: https://github.com/plow-technologies/servant-aeson-specs#readme bug-reports: https://github.com/plow-technologies/servant-aeson-specs/issues maintainer: soenkehahn@gmail.com-license: BSD3+license: MIT license-file: LICENSE build-type: Simple cabal-version: >= 1.10@@ -29,7 +29,7 @@ , bytestring , hspec , QuickCheck- , servant == 0.4.*+ , servant == 0.4.* || == 0.5.* , directory , filepath , random@@ -55,7 +55,7 @@ , bytestring , hspec , QuickCheck- , servant == 0.4.*+ , servant == 0.4.* || == 0.5.* , directory , filepath , random
src/Servant/Aeson/Internal.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-}@@ -79,8 +80,10 @@ instance HasGenericSpecs api => HasGenericSpecs ((path :: Symbol) :> api) where collectRoundtripSpecs Proxy = collectRoundtripSpecs (Proxy :: Proxy api) +#if !MIN_VERSION_servant(0, 5, 0) instance HasGenericSpecs api => HasGenericSpecs (MatrixParam name a :> api) where collectRoundtripSpecs Proxy = collectRoundtripSpecs (Proxy :: Proxy api)+#endif data TypeSpec = TypeSpec {
test/Servant/Aeson/RoundtripSpecsSpec.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeOperators #-} @@ -84,6 +85,8 @@ it "returns types sorted by name" $ do usedTypes reqBodyFailApi `shouldBe` [boolRep, faultyRoundtripRep] + matrixParamTest+ reqBodyFailApi :: Proxy (ReqBody '[JSON] FaultyRoundtrip :> Get '[JSON] Bool) reqBodyFailApi = Proxy @@ -101,3 +104,15 @@ boolRep :: TypeRep boolRep = typeRep (Proxy :: Proxy Bool)++matrixParamTest :: Spec+#if !MIN_VERSION_servant(0, 5, 0)+matrixParamTest = do+ it "supports MatrixParam" $ do+ usedTypes matrixParamApi `shouldBe` [boolRep]++matrixParamApi :: Proxy (MatrixParam "foo" String :> Get '[JSON] Bool)+matrixParamApi = Proxy+#else+matrixParamTest = return ()+#endif