#include #include using namespace ::testing; using namespace ::asyncpp; TEST(result_tests, future_result___not_ready) { using result_type = future_result; auto r = result_type::not_ready(); EXPECT_TRUE (r.is_not_ready()); EXPECT_FALSE (r.is_ready()); EXPECT_FALSE (r); EXPECT_ANY_THROW(*r); } TEST(result_tests, future_result___ready) { using result_type = future_result; int i; auto r = result_type::ready(i); EXPECT_FALSE (r.is_not_ready()); EXPECT_TRUE (r.is_ready()); EXPECT_TRUE (r); EXPECT_EQ (&*r, &i); } TEST(result_tests, stream_result___not_ready) { using result_type = stream_result; auto r = result_type::not_ready(); EXPECT_EQ (result_status::not_ready, r.status()); EXPECT_TRUE (r.is_not_ready()); EXPECT_FALSE (r.is_ready()); EXPECT_FALSE (r.is_done()); EXPECT_FALSE (r); EXPECT_ANY_THROW(*r); } TEST(result_tests, stream_result___ready) { using result_type = stream_result; int i; auto r = result_type::ready(i); EXPECT_EQ (result_status::ready, r.status()); EXPECT_FALSE (r.is_not_ready()); EXPECT_TRUE (r.is_ready()); EXPECT_FALSE (r.is_done()); EXPECT_TRUE (r); EXPECT_EQ (&*r, &i); } TEST(result_tests, stream_result___done) { using result_type = stream_result; auto r = result_type::done(); EXPECT_EQ (result_status::done, r.status()); EXPECT_FALSE (r.is_not_ready()); EXPECT_FALSE (r.is_ready()); EXPECT_TRUE (r.is_done()); EXPECT_FALSE (r); EXPECT_ANY_THROW(*r); }