#include "pch.h" #include #include "CppUnitTest.h" using namespace Microsoft::VisualStudio::CppUnitTestFramework; namespace FrameworkTests { TEST_CLASS (XMLParserTests) { public: TEST_METHOD (EmptyElementTest) { Framework::XML::Element* element = new Framework::XML::Element( ""); Assert::IsTrue(element->getAttributeCount() == 3, L"One ore more xml attributes are missing"); Assert::IsTrue(element->getName().istGleich("xml"), L"Der Element Name ist falsch"); Assert::IsTrue(element->getChildCount() == 0, L"Das Element sollte keine Kinder haben"); Assert::IsTrue( element->hasAttribute("attr"), L"Das Attribut attr fehlt"); Assert::IsTrue( element->hasAttribute("attr2"), L"Das Attribut attr2 fehlt"); Assert::IsTrue( element->hasAttribute("attr3"), L"Das Attribut attr3 fehlt"); Assert::IsTrue(element->hasAttribute("") == 0, L"Es gibt ein falsches Attribut"); Assert::IsTrue(element->getAttributeName(0).istGleich("attr"), L"Der Attribut name ist falsch"); Assert::IsTrue(element->getAttributeName(1).istGleich("attr2"), L"Der Attribut name ist falsch"); Assert::IsTrue(element->getAttributeName(2).istGleich("attr3"), L"Der Attribut name ist falsch"); Assert::IsTrue(element->getAttributeValue("attr").istGleich(""), L"Der Wert des Attributes ist falsch"); Assert::IsTrue(element->getAttributeValue("attr2").istGleich(""), L"Der Wert des Attributes ist falsch"); Assert::IsTrue( element->getAttributeValue("attr3").istGleich("true"), L"Der Wert des Attributes ist falsch"); element->release(); } TEST_METHOD (ChildrenElementTest) { Framework::XML::Element* element = new Framework::XML::Element(""); Assert::IsTrue(element->getAttributeCount() == 0, L"Die Anzahl der Attribute stimmt nicht"); Assert::IsTrue(element->getName().istGleich("xml"), L"Der Element Name ist falsch"); Assert::IsTrue(element->getChildCount() == 2, L"Die Anzahl der Kinder ist falsch"); Assert::IsTrue(element->zChild(0)->getAttributeCount() == 0, L"Die Anzahl der Attribute stimmt nicht"); Assert::IsTrue(element->zChild(1)->getAttributeCount() == 0, L"Die Anzahl der Attribute stimmt nicht"); Assert::IsTrue(element->zChild(0)->getName().istGleich("a1"), L"Der Element Name ist falsch"); Assert::IsTrue(element->zChild(1)->getName().istGleich("a2"), L"Der Element Name ist falsch"); element->release(); } TEST_METHOD (WhitespaceTest) { Framework::XML::Element* element = new Framework::XML::Element( " \r\n \t"); Assert::IsTrue(element->getAttributeCount() == 0, L"Die Anzahl der Attribute stimmt nicht"); Assert::IsTrue(element->getName().istGleich("xml"), L"Der Element Name ist falsch"); Assert::IsTrue(element->getChildCount() == 2, L"Die Anzahl der Kinder ist falsch"); Assert::IsTrue(element->zChild(0)->getAttributeCount() == 3, L"Die Anzahl der Attribute stimmt nicht"); Assert::IsTrue(element->zChild(1)->getAttributeCount() == 0, L"Die Anzahl der Attribute stimmt nicht"); Assert::IsTrue(element->zChild(0)->getName().istGleich("a1"), L"Der Element Name ist falsch"); Assert::IsTrue(element->zChild(1)->getName().istGleich("a2"), L"Der Element Name ist falsch"); element->release(); } }; TEST_CLASS (XMLEditorTests) { public: TEST_METHOD (SetAttributeTest) { Framework::XML::Element* element = new Framework::XML::Element( ""); element->selectChildren().setAttribute("x", "true"); Assert::IsTrue(element->getName().istGleich("xml"), L"Der Element Name ist falsch"); Assert::IsTrue(element->getChildCount() == 2, L"Die Anzahl der Kinder ist falsch"); Assert::IsTrue(element->zChild(0)->getAttributeCount() == 3, L"Die Anzahl der Attribute stimmt nicht"); Assert::IsTrue(element->zChild(1)->getAttributeCount() == 1, L"Die Anzahl der Attribute stimmt nicht"); Assert::IsTrue(element->zChild(0)->getName().istGleich("a1"), L"Der Element Name ist falsch"); Assert::IsTrue(element->zChild(1)->getName().istGleich("a2"), L"Der Element Name ist falsch"); Assert::IsTrue( element->zChild(0)->getAttributeValue("x").istGleich("true"), L"Der Attribut wert ist falsch"); Assert::IsTrue( element->zChild(1)->getAttributeValue("x").istGleich("true"), L"Der Attribut wert ist falsch"); element->release(); } TEST_METHOD (RemoveAttributeTest) { Framework::XML::Element* element = new Framework::XML::Element( ""); element->selectChildren().removeAttribute("x"); Assert::IsTrue(element->getName().istGleich("xml"), L"Der Element Name ist falsch"); Assert::IsTrue(element->getChildCount() == 2, L"Die Anzahl der Kinder ist falsch"); Assert::IsTrue(element->zChild(0)->getAttributeCount() == 2, L"Die Anzahl der Attribute stimmt nicht"); Assert::IsTrue(element->zChild(1)->getAttributeCount() == 0, L"Die Anzahl der Attribute stimmt nicht"); Assert::IsTrue(element->zChild(0)->getName().istGleich("a1"), L"Der Element Name ist falsch"); Assert::IsTrue(element->zChild(1)->getName().istGleich("a2"), L"Der Element Name ist falsch"); Assert::IsTrue(element->zChild(0)->hasAttribute("x") == 0, L"Ein entferntes Attibut ist noch vorhanden"); Assert::IsTrue(element->zChild(1)->hasAttribute("x") == 0, L"Ein entferntes Attibut ist noch vorhanden"); element->release(); } TEST_METHOD (AddChildrenTest) { Framework::XML::Element* element = new Framework::XML::Element( ""); element->selectChildren().whereAttributeExists("x").addChild( element->dublicate()); Assert::IsTrue(element->getName().istGleich("xml"), L"Der Element Name ist falsch"); Assert::IsTrue(element->getChildCount() == 2, L"Die Anzahl der Kinder ist falsch"); Assert::IsTrue(element->zChild(0)->getAttributeCount() == 3, L"Die Anzahl der Attribute stimmt nicht"); Assert::IsTrue(element->zChild(1)->getAttributeCount() == 0, L"Die Anzahl der Attribute stimmt nicht"); Assert::IsTrue(element->zChild(0)->getName().istGleich("a1"), L"Der Element Name ist falsch"); Assert::IsTrue(element->zChild(1)->getName().istGleich("a2"), L"Der Element Name ist falsch"); Assert::IsTrue(element->zChild(0)->getChildCount() == 1, L"Anzahl der Kinder ist Falsch"); Assert::IsTrue(element->zChild(1)->getChildCount() == 0, L"Anzahl der Kinder ist Falsch"); element->release(); } TEST_METHOD (RemoveTest) { Framework::XML::Element* element = new Framework::XML::Element( ""); element->selectChildren().whereAttributeExists("x").remove(); Assert::IsTrue(element->getName().istGleich("xml"), L"Der Element Name ist falsch"); Assert::IsTrue(element->getChildCount() == 1, L"Die Anzahl der Kinder ist falsch"); Assert::IsTrue(element->zChild(0)->getAttributeCount() == 0, L"Die Anzahl der Attribute stimmt nicht"); element->release(); } }; } // namespace FrameworkTests