-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathpr_test_fixture.cpp
More file actions
72 lines (49 loc) · 1.73 KB
/
pr_test_fixture.cpp
File metadata and controls
72 lines (49 loc) · 1.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include "parser/test/fixtures/pr_test_fixture.hpp"
#include "fs/api/fs_file_system.hpp"
#include "fs/impl/fs_factory_impl.hpp"
#include "parser/api/pr_include_file.hpp"
#include "parser/impl/pr_parser_impl.hpp"
#include "exception/ih/exc_internal_error.hpp"
#include <std_fs>
//------------------------------------------------------------------------------
namespace parser::test
{
//------------------------------------------------------------------------------
ParserFixture::ParserFixture()
{
init();
}
//------------------------------------------------------------------------------
ParserFixture::~ParserFixture() = default;
//------------------------------------------------------------------------------
void ParserFixture::init()
{
m_factory = std::make_unique< fs::FactoryImpl >();
INTERNAL_CHECK_ERROR( m_factory );
fs::FileSystem & fs = m_factory->getMemoryFileSystem();
const std::string tempFilePath = "/" + getTempFileName();
m_fileWrapper.setFile( fs.createFile( tempFilePath ) );
}
//------------------------------------------------------------------------------
FileWrapper & ParserFixture::file()
{
return m_fileWrapper;
}
//------------------------------------------------------------------------------
void ParserFixture::parse()
{
ParserImpl parser;
m_files = parser.parseFile( m_fileWrapper.getFile() );
}
//------------------------------------------------------------------------------
const ParserFixture::IncludeFiles & ParserFixture::getResults() const
{
return m_files;
}
//------------------------------------------------------------------------------
std::string ParserFixture::getTempFileName() const
{
return "temp.cpp";
}
//------------------------------------------------------------------------------
}