TEST(RepoBSONFactoryTest, MakeCameraNodeTest)
{
	float aspectRatio = 1.0;
	float fCP = 10;
	float nCP = 100;
	float fov = 500;
	repo_vector_t lookAt = { 1.0, 2.0, 3.0 };
	repo_vector_t position = { 3.1, 2.2, 3.5 };
	repo_vector_t up = { 4.1, 12.2, 23.5 };

	std::string name = "CamTest";

	CameraNode camera = RepoBSONFactory::makeCameraNode(aspectRatio, fCP, nCP, fov, lookAt, position, up, name);

	EXPECT_FALSE(camera.isEmpty());
	EXPECT_EQ(aspectRatio, camera.getAspectRatio());
	EXPECT_EQ(fCP, camera.getFarClippingPlane());
	EXPECT_EQ(nCP, camera.getNearClippingPlane());
	EXPECT_EQ(fov, camera.getFieldOfView());

	EXPECT_TRUE(compareVectors(lookAt, camera.getLookAt()));
	EXPECT_TRUE(compareVectors(position, camera.getPosition()));
	EXPECT_TRUE(compareVectors(up, camera.getUp()));

	EXPECT_EQ(name, camera.getName());

	EXPECT_EQ(camera.getTypeAsEnum(), NodeType::CAMERA);
}