From 1312b9d2acd494cb07b5fe236791aa26431936f2 Mon Sep 17 00:00:00 2001 From: wmayer Date: Mon, 9 Oct 2023 12:30:10 +0200 Subject: [PATCH] Tests: add unit tests for XMLReader::readNextElement() --- tests/src/Base/Reader.cpp | 53 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/tests/src/Base/Reader.cpp b/tests/src/Base/Reader.cpp index 737b7fb2d6..2ddf59dc48 100644 --- a/tests/src/Base/Reader.cpp +++ b/tests/src/Base/Reader.cpp @@ -198,7 +198,6 @@ TEST_F(ReaderTest, readDataLargerThanBufferSecondRead) EXPECT_EQ(bufferSize, bytesRead); } - TEST_F(ReaderTest, readDataNotStarted) { // Arrange @@ -214,3 +213,55 @@ TEST_F(ReaderTest, readDataNotStarted) // Assert EXPECT_EQ(-1, bytesRead); // Because we didn't call beginCharStream } + +TEST_F(ReaderTest, readNextStartElement) +{ + auto xmlBody = R"( +Node1 +Node2 +)"; + + givenDataAsXMLStream(xmlBody); + + // start of document + Reader()->readElement("document"); + EXPECT_STREQ(Reader()->localName(), "document"); + + // next element + EXPECT_TRUE(Reader()->readNextElement()); + EXPECT_STREQ(Reader()->localName(), "node1"); + EXPECT_STREQ(Reader()->getAttribute("attr"), "1"); + Reader()->readEndElement("node1"); + EXPECT_TRUE(Reader()->isEndOfElement()); + + // next element + EXPECT_TRUE(Reader()->readNextElement()); + EXPECT_STREQ(Reader()->localName(), "node2"); + EXPECT_STREQ(Reader()->getAttribute("attr"), "2"); + Reader()->readEndElement("node2"); + EXPECT_TRUE(Reader()->isEndOfElement()); +} + +TEST_F(ReaderTest, readNextStartEndElement) +{ + auto xmlBody = R"( + + +)"; + + givenDataAsXMLStream(xmlBody); + + // start of document + Reader()->readElement("document"); + EXPECT_STREQ(Reader()->localName(), "document"); + + // next element + EXPECT_TRUE(Reader()->readNextElement()); + EXPECT_STREQ(Reader()->localName(), "node1"); + EXPECT_STREQ(Reader()->getAttribute("attr"), "1"); + + // next element + EXPECT_TRUE(Reader()->readNextElement()); + EXPECT_STREQ(Reader()->localName(), "node2"); + EXPECT_STREQ(Reader()->getAttribute("attr"), "2"); +}