#include #include "IDatasetChartStrategy.hpp" // geopro::controller(控制器层) using namespace geopro::controller; namespace { struct Fake : IDatasetChartStrategy { std::string ddCode() const override { return "dd_inversion_data"; } bool hasGridPhase() const override { return true; } }; } TEST(ChartStrategyRegistry, FindsRegisteredAndDegradesUnknown) { ChartStrategyRegistry reg; reg.add(std::make_unique()); EXPECT_TRUE(reg.supports("dd_inversion_data")); EXPECT_NE(reg.find("dd_inversion_data"), nullptr); EXPECT_FALSE(reg.supports("dd_unknown")); EXPECT_EQ(reg.find("dd_unknown"), nullptr); } TEST(ChartStrategyRegistry, ReportsHasGridPhase) { ChartStrategyRegistry reg; reg.add(std::make_unique()); auto* s = reg.find("dd_inversion_data"); ASSERT_NE(s, nullptr); EXPECT_TRUE(s->hasGridPhase()); }