12#include <gmock/gmock.h>
13#include <gtest/gtest.h>
15#include "mock/daqifMock.hpp"
21using namespace ::testing;
54 EXPECT_CALL(
m_mal, getSubscriberUnsafe(_,
"daqif_InternalDaqStatus", _, _, _))
56 EXPECT_CALL(
m_mal, getSubscriberUnsafe(_,
"daqif_StorageStatus", _, _, _))
84 boost::promise<std::string> reply;
86 EXPECT_CALL(*m_daqif_client, GetInternalDaqStatus(
"id"))
87 .WillOnce(Return(ByMove(reply.get_future())));
90 m_client->StartMonitorStatus(
"id");
93 reply.set_value(m_status_1);
102 boost::promise<std::string> reply1;
103 boost::promise<std::string> reply2;
107 EXPECT_CALL(*m_daqif_client, GetInternalDaqStatus(
"id"))
108 .WillOnce(Return(ByMove(reply1.get_future())));
111 m_client->StartMonitorStatus(
"id");
116 EXPECT_CALL(*m_daqif_client, GetInternalDaqStatus(
"id"))
117 .WillOnce(Return(ByMove(reply2.get_future())));
118 reply1.set_exception(elt::mal::TimeoutException(
"timeout"));
121 reply2.set_value(m_status_1);
boost::asio::io_context m_io_ctx
std::optional< DpmClientImpl > m_client
SubscriberMock< daqif::StorageStatus > * m_storage_subscriber
SubscriberMock< daqif::InternalDaqStatus > * m_status_subscriber
DpmDaqControlAsyncMock * m_daqif_client
Declares JSON support for serialization.
TEST_F(TestDpmClient, StartMonitoringSendsRequestAndReceivesReply)
std::chrono::seconds timeout
std::chrono::seconds status_retry_interval
Connection parameters for DPM.
Non observable status object that keeps stores status of data acquisition.
std::function< void(elt::mal::ps::Subscriber< T > &subscriber, const elt::mal::ps::DataEvent< T > &event)> DataEventListener