mirror of
https://github.com/unclechu/gRPC-haskell.git
synced 2024-11-18 09:09:42 +01:00
Fix tests.
This commit is contained in:
parent
4bab2cadc6
commit
402e814a0b
10 changed files with 283 additions and 12 deletions
|
@ -2,7 +2,6 @@ import LowLevelTests
|
||||||
import LowLevelTests.Op
|
import LowLevelTests.Op
|
||||||
import Test.Tasty
|
import Test.Tasty
|
||||||
import UnsafeTests
|
import UnsafeTests
|
||||||
import GeneratedTests
|
|
||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = defaultMain $ testGroup "GRPC Unit Tests"
|
main = defaultMain $ testGroup "GRPC Unit Tests"
|
||||||
|
@ -10,5 +9,4 @@ main = defaultMain $ testGroup "GRPC Unit Tests"
|
||||||
, unsafeProperties
|
, unsafeProperties
|
||||||
, lowLevelOpTests
|
, lowLevelOpTests
|
||||||
, lowLevelTests
|
, lowLevelTests
|
||||||
, generatedTests
|
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,14 +1,5 @@
|
||||||
import LowLevelTests
|
|
||||||
import LowLevelTests.Op
|
|
||||||
import Test.Tasty
|
import Test.Tasty
|
||||||
import UnsafeTests
|
|
||||||
import GeneratedTests
|
import GeneratedTests
|
||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = defaultMain $ testGroup "GRPC Unit Tests"
|
main = defaultMain $ testGroup "GRPC Unit Tests" [ generatedTests ]
|
||||||
[ unsafeTests
|
|
||||||
, unsafeProperties
|
|
||||||
, lowLevelOpTests
|
|
||||||
, lowLevelTests
|
|
||||||
, generatedTests
|
|
||||||
]
|
|
||||||
|
|
BIN
tests/tmp/Main.hi
Normal file
BIN
tests/tmp/Main.hi
Normal file
Binary file not shown.
BIN
tests/tmp/Simple.hi
Normal file
BIN
tests/tmp/Simple.hi
Normal file
Binary file not shown.
282
tests/tmp/Simple.hs
Normal file
282
tests/tmp/Simple.hs
Normal file
|
@ -0,0 +1,282 @@
|
||||||
|
{-# LANGUAGE DeriveGeneric #-}
|
||||||
|
{-# LANGUAGE DataKinds #-}
|
||||||
|
{-# LANGUAGE GADTs #-}
|
||||||
|
{-# LANGUAGE OverloadedStrings #-}
|
||||||
|
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
|
||||||
|
{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
|
||||||
|
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
|
||||||
|
-- | Generated by Haskell protocol buffer compiler. DO NOT EDIT!
|
||||||
|
module Simple where
|
||||||
|
import qualified Prelude as Hs
|
||||||
|
import qualified Proto3.Suite.DotProto as HsProtobuf
|
||||||
|
import qualified Proto3.Suite.Types as HsProtobuf
|
||||||
|
import qualified Proto3.Suite.Class as HsProtobuf
|
||||||
|
import qualified Proto3.Suite.JSONPB as HsJSONPB
|
||||||
|
import Proto3.Suite.JSONPB ((.=), (.:))
|
||||||
|
import qualified Proto3.Wire as HsProtobuf
|
||||||
|
import Control.Applicative ((<*>), (<|>), (<$>))
|
||||||
|
import qualified Control.Monad as Hs
|
||||||
|
import qualified Data.Text.Lazy as Hs (Text)
|
||||||
|
import qualified Data.ByteString as Hs
|
||||||
|
import qualified Data.String as Hs (fromString)
|
||||||
|
import qualified Data.Vector as Hs (Vector)
|
||||||
|
import qualified Data.Int as Hs (Int16, Int32, Int64)
|
||||||
|
import qualified Data.Word as Hs (Word16, Word32, Word64)
|
||||||
|
import qualified GHC.Generics as Hs
|
||||||
|
import qualified GHC.Enum as Hs
|
||||||
|
import Network.GRPC.HighLevel.Generated as HsGRPC
|
||||||
|
import Network.GRPC.HighLevel.Client as HsGRPC
|
||||||
|
import Network.GRPC.HighLevel.Server as HsGRPC hiding (serverLoop)
|
||||||
|
import Network.GRPC.HighLevel.Server.Unregistered as HsGRPC
|
||||||
|
(serverLoop)
|
||||||
|
import Network.GRPC.LowLevel.Call as HsGRPC
|
||||||
|
|
||||||
|
data SimpleService request
|
||||||
|
response = SimpleService{simpleServiceNormalCall ::
|
||||||
|
request 'HsGRPC.Normal Simple.SimpleServiceRequest
|
||||||
|
Simple.SimpleServiceResponse
|
||||||
|
-> Hs.IO (response 'HsGRPC.Normal Simple.SimpleServiceResponse),
|
||||||
|
simpleServiceClientStreamingCall ::
|
||||||
|
request 'HsGRPC.ClientStreaming Simple.SimpleServiceRequest
|
||||||
|
Simple.SimpleServiceResponse
|
||||||
|
->
|
||||||
|
Hs.IO
|
||||||
|
(response 'HsGRPC.ClientStreaming Simple.SimpleServiceResponse),
|
||||||
|
simpleServiceServerStreamingCall ::
|
||||||
|
request 'HsGRPC.ServerStreaming Simple.SimpleServiceRequest
|
||||||
|
Simple.SimpleServiceResponse
|
||||||
|
->
|
||||||
|
Hs.IO
|
||||||
|
(response 'HsGRPC.ServerStreaming Simple.SimpleServiceResponse),
|
||||||
|
simpleServiceBiDiStreamingCall ::
|
||||||
|
request 'HsGRPC.BiDiStreaming Simple.SimpleServiceRequest
|
||||||
|
Simple.SimpleServiceResponse
|
||||||
|
->
|
||||||
|
Hs.IO
|
||||||
|
(response 'HsGRPC.BiDiStreaming Simple.SimpleServiceResponse),
|
||||||
|
simpleServiceDone ::
|
||||||
|
request 'HsGRPC.Normal Simple.SimpleServiceDone
|
||||||
|
Simple.SimpleServiceDone
|
||||||
|
-> Hs.IO (response 'HsGRPC.Normal Simple.SimpleServiceDone)}
|
||||||
|
deriving Hs.Generic
|
||||||
|
|
||||||
|
simpleServiceServer ::
|
||||||
|
SimpleService HsGRPC.ServerRequest HsGRPC.ServerResponse ->
|
||||||
|
HsGRPC.ServiceOptions -> Hs.IO ()
|
||||||
|
simpleServiceServer
|
||||||
|
SimpleService{simpleServiceNormalCall = simpleServiceNormalCall,
|
||||||
|
simpleServiceClientStreamingCall =
|
||||||
|
simpleServiceClientStreamingCall,
|
||||||
|
simpleServiceServerStreamingCall =
|
||||||
|
simpleServiceServerStreamingCall,
|
||||||
|
simpleServiceBiDiStreamingCall = simpleServiceBiDiStreamingCall,
|
||||||
|
simpleServiceDone = simpleServiceDone}
|
||||||
|
(ServiceOptions serverHost serverPort useCompression
|
||||||
|
userAgentPrefix userAgentSuffix initialMetadata sslConfig logger)
|
||||||
|
= (HsGRPC.serverLoop
|
||||||
|
HsGRPC.defaultOptions{HsGRPC.optNormalHandlers =
|
||||||
|
[(HsGRPC.UnaryHandler
|
||||||
|
(HsGRPC.MethodName "/simple.SimpleService/normalCall")
|
||||||
|
(HsGRPC.convertGeneratedServerHandler simpleServiceNormalCall)),
|
||||||
|
(HsGRPC.UnaryHandler
|
||||||
|
(HsGRPC.MethodName "/simple.SimpleService/done")
|
||||||
|
(HsGRPC.convertGeneratedServerHandler simpleServiceDone))],
|
||||||
|
HsGRPC.optClientStreamHandlers =
|
||||||
|
[(HsGRPC.ClientStreamHandler
|
||||||
|
(HsGRPC.MethodName "/simple.SimpleService/clientStreamingCall")
|
||||||
|
(HsGRPC.convertGeneratedServerReaderHandler
|
||||||
|
simpleServiceClientStreamingCall))],
|
||||||
|
HsGRPC.optServerStreamHandlers =
|
||||||
|
[(HsGRPC.ServerStreamHandler
|
||||||
|
(HsGRPC.MethodName "/simple.SimpleService/serverStreamingCall")
|
||||||
|
(HsGRPC.convertGeneratedServerWriterHandler
|
||||||
|
simpleServiceServerStreamingCall))],
|
||||||
|
HsGRPC.optBiDiStreamHandlers =
|
||||||
|
[(HsGRPC.BiDiStreamHandler
|
||||||
|
(HsGRPC.MethodName "/simple.SimpleService/biDiStreamingCall")
|
||||||
|
(HsGRPC.convertGeneratedServerRWHandler
|
||||||
|
simpleServiceBiDiStreamingCall))],
|
||||||
|
optServerHost = serverHost, optServerPort = serverPort,
|
||||||
|
optUseCompression = useCompression,
|
||||||
|
optUserAgentPrefix = userAgentPrefix,
|
||||||
|
optUserAgentSuffix = userAgentSuffix,
|
||||||
|
optInitialMetadata = initialMetadata, optSSLConfig = sslConfig,
|
||||||
|
optLogger = logger})
|
||||||
|
|
||||||
|
simpleServiceClient ::
|
||||||
|
HsGRPC.Client ->
|
||||||
|
Hs.IO (SimpleService HsGRPC.ClientRequest HsGRPC.ClientResult)
|
||||||
|
simpleServiceClient client
|
||||||
|
= (Hs.pure SimpleService) <*>
|
||||||
|
((Hs.pure (HsGRPC.clientRequest client)) <*>
|
||||||
|
(HsGRPC.clientRegisterMethod client
|
||||||
|
(HsGRPC.MethodName "/simple.SimpleService/normalCall")))
|
||||||
|
<*>
|
||||||
|
((Hs.pure (HsGRPC.clientRequest client)) <*>
|
||||||
|
(HsGRPC.clientRegisterMethod client
|
||||||
|
(HsGRPC.MethodName "/simple.SimpleService/clientStreamingCall")))
|
||||||
|
<*>
|
||||||
|
((Hs.pure (HsGRPC.clientRequest client)) <*>
|
||||||
|
(HsGRPC.clientRegisterMethod client
|
||||||
|
(HsGRPC.MethodName "/simple.SimpleService/serverStreamingCall")))
|
||||||
|
<*>
|
||||||
|
((Hs.pure (HsGRPC.clientRequest client)) <*>
|
||||||
|
(HsGRPC.clientRegisterMethod client
|
||||||
|
(HsGRPC.MethodName "/simple.SimpleService/biDiStreamingCall")))
|
||||||
|
<*>
|
||||||
|
((Hs.pure (HsGRPC.clientRequest client)) <*>
|
||||||
|
(HsGRPC.clientRegisterMethod client
|
||||||
|
(HsGRPC.MethodName "/simple.SimpleService/done")))
|
||||||
|
|
||||||
|
data SimpleServiceDone = SimpleServiceDone{}
|
||||||
|
deriving (Hs.Show, Hs.Eq, Hs.Ord, Hs.Generic)
|
||||||
|
|
||||||
|
instance HsProtobuf.Named SimpleServiceDone where
|
||||||
|
nameOf _ = (Hs.fromString "SimpleServiceDone")
|
||||||
|
|
||||||
|
instance HsProtobuf.Message SimpleServiceDone where
|
||||||
|
encodeMessage _ SimpleServiceDone{} = (Hs.mconcat [])
|
||||||
|
decodeMessage _ = (Hs.pure SimpleServiceDone)
|
||||||
|
dotProto _ = []
|
||||||
|
|
||||||
|
instance HsJSONPB.ToJSONPB SimpleServiceDone where
|
||||||
|
toJSONPB (SimpleServiceDone) = (HsJSONPB.object [])
|
||||||
|
toEncodingPB (SimpleServiceDone) = (HsJSONPB.pairs [])
|
||||||
|
|
||||||
|
instance HsJSONPB.FromJSONPB SimpleServiceDone where
|
||||||
|
parseJSONPB
|
||||||
|
= (HsJSONPB.withObject "SimpleServiceDone"
|
||||||
|
(\ obj -> (Hs.pure SimpleServiceDone)))
|
||||||
|
|
||||||
|
instance HsJSONPB.ToJSON SimpleServiceDone where
|
||||||
|
toJSON = HsJSONPB.toAesonValue
|
||||||
|
toEncoding = HsJSONPB.toAesonEncoding
|
||||||
|
|
||||||
|
instance HsJSONPB.FromJSON SimpleServiceDone where
|
||||||
|
parseJSON = HsJSONPB.parseJSONPB
|
||||||
|
|
||||||
|
instance HsJSONPB.ToSchema SimpleServiceDone where
|
||||||
|
declareNamedSchema = HsJSONPB.genericDeclareNamedSchemaJSONPB
|
||||||
|
|
||||||
|
data SimpleServiceRequest = SimpleServiceRequest{simpleServiceRequestRequest
|
||||||
|
:: Hs.Text,
|
||||||
|
simpleServiceRequestNum ::
|
||||||
|
Hs.Vector (HsProtobuf.Fixed Hs.Word32)}
|
||||||
|
deriving (Hs.Show, Hs.Eq, Hs.Ord, Hs.Generic)
|
||||||
|
|
||||||
|
instance HsProtobuf.Named SimpleServiceRequest where
|
||||||
|
nameOf _ = (Hs.fromString "SimpleServiceRequest")
|
||||||
|
|
||||||
|
instance HsProtobuf.Message SimpleServiceRequest where
|
||||||
|
encodeMessage _
|
||||||
|
SimpleServiceRequest{simpleServiceRequestRequest =
|
||||||
|
simpleServiceRequestRequest,
|
||||||
|
simpleServiceRequestNum = simpleServiceRequestNum}
|
||||||
|
= (Hs.mconcat
|
||||||
|
[(HsProtobuf.encodeMessageField (HsProtobuf.FieldNumber 1)
|
||||||
|
simpleServiceRequestRequest),
|
||||||
|
(HsProtobuf.encodeMessageField (HsProtobuf.FieldNumber 2)
|
||||||
|
(HsProtobuf.PackedVec simpleServiceRequestNum))])
|
||||||
|
decodeMessage _
|
||||||
|
= (Hs.pure SimpleServiceRequest) <*>
|
||||||
|
(HsProtobuf.at HsProtobuf.decodeMessageField
|
||||||
|
(HsProtobuf.FieldNumber 1))
|
||||||
|
<*>
|
||||||
|
((Hs.pure HsProtobuf.packedvec) <*>
|
||||||
|
(HsProtobuf.at HsProtobuf.decodeMessageField
|
||||||
|
(HsProtobuf.FieldNumber 2)))
|
||||||
|
dotProto _
|
||||||
|
= [(HsProtobuf.DotProtoField (HsProtobuf.FieldNumber 1)
|
||||||
|
(HsProtobuf.Prim HsProtobuf.String)
|
||||||
|
(HsProtobuf.Single "request")
|
||||||
|
[]
|
||||||
|
Hs.Nothing),
|
||||||
|
(HsProtobuf.DotProtoField (HsProtobuf.FieldNumber 2)
|
||||||
|
(HsProtobuf.Repeated HsProtobuf.Fixed32)
|
||||||
|
(HsProtobuf.Single "num")
|
||||||
|
[]
|
||||||
|
Hs.Nothing)]
|
||||||
|
|
||||||
|
instance HsJSONPB.ToJSONPB SimpleServiceRequest where
|
||||||
|
toJSONPB (SimpleServiceRequest f1 f2)
|
||||||
|
= (HsJSONPB.object ["request" .= f1, "num" .= f2])
|
||||||
|
toEncodingPB (SimpleServiceRequest f1 f2)
|
||||||
|
= (HsJSONPB.pairs ["request" .= f1, "num" .= f2])
|
||||||
|
|
||||||
|
instance HsJSONPB.FromJSONPB SimpleServiceRequest where
|
||||||
|
parseJSONPB
|
||||||
|
= (HsJSONPB.withObject "SimpleServiceRequest"
|
||||||
|
(\ obj ->
|
||||||
|
(Hs.pure SimpleServiceRequest) <*> obj .: "request" <*>
|
||||||
|
obj .: "num"))
|
||||||
|
|
||||||
|
instance HsJSONPB.ToJSON SimpleServiceRequest where
|
||||||
|
toJSON = HsJSONPB.toAesonValue
|
||||||
|
toEncoding = HsJSONPB.toAesonEncoding
|
||||||
|
|
||||||
|
instance HsJSONPB.FromJSON SimpleServiceRequest where
|
||||||
|
parseJSON = HsJSONPB.parseJSONPB
|
||||||
|
|
||||||
|
instance HsJSONPB.ToSchema SimpleServiceRequest where
|
||||||
|
declareNamedSchema = HsJSONPB.genericDeclareNamedSchemaJSONPB
|
||||||
|
|
||||||
|
data SimpleServiceResponse = SimpleServiceResponse{simpleServiceResponseResponse
|
||||||
|
:: Hs.Text,
|
||||||
|
simpleServiceResponseNum ::
|
||||||
|
HsProtobuf.Fixed Hs.Word32}
|
||||||
|
deriving (Hs.Show, Hs.Eq, Hs.Ord, Hs.Generic)
|
||||||
|
|
||||||
|
instance HsProtobuf.Named SimpleServiceResponse where
|
||||||
|
nameOf _ = (Hs.fromString "SimpleServiceResponse")
|
||||||
|
|
||||||
|
instance HsProtobuf.Message SimpleServiceResponse where
|
||||||
|
encodeMessage _
|
||||||
|
SimpleServiceResponse{simpleServiceResponseResponse =
|
||||||
|
simpleServiceResponseResponse,
|
||||||
|
simpleServiceResponseNum = simpleServiceResponseNum}
|
||||||
|
= (Hs.mconcat
|
||||||
|
[(HsProtobuf.encodeMessageField (HsProtobuf.FieldNumber 1)
|
||||||
|
simpleServiceResponseResponse),
|
||||||
|
(HsProtobuf.encodeMessageField (HsProtobuf.FieldNumber 2)
|
||||||
|
simpleServiceResponseNum)])
|
||||||
|
decodeMessage _
|
||||||
|
= (Hs.pure SimpleServiceResponse) <*>
|
||||||
|
(HsProtobuf.at HsProtobuf.decodeMessageField
|
||||||
|
(HsProtobuf.FieldNumber 1))
|
||||||
|
<*>
|
||||||
|
(HsProtobuf.at HsProtobuf.decodeMessageField
|
||||||
|
(HsProtobuf.FieldNumber 2))
|
||||||
|
dotProto _
|
||||||
|
= [(HsProtobuf.DotProtoField (HsProtobuf.FieldNumber 1)
|
||||||
|
(HsProtobuf.Prim HsProtobuf.String)
|
||||||
|
(HsProtobuf.Single "response")
|
||||||
|
[]
|
||||||
|
Hs.Nothing),
|
||||||
|
(HsProtobuf.DotProtoField (HsProtobuf.FieldNumber 2)
|
||||||
|
(HsProtobuf.Prim HsProtobuf.Fixed32)
|
||||||
|
(HsProtobuf.Single "num")
|
||||||
|
[]
|
||||||
|
Hs.Nothing)]
|
||||||
|
|
||||||
|
instance HsJSONPB.ToJSONPB SimpleServiceResponse where
|
||||||
|
toJSONPB (SimpleServiceResponse f1 f2)
|
||||||
|
= (HsJSONPB.object ["response" .= f1, "num" .= f2])
|
||||||
|
toEncodingPB (SimpleServiceResponse f1 f2)
|
||||||
|
= (HsJSONPB.pairs ["response" .= f1, "num" .= f2])
|
||||||
|
|
||||||
|
instance HsJSONPB.FromJSONPB SimpleServiceResponse where
|
||||||
|
parseJSONPB
|
||||||
|
= (HsJSONPB.withObject "SimpleServiceResponse"
|
||||||
|
(\ obj ->
|
||||||
|
(Hs.pure SimpleServiceResponse) <*> obj .: "response" <*>
|
||||||
|
obj .: "num"))
|
||||||
|
|
||||||
|
instance HsJSONPB.ToJSON SimpleServiceResponse where
|
||||||
|
toJSON = HsJSONPB.toAesonValue
|
||||||
|
toEncoding = HsJSONPB.toAesonEncoding
|
||||||
|
|
||||||
|
instance HsJSONPB.FromJSON SimpleServiceResponse where
|
||||||
|
parseJSON = HsJSONPB.parseJSONPB
|
||||||
|
|
||||||
|
instance HsJSONPB.ToSchema SimpleServiceResponse where
|
||||||
|
declareNamedSchema = HsJSONPB.genericDeclareNamedSchemaJSONPB
|
BIN
tests/tmp/simple-client
Executable file
BIN
tests/tmp/simple-client
Executable file
Binary file not shown.
BIN
tests/tmp/simple-server
Executable file
BIN
tests/tmp/simple-server
Executable file
Binary file not shown.
Loading…
Reference in a new issue