From 7f54308b57615bc61c0727538af2b5a54366eadb Mon Sep 17 00:00:00 2001 From: Sam Truzjan Date: Sat, 30 Nov 2013 11:10:38 +0400 Subject: Redesign tracker subsustem --- tests/Network/BitTorrent/Tracker/MessageSpec.hs | 42 ---------------------- .../Network/BitTorrent/Tracker/RPC/MessageSpec.hs | 42 ++++++++++++++++++++++ tests/Network/BitTorrent/Tracker/RPC/UDPSpec.hs | 7 ++++ 3 files changed, 49 insertions(+), 42 deletions(-) delete mode 100644 tests/Network/BitTorrent/Tracker/MessageSpec.hs create mode 100644 tests/Network/BitTorrent/Tracker/RPC/MessageSpec.hs create mode 100644 tests/Network/BitTorrent/Tracker/RPC/UDPSpec.hs (limited to 'tests/Network') diff --git a/tests/Network/BitTorrent/Tracker/MessageSpec.hs b/tests/Network/BitTorrent/Tracker/MessageSpec.hs deleted file mode 100644 index f1d9130c..00000000 --- a/tests/Network/BitTorrent/Tracker/MessageSpec.hs +++ /dev/null @@ -1,42 +0,0 @@ -{-# OPTIONS -fno-warn-orphans #-} -module Network.BitTorrent.Tracker.MessageSpec (spec) where - -import Control.Applicative -import Data.Word -import Network -import Test.Hspec -import Test.QuickCheck - -import Data.Torrent.InfoHashSpec () -import Data.Torrent.ProgressSpec () -import Network.BitTorrent.Core.PeerIdSpec () - -import Network.BitTorrent.Tracker.Message - - ---prop_bencode :: Eq a => BEncode a => a -> Bool ---prop_bencode a = BE.decode (BL.toStrict (BE.encode a)) == return a - ---prop_urlencode :: Eq a => URLDecoded a => URLEncoded a => a -> Bool ---prop_urlencode a = urlDecode (T.pack (urlEncode a)) == a - -instance Arbitrary Event where - arbitrary = elements [minBound..maxBound] - -instance Arbitrary PortNumber where - arbitrary = fromIntegral <$> (arbitrary :: Gen Word16) - -instance Arbitrary AnnounceQuery where - arbitrary = AnnounceQuery - <$> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary - <*> arbitrary <*> arbitrary <*> arbitrary - -spec :: Spec -spec = do - describe "Announce" $ do - it "properly url encoded" $ property $ \ q -> - parseAnnounceQuery (renderAnnounceQuery q) - `shouldBe` Right q - - describe "Scrape" $ do - return () diff --git a/tests/Network/BitTorrent/Tracker/RPC/MessageSpec.hs b/tests/Network/BitTorrent/Tracker/RPC/MessageSpec.hs new file mode 100644 index 00000000..8e95286a --- /dev/null +++ b/tests/Network/BitTorrent/Tracker/RPC/MessageSpec.hs @@ -0,0 +1,42 @@ +{-# OPTIONS -fno-warn-orphans #-} +module Network.BitTorrent.Tracker.RPC.MessageSpec (spec) where + +import Control.Applicative +import Data.Word +import Network +import Test.Hspec +import Test.QuickCheck + +import Data.Torrent.InfoHashSpec () +import Data.Torrent.ProgressSpec () +import Network.BitTorrent.Core.PeerIdSpec () + +import Network.BitTorrent.Tracker.RPC.Message + + +--prop_bencode :: Eq a => BEncode a => a -> Bool +--prop_bencode a = BE.decode (BL.toStrict (BE.encode a)) == return a + +--prop_urlencode :: Eq a => URLDecoded a => URLEncoded a => a -> Bool +--prop_urlencode a = urlDecode (T.pack (urlEncode a)) == a + +instance Arbitrary Event where + arbitrary = elements [minBound..maxBound] + +instance Arbitrary PortNumber where + arbitrary = fromIntegral <$> (arbitrary :: Gen Word16) + +instance Arbitrary AnnounceQuery where + arbitrary = AnnounceQuery + <$> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary + <*> arbitrary <*> arbitrary <*> arbitrary + +spec :: Spec +spec = do + describe "Announce" $ do + it "properly url encoded" $ property $ \ q -> + parseAnnounceQuery (renderAnnounceQuery q) + `shouldBe` Right q + + describe "Scrape" $ do + return () diff --git a/tests/Network/BitTorrent/Tracker/RPC/UDPSpec.hs b/tests/Network/BitTorrent/Tracker/RPC/UDPSpec.hs new file mode 100644 index 00000000..4cbaa09d --- /dev/null +++ b/tests/Network/BitTorrent/Tracker/RPC/UDPSpec.hs @@ -0,0 +1,7 @@ +module Network.BitTorrent.Tracker.RPC.UDPSpec (spec) where +import Test.Hspec + +spec :: Spec +spec = + describe "UDP tracker client RPC" $ do + return () \ No newline at end of file -- cgit v1.2.3