#pragma once #include "test_framework.hpp" namespace lsp::test { // Facade 接口测试类(Serialize, Deserialize, check, debug) class FacadeTests { public: static void registerTests(TestRunner& runner); private: // ==================== Serialize/Deserialize 测试 ==================== static TestResult testSerializeSimpleStruct(); static TestResult testSerializeComplexStruct(); static TestResult testSerializeLSPAny(); static TestResult testDeserializeSimpleStruct(); static TestResult testDeserializeComplexStruct(); static TestResult testDeserializeInvalidJSON(); static TestResult testSerializeDeserializeRoundtrip(); // ==================== check 命名空间测试 ==================== static TestResult testCheckIsObject(); static TestResult testCheckIsArray(); static TestResult testCheckIsString(); static TestResult testCheckIsNumber(); static TestResult testCheckIsBool(); static TestResult testCheckIsNull(); static TestResult testCheckMultipleTypes(); // ==================== debug 命名空间测试 ==================== static TestResult testDebugGetTypeName(); static TestResult testDebugGetIdStringInt(); static TestResult testDebugGetIdStringString(); }; }