mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-12-08 05:36:12 +00:00
[haskell-http-client] add support for auth methods (#6622)
* add support for auth methods * use newtypes for required params * fix duplicate operationId issues * prevent aliasing of vendorextension references in fromOperation * add --fast to stack ci build
This commit is contained in:
@@ -2,20 +2,23 @@
|
||||
|
||||
module Instances where
|
||||
|
||||
import Data.Text (Text, pack)
|
||||
import Control.Monad
|
||||
import Data.Char (isSpace)
|
||||
import Data.List (sort)
|
||||
import qualified Data.Time as TI
|
||||
import Test.QuickCheck
|
||||
import qualified Data.Aeson as A
|
||||
import qualified Data.ByteString.Lazy as BL
|
||||
import qualified Data.HashMap.Strict as HM
|
||||
import qualified Data.Set as Set
|
||||
import qualified Data.ByteString.Lazy as BL
|
||||
import qualified Data.Text as T
|
||||
import qualified Data.Time as TI
|
||||
import qualified Data.Vector as V
|
||||
|
||||
import ApproxEq
|
||||
import SwaggerPetstore.Model
|
||||
|
||||
instance Arbitrary Text where
|
||||
arbitrary = pack <$> arbitrary
|
||||
instance Arbitrary T.Text where
|
||||
arbitrary = T.pack <$> arbitrary
|
||||
|
||||
instance Arbitrary TI.Day where
|
||||
arbitrary = TI.ModifiedJulianDay . (2000 +) <$> arbitrary
|
||||
@@ -45,6 +48,27 @@ instance Arbitrary Date where
|
||||
arbitrary = Date <$> arbitrary
|
||||
shrink (Date xs) = Date <$> shrink xs
|
||||
|
||||
-- | A naive Arbitrary instance for A.Value:
|
||||
instance Arbitrary A.Value where
|
||||
arbitrary = frequency [(3, simpleTypes), (1, arrayTypes), (1, objectTypes)]
|
||||
where
|
||||
simpleTypes :: Gen A.Value
|
||||
simpleTypes =
|
||||
frequency
|
||||
[ (1, return A.Null)
|
||||
, (2, liftM A.Bool (arbitrary :: Gen Bool))
|
||||
, (2, liftM (A.Number . fromIntegral) (arbitrary :: Gen Int))
|
||||
, (2, liftM (A.String . T.pack) (arbitrary :: Gen String))
|
||||
]
|
||||
mapF (k, v) = (T.pack k, v)
|
||||
simpleAndArrays = frequency [(1, sized sizedArray), (4, simpleTypes)]
|
||||
arrayTypes = sized sizedArray
|
||||
objectTypes = sized sizedObject
|
||||
sizedArray n = liftM (A.Array . V.fromList) $ replicateM n simpleTypes
|
||||
sizedObject n =
|
||||
liftM (A.object . map mapF) $
|
||||
replicateM n $ (,) <$> (arbitrary :: Gen String) <*> simpleAndArrays
|
||||
|
||||
-- | Checks if a given list has no duplicates in _O(n log n)_.
|
||||
hasNoDups
|
||||
:: (Ord a)
|
||||
|
||||
@@ -17,42 +17,43 @@ import SwaggerPetstore.MimeTypes
|
||||
|
||||
main :: IO ()
|
||||
main =
|
||||
hspec $ modifyMaxSize (const 10) $
|
||||
do describe "JSON instances" $
|
||||
do propMimeEq MimeJSON (Proxy :: Proxy AdditionalPropertiesClass)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy Animal)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy AnimalFarm)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy ApiResponse)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy ArrayOfArrayOfNumberOnly)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy ArrayOfNumberOnly)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy ArrayTest)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy Capitalization)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy Category)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy ClassModel)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy Client)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy EnumArrays)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy EnumClass)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy EnumTest)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy FormatTest)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy HasOnlyReadOnly)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy MapTest)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy MixedPropertiesAndAdditionalPropertiesClass)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy Model200Response)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy ModelList)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy ModelReturn)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy Name)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy NumberOnly)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy Order)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy OuterBoolean)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy OuterComposite)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy OuterEnum)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy OuterNumber)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy OuterString)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy Pet)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy ReadOnlyFirst)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy SpecialModelName)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy Tag)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy User)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy Cat)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy Dog)
|
||||
|
||||
hspec $ modifyMaxSize (const 10) $ do
|
||||
describe "JSON instances" $ do
|
||||
pure ()
|
||||
propMimeEq MimeJSON (Proxy :: Proxy AdditionalPropertiesClass)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy Animal)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy AnimalFarm)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy ApiResponse)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy ArrayOfArrayOfNumberOnly)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy ArrayOfNumberOnly)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy ArrayTest)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy Capitalization)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy Category)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy ClassModel)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy Client)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy EnumArrays)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy EnumClass)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy EnumTest)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy FormatTest)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy HasOnlyReadOnly)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy MapTest)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy MixedPropertiesAndAdditionalPropertiesClass)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy Model200Response)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy ModelList)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy ModelReturn)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy Name)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy NumberOnly)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy Order)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy OuterBoolean)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy OuterComposite)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy OuterEnum)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy OuterNumber)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy OuterString)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy Pet)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy ReadOnlyFirst)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy SpecialModelName)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy Tag)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy User)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy Cat)
|
||||
propMimeEq MimeJSON (Proxy :: Proxy Dog)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user