Compare commits
No commits in common. "test_20260608_161441" and "main" have entirely different histories.
test_20260
...
main
|
|
@ -1,25 +0,0 @@
|
||||||
cmake_minimum_required(VERSION 3.10.0)
|
|
||||||
project(test_presentation)
|
|
||||||
include(FetchContent)
|
|
||||||
if (MSVC)
|
|
||||||
add_compile_options(/utf-8)
|
|
||||||
endif()
|
|
||||||
FetchContent_Declare(
|
|
||||||
googletest
|
|
||||||
URL https://github.com/google/googletest/archive/03597a01ee50ed33e9dfd640b249b4be3799d395.zip
|
|
||||||
)
|
|
||||||
# For Windows: Prevent overriding the parent project's compiler/linker settings
|
|
||||||
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
|
||||||
FetchContent_MakeAvailable(googletest)
|
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
||||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../include)
|
|
||||||
|
|
||||||
include(CTest)
|
|
||||||
enable_testing()
|
|
||||||
|
|
||||||
add_executable(test_presentation test_app.cpp ../src/app.cpp)
|
|
||||||
|
|
||||||
target_link_libraries(test_presentation gtest gmock gtest_main)
|
|
||||||
include(GoogleTest)
|
|
||||||
gtest_discover_tests(test_presentation)
|
|
||||||
|
|
@ -1,117 +0,0 @@
|
||||||
#include <gtest/gtest.h>
|
|
||||||
#include "app.hpp"
|
|
||||||
#include <vector>
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
namespace ocpm {
|
|
||||||
|
|
||||||
TEST(PlanManagerTest, testQueryPlansNormalInput) {
|
|
||||||
PlanManager manager;
|
|
||||||
manager.loadSampleData();
|
|
||||||
PlanQueryRequest req;
|
|
||||||
req.status_filter = -1;
|
|
||||||
req.priority_min = 0;
|
|
||||||
req.keyword = "";
|
|
||||||
req.page = 1;
|
|
||||||
req.page_size = 10;
|
|
||||||
SortParam sort{"priority", SortDirection::DESC};
|
|
||||||
auto result = manager.queryPlans(req, sort);
|
|
||||||
EXPECT_EQ(result.size(), 5);
|
|
||||||
EXPECT_EQ(result[0].priority, 95);
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(PlanManagerTest, testQueryPlansBoundaryPagination) {
|
|
||||||
PlanManager manager;
|
|
||||||
manager.loadSampleData();
|
|
||||||
PlanQueryRequest req;
|
|
||||||
req.page = 3;
|
|
||||||
req.page_size = 2;
|
|
||||||
auto result = manager.queryPlans(req, SortParam{});
|
|
||||||
EXPECT_TRUE(result.empty());
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(PlanManagerTest, testGetPlanDetailValidId) {
|
|
||||||
PlanManager manager;
|
|
||||||
manager.loadSampleData();
|
|
||||||
auto plan = manager.getPlanDetail("PLAN-001");
|
|
||||||
EXPECT_EQ(plan.plan_name, "突击行动-甲");
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(PlanManagerTest, testGetPlanDetailInvalidId) {
|
|
||||||
PlanManager manager;
|
|
||||||
manager.loadSampleData();
|
|
||||||
EXPECT_THROW(manager.getPlanDetail("INVALID"), std::invalid_argument);
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(PlanManagerTest, testComparePlansIdentical) {
|
|
||||||
PlanManager manager;
|
|
||||||
manager.loadSampleData();
|
|
||||||
auto diffs = manager.comparePlans("PLAN-001", "PLAN-001");
|
|
||||||
EXPECT_EQ(diffs.size(), 1);
|
|
||||||
EXPECT_EQ(diffs[0], "(no differences)");
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(PlanManagerTest, testReconstructSuccess) {
|
|
||||||
PlanManager manager;
|
|
||||||
manager.loadSampleData();
|
|
||||||
ReconstructCommand cmd{"PLAN-001", {"mod1", "mod2"}};
|
|
||||||
auto result = manager.reconstruct(cmd);
|
|
||||||
EXPECT_TRUE(result.success);
|
|
||||||
EXPECT_EQ(result.new_version, "PLAN-001-v2");
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(PlanManagerTest, testReconstructFailure) {
|
|
||||||
PlanManager manager;
|
|
||||||
ReconstructCommand cmd{"NONEXIST", {}};
|
|
||||||
auto result = manager.reconstruct(cmd);
|
|
||||||
EXPECT_FALSE(result.success);
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(PlanManagerTest, testLoadSampleData) {
|
|
||||||
PlanManager manager;
|
|
||||||
manager.loadSampleData();
|
|
||||||
EXPECT_NO_THROW(manager.getPlanDetail("PLAN-005"));
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(DistributedPlanManagerTest, testAddRemoveNode) {
|
|
||||||
DistributedPlanManager mgr;
|
|
||||||
TopoNode node{"N1", "Test", 0, 0};
|
|
||||||
mgr.addNode(node);
|
|
||||||
mgr.removeNode("N1");
|
|
||||||
EXPECT_TRUE(mgr.isConnected());
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(DistributedPlanManagerTest, testIsConnectedGraph) {
|
|
||||||
DistributedPlanManager mgr;
|
|
||||||
mgr.loadSampleData();
|
|
||||||
EXPECT_TRUE(mgr.isConnected());
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(DispatchManagerTest, testDispatchPlanValidAssets) {
|
|
||||||
DispatchManager mgr;
|
|
||||||
mgr.loadSampleData();
|
|
||||||
int count = mgr.dispatchPlan("P1", {"ASSET-001", "ASSET-004"});
|
|
||||||
EXPECT_EQ(count, 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(DispatchManagerTest, testGetAssetStatusOffline) {
|
|
||||||
DispatchManager mgr;
|
|
||||||
EXPECT_EQ(mgr.getAssetStatus("UNKNOWN"), AssetStatusCode::OFFLINE);
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(DispatchManagerTest, testGetAlertsFiltered) {
|
|
||||||
DispatchManager mgr;
|
|
||||||
mgr.loadSampleData();
|
|
||||||
AlertLevel filter = AlertLevel::ERROR;
|
|
||||||
auto alerts = mgr.getAlerts(&filter);
|
|
||||||
EXPECT_EQ(alerts.size(), 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(DispatchManagerTest, testClearAlerts) {
|
|
||||||
DispatchManager mgr;
|
|
||||||
mgr.loadSampleData();
|
|
||||||
mgr.clearAlerts();
|
|
||||||
EXPECT_TRUE(mgr.getAlerts().empty());
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace ocpm
|
|
||||||
Loading…
Reference in New Issue