import Test.Hspec
-import FuncTorrent.Metainfo (Info(..), Metainfo(..), DynamicInfo(..), torrentToMetainfo)
+import FuncTorrent.Metainfo (Info(..), Metainfo(..), DynamicInfo(..), FileInfo(..), torrentToMetainfo)
import qualified Data.ByteString.Lazy.Char8 as BC (readFile, toStrict)
import qualified Data.ByteString as B
length (announceList m) `shouldBe` 1
pieceLength (info m) `shouldBe` 524288
pieces (info m) `shouldSatisfy` (\p -> B.length p `mod` 20 == 0)
- let (SingleFileInfo name' _ _) = dyninfo $ info m
+ let (SingleFileInfo file') = dyninfo $ info m
+ (FileInfo _ _ name') = file'
+ name' `shouldNotBe` ""
+ it "torrent-file-2" $ do
+ c <- BC.readFile "data/test2.torrent"
+ let (Right m) = torrentToMetainfo (BC.toStrict c)
+ (SingleFileInfo file') = dyninfo $ info m
+ (FileInfo _ _ name') = file'
+ name' `shouldNotBe` ""
+ it "torrent-file-3" $ do
+ c <- BC.readFile "data/test3.torrent"
+ let (Right m) = torrentToMetainfo (BC.toStrict c)
+ (SingleFileInfo file') = dyninfo $ info m
+ (FileInfo _ _ name') = file'
name' `shouldNotBe` ""
it "torrent-file-4" $ do
c <- BC.readFile "data/test4.torrent"
let (Right m) = torrentToMetainfo (BC.toStrict c)
length (announceList m) `shouldBe` 3
- let (MultiFileInfo _ files') = dyninfo $ info m
- length files' `shouldNotBe` 1
+ let (MultiFileInfo dname' files') = dyninfo $ info m
+ length files' `shouldBe` 9 -- 9 files in the torrent
+ dname' `shouldBe` "NASA_NTRS_Archive_19740027163"