forked from approvals/ApprovalTests.cpp
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNamerTests.cpp
More file actions
68 lines (59 loc) · 2.56 KB
/
Copy pathNamerTests.cpp
File metadata and controls
68 lines (59 loc) · 2.56 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
#include "doctest.h"
#include "ApprovalTests/core/ApprovalNamer.h"
#include "ApprovalTests/namers/SeparateApprovedAndReceivedDirectoriesNamer.h"
#include "ApprovalTests/namers/NamerFactory.h"
#include "ApprovalTests/Approvals.h"
#include <memory>
using namespace ApprovalTests;
class FakeNamer : public ApprovalNamer
{
virtual std::string getApprovedFile(std::string /*extensionWithDot*/) const override
{
return "my.approved";
}
virtual std::string getReceivedFile(std::string /*extensionWithDot*/) const override
{
return "my.received";
}
};
TEST_CASE("Registering default Namer")
{
{
// begin-snippet: register_default_namer
auto default_namer_disposer = Approvals::useAsDefaultNamer([](){return std::make_shared<FakeNamer>();});
// end-snippet
auto result = Approvals::getDefaultNamer()->getApprovedFile(".txt");
REQUIRE(result == "my.approved");
}
auto result = Approvals::getDefaultNamer()->getApprovedFile(".txt");
REQUIRE(StringUtils::endsWith(result, "NamerTests.Registering_default_Namer.approved.txt"));
}
void require_ends_with(const std::string& text, const std::string& endsWith)
{
INFO(text << "\ndidn't end with\n" << endsWith);
REQUIRE(StringUtils::endsWith(text, endsWith));
}
TEST_CASE("SeparateApprovedAndReceivedDirectoriesNamer")
{
// begin-snippet: register_separate_directories_namer
auto default_namer_disposer = SeparateApprovedAndReceivedDirectoriesNamer::useAsDefaultNamer();
// end-snippet
auto namer = Approvals::getDefaultNamer();
require_ends_with(namer->getApprovedFile(".txt"), "approved" + SystemUtils::getDirectorySeparator() +
"NamerTests.SeparateApprovedAndReceivedDirectoriesNamer.txt");
require_ends_with(namer->getReceivedFile(".txt"), "received" + SystemUtils::getDirectorySeparator() +
"NamerTests.SeparateApprovedAndReceivedDirectoriesNamer.txt");
}
TEST_CASE( "AdditionalSections" )
{
auto namer = Approvals::getDefaultNamer();
{
auto section_namer = NamerFactory::appendToOutputFilename("case1");
require_ends_with(namer->getApprovedFile(".txt"), "NamerTests.AdditionalSections.case1.approved.txt");
}
{
auto section_namer = NamerFactory::appendToOutputFilename("case2");
require_ends_with(namer->getApprovedFile(".txt"), "NamerTests.AdditionalSections.case2.approved.txt");
}
require_ends_with(namer->getApprovedFile(".txt"), "NamerTests.AdditionalSections.approved.txt");
}