add unittests for moving/copying Completer
This commit is contained in:
parent
172efc758f
commit
07209204b9
@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <optional>
|
#include <optional>
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
#include "iface/common/exception.hh"
|
#include "iface/common/exception.hh"
|
||||||
|
|
||||||
@ -222,6 +223,33 @@ TEST(Future, ThenAndWhenError) {
|
|||||||
EXPECT_EQ(called2, 0);
|
EXPECT_EQ(called2, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(Future_Completer, CompleteAfterCopy) {
|
||||||
|
std::optional<nf7::Future<int32_t>> fut;
|
||||||
|
{
|
||||||
|
std::optional<nf7::Future<int32_t>::Completer> sut;
|
||||||
|
{
|
||||||
|
nf7::Future<int32_t>::Completer sut2;
|
||||||
|
fut.emplace(sut2.future());
|
||||||
|
sut.emplace(sut2);
|
||||||
|
}
|
||||||
|
sut->Complete(int32_t {777});
|
||||||
|
}
|
||||||
|
EXPECT_TRUE(fut->done());
|
||||||
|
}
|
||||||
|
TEST(Future_Completer, CompleteAfterMove) {
|
||||||
|
std::optional<nf7::Future<int32_t>> fut;
|
||||||
|
{
|
||||||
|
std::optional<nf7::Future<int32_t>::Completer> sut;
|
||||||
|
{
|
||||||
|
nf7::Future<int32_t>::Completer sut2;
|
||||||
|
fut.emplace(sut2.future());
|
||||||
|
sut.emplace(std::move(sut2));
|
||||||
|
}
|
||||||
|
sut->Complete(int32_t {777});
|
||||||
|
}
|
||||||
|
EXPECT_TRUE(fut->done());
|
||||||
|
}
|
||||||
|
|
||||||
#if !defined(NDEBUG)
|
#if !defined(NDEBUG)
|
||||||
TEST(Future, DeathByListenInCallback) {
|
TEST(Future, DeathByListenInCallback) {
|
||||||
nf7::Future<int32_t> sut {int32_t{777}};
|
nf7::Future<int32_t> sut {int32_t{777}};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user