From: starg Date: Fri, 22 Jul 2016 12:14:43 +0000 (+0900) Subject: 名前の重複をチェックするテストを追加 X-Git-Tag: v0.1.827.0~111 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=0602cff17b666d615c6940152eefa4f357722ad5;p=yamml%2Fyamml-git.git 名前の重複をチェックするテストを追加 --- diff --git a/test/parser/parsertest.cpp b/test/parser/parsertest.cpp index e2868b8..995b6b9 100644 --- a/test/parser/parsertest.cpp +++ b/test/parser/parsertest.cpp @@ -4,6 +4,9 @@ #include #include +#include +#include +#include #include using namespace YAMML; @@ -195,4 +198,39 @@ composition Main BOOST_CHECK_EQUAL(arg.Value.Location.Column, 9); } +BOOST_AUTO_TEST_CASE(DuplicatedCompositionName) +{ + std::string sourceName = "test.ym1"; + std::string source = R"( + +composition Foo +{ +} + +composition Foo +{ +} + +)"; + + YAMMLParser parser(sourceName, source); + + bool result = parser.Parse(); + BOOST_REQUIRE(!result); + + auto messages = parser.GetMessages(); + BOOST_REQUIRE(messages.size() == 1); + + auto msg = messages.at(0); + + BOOST_CHECK(msg.Kind == Message::MessageKind::Error); + BOOST_CHECK(msg.ID == Message::MessageID::DuplicatedCompositionName); + BOOST_CHECK_EQUAL(msg.SourceName, sourceName); + BOOST_CHECK_EQUAL(msg.Location.Line, 7); + BOOST_CHECK_EQUAL(msg.Location.Column, 0); + + BOOST_REQUIRE_EQUAL(msg.Arguments.size(), 1); + BOOST_CHECK_EQUAL(msg.Arguments.at(0), "Foo"); +} + BOOST_AUTO_TEST_SUITE_END()