tests/testthat/test-registry.R

test_that("it should create a registry class", {
  # Create a new registry
  registry <- create_registry()
  reg <- registry$get_instance()
  expect_s3_class(reg, "registry")
  expect_true(length(reg) == 0)
  expect_equal(registry_keys(reg), character(0))
})

test_that("it should add and retrieve elements", {
  # Create a new registry
  registry <- create_registry()
  reg <- registry$get_instance()
  # Add elements
  reg <- registry_put(reg, "a", 1)
  reg <- registry_put(reg, "b", 2)
  expect_equal(registry_keys(reg), c("a", "b"))
  expect_equal(registry_get(reg, "a"), 1)
  expect_equal(registry_get(reg, "b"), 2)
  # retrieve the instance again
  expect_equal(registry_keys(reg), c("a", "b"))
  expect_equal(registry_get(reg, "a"), 1)
  expect_equal(registry_get(reg, "b"), 2)
})

test_that("it should add and retrieve elements with [[ operator", {
  # Create a new registry
  registry <- create_registry()
  reg <- registry$get_instance()
  # Add elements
  reg[["a"]] <- 1
  reg[["b"]] <- 2
  expect_equal(registry_keys(reg), c("a", "b"))
  expect_equal(names(reg), registry_keys(reg))
  expect_equal(reg[["a"]], 1)
  expect_equal(reg[["b"]], 2)
  expect_equal(registry_get(reg, "a"), reg[["a"]])
  expect_equal(registry_get(reg, "b"), reg[["b"]])
  # retrieve the instance again
  reg <- registry$get_instance()
  expect_equal(names(reg), c("a", "b"))
  expect_equal(reg[["a"]], 1)
  expect_equal(reg[["b"]], 2)
})

test_that("it should add and retrieve elements with $ operator", {
  # Create a new registry
  registry <- create_registry()
  reg <- registry$get_instance()
  # Add elements
  reg$a <- 1
  reg$b <- 2
  expect_equal(names(reg), c("a", "b"))
  expect_equal(reg$a, 1)
  expect_equal(reg$b, 2)
  # retrieve the instance again
  reg <- registry$get_instance()
  expect_equal(names(reg), c("a", "b"))
  expect_equal(reg$a, 1)
  expect_equal(reg$b, 2)
})

test_that("it should try to retrieve an element that does not exist", {
  registry <- create_registry()
  reg <- registry$get_instance()
  expect_error(reg$a, "a not found in registry")
})

Try the rb3 package in your browser

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

rb3 documentation built on Aug. 8, 2025, 6:20 p.m.