hackport-0.6.6: tests/Portage/VersionSpec.hs
module Portage.VersionSpec (spec) where
import Test.Hspec
import Test.Hspec.QuickCheck
import QuickCheck.Instances
import qualified Distribution.Version as Cabal
import Portage.Version
spec :: Spec
spec = do
describe "is_live" $ do
prop "determines if a Portage version is live" $ do
\(ComplexVersion v) -> is_live v ==
if length (versionNumber v) >= 1 && last (versionNumber v) >= 9999
then True else False
describe "fromCabalVersion" $ do
prop "converts from a Cabal version to a Portage version" $ do
\verNum -> fromCabalVersion (Cabal.mkVersion verNum) == Version verNum Nothing [] 0
describe "toCabalVersion" $ do
prop "converts from a Portage version to a Cabal version" $ do
\(ComplexVersion v) -> toCabalVersion v `shouldBe`
if versionChar v == Nothing && versionSuffix v == []
then Just (Cabal.mkVersion (versionNumber v)) else Nothing