module Generators where
import qualified Data.ByteString as B
import qualified Data.Text as T
import Hedgehog (MonadGen)
import qualified Hedgehog.Gen as Gen
import qualified Hedgehog.Range as Range
import Tahoe.Directory (Directory (..), Entry (..))
directories :: MonadGen m => m Directory
directories = Directory <$> Gen.list (Range.exponential 0 100) entries
entries :: MonadGen m => m Entry
entries = Entry <$> entryNames <*> entryReaders <*> entryEncryptedWriters <*> entryMetadatas
entryNames :: MonadGen m => m T.Text
entryNames = Gen.text (Range.exponential 1 100) Gen.unicode
entryReaders :: MonadGen m => m B.ByteString
entryReaders = pure "URI:CHK:blub:blab"
entryEncryptedWriters :: MonadGen m => m B.ByteString
entryEncryptedWriters = pure "\1\2\3\4\5\6\7\8\9\10"
entryMetadatas :: MonadGen m => m B.ByteString
entryMetadatas = pure "{stuff: [goes, here]}"