#include <gtest/gtest.h>
#include <gtest/internal/gtest-port.h>
#include <string>
#include <memory>
#include "py_step_manager.h"
#include "record_info.h"
#include "config_info.h"
using namespace MemScope;
TEST(PyStepManagerTest, do_msmemscope_step_expect_success) {
ClientId clientId = 0;
std::shared_ptr<SystemEvent> eventStep1 = std::make_shared<SystemEvent>();
eventStep1->eventType = EventBaseType::SYSTEM;
eventStep1->eventSubType = EventSubType::STEP;
eventStep1->name = "1";
std::shared_ptr<SystemEvent> eventStep2 = std::make_shared<SystemEvent>();
eventStep2->eventType = EventBaseType::SYSTEM;
eventStep2->eventSubType = EventSubType::STEP;
eventStep2->name = "2";
std::shared_ptr<SystemEvent> eventStep3 = std::make_shared<SystemEvent>();
eventStep3->eventType = EventBaseType::SYSTEM;
eventStep3->eventSubType = EventSubType::STEP;
eventStep3->name = "3";
PyStepManager::Instance().RecordPyStep(clientId, eventStep1);
PyStepManager::Instance().RecordPyStep(clientId, eventStep2);
PyStepManager::Instance().RecordPyStep(clientId, eventStep3);
}
TEST(PyStepManagerTest, do_analyzer_register_and_unregister_expect_success) {
PyStepManager::Instance().Subscribe(PyStepEventSubscriber::STEP_INNER_ANALYZER, nullptr);
PyStepManager::Instance().UnSubscribe(PyStepEventSubscriber::STEP_INNER_ANALYZER);
}
TEST(PyStepManagerTest, do_analyzer_notify_expect_success) {
PyStepManager::Instance().Subscribe(PyStepEventSubscriber::STEP_INNER_ANALYZER, nullptr);
ClientId clientId = 0;
std::shared_ptr<SystemEvent> eventStep1 = std::make_shared<SystemEvent>();
eventStep1->eventType = EventBaseType::SYSTEM;
eventStep1->eventSubType = EventSubType::STEP;
eventStep1->name = "1";
PyStepManager::Instance().RecordPyStep(clientId, eventStep1);
PyStepManager::Instance().UnSubscribe(PyStepEventSubscriber::STEP_INNER_ANALYZER);
}