From 816d5fa04e07bed4cab281b5589128948f6ed19a Mon Sep 17 00:00:00 2001
From: Ramakrishnan Muthukrishnan <ram@rkrishnan.org>
Date: Sun, 26 Apr 2015 22:04:27 +0530
Subject: [PATCH] WIP: split tests into their own modules

To start with, the Bencode test is now in its own module.
---
 functorrent.cabal    |  1 +
 test/BencodeTests.hs | 17 +++++++++++++++++
 test/Test.hs         | 13 +++----------
 3 files changed, 21 insertions(+), 10 deletions(-)
 create mode 100644 test/BencodeTests.hs

diff --git a/functorrent.cabal b/functorrent.cabal
index b2d3c6a..05ed4b3 100644
--- a/functorrent.cabal
+++ b/functorrent.cabal
@@ -66,6 +66,7 @@ test-suite functorrent-test
   default-language:  Haskell2010
   hs-source-dirs:    test
   main-is:           Test.hs
+  other-modules:     BencodeTests
   build-depends:     base,
                      functorrent,
                      bytestring,
diff --git a/test/BencodeTests.hs b/test/BencodeTests.hs
new file mode 100644
index 0000000..c83e9cc
--- /dev/null
+++ b/test/BencodeTests.hs
@@ -0,0 +1,17 @@
+module BencodeTests (tests) where
+
+import FuncTorrent.Bencode (encode, decode, BVal(..))
+
+import Test.Tasty (TestTree, testGroup)
+import Test.Tasty.QuickCheck (testProperty)
+
+propEncodeDecode :: BVal -> Bool
+propEncodeDecode bval = let encoded = encode bval
+                            decoded = decode encoded
+                        in Right bval == decoded
+
+qcTests :: TestTree
+qcTests = testGroup "QuickCheck tests" [ testProperty "encode/decode" propEncodeDecode ]
+
+tests :: TestTree
+tests = testGroup "Tests" [qcTests]
diff --git a/test/Test.hs b/test/Test.hs
index 77a8d72..9915d97 100644
--- a/test/Test.hs
+++ b/test/Test.hs
@@ -8,13 +8,14 @@ import Data.Map.Strict (fromList)
 
 import Test.Tasty (TestTree, testGroup, defaultMain)
 import Test.Tasty.HUnit (testCase, (@?=))
-import Test.Tasty.QuickCheck (testProperty)
 
 import FuncTorrent.Bencode (encode, decode, BVal(..))
 import FuncTorrent.Metainfo (Info(..), Metainfo(..), mkMetaInfo)
 import FuncTorrent.Peer (Peer(..))
 import FuncTorrent.Tracker
 
+import qualified BencodeTests
+
 -- Parsed .torrent file
 file :: BVal
 file = Bdict (fromList [
@@ -93,16 +94,8 @@ unitTests :: TestTree
 unitTests = testGroup "Unit tests" [testFile, testMkMetaInfo, testResponse1,
                                             testResponse2]
 
-propEncodeDecode :: BVal -> Bool
-propEncodeDecode bval = let encoded = encode bval
-                            decoded = decode encoded
-                        in Right bval == decoded
-
-qcTests :: TestTree
-qcTests = testGroup "QuickCheck tests" [ testProperty "encode/decode" propEncodeDecode ]
-
 tests :: TestTree
-tests = testGroup "Tests" [unitTests, qcTests]
+tests = testGroup "Tests" [unitTests, BencodeTests.tests]
 
 main :: IO ()
 main = defaultMain tests
-- 
2.45.2