diff options
author | robot-piglet <[email protected]> | 2025-06-02 16:34:29 +0300 |
---|---|---|
committer | robot-piglet <[email protected]> | 2025-06-02 16:48:28 +0300 |
commit | a94f4f389851dfc9ac0a7f8e7bb7a0d12ffadf82 (patch) | |
tree | a4041ded4fdc5746f5c1002ede7f3fe583131fa0 /yql/essentials/sql/v1/complete/name/cache/cached_ut.cpp | |
parent | 23b5653e9af4ef22f764a842524a69815ec0459c (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.cpp | 30 |
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) |