@@ -165,6 +165,77 @@ TEST_F(KeycacheTest, SetGetTest) {
165165 EXPECT_EQ (demo_scitokens2, jwks_str);
166166}
167167
168+ TEST_F (KeycacheTest, InvalidConfigKeyTest) {
169+ char *err_msg;
170+ int new_update_interval = 400 ;
171+ std::string key = " invalid key" ;
172+ auto rv = config_set_int (key.c_str (), new_update_interval, &err_msg);
173+ ASSERT_FALSE (rv == 0 );
174+
175+ const char *key2 = nullptr ;
176+ rv = config_set_int (key2, new_update_interval, &err_msg);
177+ ASSERT_FALSE (rv == 0 );
178+ }
179+
180+ TEST_F (KeycacheTest, SetGetUpdateTest) {
181+ char *err_msg;
182+ int new_update_interval = 400 ;
183+ std::string key = " keycache.update_interval_s" ;
184+ auto rv = config_set_int (key.c_str (), new_update_interval, &err_msg);
185+ ASSERT_TRUE (rv == 0 );
186+
187+ rv = config_get_int (key.c_str (), &err_msg);
188+ EXPECT_EQ (rv, new_update_interval);
189+ }
190+
191+ TEST_F (KeycacheTest, SetGetExpirationTest) {
192+ char *err_msg;
193+ int new_expiration_interval = 2 * 24 * 3600 ;
194+ std::string key = " keycache.expiration_interval_s" ;
195+ auto rv = config_set_int (key.c_str (), new_expiration_interval, &err_msg);
196+ ASSERT_TRUE (rv == 0 );
197+
198+ rv = config_get_int (key.c_str (), &err_msg);
199+ EXPECT_EQ (rv, new_expiration_interval);
200+ }
201+
202+ TEST_F (KeycacheTest, SetInvalidUpdateTest) {
203+ char *err_msg;
204+ int new_update_interval = -1 ;
205+ std::string key = " keycache.update_interval_s" ;
206+ auto rv = config_set_int (key.c_str (), new_update_interval, &err_msg);
207+ ASSERT_FALSE (rv == 0 );
208+ }
209+
210+ TEST_F (KeycacheTest, SetInvalidExpirationTest) {
211+ char *err_msg;
212+ int new_expiration_interval = -2 * 24 * 3600 ;
213+ std::string key = " keycache.expiration_interval_s" ;
214+ auto rv = config_set_int (key.c_str (), new_expiration_interval, &err_msg);
215+ ASSERT_FALSE (rv == 0 );
216+ }
217+
218+ TEST_F (KeycacheTest, RefreshExpiredTest) {
219+ char *err_msg, *jwks;
220+ int new_expiration_interval = 0 ;
221+ std::string key = " keycache.expiration_interval_s" ;
222+ auto rv = config_set_int (key.c_str (), new_expiration_interval, &err_msg);
223+ ASSERT_TRUE (rv == 0 );
224+
225+ rv = keycache_refresh_jwks (demo_scitokens_url.c_str (), &err_msg);
226+ ASSERT_TRUE (rv == 0 );
227+
228+ sleep (1 );
229+
230+ rv = keycache_get_cached_jwks (demo_scitokens_url.c_str (), &jwks, &err_msg);
231+ ASSERT_TRUE (rv == 0 );
232+ ASSERT_TRUE (jwks != nullptr );
233+ std::string jwks_str (jwks);
234+ free (jwks);
235+
236+ EXPECT_EQ (jwks_str, " {\" keys\" : []}" );
237+ }
238+
168239class SerializeTest : public ::testing::Test {
169240 protected:
170241 void SetUp () override {
0 commit comments