mirror of
https://github.com/unclechu/gRPC-haskell.git
synced 2024-12-27 20:29:45 +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 Test.Tasty
|
||||
import UnsafeTests
|
||||
import GeneratedTests
|
||||
|
||||
main :: IO ()
|
||||
main = defaultMain $ testGroup "GRPC Unit Tests"
|
||||
|
@ -10,5 +9,4 @@ main = defaultMain $ testGroup "GRPC Unit Tests"
|
|||
, unsafeProperties
|
||||
, lowLevelOpTests
|
||||
, lowLevelTests
|
||||
, generatedTests
|
||||
]
|
||||
|
|
|
@ -1,14 +1,5 @@
|
|||
import LowLevelTests
|
||||
import LowLevelTests.Op
|
||||
import Test.Tasty
|
||||
import UnsafeTests
|
||||
import GeneratedTests
|
||||
|
||||
main :: IO ()
|
||||
main = defaultMain $ testGroup "GRPC Unit Tests"
|
||||
[ unsafeTests
|
||||
, unsafeProperties
|
||||
, lowLevelOpTests
|
||||
, lowLevelTests
|
||||
, generatedTests
|
||||
]
|
||||
main = defaultMain $ testGroup "GRPC Unit Tests" [ 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