packages feed

rpm-nvr-0.1.2: test/RPM/PackageSpec.hs

module RPM.PackageSpec (pkgspec) where

import           Test.Hspec
import           Data.RPM.NV
import           Data.RPM.NVR
import           Data.RPM.NVRA

import Data.Maybe (isNothing)
import System.FilePath (dropExtension, takeFileName)

-- FIXME add some failures too
pkgspec :: Spec
pkgspec = do
  describe "NV" $ do
    let nv = "my-pkg-1.0.1" in
      it nv $
      showNV (readNV nv) `shouldBe` nv

    let v = "1.0.1" in
      it v $
      isNothing (maybeNV v) `shouldBe` True

  describe "NVR" $ do
    let nvr = "my-pkg-1.0.1-1.2" in
      it nvr $
      showNVR (readNVR nvr) `shouldBe` nvr

    let nv = "name-1.0.1" in
      it nv $
      isNothing (maybeNVR nv) `shouldBe` True

  describe "NVRA" $ do
    let pkg = "my-pkg-1.0.1-1.2.x86_64" in
      it pkg $
      showNVRA (readNVRA pkg) `shouldBe` pkg

    let nv = "name-1.0.1" in
      it nv $
      isNothing (maybeNVRA nv) `shouldBe` True

  describe "NVRA.rpm" $ do
    let pkg = "my-pkg-1.0.1-1.2.x86_64.rpm" in
      it pkg $
      showNVRA (readNVRA pkg) `shouldBe` dropExtension pkg

  describe "dir/NVRA.rpm" $ do
    let pkg = "dir/my-pkg-1.0.1-1.2.x86_64.rpm" in
      it pkg $
      showNVRA (readNVRA pkg) `shouldBe` dropExtension (takeFileName pkg)