aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/archive/directory_models_archive_reader_ut.cpp
diff options
context:
space:
mode:
authorDevtools Arcadia <arcadia-devtools@yandex-team.ru>2022-02-07 18:08:42 +0300
committerDevtools Arcadia <arcadia-devtools@mous.vla.yp-c.yandex.net>2022-02-07 18:08:42 +0300
commit1110808a9d39d4b808aef724c861a2e1a38d2a69 (patch)
treee26c9fed0de5d9873cce7e00bc214573dc2195b7 /library/cpp/archive/directory_models_archive_reader_ut.cpp
downloadydb-1110808a9d39d4b808aef724c861a2e1a38d2a69.tar.gz
intermediate changes
ref:cde9a383711a11544ce7e107a78147fb96cc4029
Diffstat (limited to 'library/cpp/archive/directory_models_archive_reader_ut.cpp')
-rw-r--r--library/cpp/archive/directory_models_archive_reader_ut.cpp55
1 files changed, 55 insertions, 0 deletions
diff --git a/library/cpp/archive/directory_models_archive_reader_ut.cpp b/library/cpp/archive/directory_models_archive_reader_ut.cpp
new file mode 100644
index 0000000000..09994de9b4
--- /dev/null
+++ b/library/cpp/archive/directory_models_archive_reader_ut.cpp
@@ -0,0 +1,55 @@
+#include "directory_models_archive_reader.h"
+
+#include <library/cpp/testing/unittest/registar.h>
+
+#include <util/folder/tempdir.h>
+#include <util/string/cast.h>
+#include <util/stream/file.h>
+#include <util/system/tempfile.h>
+#include <util/memory/blob.h>
+
+class TDirectoryModelsArchiveReaderTest: public TTestBase {
+ UNIT_TEST_SUITE(TDirectoryModelsArchiveReaderTest)
+ UNIT_TEST(TestRead);
+ UNIT_TEST_SUITE_END();
+
+private:
+ void TestRead();
+};
+
+UNIT_TEST_SUITE_REGISTRATION(TDirectoryModelsArchiveReaderTest);
+
+const TString MAIN_DIR = "./dir";
+const TString SUBDIR = "/subdir";
+const TString SAMPLE_FILE1 = "/sample1";
+const TString SAMPLE_FILE2 = "/sample2";
+const TString TEST_TEXT = "Test Text.";
+
+void TDirectoryModelsArchiveReaderTest::TestRead() {
+ TTempDir mainDir(MAIN_DIR);
+ TTempDir subDir(MAIN_DIR + SUBDIR);
+ TTempFileHandle file1(MAIN_DIR + SAMPLE_FILE1);
+ TTempFileHandle file2(MAIN_DIR + SUBDIR + SAMPLE_FILE2);
+
+ file1.Write(TEST_TEXT.data(), TEST_TEXT.size());
+ file1.FlushData();
+
+ TDirectoryModelsArchiveReader reader(MAIN_DIR, false);
+
+ UNIT_ASSERT_EQUAL(reader.Count(), 2);
+
+ UNIT_ASSERT(reader.Has(SAMPLE_FILE1));
+ UNIT_ASSERT(reader.Has(SUBDIR + SAMPLE_FILE2));
+
+ UNIT_ASSERT_EQUAL(reader.KeyByIndex(0), SAMPLE_FILE1);
+ UNIT_ASSERT_EQUAL(reader.KeyByIndex(1), SUBDIR + SAMPLE_FILE2);
+
+ TBlob blob = reader.BlobByKey(SAMPLE_FILE1);
+ Cout << "'" << TString(blob.AsCharPtr(), blob.Size()) << "' - '" << TEST_TEXT << "'" << Endl;
+ UNIT_ASSERT_VALUES_EQUAL(TString(blob.AsCharPtr(), blob.Size()), TString(TEST_TEXT));
+
+ TAutoPtr<IInputStream> is = reader.ObjectByKey(SAMPLE_FILE1);
+ const TString data = is->ReadAll();
+ Cout << "'" << data << "' - '" << TEST_TEXT << "'" << Endl;
+ UNIT_ASSERT_VALUES_EQUAL(data, TEST_TEXT);
+}