Exemplo n.º 1
0
TEST(RepoBSONTest, GetUUIDFieldArray)
{
	std::vector<repoUUID> uuids;

	size_t size = 10;
	mongo::BSONObjBuilder builder, arrbuilder;

	uuids.reserve(size);
	for (size_t i = 0; i < size; ++i)
	{
		uuids.push_back(generateUUID());
		arrbuilder.appendBinData(std::to_string(i), uuids[i].size(), mongo::bdtUUID, (char*)uuids[i].data);
	}

	builder.appendArray("uuid", arrbuilder.obj());

	RepoBSON bson = builder.obj();

	std::vector<repoUUID> outUUIDS = bson.getUUIDFieldArray("uuid");

	EXPECT_EQ(outUUIDS.size(), uuids.size());
	for (size_t i = 0; i < size; i++)
	{
		EXPECT_EQ(uuids[i], outUUIDS[i]);
	}

	//Shouldn't fail if trying to get a uuid field that doesn't exist
	EXPECT_EQ(0, bson.getUUIDFieldArray("hello").size());
	EXPECT_EQ(0, testBson.getUUIDFieldArray("ice").size());
	EXPECT_EQ(0, emptyBson.getUUIDFieldArray("ice").size());

}