yaml-cpp

FORK: A YAML parser and emitter in C++
git clone https://git.neptards.moe/neptards/yaml-cpp.git
Log | Files | Refs | README | LICENSE

handler_test.cpp (2706B)


      1 #include "handler_test.h"
      2 #include "specexamples.h"   // IWYU pragma: keep
      3 #include "yaml-cpp/yaml.h"  // IWYU pragma: keep
      4 
      5 #include "gmock/gmock.h"
      6 #include "gtest/gtest.h"
      7 
      8 using ::testing::_;
      9 
     10 #define EXPECT_THROW_PARSER_EXCEPTION(statement, message) \
     11   ASSERT_THROW(statement, ParserException);               \
     12   try {                                                   \
     13     statement;                                            \
     14   } catch (const ParserException& e) {                    \
     15     EXPECT_EQ(e.msg, message);                            \
     16   }
     17 
     18 namespace YAML {
     19 namespace {
     20 
     21 TEST_F(HandlerTest, NoEndOfMapFlow) {
     22   EXPECT_THROW_PARSER_EXCEPTION(IgnoreParse("---{header: {id: 1"),
     23                                 ErrorMsg::END_OF_MAP_FLOW);
     24 }
     25 
     26 TEST_F(HandlerTest, PlainScalarStartingWithQuestionMark) {
     27   EXPECT_CALL(handler, OnDocumentStart(_));
     28   EXPECT_CALL(handler, OnMapStart(_, "?", 0, EmitterStyle::Block));
     29   EXPECT_CALL(handler, OnScalar(_, "?", 0, "foo"));
     30   EXPECT_CALL(handler, OnScalar(_, "?", 0, "?bar"));
     31   EXPECT_CALL(handler, OnMapEnd());
     32   EXPECT_CALL(handler, OnDocumentEnd());
     33   Parse("foo: ?bar");
     34 }
     35 
     36 TEST_F(HandlerTest, NullStringScalar) {
     37   EXPECT_CALL(handler, OnDocumentStart(_));
     38   EXPECT_CALL(handler, OnMapStart(_, "?", 0, EmitterStyle::Block));
     39   EXPECT_CALL(handler, OnScalar(_, "?", 0, "foo"));
     40   EXPECT_CALL(handler, OnNull(_, 0));
     41   EXPECT_CALL(handler, OnMapEnd());
     42   EXPECT_CALL(handler, OnDocumentEnd());
     43   Parse("foo: null");
     44 }
     45 
     46 TEST_F(HandlerTest, CommentOnNewlineOfMapValueWithNoSpaces) {
     47   EXPECT_CALL(handler, OnDocumentStart(_));
     48   EXPECT_CALL(handler, OnMapStart(_, "?", 0, EmitterStyle::Block));
     49   EXPECT_CALL(handler, OnScalar(_, "?", 0, "key"));
     50   EXPECT_CALL(handler, OnScalar(_, "?", 0, "value"));
     51   EXPECT_CALL(handler, OnMapEnd());
     52   EXPECT_CALL(handler, OnDocumentEnd());
     53   Parse("key: value\n# comment");
     54 }
     55 
     56 TEST_F(HandlerTest, CommentOnNewlineOfMapValueWithOneSpace) {
     57   EXPECT_CALL(handler, OnDocumentStart(_));
     58   EXPECT_CALL(handler, OnMapStart(_, "?", 0, EmitterStyle::Block));
     59   EXPECT_CALL(handler, OnScalar(_, "?", 0, "key"));
     60   EXPECT_CALL(handler, OnScalar(_, "?", 0, "value"));
     61   EXPECT_CALL(handler, OnMapEnd());
     62   EXPECT_CALL(handler, OnDocumentEnd());
     63   Parse("key: value\n # comment");
     64 }
     65 
     66 TEST_F(HandlerTest, CommentOnNewlineOfMapValueWithManySpace) {
     67   EXPECT_CALL(handler, OnDocumentStart(_));
     68   EXPECT_CALL(handler, OnMapStart(_, "?", 0, EmitterStyle::Block));
     69   EXPECT_CALL(handler, OnScalar(_, "?", 0, "key"));
     70   EXPECT_CALL(handler, OnScalar(_, "?", 0, "value"));
     71   EXPECT_CALL(handler, OnMapEnd());
     72   EXPECT_CALL(handler, OnDocumentEnd());
     73   Parse("key: value\n    # comment");
     74 }
     75 }  // namespace
     76 }  // namespace YAML