Newer
Older
#include <vereign/kvstore/crypto_storage.hh>
#include <vereign/kvstore/sqlite_storage.hh>
#include <vereign/crypto/rand.hh>
#include <vereign/bytes/view_dump.hh>
#include <vereign/core/temp.hh>
#include <vereign/core/fs.hh>
#include <vereign/core/scope_guard.hh>
#include <catch2/catch.hpp>
#include <boost/filesystem.hpp>
#include <iostream>
using namespace vereign;
TEST_CASE("CryptoStorage::Reset", "[vereign/kvstore]") {
auto storage_path = core::TempFilePath("test_db_");
core::RemoveFileGuard rm{storage_path};
{
auto kvstorage = kvstore::SqliteStorage(storage_path.string());
kvstore::CryptoStorage storage{kvstorage, true};
storage.Reset("foo");
std::string v{"test value"};
storage.PutBytes("test", bytes::View(v));
}
// with another storage instance get the value
{
auto kvstorage = kvstore::SqliteStorage(storage_path.string());
kvstore::CryptoStorage storage{kvstorage, true};
bytes::Buffer v;
storage.Open("foo");
storage.GetBytes("test", v);
CHECK(v.View().String() == "test value");
}
}
TEST_CASE("CryptoStorage::PutBytes", "[vereign/kvstore]") {
auto storage_path = core::TempFilePath("test_db_");
core::RemoveFileGuard rm{storage_path};
bytes::Buffer big_value{100000};
crypto::Rand(big_value);
auto kvstorage = kvstore::SqliteStorage(storage_path.string());
kvstore::CryptoStorage storage{kvstorage, true};
storage.Reset("foo");
storage.PutBytes("test", big_value.View());
bytes::Buffer v;
storage.GetBytes("test", v);
auto cmp = std::memcmp(v.View().Data(), big_value.View().Data(), v.Size());
CHECK(cmp == 0);