Exemple #1
0
  void serializeDeserialize(TestUnion val) {
    auto strBuffer = std::make_shared<TMemoryBuffer>();
    auto protocol = std::make_shared<TBinaryProtocol>(strBuffer);

    val.write(protocol.get());
    string serialized = strBuffer->getBufferAsString();

    TestUnion out;
    out.read(protocol.get());
    EXPECT_EQ(val, out);
  }
Exemple #2
0
TEST_F(UnionTestFixture, SerdeTest) {
  TestUnion u;
  u.set_i32_field(100);
  serializeDeserialize(u);

  u.set_other_i32_field(200);
  serializeDeserialize(u);

  u.set_string_field("str");
  serializeDeserialize(u);

  u.set_struct_list(std::vector<RandomStuff>());
  serializeDeserialize(u);
}
Exemple #3
0
TEST_F(UnionTestFixture, FromJson) {
  TestUnion u;

  string j = "{\"i32_field\": 100}";
  u.readFromJson(j.c_str());
  EXPECT_EQ(TestUnion::Type::i32_field, u.getType());
  EXPECT_EQ(100, u.get_i32_field());

  j = "{\"string_field\": \"str\"}";
  u.readFromJson(j.c_str());
  EXPECT_EQ(TestUnion::Type::string_field, u.getType());
  EXPECT_EQ("str", u.get_string_field());

  j = "{\"random\": 123765}";
  u.readFromJson(j.c_str());
  EXPECT_EQ(TestUnion::Type::__EMPTY__, u.getType());
}
Exemple #4
0
TEST_F(UnionTestFixture, Constructors) {
  auto f = [] (const TestUnion& u) {
    EXPECT_EQ(TestUnion::Type::i32_field, u.getType());
    EXPECT_EQ(100, u.get_i32_field());
  };

  TestUnion u;
  u.set_i32_field(100);
  f(u);

  auto v1(u);
  f(v1);

  auto v2 = u;
  f(v2);

  auto v3(std::move(u));
  f(v3);

  auto v4 = std::move(v2);
  f(v4);
}
Exemple #5
0
TEST_F(UnionTestFixture, ChangeType) {
  TestUnion u;
  u.set_i32_field(100);
  EXPECT_EQ(TestUnion::Type::i32_field, u.getType());
  EXPECT_EQ(100, u.get_i32_field());

  u.set_other_i32_field(200);
  EXPECT_EQ(TestUnion::Type::other_i32_field, u.getType());
  EXPECT_EQ(200, u.get_other_i32_field());

  u.set_string_field("str");
  EXPECT_EQ(TestUnion::Type::string_field, u.getType());
  EXPECT_EQ("str", u.get_string_field());

  u.set_struct_list(std::vector<RandomStuff>());
  EXPECT_EQ(TestUnion::Type::struct_list, u.getType());
  EXPECT_EQ(std::vector<RandomStuff>(), u.get_struct_list());
}