tests/testthat/test-Validate-class.R

# Validate-class ----

test_that("Validate objects can be created with default constructor Validate", {
  result <- expect_silent(Validate())
  expect_s4_class(result, "Validate")
  expect_true(validObject(result))
})

# Validate ----

test_that("Validate returns NULL for valid object, or message for inv. obj.", {
  error_a <- "some_error_A"
  error_b <- "some_error_B"

  o <- Validate()

  expect_identical(o$msg, character(0))
  expect_null(o$check(TRUE, error_a))
  expect_identical(o$msg, character(0))

  expect_identical(o$check(FALSE, error_a), error_a)
  expect_identical(o$msg, error_a)

  expect_identical(o$check(FALSE, error_b), c(error_a, error_b))
  expect_null(o$check(TRUE, error_b))
})

test_that("Having a msg global variable does not confuse the constructor (1)", {
  msg <- character(0)
  result <- expect_silent(Validate())
  expect_s4_class(result, "Validate")
  expect_true(validObject(result))

  msg <- "some msg"
  result <- expect_silent(Validate())
  expect_s4_class(result, "Validate")
  expect_true(validObject(result))
})

test_that("Having a msg global variable does not confuse the constructor (2)", {
  error_a <- "some_error_A"
  error_b <- "some_error_B"

  msg <- "some msg"
  o <- Validate()

  expect_identical(o$msg, character(0))
  expect_null(o$check(TRUE, error_a))
  expect_identical(o$msg, character(0))

  expect_identical(o$check(FALSE, error_a), error_a)
  expect_identical(o$msg, error_a)

  expect_identical(o$check(FALSE, error_b), c(error_a, error_b))
  expect_null(o$check(TRUE, error_b))
})

test_that("Having a msg global variable does not confuse the constructor (3)", {
  error_a <- "some_error_A"
  error_b <- "some_error_B"

  o <- Validate()
  msg <- "some msg"

  expect_identical(o$msg, character(0))
  expect_null(o$check(TRUE, error_a))
  expect_identical(o$msg, character(0))

  expect_identical(o$check(FALSE, error_a), error_a)
  expect_identical(o$msg, error_a)

  expect_identical(o$check(FALSE, error_b), c(error_a, error_b))
  expect_null(o$check(TRUE, error_b))
})

test_that("Having a msg global variable does not confuse the constructor (4)", {
  error_a <- "some_error_A"
  error_b <- "some_error_B"

  o <- Validate()

  expect_identical(o$msg, character(0))
  expect_null(o$check(TRUE, error_a))
  expect_identical(o$msg, character(0))

  expect_identical(o$check(FALSE, error_a), error_a)
  expect_identical(o$msg, error_a)

  msg <- "some msg"
  expect_identical(o$check(FALSE, error_b), c(error_a, error_b))
  expect_null(o$check(TRUE, error_b))
})
0liver0815/onc-crmpack-test documentation built on Feb. 19, 2022, 12:25 a.m.