test_that("Build valid SQL query", {
con <- odbc::dbConnect(RSQLite::SQLite(), ":memory:")
build_query_sql("table_name", .con = con) %>%
as.character() %>%
expect_equal("SELECT * FROM `table_name`")
days_ago <- lubridate::today() - 10
days_ago_double <- days_ago %>% lubridate::as_datetime() %>% as.double()
days_future <- lubridate::today() + 15
days_future_double <- (days_future + 1) %>% lubridate::as_datetime() %>% as.double()
build_query_sql("table_name", days_ago, .con = con) %>%
as.character() %>%
expect_equal(glue::glue(
"SELECT * FROM `table_name` WHERE time >= {days_ago_double}"
))
build_query_sql("table_name", date_to = days_future, .con = con) %>%
as.character() %>%
expect_equal(glue::glue(
"SELECT * FROM `table_name` WHERE time < {days_future_double}"
))
build_query_sql("table_name", days_ago, days_future, .con = con) %>%
as.character() %>%
expect_equal(glue::glue(
"SELECT * FROM `table_name`",
" WHERE time >= {days_ago_double}",
" AND time < {days_future_double}"
))
build_query_sql(
"table_name",
as.Date("2023-04-13"),
as.Date("2000-01-01"),
.con = con
) %>%
as.character() %>%
expect_equal(
glue::glue(
"SELECT * FROM `table_name`",
" WHERE time >= {lubridate::as_datetime('2023-04-13') %>% as.double()}",
" AND time < {lubridate::as_datetime('2000-01-02') %>% as.double()}"
)
)
})
test_that("build_mongo_connection_string: Build valid string with NULL", {
expect_equal(
build_mongo_connection_string(
host = "localhost",
port = 27017,
username = NULL,
password = NULL,
authdb = NULL,
options = NULL
),
"mongodb://localhost:27017/"
)
})
test_that("build_mongo_connection_string: Build valid string with user and pass", {
expect_equal(
build_mongo_connection_string(
host = "localhost",
port = 27017,
username = "a_user",
password = "a_pass",
authdb = NULL,
options = NULL
),
"mongodb://a_user:a_pass@localhost:27017/"
)
})
test_that("build_mongo_connection_string: Build valid string with `authdb`", {
expect_equal(
build_mongo_connection_string(
host = "localhost",
port = 27017,
username = NULL,
password = NULL,
authdb = "path_to_authdb",
options = NULL
),
"mongodb://localhost:27017/path_to_authdb"
)
})
test_that("build_mongo_connection_string: Build valid string with `options`", {
expect_equal(
build_mongo_connection_string(
host = "localhost",
port = 27017,
username = NULL,
password = NULL,
authdb = NULL,
options = list("option1" = "value1", "option2" = "value2")
),
"mongodb://localhost:27017/?option1=value1&option2=value2"
)
})
test_that("build_mongo_connection_string: Build valid string with all parameters", {
expect_equal(
build_mongo_connection_string(
host = "localhost",
port = 27017,
username = "a_user",
password = "a_pass",
authdb = "path_to_authdb",
options = list("option1" = "value1", "option2" = "value2")
),
"mongodb://a_user:a_pass@localhost:27017/path_to_authdb?option1=value1&option2=value2"
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.