Barracuda-1.0.2: Tests/HUnit/PendingAck.hs
module Tests.HUnit.PendingAck where
import qualified Data.Set as Set
import Data.Time
import Barracuda.PendingAck
import Tests.Data
import Test.HUnit
pendingAck = TestCase $ do
let now = date_malcomX
let later9 = addUTCTime 9 now
let later10 = addUTCTime 10 now
let later11 = addUTCTime 11 now
let pa1 = insert later10 routed_nack saddr_cia
$ insert later9 routed_nottl saddr_penisland -- This message gets removed, because it has no more time to live
$ insert now routed_innocent saddr_cia
$ empty
assertEqual "Purge two messages"
[(routed_nottl,later9,Set.empty),(routed_innocent,now,Set.empty)]
(snd $ purgeNoAck later11 3 pa1)
assertEqual "Ack one message and a few invalids"
( insert later10 routed_nack saddr_cia
$ insert later9 routed_nottl saddr_penisland
$ empty)
( ack user_igel "1788" saddr_fsf -- Should be ignored, wrong host
$ ack user_wechner "29" saddr_cia
$ ack user_spuall "278" saddr_cia -- Should be ignored, wrong message-id
$ pa1)