: logger(new error::Logger), ft(new ast::FunctionTable), variableFactory(new ast::test::VariableFactoryMock), builder(logger, ft, variableFactory) { } }; TEST_F(rask_ast_Builder_buildFunctionDecl, 1) { cst::Function cf; cf.name = cst::Identifier::create(Position("xxx", 1, 2), "asia"); cf.type = cst::Identifier::create(Position(), "void"); boost::optional<ast::FunctionDecl> fd = builder.buildFunctionDecl(cf); ASSERT_TRUE(fd); ASSERT_EQ(0u, logger->errors().size()); ast::SharedFunction f = fd->function(); ASSERT_TRUE(ft->getFunction(f->name().value) == f); ASSERT_EQ(cf.name.position, f->name().position); ASSERT_EQ(cf.name.value, f->name().value); } TEST_F(rask_ast_Builder_buildFunctionDecl, 2) { cst::Function cf1; cf1.name = cst::Identifier::create(Position("xxx", 1, 2), "asia"); cf1.type = cst::Identifier::create(Position(), "void"); cst::Function cf2; cf2.name = cst::Identifier::create(Position("xxx", 10, 2), "asia"); cf2.type = cst::Identifier::create(Position(), "void"); builder.buildFunctionDecl(cf1);