aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorBaylac-Jacqué Félix <felix@alternativebit.fr>2017-08-10 16:51:07 +0200
committerBaylac-Jacqué Félix <felix@alternativebit.fr>2017-09-16 17:08:52 +0200
commit4441702b47ddfb0e862ccc3fa5caa00c5acc8aaf (patch)
treecc56a63e7365eb3e349a59f91d0bf8446052e549 /tests
parentRefactor project structure to exec + lib. (diff)
downloadwireguard-hs-4441702b47ddfb0e862ccc3fa5caa00c5acc8aaf.tar.xz
wireguard-hs-4441702b47ddfb0e862ccc3fa5caa00c5acc8aaf.zip
Setup travis CI.
Diffstat (limited to 'tests')
-rw-r--r--tests/spec/Network/WireGuard/RPCSpec.hs33
1 files changed, 28 insertions, 5 deletions
diff --git a/tests/spec/Network/WireGuard/RPCSpec.hs b/tests/spec/Network/WireGuard/RPCSpec.hs
index b0422a3..286443e 100644
--- a/tests/spec/Network/WireGuard/RPCSpec.hs
+++ b/tests/spec/Network/WireGuard/RPCSpec.hs
@@ -1,11 +1,34 @@
module Network.WireGuard.RPCSpec (spec) where
-import Test.Hspec (Spec, describe, it, shouldBe)
+import Control.Monad.STM (atomically, STM)
+import qualified Data.ByteString as BS (ByteString)
+import qualified Data.ByteString.Lazy as BSL (ByteString)
+import qualified Data.ByteString.Char8 as BC (pack)
+import qualified Data.ByteString.Lazy.Char8 as BCL (pack)
+import Data.Conduit (runConduit, yield, ( .|))
+import Data.Conduit.Binary (sinkLbs)
+import Test.Hspec (Spec, describe,
+ it, shouldBe)
-import Network.WireGuard.RPC (runRPC)
+import Network.WireGuard.RPC (serveConduit)
+import Network.WireGuard.Internal.State (Device, createDevice)
+getCommand :: BS.ByteString
+getCommand = BC.pack "\n\nget=1\n\n"
+
+deviceS :: STM Device
+deviceS = createDevice "wg0"
+
+bsDeviceStrict :: BS.ByteString
+bsDeviceStrict = BC.pack "private_key=e84b5a6d2717c1003a13b431570353dbaca9146cf150c5f8575680feba52027a\nlisten_port=12912\npublic_key=b85996fecc9c7f1fc6d2572a76eda11d59bcd20be8e543b15ce4bd85a8e75a33\npreshared_key=188515093e952f5f22e865cef3012e72f8b5f0b598ac0309d5dacce3b70fcf52\nallowed_ip=192.168.4.4/32\nendpoint=[abcd:23::33%2]:51820\n\n"
+
+bsDevice :: BSL.ByteString
+bsDevice = BCL.pack "private_key=e84b5a6d2717c1003a13b431570353dbaca9146cf150c5f8575680feba52027a\nlisten_port=12912\npublic_key=b85996fecc9c7f1fc6d2572a76eda11d59bcd20be8e543b15ce4bd85a8e75a33\npreshared_key=188515093e952f5f22e865cef3012e72f8b5f0b598ac0309d5dacce3b70fcf52\nallowed_ip=192.168.4.4/32\nendpoint=[abcd:23::33%2]:51820\npublic_key=58402e695ba1772b1cc9309755f043251ea77fdcf10fbe63989ceb7e19321376\ntx_bytes=38333\nrx_bytes=2224\nallowed_ip=192.168.4.6/32\npersistent_keepalive_interval=111\nendpoint=182.122.22.19:3233\npublic_key=662e14fd594556f522604703340351258903b64f35553763f19426ab2a515c58\nendpoint=5.152.198.39:51820\nallowed_ip=192.168.4.10/32\nallowed_ip=192.168.4.11/32\ntx_bytes=1212111\nrx_bytes=1929999999\nerrno=0"
+
spec :: Spec
-spec = describe "test" $
- it "should fail" $
- True `shouldBe` False
+spec = describe "serveConduit" $
+ it "must respond to a get v1 request" $ do
+ device <- atomically deviceS
+ res <- runConduit (yield getCommand .| serveConduit device .| sinkLbs)
+ res `shouldBe` bsDevice