packages feed

fakedata-0.8.0: test/FakerSpec.hs

{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE OverloadedStrings #-}

module FakerSpec where

import Control.Monad.Catch
import Control.Monad.IO.Class
import qualified Data.Map as M
import Data.Text hiding (all, map)
import qualified Data.Text as T
import qualified Data.Text.IO as TIO
import Data.Time
import Data.Vector (Vector)
import qualified Data.Vector as V
import Faker
import Faker.Combinators
import Faker.Nation as FN
import Faker.Company
import Faker.Compass
import Faker.Construction
import Faker.Creature.Horse
import Faker.DateTime
import Faker.Educator
import Faker.ElectricalComponents
import Faker.Esport
import Faker.File
import Faker.Finance
import Faker.Food
import qualified Faker.Game.ElderScrolls as ES
import Faker.Game.Fallout
import Faker.Internal
import Faker.Job (field)
import Faker.Movie.StarWars
import Faker.PhoneNumber
import qualified Faker.Restaurant as FR
import qualified Faker.Science as FS
import qualified Faker.Sport.Basketball as FB
import qualified Faker.TvShow.FamilyGuy as FG
import qualified Faker.University as FU
import qualified Faker.Vehicle as FV
import Faker.WorldCup
import Test.Hspec

isText :: Text -> Bool
isText x = T.length x >= 1

isDay :: Day -> Bool
isDay _ = True

isUTCTime :: UTCTime -> Bool
isUTCTime _ = True

spec :: Spec
spec = do
  describe "Faker Compass Generate" $ do
    it "Resolver check" $ do
      ctries <- generate direction
      (ctries) `shouldBe` "SE"
    it "Resolver check" $ do
      ctries <- generate $ listOf 5 direction
      (ctries) `shouldSatisfy` (\x -> Prelude.length x == 5)
    it "Elder Scroll" $ do
      ctries <- generate ES.firstName
      (ctries) `shouldSatisfy` isText
    it "Electrical component" $ do
      ctries <- generate passive
      (ctries) `shouldSatisfy` isText
    it "Esport" $ do
      ctries <- generate leagues
      (ctries) `shouldSatisfy` isText
    it "Fallout" $ do
      ctries <- generate factions
      ctries `shouldSatisfy` isText
    it "Family Guy" $ do
      ctries <- generate FG.quote
      ctries `shouldSatisfy` isText
    it "File" $ do
      ctries <- generate mimeType
      ctries `shouldSatisfy` isText
    it "Food" $ do
      ctries <- generate dish
      ctries `shouldSatisfy` isText
    it "Science" $ do
      item <- generate FS.element
      item `shouldSatisfy` isText
    it "StarWars" $ do
      item <- generate callNumbers
      item `shouldSatisfy` isText
    it "StarWars (2)" $ do
      item <- generate callSign
      item `shouldSatisfy` isText
    describe "Phone number" $ do
      it "countryCode" $ do
        item <- generate countryCode
        item `shouldSatisfy` isText
      it "cellPhoneFormat" $ do
        item <- generate cellPhoneFormat
        item `shouldSatisfy` isText
      it "formats" $ do
        item <- generate formats
        item `shouldSatisfy` isText
    it "University" $ do
      item <- generate FU.name
      item `shouldSatisfy` isText
    it "Nation - flagEmoji" $ do
      item <- generate FN.flagEmoji
      item `shouldSatisfy` isText
    it "Job" $ do
      item <- generate field
      item `shouldSatisfy` isText
    describe "WorldCup" $ do
      it "SouthKorea" $ do
        item <- generate rostersSouthKoreaCoach
        item `shouldSatisfy` isText
    describe "Restaurant" $ do
      it "name" $ do
        item <- generate FR.name
        item `shouldBe` "Thirsty Pizza"
      it "name_suffix" $ do
        item <- generate FR.nameSuffix
        item `shouldSatisfy` isText
      it "type'" $ do
        item <- generate FR.type'
        item `shouldBe` "Bakery"
    describe "Vehicle" $ do
      it "license" $ do
        item <- generate FV.licensePlate
        item `shouldSatisfy` isText
    describe "Construction" $ do
      it "roles" $ do
        item <- generate roles
        item `shouldSatisfy` isText
    describe "Basketball" $ do
      it "roles" $ do
        item <- generate FB.coaches
        item `shouldSatisfy` isText
    describe "Company" $ do
      it "bs" $ do
        item <- generate bs
        item `shouldBe` "visualize efficient supply-chains"
      it "buzzwords" $ do
        item <- generate buzzword
        item `shouldBe` "info-mediaries"
      it "sicCode" $ do
        item <- generate sicCode
        item `shouldSatisfy` isText
    describe "Creatures" $ do
      it "horse" $ do
        item <- generate breed
        item `shouldSatisfy` isText
    describe "DateTime" $ do
      it "day" $ do
        item <- generate day
        item `shouldSatisfy` isDay
    describe "Finance" $ do
      it "visa" $ do
        item <- generate visa
        item `shouldSatisfy` isText
      it "mastercard" $ do
        item <- generate mastercard
        item `shouldSatisfy` isText