thrift-lib-0.1.0.1: test/SocketChannelTest.hs
{-
Copyright (c) Meta Platforms, Inc. and affiliates.
All rights reserved.
This source code is licensed under the BSD-style license found in the
LICENSE file in the root directory of this source tree.
-}
module SocketChannelTest where
import Network.Socket (maxListenQueue)
import TestRunner
import Test.HUnit hiding (State)
import Thrift.Api
import Thrift.Channel
import Thrift.Channel.SocketChannel.Server
import Thrift.Protocol.Id
import Math.Calculator.Client
import TestCommon
main :: IO ()
main = testRunner . TestList $
runChannelTests mkClientTestSockWith
[ addTest, divTest, putGetTest, putPutGetTest
, exceptionTest, unimplementedTest, multiTest ]
-- Client utilities ------------------------------------------------------------
mkClientTestSock
:: String
-> Thrift Calculator ()
-> Test
mkClientTestSock lbl = mkClientTestSockWith lbl defaultRpcOptions
mkClientTestSockWith
:: String
-> RpcOptions
-> Thrift Calculator ()
-> Test
mkClientTestSockWith lbl _opts action = TestLabel lbl $ TestCase $ do
state <- initServerState
withServer binaryProtocolId Nothing maxListenQueue (processCommand state)
(\_ _ -> []) action