@@ -4,6 +4,7 @@
4{-# LANGUAGE FlexibleContexts #-}
4{-# LANGUAGE FlexibleContexts #-}
5{-# LANGUAGE MultiParamTypeClasses #-}
5{-# LANGUAGE MultiParamTypeClasses #-}
6{-# LANGUAGE OverloadedStrings #-}
6{-# LANGUAGE OverloadedStrings #-}
7+{-# LANGUAGE TupleSections #-}
7{-# LANGUAGE TypeOperators #-}
8{-# LANGUAGE TypeOperators #-}
8{-# LANGUAGE TypeSynonymInstances #-}
9{-# LANGUAGE TypeSynonymInstances #-}
9{-# OPTIONS_GHC -fno-warn-orphans #-}
10{-# OPTIONS_GHC -fno-warn-orphans #-}
@@ -49,14 +50,18 @@ spec = describe "Servant.Docs" $ do
49 (toSample (Proxy :: Proxy (TT, UT))) `shouldBe` Just (TT1,UT1)
50 (toSample (Proxy :: Proxy (TT, UT))) `shouldBe` Just (TT1,UT1)
50 (toSample (Proxy :: Proxy (TT, UT, UT))) `shouldBe` Just (TT1,UT1,UT1)
51 (toSample (Proxy :: Proxy (TT, UT, UT))) `shouldBe` Just (TT1,UT1,UT1)
51 (toSamples (Proxy :: Proxy (TT, UT))) `shouldBe`
52 (toSamples (Proxy :: Proxy (TT, UT))) `shouldBe`
52− [ ("(eins, yks)",(TT1,UT1)), ("(eins, kaks)",(TT1,UT2))
53+ [ ("eins, yks",(TT1,UT1)), ("eins, kaks",(TT1,UT2))
53− , ("(zwei, yks)",(TT2,UT1)), ("(zwei, kaks)",(TT2,UT2))
54+ , ("zwei, yks",(TT2,UT1)), ("zwei, kaks",(TT2,UT2))
55 (toSamples (Proxy :: Proxy (TT, UT, UT))) `shouldBe`
56 (toSamples (Proxy :: Proxy (TT, UT, UT))) `shouldBe`
57+ [ ("eins, yks, yks",(TT1,UT1,UT1))
56− [ ("(eins, yks, yks)",(TT1,UT1,UT1)), ("(eins, yks, kaks)",(TT1,UT1,UT2))
58+ , ("eins, yks, kaks",(TT1,UT1,UT2))
59+ , ("zwei, yks, yks",(TT2,UT1,UT1))
57− , ("(eins, kaks, yks)",(TT1,UT2,UT1)), ("(eins, kaks, kaks)",(TT1,UT2,UT2))
60+ , ("eins, kaks, yks",(TT1,UT2,UT1))
58− , ("(zwei, yks, yks)",(TT2,UT1,UT1)), ("(zwei, yks, kaks)",(TT2,UT1,UT2))
61+ , ("zwei, yks, kaks",(TT2,UT1,UT2))
62+ , ("eins, kaks, kaks",(TT1,UT2,UT2))
63+ , ("zwei, kaks, yks",(TT2,UT2,UT1))
59− , ("(zwei, kaks, yks)",(TT2,UT2,UT1)), ("(zwei, kaks, kaks)",(TT2,UT2,UT2))
64+ , ("zwei, kaks, kaks",(TT2,UT2,UT2))
@@ -87,13 +92,13 @@ data Datatype1 = Datatype1 { dt1field1 :: String
87instance ToJSON Datatype1
92instance ToJSON Datatype1
89instance ToSample Datatype1 Datatype1 where
94instance ToSample Datatype1 Datatype1 where
90− toSample _ = Just $ Datatype1 "field 1" 13
95+ toSamples _ = singleSample $ Datatype1 "field 1" 13
92−instance ToSample String String where
97+instance ToSample Char Char where
93− toSample _ = Just "a string"
98+ toSamples _ = map ("",) ['a'..'z']
95instance ToSample Int Int where
100instance ToSample Int Int where
96− toSample _ = Just 17
101+ toSamples _ = singleSample 17
98instance MimeRender PlainText Int where
103instance MimeRender PlainText Int where
99 mimeRender _ = cs . show
104 mimeRender _ = cs . show
@@ -105,9 +110,7 @@ data TT = TT1 | TT2 deriving (Show, Eq)
105data UT = UT1 | UT2 deriving (Show, Eq)
110data UT = UT1 | UT2 deriving (Show, Eq)
107instance ToSample TT TT where
112instance ToSample TT TT where
108− toSample _ = Just TT1
109 toSamples _ = [("eins", TT1), ("zwei", TT2)]
113 toSamples _ = [("eins", TT1), ("zwei", TT2)]
111instance ToSample UT UT where
115instance ToSample UT UT where
112− toSample _ = Just UT1
113 toSamples _ = [("yks", UT1), ("kaks", UT2)]
116 toSamples _ = [("yks", UT1), ("kaks", UT2)]