packages feed

time-w3c-0.1: tests/ConversionTest.hs

module ConversionTest
    ( testData
    )
    where

import Data.Convertible
import Data.Time
import Data.Time.W3C
import Test.HUnit


instance Eq ZonedTime where
    a == b
        = zonedTimeToUTC a == zonedTimeToUTC b


testData :: [Test]
testData = [ convert (W3CDateTime 2010 (Just 1) (Just 2) Nothing Nothing Nothing Nothing)
             ~?=
             fromGregorian 2010 1 2

           , convert (W3CDateTime 2010 (Just 1) (Just 2) (Just 3) (Just 4) (Just 5.666666) (Just utc))
             ~?=
             ZonedTime {
               zonedTimeToLocalTime = let day = fromGregorian 2010 1 2
                                          tod = TimeOfDay 3 4 5.666666
                                      in
                                        LocalTime day tod
             , zonedTimeZone = utc
             }

           , convert (fromGregorian 2010 1 2)
             ~?=
             W3CDateTime 2010 (Just 1) (Just 2) Nothing Nothing Nothing Nothing

           , convert ZonedTime {
               zonedTimeToLocalTime = let day = fromGregorian 2010 1 2
                                          tod = TimeOfDay 3 4 5.666666
                                      in
                                        LocalTime day tod
             , zonedTimeZone = utc
             }
             ~?=
             W3CDateTime 2010 (Just 1) (Just 2) (Just 3) (Just 4) (Just 5.666666) (Just utc)
           ]