From 23e593eb69f6d0beb197f33ae31b479c60d9316f Mon Sep 17 00:00:00 2001 From: Benjamin Paassen Date: Fri, 19 Dec 2014 00:29:55 +0100 Subject: added convenience function for document construction and tested them. --- test/core/model/TestDocument.hpp | 67 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 test/core/model/TestDocument.hpp (limited to 'test/core/model/TestDocument.hpp') diff --git a/test/core/model/TestDocument.hpp b/test/core/model/TestDocument.hpp new file mode 100644 index 0000000..c99bdd3 --- /dev/null +++ b/test/core/model/TestDocument.hpp @@ -0,0 +1,67 @@ +/* + Ousía + Copyright (C) 2014, 2015 Benjamin Paaßen, Andreas Stöckel + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifndef _MODEL_TEST_DOCUMENT_HPP_ +#define _MODEL_TEST_DOCUMENT_HPP_ + +#include +#include +#include + +namespace ousia { +namespace model { + +/** + * This constructs a fairly simple test document for the "book" domain. The + * structure of the document can be seen in the Code below. + */ +static Rooted constructBookDocument(Manager &mgr, + Rooted bookDomain) +{ + // Start with the (empty) document. + Rooted doc{new Document(mgr, "myDoc.oxd")}; + + // Add the root. + Rooted root = + StructuredEntity::buildRootEntity(doc, {bookDomain}, "book"); + if (root.isNull()) { + return {nullptr}; + } + + // Add a paragraph. + Rooted foreword = + StructuredEntity::buildEntity(root, {bookDomain}, "paragraph"); + if (foreword.isNull()) { + return {nullptr}; + } + // Add its text. + Variant text{std::map{ + {"content", Variant("Some introductory text")}}}; + Rooted text_primitive = + DocumentPrimitive::buildEntity(foreword, text, "text"); + // Add a section. + Rooted section = + StructuredEntity::buildEntity(root, {bookDomain}, "section"); + + return doc; +} +} +} + +#endif /* _TEST_DOCUMENT_HPP_ */ + -- cgit v1.2.3