1
// SPDX-License-Identifier: LGPL-2.1-or-later
3
#include "gtest/gtest.h"
4
#include <gmock/gmock.h>
6
#include "App/Application.h"
7
#include "App/Document.h"
8
#include "App/StringHasher.h"
9
#include "Base/Writer.h"
10
#include <src/App/InitApplication.h>
15
// NOLINTBEGIN(readability-magic-numbers)
17
class FakeWriter: public Base::Writer
19
void writeFiles() override
21
std::ostream& Stream() override
27
class DocumentTest: public ::testing::Test
30
static void SetUpTestSuite()
32
tests::initApplication();
37
_docName = App::GetApplication().getUniqueDocumentName("test");
38
_doc = App::GetApplication().newDocument(_docName.c_str(), "testUser");
41
void TearDown() override
43
App::GetApplication().closeDocument(_docName.c_str());
53
App::Document* _doc {};
57
TEST_F(DocumentTest, addStringHasherIndicatesUnwrittenWhenNew)
60
App::StringHasherRef hasher(new App::StringHasher);
63
auto addResult = doc()->addStringHasher(hasher);
66
EXPECT_TRUE(addResult.first);
67
EXPECT_THAT(addResult.second, Ne(-1));
70
TEST_F(DocumentTest, addStringHasherIndicatesAlreadyWritten)
73
App::StringHasherRef hasher(new App::StringHasher);
74
doc()->addStringHasher(hasher);
77
auto addResult = doc()->addStringHasher(hasher);
80
EXPECT_FALSE(addResult.first);
83
TEST_F(DocumentTest, getStringHasherGivesExpectedHasher)
86
App::StringHasherRef hasher(new App::StringHasher);
87
auto pair = doc()->addStringHasher(hasher);
88
int index = pair.second;
91
auto foundHasher = doc()->getStringHasher(index);
94
EXPECT_EQ(hasher, foundHasher);
97
// NOLINTEND(readability-magic-numbers)