TEST(RepoBSONFactoryTest, MakeMaterialNodeTest) { repo_material_t mat_struct; mat_struct.ambient.resize(4); mat_struct.diffuse.resize(4); mat_struct.specular.resize(4); mat_struct.emissive.resize(4); mat_struct.opacity = 0.9; mat_struct.shininess = 1.0; mat_struct.shininessStrength = 0.5; mat_struct.isWireframe = true; mat_struct.isTwoSided = false; std::string name = "MatTest"; MaterialNode material = RepoBSONFactory::makeMaterialNode(mat_struct, name); EXPECT_FALSE(material.isEmpty()); EXPECT_EQ(name, material.getName()); EXPECT_EQ(material.getTypeAsEnum(), NodeType::MATERIAL); auto matOut = material.getMaterialStruct(); compareMaterialStructs(mat_struct, matOut); repo_material_t emptyStruct; //See if it breaks if the vectors in the struct is never filled MaterialNode material2 = RepoBSONFactory::makeMaterialNode(emptyStruct, name); EXPECT_FALSE(material2.isEmpty()); EXPECT_EQ(name, material2.getName()); EXPECT_EQ(material2.getTypeAsEnum(), NodeType::MATERIAL); }