| 61 | // --------------------------------------------------------------------------- |
| 62 | |
| 63 | TEST(io, wkt_parsing) { |
| 64 | { |
| 65 | auto n = WKTNode::createFrom("MYNODE[]"); |
| 66 | EXPECT_EQ(n->value(), "MYNODE"); |
| 67 | EXPECT_TRUE(n->children().empty()); |
| 68 | EXPECT_EQ(n->toString(), "MYNODE"); |
| 69 | } |
| 70 | { |
| 71 | auto n = WKTNode::createFrom(" MYNODE [ ] "); |
| 72 | EXPECT_EQ(n->value(), "MYNODE"); |
| 73 | EXPECT_TRUE(n->children().empty()); |
| 74 | } |
| 75 | EXPECT_THROW(WKTNode::createFrom(""), ParsingException); |
| 76 | EXPECT_THROW(WKTNode::createFrom("x"), ParsingException); |
| 77 | EXPECT_THROW(WKTNode::createFrom("x,"), ParsingException); |
| 78 | EXPECT_THROW(WKTNode::createFrom("x["), ParsingException); |
| 79 | EXPECT_THROW(WKTNode::createFrom("["), ParsingException); |
| 80 | |
| 81 | { |
| 82 | auto n = WKTNode::createFrom("MYNODE[\"x\"]"); |
| 83 | EXPECT_EQ(n->value(), "MYNODE"); |
| 84 | ASSERT_EQ(n->children().size(), 1U); |
| 85 | EXPECT_EQ(n->children()[0]->value(), "\"x\""); |
| 86 | EXPECT_EQ(n->toString(), "MYNODE[\"x\"]"); |
| 87 | } |
| 88 | |
| 89 | EXPECT_THROW(WKTNode::createFrom("MYNODE[\"x\""), ParsingException); |
| 90 | |
| 91 | { |
| 92 | auto n = WKTNode::createFrom("MYNODE[ \"x\" ]"); |
| 93 | EXPECT_EQ(n->value(), "MYNODE"); |
| 94 | ASSERT_EQ(n->children().size(), 1U); |
| 95 | EXPECT_EQ(n->children()[0]->value(), "\"x\""); |
| 96 | } |
| 97 | |
| 98 | { |
| 99 | auto n = WKTNode::createFrom("MYNODE[\"x[\",1]"); |
| 100 | EXPECT_EQ(n->value(), "MYNODE"); |
| 101 | ASSERT_EQ(n->children().size(), 2U); |
| 102 | EXPECT_EQ(n->children()[0]->value(), "\"x[\""); |
| 103 | EXPECT_EQ(n->children()[1]->value(), "1"); |
| 104 | EXPECT_EQ(n->toString(), "MYNODE[\"x[\",1]"); |
| 105 | } |
| 106 | |
| 107 | EXPECT_THROW(WKTNode::createFrom("MYNODE[\"x\","), ParsingException); |
| 108 | |
| 109 | { |
| 110 | auto n = WKTNode::createFrom("A[B[y]]"); |
| 111 | EXPECT_EQ(n->value(), "A"); |
| 112 | ASSERT_EQ(n->children().size(), 1U); |
| 113 | EXPECT_EQ(n->children()[0]->value(), "B"); |
| 114 | ASSERT_EQ(n->children()[0]->children().size(), 1U); |
| 115 | EXPECT_EQ(n->children()[0]->children()[0]->value(), "y"); |
| 116 | EXPECT_EQ(n->toString(), "A[B[y]]"); |
| 117 | } |
| 118 | |
| 119 | EXPECT_THROW(WKTNode::createFrom("A[B["), ParsingException); |
| 120 |
nothing calls this directly
no test coverage detected