FileTests.cpp (2571B)
1 // Copyright (c) Microsoft Corporation. 2 // Licensed under the MIT License. 3 4 #include "ContentUtil.h" 5 #include "sfsclient/File.h" 6 7 #include <catch2/catch_test_macros.hpp> 8 9 #define TEST(...) TEST_CASE("[FileTests] " __VA_ARGS__) 10 #define TEST_SCENARIO(...) TEST_CASE("[FileTests] Scenario: " __VA_ARGS__) 11 12 using namespace SFS; 13 using namespace SFS::details; 14 using namespace SFS::details::contentutil; 15 16 namespace 17 { 18 std::unique_ptr<File> GetFile(const std::string& fileId, 19 const std::string& url, 20 uint64_t sizeInBytes, 21 const std::unordered_map<HashType, std::string>& hashes) 22 { 23 std::unique_ptr<File> file; 24 REQUIRE(File::Make(fileId, url, sizeInBytes, hashes, file) == Result::Success); 25 REQUIRE(file != nullptr); 26 return file; 27 }; 28 } // namespace 29 30 TEST("Testing File::Make()") 31 { 32 const std::string fileId{"myFileId"}; 33 const std::string url{"myUrl"}; 34 const uint64_t sizeInBytes{1234}; 35 const std::unordered_map<HashType, std::string> hashes{{HashType::Sha1, "mySha1"}, {HashType::Sha256, "mySha256"}}; 36 37 const std::unique_ptr<File> file = GetFile(fileId, url, sizeInBytes, hashes); 38 39 CHECK(fileId == file->GetFileId()); 40 CHECK(url == file->GetUrl()); 41 CHECK(sizeInBytes == file->GetSizeInBytes()); 42 CHECK(hashes == file->GetHashes()); 43 44 SECTION("Testing File equality operators") 45 { 46 SECTION("Equal") 47 { 48 auto CompareFileEqual = [&file](const std::unique_ptr<File>& sameFile) { 49 REQUIRE((*file == *sameFile)); 50 REQUIRE_FALSE((*file != *sameFile)); 51 }; 52 53 CompareFileEqual(GetFile(fileId, url, sizeInBytes, hashes)); 54 } 55 56 SECTION("Not equal") 57 { 58 auto CompareFileNotEqual = [&file](const std::unique_ptr<File>& otherFile) { 59 REQUIRE((*file != *otherFile)); 60 REQUIRE_FALSE((*file == *otherFile)); 61 }; 62 63 CompareFileNotEqual(GetFile("", url, sizeInBytes, hashes)); 64 CompareFileNotEqual(GetFile(fileId, "", sizeInBytes, hashes)); 65 CompareFileNotEqual(GetFile(fileId, url, 0, hashes)); 66 CompareFileNotEqual(GetFile(fileId, url, sizeInBytes, {})); 67 CompareFileNotEqual(GetFile("", "", 0, {})); 68 CompareFileNotEqual(GetFile("MYFILEID", url, sizeInBytes, hashes)); 69 CompareFileNotEqual(GetFile(fileId, "MYURL", sizeInBytes, hashes)); 70 } 71 } 72 }