mirror of
https://github.com/progsource/maddy.git
synced 2026-03-24 23:40:39 +01:00
70 lines
1.7 KiB
C++
70 lines
1.7 KiB
C++
/*
|
|
* This project is licensed under the MIT license. For more information see the
|
|
* LICENSE file.
|
|
*/
|
|
#include <memory>
|
|
|
|
#include "gmock/gmock.h"
|
|
|
|
#include "maddy/tableparser.h"
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
class MADDY_TABLEPARSER : public ::testing::Test
|
|
{
|
|
protected:
|
|
std::shared_ptr<maddy::TableParser> tableParser;
|
|
|
|
void SetUp() override
|
|
{
|
|
this->tableParser = std::make_shared<maddy::TableParser>(nullptr, nullptr);
|
|
}
|
|
};
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
TEST_F(
|
|
MADDY_TABLEPARSER, IsStartingLineReturnsTrueWhenFacedWithTheBeginningOfATable
|
|
)
|
|
{
|
|
ASSERT_EQ(true, maddy::TableParser::IsStartingLine("|table>"));
|
|
}
|
|
|
|
TEST_F(MADDY_TABLEPARSER, IsFinishedReturnsFalseInTheBeginning)
|
|
{
|
|
ASSERT_FALSE(tableParser->IsFinished());
|
|
}
|
|
|
|
TEST_F(MADDY_TABLEPARSER, ItReplacesMarkdownWithAnHtmlTable)
|
|
{
|
|
std::vector<std::string> markdown = {
|
|
"|table>",
|
|
"Left header|middle header|last header",
|
|
"- | - | -",
|
|
"cell 1|cell 2|cell 3",
|
|
"cell 4|cell 5|cell 6",
|
|
"- | - | -",
|
|
"foot a|foot b|foot c",
|
|
"|<table"
|
|
};
|
|
std::string expected =
|
|
"<table><thead><tr><th>Left header</th><th>middle header</th><th>last "
|
|
"header</th></tr></thead><tbody><tr><td>cell 1</td><td>cell 2</td><td>cell "
|
|
"3</td></tr><tr><td>cell 4</td><td>cell 5</td><td>cell "
|
|
"6</td></tr></tbody><tfoot><tr><td>foot a</td><td>foot b</td><td>foot "
|
|
"c</td></tr></tfoot></table>";
|
|
|
|
for (std::string md : markdown)
|
|
{
|
|
tableParser->AddLine(md);
|
|
}
|
|
|
|
ASSERT_TRUE(tableParser->IsFinished());
|
|
|
|
std::stringstream& output(tableParser->GetResult());
|
|
|
|
const std::string& outputString = output.str();
|
|
|
|
ASSERT_EQ(expected, outputString);
|
|
}
|