10#include <gmock/gmock.h>
11#include <gtest/gtest.h>
12#include <log4cplus/logger.h>
23using namespace ::testing;
31 boost::promise<std::shared_ptr<metadaqif::DaqReply>> reply_promise;
32 auto reply_mock = std::make_shared<DaqReplyMock>();
34 EXPECT_CALL(*m_meta_rr_client, AbortDaq(_))
35 .WillOnce(Return(ByMove(reply_promise.get_future())));
37 boost::promise<std::shared_ptr<metadaqif::DaqReply>> reply_promise2;
38 auto reply_mock2 = std::make_shared<DaqReplyMock>();
39 EXPECT_CALL(*m_meta_rr_client2, AbortDaq(_))
40 .WillOnce(Return(ByMove(reply_promise2.get_future())));
42 boost::promise<std::string> prim_promise_1;
43 boost::promise<std::string> prim_promise_2;
44 EXPECT_CALL(*m_prim_rr_client, RecAbort())
45 .WillOnce(Return(ByMove(prim_promise_1.get_future())));
46 EXPECT_CALL(*m_prim_rr_client2, RecAbort())
47 .WillOnce(Return(ByMove(prim_promise_2.get_future())));
50 auto fut = op::InitiateOperation<op::AbortAsync>(m_executor, ErrorPolicy::Strict, MakeParams());
53 reply_promise.set_value(reply_mock);
54 reply_promise2.set_value(reply_mock);
55 prim_promise_1.set_value(
"OK");
56 prim_promise_2.set_value(
"OK");
62 ASSERT_FALSE(fut.has_exception()) <<
"Future has unexpected exception!";
66 boost::promise<std::shared_ptr<metadaqif::DaqReply>> reply_promise;
67 auto reply_mock = std::make_shared<DaqReplyMock>();
69 EXPECT_CALL(*m_meta_rr_client, AbortDaq(_))
70 .WillOnce(Return(ByMove(reply_promise.get_future())));
72 boost::promise<std::shared_ptr<metadaqif::DaqReply>> reply_promise2;
73 auto reply_mock2 = std::make_shared<DaqReplyMock>();
74 EXPECT_CALL(*m_meta_rr_client2, AbortDaq(_))
75 .WillOnce(Return(ByMove(reply_promise2.get_future())));
77 boost::promise<std::string> prim_promise_1;
78 boost::promise<std::string> prim_promise_2;
80 EXPECT_CALL(*m_prim_rr_client, RecAbort())
81 .WillOnce(Return(ByMove(prim_promise_1.get_future())));
82 EXPECT_CALL(*m_prim_rr_client2, RecAbort())
83 .WillOnce(Return(ByMove(prim_promise_2.get_future())));
86 auto fut = op::InitiateOperation<op::AbortAsync>(m_executor, ErrorPolicy::Strict, MakeParams());
89 reply_promise.set_value(reply_mock);
90 reply_promise2.set_exception(metadaqif::DaqException(m_id,
"message"));
91 prim_promise_1.set_value(
"OK");
92 prim_promise_2.set_value(
"OK");
102 boost::promise<std::shared_ptr<metadaqif::DaqReply>> reply_promise;
103 auto reply_mock = std::make_shared<DaqReplyMock>();
105 EXPECT_CALL(*m_meta_rr_client, AbortDaq(_))
106 .WillOnce(Return(ByMove(reply_promise.get_future())));
108 boost::promise<std::shared_ptr<metadaqif::DaqReply>> reply_promise2;
109 auto reply_mock2 = std::make_shared<DaqReplyMock>();
110 EXPECT_CALL(*m_meta_rr_client2, AbortDaq(_))
111 .WillOnce(Return(ByMove(reply_promise2.get_future())));
113 boost::promise<std::string> prim_promise_1;
114 boost::promise<std::string> prim_promise_2;
116 EXPECT_CALL(*m_prim_rr_client, RecAbort())
117 .WillOnce(Return(ByMove(prim_promise_1.get_future())));
118 EXPECT_CALL(*m_prim_rr_client2, RecAbort())
119 .WillOnce(Return(ByMove(prim_promise_2.get_future())));
122 auto fut = op::InitiateOperation<op::AbortAsync>(m_executor, ErrorPolicy::Strict, MakeParams());
125 reply_promise.set_value(reply_mock);
126 reply_promise2.set_value(reply_mock);
127 prim_promise_1.set_value(
"OK");
128 prim_promise_2.set_exception(metadaqif::DaqException(m_id,
"message"));
138 boost::promise<std::shared_ptr<metadaqif::DaqReply>> reply_promise;
139 auto reply_mock = std::make_shared<DaqReplyMock>();
141 EXPECT_CALL(*m_meta_rr_client, AbortDaq(_))
142 .WillOnce(Return(ByMove(reply_promise.get_future())));
144 boost::promise<std::shared_ptr<metadaqif::DaqReply>> reply_promise2;
145 auto reply_mock2 = std::make_shared<DaqReplyMock>();
146 EXPECT_CALL(*m_meta_rr_client2, AbortDaq(_))
147 .WillOnce(Return(ByMove(reply_promise2.get_future())));
149 boost::promise<std::string> prim_promise_1;
150 boost::promise<std::string> prim_promise_2;
151 EXPECT_CALL(*m_prim_rr_client, RecAbort())
152 .WillOnce(Return(ByMove(prim_promise_1.get_future())));
153 EXPECT_CALL(*m_prim_rr_client2, RecAbort())
154 .WillOnce(Return(ByMove(prim_promise_2.get_future())));
158 op::InitiateOperation<op::AbortAsync>(m_executor, ErrorPolicy::Tolerant, MakeParams());
161 reply_promise.set_value(reply_mock);
162 reply_promise2.set_exception(metadaqif::DaqException(m_id,
"message"));
163 prim_promise_1.set_value(
"OK");
164 prim_promise_2.set_value(
"OK");
170 EXPECT_FALSE(fut.has_exception());
174 boost::promise<std::shared_ptr<metadaqif::DaqReply>> reply_promise;
175 auto reply_mock = std::make_shared<DaqReplyMock>();
177 EXPECT_CALL(*m_meta_rr_client, AbortDaq(_))
178 .WillOnce(Return(ByMove(reply_promise.get_future())));
180 boost::promise<std::shared_ptr<metadaqif::DaqReply>> reply_promise2;
181 auto reply_mock2 = std::make_shared<DaqReplyMock>();
182 EXPECT_CALL(*m_meta_rr_client2, AbortDaq(_))
183 .WillOnce(Return(ByMove(reply_promise2.get_future())));
185 boost::promise<std::string> prim_promise_1;
186 boost::promise<std::string> prim_promise_2;
187 EXPECT_CALL(*m_prim_rr_client, RecAbort())
188 .WillOnce(Return(ByMove(prim_promise_1.get_future())));
189 EXPECT_CALL(*m_prim_rr_client2, RecAbort())
190 .WillOnce(Return(ByMove(prim_promise_2.get_future())));
194 op::InitiateOperation<op::AbortAsync>(m_executor, ErrorPolicy::Tolerant, MakeParams());
197 reply_promise.set_value(reply_mock);
198 reply_promise2.set_value(reply_mock);
199 prim_promise_1.set_value(
"OK");
200 prim_promise_2.set_exception(
201 std::runtime_error(
"some error"));
207 EXPECT_FALSE(fut.has_exception());
Contains declaration for the AbortAsync operation.
Exception thrown to carry reply errors.
Contains error related declarations for DAQ.
void MakeTestProgress(boost::asio::io_context &io_ctx, Future *fut=nullptr)
Test helper that progress the test by executing pending jobs and optionally wait for a future to be r...
Base fixture for async operation tests.
Contains declarations for the helper functions to initiate operations.
TEST_F(TestAsyncOpAbort, Abort)
Contains declaration for async operations shared base class.
ASSERT_TRUE(std::holds_alternative< OlasReceiver >(spec.receivers[0]))
Defines shared test utilities.