in hessian2/basic_codec/list_codec_unittests.cc [47:124]
std::unique_ptr<ClassInstanceObject> GenerateTypedListTestObject() {
Object::ClassInstance o;
o.def_ = std::make_shared<Object::RawDefinition>();
o.def_->type_ = "test.TypedListTest";
o.def_->field_names_.emplace_back("a");
o.def_->field_names_.emplace_back("list");
o.def_->field_names_.emplace_back("list1");
std::vector<Object::ClassInstance> cls;
for (int i = 0; i < 5; i++) {
Object::ClassInstance c;
c.def_ = std::make_shared<Object::RawDefinition>();
c.def_->type_ = "com.caucho.hessian.test.A0";
cls.emplace_back(std::move(c));
}
for (int i = 0; i < 4; i++) {
Object::ClassInstance c;
c.def_ = std::make_shared<Object::RawDefinition>();
c.def_->type_ = "com.caucho.hessian.test.A1";
cls.emplace_back(std::move(c));
}
{
Object::TypedList o1;
o1.type_name_ = "[com.caucho.hessian.test.A0";
o1.values_.emplace_back(
std::make_unique<ClassInstanceObject>(std::move(cls[0])));
o1.values_.emplace_back(
std::make_unique<ClassInstanceObject>(std::move(cls[1])));
auto object1 = std::make_unique<TypedListObject>(std::move(o1));
Object::TypedList o2;
o2.type_name_ = "[com.caucho.hessian.test.A0";
o2.values_.emplace_back(
std::make_unique<ClassInstanceObject>(std::move(cls[2])));
o2.values_.emplace_back(
std::make_unique<ClassInstanceObject>(std::move(cls[3])));
auto object2 = std::make_unique<TypedListObject>(std::move(o2));
o.data_.emplace_back(
std::make_unique<ClassInstanceObject>(std::move(cls[4])));
Object::TypedList o3;
o3.type_name_ = "[[com.caucho.hessian.test.A0";
o3.values_.emplace_back(std::move(object1));
o3.values_.emplace_back(std::move(object2));
auto object3 = std::make_unique<TypedListObject>(std::move(o3));
o.data_.emplace_back(std::move(object3));
}
{
Object::TypedList o1;
o1.type_name_ = "[com.caucho.hessian.test.A1";
o1.values_.emplace_back(
std::make_unique<ClassInstanceObject>(std::move(cls[5])));
o1.values_.emplace_back(
std::make_unique<ClassInstanceObject>(std::move(cls[6])));
auto object1 = std::make_unique<TypedListObject>(std::move(o1));
Object::TypedList o2;
o2.type_name_ = "[com.caucho.hessian.test.A1";
o2.values_.emplace_back(
std::make_unique<ClassInstanceObject>(std::move(cls[7])));
o2.values_.emplace_back(
std::make_unique<ClassInstanceObject>(std::move(cls[8])));
auto object2 = std::make_unique<TypedListObject>(std::move(o2));
Object::TypedList o3;
o3.type_name_ = "[[com.caucho.hessian.test.A1";
o3.values_.emplace_back(std::move(object1));
o3.values_.emplace_back(std::move(object2));
auto object3 = std::make_unique<TypedListObject>(std::move(o3));
o.data_.emplace_back(std::move(object3));
}
auto class_instance = std::make_unique<ClassInstanceObject>(std::move(o));
return class_instance;
}