|
- #include <gtest/gtest.h>
-
- #include <asyncpp.h>
-
- using namespace ::testing;
- using namespace ::asyncpp;
-
- TEST(result_tests, future_result___not_ready)
- {
- using result_type = future_result<int>;
-
- 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&>;
-
- 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<int>;
-
- 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&>;
-
- 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<void>;
-
- 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);
- }
|