test_that("fromJSON date objects", { x <- Sys.time() + c(1, 2, NA, 3) mydf <- data.frame(x = x) expect_s3_class(fromJSON(toJSON(x, POSIXt = "mongo")), "POSIXct") expect_equal(fromJSON(toJSON(x, POSIXt = "mongo")), x) #expect_s3_class(fromJSON(toJSON(x, POSIXt="mongo", na="string")), "POSIXct"); expect_s3_class(fromJSON(toJSON(x, POSIXt = "mongo", na = "null")), "POSIXct") expect_s3_class(fromJSON(toJSON(mydf, POSIXt = "mongo")), "data.frame") expect_s3_class(fromJSON(toJSON(mydf, POSIXt = "mongo"))$x, "POSIXct") #expect_s3_class(fromJSON(toJSON(mydf, POSIXt="mongo", na="string"))$x, "POSIXct"); expect_s3_class(fromJSON(toJSON(mydf, POSIXt = "mongo", na = "null"))$x, "POSIXct") expect_equal(fromJSON(toJSON(mydf, POSIXt = "mongo"))$x, x) xct <- as.POSIXct(x) xlt <- as.POSIXlt(x) expect_equal(xct, xlt) expect_true(unbox(xct[1]) == unbox(xlt[1])) xct3un <- unbox(xct[3]) expect_true(is.na(xct3un) && inherits(xct3un, "scalar") && inherits(xct3un, "POSIXt")) xlt3un <- unbox(xlt[3]) expect_true(is.na(xlt3un) && inherits(xlt3un, "scalar") && inherits(xlt3un, "POSIXt")) expect_equal(toJSON(xct, POSIXt = "mongo"), toJSON(xlt, POSIXt = "mongo")) expect_equal(toJSON(unbox(xct[1]), POSIXt = "mongo"), toJSON(unbox(xlt[1]), POSIXt = "mongo")) })