|
| 1 | +library(tinytest) |
| 2 | +library(tiledb) |
| 3 | + |
| 4 | +# Use base directory to prevent over-writing user profiles. |
| 5 | +base_dir <- tempdir() |
| 6 | +dir1 <- file.path(base_dir, "tiledb_profile/") |
| 7 | + |
| 8 | + |
| 9 | +# 1. Test creating profiles. |
| 10 | +profile1 <- tiledb_profile() |
| 11 | +profile2 <- tiledb_profile("profile2") |
| 12 | +profile3 <- tiledb_profile(dir=dir1) |
| 13 | +profile4 <- tiledb_profile("profile4", dir1) |
| 14 | + |
| 15 | +expect_equal(tiledb_profile_name(profile1), "default") |
| 16 | +expect_equal(tiledb_profile_name(profile2), "profile2") |
| 17 | +expect_equal(tiledb_profile_name(profile3), "default") |
| 18 | +expect_equal(tiledb_profile_name(profile4), "profile4") |
| 19 | + |
| 20 | +expect_true(dir.exists(tiledb_profile_dir(profile1))) |
| 21 | +expect_true(dir.exists(tiledb_profile_dir(profile2))) |
| 22 | +expect_equal(tiledb_profile_dir(profile3), dir1) |
| 23 | +expect_equal(tiledb_profile_dir(profile4), dir1) |
| 24 | + |
| 25 | + |
| 26 | +# 2. Test setting/getting profile parameters. |
| 27 | +key1 <- "username" |
| 28 | +key2 <- "server_address" |
| 29 | +key3 <- "rest.token" |
| 30 | +expected_value1 <- "my_username" |
| 31 | +expected_value2 <- "https://my.address" |
| 32 | +expected_value3 <- "123456" |
| 33 | + |
| 34 | +tiledb_profile_set_param(profile4, key1, expected_value1) |
| 35 | +tiledb_profile_set_param(profile4, key2, expected_value2) |
| 36 | +tiledb_profile_set_param(profile4, key3, expected_value3) |
| 37 | + |
| 38 | +actual_value1 <- tiledb_profile_get_param(profile4, key1) |
| 39 | +actual_value2 <- tiledb_profile_get_param(profile4, key2) |
| 40 | +actual_value3 <- tiledb_profile_get_param(profile4, key3) |
| 41 | +actual_non_value <- tiledb_profile_get_param(profile4, "not_a_parameter") |
| 42 | + |
| 43 | +expect_equal(actual_value1, expected_value1) |
| 44 | +expect_equal(actual_value2, expected_value2) |
| 45 | +expect_equal(actual_value3, expected_value3) |
| 46 | +expect_true(is.null(actual_non_value)) |
| 47 | + |
| 48 | +# 3. Test save, load, and remove. |
| 49 | +# IMPORTANT: Do not save a profile to a location that might over-write an actual profile. |
| 50 | +tiledb_profile_save(profile3) |
| 51 | +tiledb_profile_save(profile4) |
| 52 | + |
| 53 | +# -- Check can load profile3 |
| 54 | +profile_loaded <- tiledb_profile_load(dir=dir1) |
| 55 | + |
| 56 | +# -- Remove profile2. Check can no longer load. |
| 57 | +tiledb_profile_remove(dir=dir1) |
| 58 | +expect_error(tiledb_profile_load(dir=dir1)) |
| 59 | + |
| 60 | +# -- Check loaded profile4 |
| 61 | +profile_loaded <- tiledb_profile_load("profile4", dir1) |
| 62 | +expect_equal(tiledb_profile_name(profile_loaded), "profile4") |
| 63 | +expect_equal(tiledb_profile_name(profile_loaded), "profile4") |
| 64 | +loaded_value1 <- tiledb_profile_get_param(profile_loaded, key1) |
| 65 | +loaded_value2 <- tiledb_profile_get_param(profile_loaded, key2) |
| 66 | +loaded_value3 <- tiledb_profile_get_param(profile_loaded, key3) |
| 67 | +loaded_non_value <- tiledb_profile_get_param(profile_loaded, "not_a_parameter") |
| 68 | +expect_equal(loaded_value1, expected_value1) |
| 69 | +expect_equal(loaded_value2, expected_value2) |
| 70 | +expect_equal(loaded_value3, expected_value3) |
| 71 | +expect_true(is.null(loaded_non_value)) |
| 72 | + |
| 73 | +# -- Remove profile4 |
| 74 | +tiledb_profile_remove("profile4", dir1) |
| 75 | + |
| 76 | +# -- Check cannot load profile2 or profile4. |
| 77 | +expect_error(tiledb_profile_load(dir=dir1)) |
| 78 | +expect_error(tiledb_profile_load("profile4", dir1)) |
0 commit comments