Skip to content

Commit

Permalink
fix(file_handler): avoid writing extra newline character
Browse files Browse the repository at this point in the history
  • Loading branch information
ReenigneArcher committed Apr 11, 2024
1 parent 6a01e58 commit cf436f4
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 15 deletions.
11 changes: 1 addition & 10 deletions src/file_handler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,7 @@ namespace file_handler {
}

std::ifstream in(path);

std::string input;
std::string base64_cert;

while (!in.eof()) {
std::getline(in, input);
base64_cert += input + '\n';
}

return base64_cert;
return std::string { (std::istreambuf_iterator<char>(in)), std::istreambuf_iterator<char>() };
}

/**
Expand Down
47 changes: 42 additions & 5 deletions tests/unit/test_file_handler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,51 @@

#include <tests/conftest.cpp>

TEST(FileHandlerTests, WriteFileTest) {
EXPECT_EQ(file_handler::write_file("write_file_test.txt", "test"), 0);
class FileHandlerTests: public virtual BaseTest, public ::testing::WithParamInterface<std::tuple<int, std::string>> {
protected:
void
SetUp() override {
BaseTest::SetUp();
}

void
TearDown() override {
BaseTest::TearDown();
}
};
INSTANTIATE_TEST_SUITE_P(
TestFiles,
FileHandlerTests,
::testing::Values(
std::make_tuple(0, "Mr. Blue Sky - Electric Light Orchestra"),
std::make_tuple(1, R"(
Morning! Today's forecast calls for blue skies
The sun is shining in the sky
There ain't a cloud in sight
It's stopped raining
Everybody's in the play
And don't you know, it's a beautiful new day
Hey, hey, hey!
Running down the avenue
See how the sun shines brightly in the city
All the streets where once was pity
Mr. Blue Sky is living here today!
Hey, hey, hey!
)")));

TEST_P(FileHandlerTests, WriteFileTest) {
auto [fileNum, content] = GetParam();
std::string fileName = "write_file_test_" + std::to_string(fileNum) + ".txt";
EXPECT_EQ(file_handler::write_file(fileName.c_str(), content), 0);
}

TEST(FileHandlerTests, ReadFileTest) {
// read file from WriteFileTest
EXPECT_EQ(file_handler::read_file("write_file_test.txt"), "test\n"); // sunshine adds a newline
TEST_P(FileHandlerTests, ReadFileTest) {
auto [fileNum, content] = GetParam();
std::string fileName = "write_file_test_" + std::to_string(fileNum) + ".txt";
EXPECT_EQ(file_handler::read_file(fileName.c_str()), content);
}

TEST(FileHandlerTests, ReadMissingFileTest) {
// read missing file
EXPECT_EQ(file_handler::read_file("non-existing-file.txt"), "");
}

0 comments on commit cf436f4

Please sign in to comment.