@@ -12,6 +12,7 @@ import Data.Aeson.TH (deriveJSON)
1212import Data.Aeson.Types (ToJSON(..), Value, camelTo, camelTo2, defaultOptions, omitNothingFields)
1313import Data.Char (toUpper)
1414import Data.Maybe (fromMaybe)
15+import Data.List.NonEmpty (NonEmpty(..))
1516import Data.Time (UTCTime)
1617import Data.Time.Format (parseTime)
1718import Data.Sequence (Seq)
@@ -224,6 +225,8 @@ jsonEncoding = [
224225 , assertEqual "Just" "1" $ encode (Just 1 :: Maybe Int)
225226 , assertEqual "Just Nothing" "null" $ encode (Just Nothing :: Maybe (Maybe Int))
226227 , assertEqual "Tuple" "[1,2]" $ encode ((1, 2) :: (Int, Int))
228+ , assertEqual "NonEmpty" "[1,2,3]" $ encode (1 :| [2, 3] :: NonEmpty Int)
229+ , assertEqual "()" "[]" $ encode ()
227230 ]
228231
229232jsonDecoding :: [Assertion]
@@ -231,6 +234,8 @@ jsonDecoding = [
231234 assertEqual "Nothing" (Nothing :: Maybe Int) (decode "null")
232235 , assertEqual "Just" (Just 1 :: Maybe Int) (decode "1")
233236 , assertEqual "Just Nothing" (Just Nothing :: Maybe (Maybe Int)) (decode "null")
237+ , assertEqual "NonEmpty" (Just (1 :| [2, 3]) :: Maybe (NonEmpty Int)) (decode "[1,2,3]")
238+ , assertEqual "()" (Just ()) (decode "[]")
234239 ]
235240
236241------------------------------------------------------------------------------