|
|
#include "handler_test.h"
#include "specexamples.h" // IWYU pragma: keep
#include "yaml-cpp/yaml.h" // IWYU pragma: keep
#include "gmock/gmock.h"
#include "gtest/gtest.h"
using ::testing::_;
#define EXPECT_THROW_PARSER_EXCEPTION(statement, message) \
ASSERT_THROW(statement, ParserException); \ try { \ statement; \ } catch (const ParserException& e) { \ EXPECT_EQ(e.msg, message); \ }
namespace YAML { namespace {
TEST_F(HandlerTest, NoEndOfMapFlow) { EXPECT_THROW_PARSER_EXCEPTION(IgnoreParse("---{header: {id: 1"), ErrorMsg::END_OF_MAP_FLOW); }
TEST_F(HandlerTest, PlainScalarStartingWithQuestionMark) { EXPECT_CALL(handler, OnDocumentStart(_)); EXPECT_CALL(handler, OnMapStart(_, "?", 0, EmitterStyle::Block)); EXPECT_CALL(handler, OnScalar(_, "?", 0, "foo")); EXPECT_CALL(handler, OnScalar(_, "?", 0, "?bar")); EXPECT_CALL(handler, OnMapEnd()); EXPECT_CALL(handler, OnDocumentEnd()); Parse("foo: ?bar"); }
TEST_F(HandlerTest, NullStringScalar) { EXPECT_CALL(handler, OnDocumentStart(_)); EXPECT_CALL(handler, OnMapStart(_, "?", 0, EmitterStyle::Block)); EXPECT_CALL(handler, OnScalar(_, "?", 0, "foo")); EXPECT_CALL(handler, OnNull(_, 0)); EXPECT_CALL(handler, OnMapEnd()); EXPECT_CALL(handler, OnDocumentEnd()); Parse("foo: null"); }
TEST_F(HandlerTest, CommentOnNewlineOfMapValueWithNoSpaces) { EXPECT_CALL(handler, OnDocumentStart(_)); EXPECT_CALL(handler, OnMapStart(_, "?", 0, EmitterStyle::Block)); EXPECT_CALL(handler, OnScalar(_, "?", 0, "key")); EXPECT_CALL(handler, OnScalar(_, "?", 0, "value")); EXPECT_CALL(handler, OnMapEnd()); EXPECT_CALL(handler, OnDocumentEnd()); Parse("key: value\n# comment"); }
TEST_F(HandlerTest, CommentOnNewlineOfMapValueWithOneSpace) { EXPECT_CALL(handler, OnDocumentStart(_)); EXPECT_CALL(handler, OnMapStart(_, "?", 0, EmitterStyle::Block)); EXPECT_CALL(handler, OnScalar(_, "?", 0, "key")); EXPECT_CALL(handler, OnScalar(_, "?", 0, "value")); EXPECT_CALL(handler, OnMapEnd()); EXPECT_CALL(handler, OnDocumentEnd()); Parse("key: value\n # comment"); }
TEST_F(HandlerTest, CommentOnNewlineOfMapValueWithManySpace) { EXPECT_CALL(handler, OnDocumentStart(_)); EXPECT_CALL(handler, OnMapStart(_, "?", 0, EmitterStyle::Block)); EXPECT_CALL(handler, OnScalar(_, "?", 0, "key")); EXPECT_CALL(handler, OnScalar(_, "?", 0, "value")); EXPECT_CALL(handler, OnMapEnd()); EXPECT_CALL(handler, OnDocumentEnd()); Parse("key: value\n # comment"); } } // namespace
} // namespace YAML
|