MCPcopy Create free account
hub / github.com/codereader/DarkRadiant / expectExampleFileSyntax

Function expectExampleFileSyntax

test/DefBlockSyntaxParser.cpp:307–343  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

305)";
306
307 void expectExampleFileSyntax(const parser::DefSyntaxTree::Ptr& syntaxTree)
308 {
309 EXPECT_EQ(syntaxTree->getRoot()->getChildren().size(), 8) << "Expected 8 nodes";
310
311 EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(0)->getType(), parser::DefSyntaxNode::Type::Comment);
312 EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(0)->getString(), "// Some comment");
313
314 EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(1)->getType(), parser::DefSyntaxNode::Type::Whitespace);
315 EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(1)->getString(), "\n\n");
316
317 EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(2)->getType(), parser::DefSyntaxNode::Type::DeclBlock);
318 auto block = std::static_pointer_cast<parser::DefBlockSyntax>(syntaxTree->getRoot()->getChildren().at(2));
319 EXPECT_FALSE(block->getType());
320 EXPECT_EQ(block->getName()->getString(), "decl/exporttest/guisurf1");
321 EXPECT_EQ(block->getBlockContents(), "\n guiSurf guis/lvlmaps/genericmap.gui\n");
322
323 EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(3)->getType(), parser::DefSyntaxNode::Type::Whitespace);
324 EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(3)->getString(), "\n\n");
325
326 EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(4)->getType(), parser::DefSyntaxNode::Type::DeclBlock);
327 block = std::static_pointer_cast<parser::DefBlockSyntax>(syntaxTree->getRoot()->getChildren().at(4));
328 EXPECT_EQ(block->getType()->getString(), "testdecl2");
329 EXPECT_EQ(block->getName()->getString(), "decltable2");
330 EXPECT_EQ(block->getBlockContents(), " { 0, 0, 0, 0, 1, 1 } ");
331
332 EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(5)->getType(), parser::DefSyntaxNode::Type::Whitespace);
333 EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(5)->getString(), "\n");
334
335 EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(6)->getType(), parser::DefSyntaxNode::Type::DeclBlock);
336 block = std::static_pointer_cast<parser::DefBlockSyntax>(syntaxTree->getRoot()->getChildren().at(6));
337 EXPECT_EQ(block->getType()->getString(), "testdecl2");
338 EXPECT_EQ(block->getName()->getString(), "decltable3");
339 EXPECT_EQ(block->getBlockContents(), " { 0, 0, 0, 0, 1, 1 } ");
340
341 EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(7)->getType(), parser::DefSyntaxNode::Type::Whitespace);
342 EXPECT_EQ(syntaxTree->getRoot()->getChildren().at(7)->getString(), "\n");
343 }
344}
345
346// Parse the example decl file contents from a string and check the syntax tree contents

Callers 1

TEST_FFunction · 0.85

Calls 7

getChildrenMethod · 0.80
getBlockContentsMethod · 0.80
sizeMethod · 0.45
getRootMethod · 0.45
getTypeMethod · 0.45
getStringMethod · 0.45
getNameMethod · 0.45

Tested by

no test coverage detected