tests/testthat/test-ebi_server.R

context("test-ebi_server")

# https://www.mango-solutions.com/blog/testing-without-the-internet-using-mock-functions

#
# is_ebi_reachable()
#

test_that("is_ebi_reachable: should return FALSE if computer cannot ping.", {
  with_mock(`pingr::is_online` = function(...) FALSE,
            expect_message(status <- is_ebi_reachable(), "It seems you are not online.")
            )
  expect_identical(status, FALSE)

  with_mock(`pingr::is_online` = function(...) TRUE,
            `pingr::ping_port` = function(...) NA,
            expect_message(is_ebi_reachable(chatty = TRUE),
                           "Am I online? Yes.",
                           "www.ebi.ac.uk is not replying to ping requests on port 443.",
                           fixed = TRUE),
            expect_message(is_ebi_reachable(chatty = TRUE),
                           "www.ebi.ac.uk is not replying to ping requests on port 443.",
                           fixed = TRUE),
            expect_identical(is_ebi_reachable(chatty = TRUE), FALSE)
  )

  with_mock(`pingr::is_online` = function(...) TRUE,
            `pingr::ping_port` = function(...) 10.0, # time in miliseconds
            expect_message(is_ebi_reachable(chatty = TRUE),
                           "Am I online? Yes.",
                           fixed = TRUE),

            expect_message(is_ebi_reachable(chatty = TRUE),
                           "Is there a DNS service running? Yes.",
                           fixed = TRUE),

            expect_message(is_ebi_reachable(chatty = TRUE),
                           "Connected to the internet? Yes.",
                           fixed = TRUE),

            expect_message(is_ebi_reachable(chatty = TRUE),
                           "Ping'ing www.ebi.ac.uk on port 443...",
                           fixed = TRUE),

            expect_message(is_ebi_reachable(chatty = TRUE),
                           "www.ebi.ac.uk successfully replied in 10 ms.",
                           fixed = TRUE),

            expect_identical(is_ebi_reachable(), TRUE),
            expect_identical(is_ebi_reachable(chatty = TRUE), TRUE)
  )
})

test_that("is_ebi_reachable: should return FALSE if there is no DNS.", {
  with_mock(`pingr::is_online` = function(...) "nodns",
            expect_message(status <- is_ebi_reachable(),
                           "It seems there is no Domain Name Server (DNS) service running.",
                           fixed = TRUE)
  )
  expect_identical(status, FALSE)
})

Try the gwasrapidd package in your browser

Any scripts or data that you put into this service are public.

gwasrapidd documentation built on Dec. 28, 2022, 2:16 a.m.