courier-0.1.0.14: tests/TestUDP.hs
module TestUDP where
-- local imports
import Network.Endpoints
import Network.Transport.UDP
import TestTransports
-- external imports
import Control.Exception
import Test.Framework
import Test.HUnit
import Test.Framework.Providers.HUnit
-- import Test.Framework.Providers.QuickCheck2
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
_log :: String
_log = "test.transport.udp"
address1 :: Address
address1 = "localhost:2003"
address2 :: Address
address2 = "localhost:2004"
tests :: [Test.Framework.Test]
tests =
[
testCase "udp-endpoints+transport" testEndpointTransport,
testCase "udp-bind-unbind" $ endpointBindUnbind _log newUDPTransport address1 address2,
testCase "udp-send-receive" $ endpointSendReceive _log newUDPTransport address1 address2,
testCase "udp-double-send-receive" $ endpointDoubleSendReceive _log newUDPTransport address1 address2,
testCase "udp-send-receive-reply" $ endpointSendReceiveReply _log newUDPTransport address1 address2,
testCase "udp-multiple-send-receive-reply" $ endpointMultipleSendReceiveReply _log newUDPTransport address1 address2,
testCase "udp-local-send-receive-reply" $ endpointLocalSendReceiveReply _log newUDPTransport address1 address2
]
testEndpointTransport :: Assertion
testEndpointTransport = do
let name1 = "endpoint1"
name2 = "endpoint2"
let resolver = resolverFromList [(name1,address1),
(name2,address2)]
bracket (newUDPTransport resolver)
shutdown
(\transport -> do
_ <- newEndpoint [transport]
return ())