module Database.TransferDB.DumpDBSpec (spec) where import Database.TransferDB.DumpDB import Database.TransferDB.DumpDB.Format import Test.Hspec import Test.QuickCheck import Control.Monad.Trans.Reader (runReaderT) spec :: Spec spec = do describe "octetLengthOfChunkSize" $ do context "bufferLength is 256" $ do let bufferSize = 256 it "returns 1 for unknown maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined Nothing undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 0 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 0) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 1 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 1) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 128 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 128) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 255 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 255) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 256 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 256) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 257 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 257) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 65535 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 65535) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 65536 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 65536) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 65537 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 65537) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 2*1024*1024 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just $ 2*1024*1024) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) context "bufferLength is 65536" $ do let bufferSize = 65536 it "returns 2 for unknown maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined Nothing undefined undefined undefined undefined)) `shouldBe` Just (2 :: Int) it "returns 1 for 0 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 0) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 1 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 1) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 128 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 128) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 255 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 255) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 256 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 256) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 2 for 257 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 257) undefined undefined undefined undefined)) `shouldBe` Just (2 :: Int) it "returns 2 for 65535 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 65535) undefined undefined undefined undefined)) `shouldBe` Just (2 :: Int) it "returns 2 for 65536 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 65536) undefined undefined undefined undefined)) `shouldBe` Just (2 :: Int) it "returns 2 for 65537 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 65537) undefined undefined undefined undefined)) `shouldBe` Just (2 :: Int) it "returns 2 for 2*1024*1024 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just $ 2*1024*1024) undefined undefined undefined undefined)) `shouldBe` Just (2 :: Int) context "bufferLength is 2*1024*1024" $ do let bufferSize = 2*1024*1024 it "returns 4 for unknown maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined Nothing undefined undefined undefined undefined)) `shouldBe` Just (4 :: Int) it "returns 1 for 0 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 0) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 1 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 1) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 128 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 128) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 255 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 255) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 256 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 256) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 2 for 257 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 257) undefined undefined undefined undefined)) `shouldBe` Just (2 :: Int) it "returns 2 for 65535 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 65535) undefined undefined undefined undefined)) `shouldBe` Just (2 :: Int) it "returns 2 for 65536 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 65536) undefined undefined undefined undefined)) `shouldBe` Just (2 :: Int) it "returns 4 for 65537 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 65537) undefined undefined undefined undefined)) `shouldBe` Just (4 :: Int) it "returns 4 for 2*1024*1024 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just $ 2*1024*1024) undefined undefined undefined undefined)) `shouldBe` Just (4 :: Int) context "bufferLength is 257" $ do let bufferSize = 257 it "returns 1 for unknown maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined Nothing undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 0 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 0) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 1 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 1) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 128 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 128) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 255 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 255) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 256 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 256) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 257 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 257) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 65535 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 65535) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 65536 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 65536) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 65537 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 65537) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 2*1024*1024 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just $ 2*1024*1024) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) context "bufferLength is 65537" $ do let bufferSize = 65537 it "returns 2 for unknown maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined Nothing undefined undefined undefined undefined)) `shouldBe` Just (2 :: Int) it "returns 1 for 0 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 0) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 1 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 1) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 128 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 128) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 255 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 255) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 256 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 256) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 2 for 257 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 257) undefined undefined undefined undefined)) `shouldBe` Just (2 :: Int) it "returns 2 for 65535 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 65535) undefined undefined undefined undefined)) `shouldBe` Just (2 :: Int) it "returns 2 for 65536 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 65536) undefined undefined undefined undefined)) `shouldBe` Just (2 :: Int) it "returns 2 for 65537 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 65537) undefined undefined undefined undefined)) `shouldBe` Just (2 :: Int) it "returns 2 for 2*1024*1024 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just $ 2*1024*1024) undefined undefined undefined undefined)) `shouldBe` Just (2 :: Int) context "bufferLength is 2*1024*1024 + 1" $ do let bufferSize = 2*1024*1024 + 1 it "returns 4 for unknown maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined Nothing undefined undefined undefined undefined)) `shouldBe` Just (4 :: Int) it "returns 1 for 0 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 0) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 1 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 1) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 128 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 128) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 255 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 255) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 1 for 256 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 256) undefined undefined undefined undefined)) `shouldBe` Just (1 :: Int) it "returns 2 for 257 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 257) undefined undefined undefined undefined)) `shouldBe` Just (2 :: Int) it "returns 2 for 65535 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 65535) undefined undefined undefined undefined)) `shouldBe` Just (2 :: Int) it "returns 2 for 65536 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 65536) undefined undefined undefined undefined)) `shouldBe` Just (2 :: Int) it "returns 4 for 65537 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just 65537) undefined undefined undefined undefined)) `shouldBe` Just (4 :: Int) it "returns 4 for 2*1024*1024 maximum character length" $ do runReaderT octetLengthOfChunkSize (DumpFieldSpec undefined undefined undefined bufferSize undefined undefined undefined (FieldInfoV1 undefined undefined undefined (Just $ 2*1024*1024) undefined undefined undefined undefined)) `shouldBe` Just (4 :: Int)