/*
 * Copyright (c) Huawei Technologies Co., Ltd. 2025. All rights reserved.
 * You can use this software according to the terms and conditions of the Mulan PSL v2.
 * You may obtain a copy of Mulan PSL v2 at:
 *          http://license.coscl.org.cn/MulanPSL2
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 * See the Mulan PSL v2 for more details.
 */
// #include <gtest/gtest.h>
// #include <memory>
// #include <stdexcept>
// #include "streaming/runtime/tasks/OperatorEventDispatcher.h"
// // Mock classes for testing
// class MockTaskOperatorEventGateway : public TaskOperatorEventGateway {
// public:
//     void SendOperatorEventToCoordinator(OperatorID operatorId, std::shared_ptr<OperatorEvent> event) {};
// };
//
// class MockOperatorEventHandler : public OperatorEventHandler {
// public:
//     virtual ~MockOperatorEventHandler() = default;
//     void handleOperatorEvent(const std::string& eventString)
//     {
//         std::cout << eventString << std::endl;
//     }
// };
//
// // Test GetRegisteredOperators functionality
// TEST(OperatorEventDispatcherTest, GetRegisteredOperators)
// {
//
//     std::shared_ptr<TaskOperatorEventGateway> gateway = std::make_shared<MockTaskOperatorEventGateway>();
//     std::unique_ptr<OperatorEventDispatcherImpl> dispatcher = std::make_unique<OperatorEventDispatcherImpl>(gateway);
//     std::shared_ptr<MockOperatorEventHandler> mockHandler = std::make_shared<MockOperatorEventHandler>();
//     std::shared_ptr<OperatorEvent> event = std::make_shared<OperatorEvent>();
//
//     auto registeredOperators = dispatcher->GetRegisteredOperators();
//     EXPECT_TRUE(registeredOperators.empty());
//
//     OperatorID operatorId1 = OperatorID();
//     OperatorID operatorId2 = OperatorID();
//     OperatorID operatorId3 = OperatorID();
//
//     auto handler1 = std::make_shared<MockOperatorEventHandler>();
//     auto handler2 = std::make_shared<MockOperatorEventHandler>();
//     auto handler3 = std::make_shared<MockOperatorEventHandler>();
//
//     dispatcher->RegisterEventHandler(operatorId1, handler1);
//     dispatcher->RegisterEventHandler(operatorId2, handler2);
//     dispatcher->RegisterEventHandler(operatorId3, handler3);
//
//     auto registeredOperators2 = dispatcher->GetRegisteredOperators();
//
//     EXPECT_EQ(registeredOperators2.size(), 3);
//     EXPECT_TRUE(registeredOperators2.count(operatorId1) > 0);
//     EXPECT_TRUE(registeredOperators2.count(operatorId2) > 0);
//     EXPECT_TRUE(registeredOperators2.count(operatorId3) > 0);
// }