#include "textgenerator.h" #include "textstylebuilder.h" #include "doctemplate.h" #include "asserttest.h" using namespace std; int main() { int result = 0; TextStyle bold("$text"); TextStyle italics("$text"); TextStyle keyword = bold; TextGenerator keywordGenerator(keyword); string orig = "fookeyword"; string expected = "" + orig + ""; string transformed = keywordGenerator.generateEntire(orig); cout << "orig: " << orig << endl; cout << "transformed: " << transformed << endl; result += assertEquals(expected, transformed); TextStyle keyword2 = bold.compose(italics); TextGenerator keywordGenerator2(keyword2); expected = "" + orig + ""; transformed = keywordGenerator2.generateEntire(orig); cout << "orig: " << orig << endl; cout << "transformed: " << transformed << endl; result += assertEquals(expected, transformed); TextStyleBuilder textStyleBuilder; textStyleBuilder.start(); textStyleBuilder.add(bold); textStyleBuilder.add(italics); TextGenerator keywordGenerator3(textStyleBuilder.end()); expected = "" + orig + ""; transformed = keywordGenerator3.generateEntire(orig); cout << "orig: " << orig << endl; cout << "transformed: " << transformed << endl; result += assertEquals(expected, transformed); TextStyleBuilder textStyleBuilder2("start{" STYLE_VAR_TEXT TEXT_VAR_TEXT "}", ";"); textStyleBuilder2.start(); textStyleBuilder2.add(TextStyle("bold" STYLE_VAR_TEXT)); textStyleBuilder2.add(TextStyle("italics " STYLE_VAR_TEXT)); TextGenerator keywordGenerator4(textStyleBuilder2.end()); expected = "start{bold;italics " + orig + "}"; transformed = keywordGenerator4.generateEntire(orig); cout << "orig: " << orig << endl; cout << "transformed: " << transformed << endl; result += assertEquals(expected, transformed); string start = "$headerthe title: $title\nthe css url: $css\nand some additional text: $additional"; string end = "$footer"; string expected_start = "HEADER\nthe title: TITLE\nthe css url: CSS\nand some additional text: ADDITIONAL"; string expected_end = "\nFOOTER"; DocTemplate docTemplate(start, end); string transformed_start = docTemplate.output_begin("TITLE", "CSS", "ADDITIONAL", "HEADER\n", "\nFOOTER", ""); string transformed_end = docTemplate.output_end("TITLE", "CSS", "ADDITIONAL", "HEADER\n", "\nFOOTER", ""); cout << "orig start : " << start << endl; cout << "transformed: " << transformed_start << endl; result += assertEquals(expected_start, transformed_start); cout << "orig end : " << end << endl; cout << "transformed: " << transformed_end << endl; result += assertEquals(expected_end, transformed_end); return result; }