aboutsummaryrefslogtreecommitdiff
path: root/pw_rpc/pwpb/client_reader_writer_test.cc
diff options
context:
space:
mode:
authorXin Li <delphij@google.com>2024-01-17 22:13:58 -0800
committerXin Li <delphij@google.com>2024-01-17 22:13:58 -0800
commit28d03a2a1cabbe01d7bcb6cf5166c10e50d3c2c6 (patch)
treec1643be8ab17fc607cea748a8bb1d621a5964873 /pw_rpc/pwpb/client_reader_writer_test.cc
parentec2628a6ba2d0ecbe3ac10c8c772f6fc6acc345d (diff)
parentf054515492af5132f685cb23fe11891ee77104c9 (diff)
downloadpigweed-28d03a2a1cabbe01d7bcb6cf5166c10e50d3c2c6.tar.gz
Merge Android 24Q1 Release (ab/11220357)temp_319669529
Bug: 319669529 Merged-In: Iba357b308a79d0c8b560acd4f72b5423c9c83294 Change-Id: Icdf552029fb97a34e83c6dd7799433fc473a2506
Diffstat (limited to 'pw_rpc/pwpb/client_reader_writer_test.cc')
-rw-r--r--pw_rpc/pwpb/client_reader_writer_test.cc77
1 files changed, 73 insertions, 4 deletions
diff --git a/pw_rpc/pwpb/client_reader_writer_test.cc b/pw_rpc/pwpb/client_reader_writer_test.cc
index 540f0106d..f22313d82 100644
--- a/pw_rpc/pwpb/client_reader_writer_test.cc
+++ b/pw_rpc/pwpb/client_reader_writer_test.cc
@@ -62,7 +62,7 @@ TEST(PwpbClientWriter, DefaultConstructed) {
EXPECT_EQ(Status::FailedPrecondition(), call.Write({}));
EXPECT_EQ(Status::FailedPrecondition(), call.Cancel());
- EXPECT_EQ(Status::FailedPrecondition(), call.CloseClientStream());
+ EXPECT_EQ(Status::FailedPrecondition(), call.RequestCompletion());
call.set_on_completed([](const TestStreamResponse::Message&, Status) {});
call.set_on_error([](Status) {});
@@ -75,6 +75,7 @@ TEST(PwpbClientReader, DefaultConstructed) {
EXPECT_EQ(call.channel_id(), Channel::kUnassignedChannelId);
EXPECT_EQ(Status::FailedPrecondition(), call.Cancel());
+ EXPECT_EQ(Status::FailedPrecondition(), call.RequestCompletion());
call.set_on_completed([](Status) {});
call.set_on_next([](const TestStreamResponse::Message&) {});
@@ -90,7 +91,74 @@ TEST(PwpbClientReaderWriter, DefaultConstructed) {
EXPECT_EQ(Status::FailedPrecondition(), call.Write({}));
EXPECT_EQ(Status::FailedPrecondition(), call.Cancel());
- EXPECT_EQ(Status::FailedPrecondition(), call.CloseClientStream());
+ EXPECT_EQ(Status::FailedPrecondition(), call.RequestCompletion());
+
+ call.set_on_completed([](Status) {});
+ call.set_on_next([](const TestStreamResponse::Message&) {});
+ call.set_on_error([](Status) {});
+}
+
+TEST(PwpbClientWriter, RequestCompletion) {
+ PwpbClientTestContext ctx;
+ PwpbClientWriter<TestRequest::Message, TestStreamResponse::Message> call =
+ TestService::TestClientStreamRpc(
+ ctx.client(),
+ ctx.channel().id(),
+ FailIfOnCompletedCalled<TestStreamResponse::Message>,
+ FailIfCalled);
+ ASSERT_EQ(OkStatus(), call.RequestCompletion());
+
+ ASSERT_TRUE(call.active());
+ EXPECT_EQ(call.channel_id(), ctx.channel().id());
+
+ EXPECT_EQ(OkStatus(), call.Write({}));
+ EXPECT_EQ(OkStatus(), call.RequestCompletion());
+ EXPECT_EQ(OkStatus(), call.Cancel());
+
+ call.set_on_completed([](const TestStreamResponse::Message&, Status) {});
+ call.set_on_error([](Status) {});
+}
+
+TEST(PwpbClientReader, RequestCompletion) {
+ PwpbClientTestContext ctx;
+ PwpbClientReader<TestStreamResponse::Message> call =
+ TestService::TestServerStreamRpc(
+ ctx.client(),
+ ctx.channel().id(),
+ {},
+ FailIfOnNextCalled<TestStreamResponse::Message>,
+ FailIfCalled,
+ FailIfCalled);
+ ASSERT_EQ(OkStatus(), call.RequestCompletion());
+
+ ASSERT_TRUE(call.active());
+ EXPECT_EQ(call.channel_id(), ctx.channel().id());
+
+ EXPECT_EQ(OkStatus(), call.RequestCompletion());
+ EXPECT_EQ(OkStatus(), call.Cancel());
+
+ call.set_on_completed([](Status) {});
+ call.set_on_next([](const TestStreamResponse::Message&) {});
+ call.set_on_error([](Status) {});
+}
+
+TEST(PwpbClientReaderWriter, RequestCompletion) {
+ PwpbClientTestContext ctx;
+ PwpbClientReaderWriter<TestRequest::Message, TestStreamResponse::Message>
+ call = TestService::TestBidirectionalStreamRpc(
+ ctx.client(),
+ ctx.channel().id(),
+ FailIfOnNextCalled<TestStreamResponse::Message>,
+ FailIfCalled,
+ FailIfCalled);
+ ASSERT_EQ(OkStatus(), call.RequestCompletion());
+
+ ASSERT_TRUE(call.active());
+ EXPECT_EQ(call.channel_id(), ctx.channel().id());
+
+ EXPECT_EQ(OkStatus(), call.Write({}));
+ EXPECT_EQ(OkStatus(), call.RequestCompletion());
+ EXPECT_EQ(OkStatus(), call.Cancel());
call.set_on_completed([](Status) {});
call.set_on_next([](const TestStreamResponse::Message&) {});
@@ -131,7 +199,7 @@ TEST(PwpbClientWriter, Closed) {
EXPECT_EQ(Status::FailedPrecondition(), call.Write({}));
EXPECT_EQ(Status::FailedPrecondition(), call.Cancel());
- EXPECT_EQ(Status::FailedPrecondition(), call.CloseClientStream());
+ EXPECT_EQ(Status::FailedPrecondition(), call.RequestCompletion());
call.set_on_completed([](const TestStreamResponse::Message&, Status) {});
call.set_on_error([](Status) {});
@@ -153,6 +221,7 @@ TEST(PwpbClientReader, Closed) {
EXPECT_EQ(call.channel_id(), Channel::kUnassignedChannelId);
EXPECT_EQ(Status::FailedPrecondition(), call.Cancel());
+ EXPECT_EQ(Status::FailedPrecondition(), call.RequestCompletion());
call.set_on_completed([](Status) {});
call.set_on_next([](const TestStreamResponse::Message&) {});
@@ -175,7 +244,7 @@ TEST(PwpbClientReaderWriter, Closed) {
EXPECT_EQ(Status::FailedPrecondition(), call.Write({}));
EXPECT_EQ(Status::FailedPrecondition(), call.Cancel());
- EXPECT_EQ(Status::FailedPrecondition(), call.CloseClientStream());
+ EXPECT_EQ(Status::FailedPrecondition(), call.RequestCompletion());
call.set_on_completed([](Status) {});
call.set_on_next([](const TestStreamResponse::Message&) {});