yaml-cpp/test/integration/handler_test.cpp

48 lines
1.5 KiB
C++
Raw Normal View History

#include "handler_test.h"
#include "specexamples.h" // IWYU pragma: keep
2014-03-23 23:47:30 +04:00
#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) {
2014-03-23 23:50:58 +04:00
EXPECT_THROW_PARSER_EXCEPTION(IgnoreParse("---{header: {id: 1"),
2014-03-23 23:47:30 +04:00
ErrorMsg::END_OF_MAP_FLOW);
}
TEST_F(HandlerTest, PlainScalarStartingWithQuestionMark) {
EXPECT_CALL(handler, OnDocumentStart(_));
EXPECT_CALL(handler, OnMapStart(_, "?", 0));
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));
EXPECT_CALL(handler, OnScalar(_, "?", 0, "foo"));
EXPECT_CALL(handler, OnNull(_, 0));
EXPECT_CALL(handler, OnMapEnd());
EXPECT_CALL(handler, OnDocumentEnd());
Parse("foo: null");
}
}
}