Skip to content

Commit c4a7a33

Browse files
committed
Add basic profile test
1 parent c6dedaf commit c4a7a33

1 file changed

Lines changed: 78 additions & 0 deletions

File tree

inst/tinytest/test_profile.R

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
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

Comments
 (0)