#include #include "DObject.h" #include "Metadata.h" /** * @file DObjectTest.cpp * @brief Unit tests for the DObject class. */ /** * @brief Test suite for the DObject class. */ class DObjectTest : public ::testing::Test { protected: DObject defaultObject; DObject initializedObject; void SetUp() override { // Create a DObject with initial data and metadata DObject initializedObject(std::vector{1.0f, 2.0f, 3.0f, 4.0f}); } }; /** * @test Verify default constructor initializes correctly. */ TEST_F(DObjectTest, DefaultConstructor) { EXPECT_NO_THROW(DObject()); EXPECT_NO_THROW(auto data = defaultObject.getData()); EXPECT_FALSE(defaultObject.isDebuggingEnabled()); } /** * @test Verify constructor initializes with provided data and metadata. */ TEST_F(DObjectTest, ParameterizedConstructor) { DObject obj(std::vector{1, 2, 3}); EXPECT_NO_THROW(obj.getData()); EXPECT_EQ(std::get>(obj.getData()), std::vector({1, 2, 3})); } /** * @test Verify getter and setter for data. */ TEST_F(DObjectTest, DataSetterGetter) { std::vector newData = {3.14, 2.71, 1.61}; EXPECT_NO_THROW(defaultObject.setData(newData)); EXPECT_EQ(std::get>(defaultObject.getData()), newData); } /** * @test Verify enabling and disabling debugging. */ TEST_F(DObjectTest, DebuggingFlag) { EXPECT_FALSE(defaultObject.isDebuggingEnabled()); defaultObject.setDebugging(true); EXPECT_TRUE(defaultObject.isDebuggingEnabled()); defaultObject.setDebugging(false); EXPECT_FALSE(defaultObject.isDebuggingEnabled()); } /** * @test Basic Integration Test */ TEST_F(DObjectTest, IntegrationTest) { float data = 55.86868; DObject obj; obj.setData(data); float newData; newData = std::get(obj.getData()); EXPECT_EQ(data, newData); } // /** // * @test Verify human-readable summary. // */ // TEST_F(DObjectTest, HumanReadableOutput) { // std::ostringstream oss; // oss << initializedObject; // std::string output = oss.str(); // EXPECT_TRUE(output.find("Debugging Enabled: Yes") != std::string::npos); // EXPECT_TRUE(output.find("Metadata: ") != std::string::npos); // EXPECT_TRUE(output.find("Data: ") != std::string::npos); // EXPECT_TRUE(output.find("Plugins Registered: 0") != std::string::npos); // }