summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/complete/name/cache/cached_ut.cpp
diff options
context:
space:
mode:
authorrobot-piglet <[email protected]>2025-06-02 16:34:29 +0300
committerrobot-piglet <[email protected]>2025-06-02 16:48:28 +0300
commita94f4f389851dfc9ac0a7f8e7bb7a0d12ffadf82 (patch)
treea4041ded4fdc5746f5c1002ede7f3fe583131fa0 /yql/essentials/sql/v1/complete/name/cache/cached_ut.cpp
parent23b5653e9af4ef22f764a842524a69815ec0459c (diff)
Intermediate changes
commit_hash:6476b453be16b7db003e75789e3b630c1168f14f
Diffstat (limited to 'yql/essentials/sql/v1/complete/name/cache/cached_ut.cpp')
-rw-r--r--yql/essentials/sql/v1/complete/name/cache/cached_ut.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/yql/essentials/sql/v1/complete/name/cache/cached_ut.cpp b/yql/essentials/sql/v1/complete/name/cache/cached_ut.cpp
new file mode 100644
index 00000000000..18607dea438
--- /dev/null
+++ b/yql/essentials/sql/v1/complete/name/cache/cached_ut.cpp
@@ -0,0 +1,30 @@
+#include "cached.h"
+
+#include <yql/essentials/sql/v1/complete/name/cache/local/cache.h>
+
+#include <library/cpp/testing/unittest/registar.h>
+
+#include <library/cpp/time_provider/monotonic_provider.h>
+
+using namespace NSQLComplete;
+
+Y_UNIT_TEST_SUITE(CachedQueryTests) {
+
+ Y_UNIT_TEST(OnExpired_WhenApplied_ThenDefferedUpdateAndReturnOld) {
+ size_t queried = 0;
+ auto cache = MakeLocalCache<TString, TString>(
+ NMonotonic::CreateDefaultMonotonicTimeProvider(), {.TTL = TDuration::Zero()});
+ auto cached = TCachedQuery<TString, TString>(cache, [&](const TString& key) {
+ queried += 1;
+ return NThreading::MakeFuture<TString>(key);
+ });
+ cache->Update("1", "2");
+
+ TString value = cached("1").GetValueSync();
+
+ UNIT_ASSERT_VALUES_EQUAL(value, "2");
+ UNIT_ASSERT_VALUES_EQUAL(queried, 1);
+ UNIT_ASSERT_VALUES_EQUAL(cached("1").GetValueSync(), "1");
+ }
+
+} // Y_UNIT_TEST_SUITE(CachedQueryTests)