handler_test.cpp 1.45 KB
Newer Older
1
2
#include "handler_test.h"
#include "specexamples.h"   // IWYU pragma: keep
3
4
5
6
7
8
9
10
11
12
13
#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;                                            \
14
  } catch (const ParserException& e) {                    \
15
16
17
18
19
20
21
    EXPECT_EQ(e.msg, message);                            \
  }

namespace YAML {
namespace {

TEST_F(HandlerTest, NoEndOfMapFlow) {
Jesse Beder's avatar
Jesse Beder committed
22
  EXPECT_THROW_PARSER_EXCEPTION(IgnoreParse("---{header: {id: 1"),
23
24
25
26
27
                                ErrorMsg::END_OF_MAP_FLOW);
}

TEST_F(HandlerTest, PlainScalarStartingWithQuestionMark) {
  EXPECT_CALL(handler, OnDocumentStart(_));
28
  EXPECT_CALL(handler, OnMapStart(_, "?", 0, EmitterStyle::Block));
29
30
31
32
33
34
35
36
37
  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(_));
38
  EXPECT_CALL(handler, OnMapStart(_, "?", 0, EmitterStyle::Block));
39
40
41
42
43
44
45
46
  EXPECT_CALL(handler, OnScalar(_, "?", 0, "foo"));
  EXPECT_CALL(handler, OnNull(_, 0));
  EXPECT_CALL(handler, OnMapEnd());
  EXPECT_CALL(handler, OnDocumentEnd());
  Parse("foo: null");
}
}
}