nagios-check-0.1.0.0: tests/NagiosCheckTest.hs
{-# LANGUAGE OverloadedStrings #-}
module Main where
import Data.Monoid
import Data.Text (Text)
import Test.Hspec
import System.Nagios.Plugin
main :: IO ()
main = hspec suite
suite :: Spec
suite = describe "runNagiosPlugin'" $ do
it "returns default result if no results are specified" $ do
(_,s) <- runNagiosPlugin' (return ())
snd (finishState s) `shouldBe` "UNKNOWN: no check result specified"
fst (finishState s) `shouldBe` Unknown
it "returns explicitly added result in favor of default" $ do
(_,s) <- runNagiosPlugin' (universeCheck pi)
snd (finishState s) `shouldBe` ("OK: " <> universeGoodResult)
fst (finishState s) `shouldBe` OK
it "returns result with greatest badness" $ do
(_,s) <- runNagiosPlugin' (universeCheck 1.0)
snd (finishState s) `shouldBe` ("CRITICAL: " <> universeBadResult)
fst (finishState s) `shouldBe` Critical
universeCheck :: Double -> NagiosPlugin ()
universeCheck pi' = do
addResult OK universeGoodResult
if (pi' < (3.0 :: Double)) then addResult Critical universeBadResult else return ()
universeGoodResult :: Text
universeGoodResult = "universe passes basic consistency tests"
universeBadResult :: Text
universeBadResult = "universe broken, π < 3"