Creational Creational builderCodingExercise CPP
Creational Creational builderCodingExercise CPP
#include <vector>
#include <ostream>
using namespace std;
struct Field
{
string name, type;
struct Class
{
string name;
vector<Field> fields;
class CodeBuilder
{
Class the_class;
public:
CodeBuilder(const string& class_name)
{
the_class.name = class_name;
}
//#include "helpers/iohelper.h"
//#include "exercise.cpp"
#include <string>
#include <algorithm>
#include <cctype>
#include <locale>
namespace
{
class Evaluate : public testing::Test
{
};
TEST_F(Evaluate, EmptyTest)
{
CodeBuilder cb{ "Foo" };
ostringstream oss;
oss << cb;
auto printed = oss.str();
trim(printed);
ASSERT_EQ("class Foo\n{\n};", printed);
}
TEST_F(Evaluate, PersonTest)
{
auto cb = CodeBuilder{ "Person" }
.add_field("name", "string")
.add_field("age", "int");
ostringstream oss;
oss << cb;
auto printed = oss.str();
trim(printed);
ASSERT_EQ("class Person\n{\n string name;\n int age;\n};", printed);
}
} // namespace