19 #include <gtest/gtest.h>
36 TEST(AltsUtilTest, NullAuthContext) {
37 std::unique_ptr<experimental::AltsContext> alts_context =
42 TEST(AltsUtilTest, EmptyAuthContext) {
44 grpc_core::MakeRefCounted<grpc_auth_context>(
nullptr);
45 const std::shared_ptr<AuthContext> auth_context(
46 new SecureAuthContext(
ctx.get()));
47 std::unique_ptr<experimental::AltsContext> alts_context =
52 TEST(AltsUtilTest, AuthContextWithMoreThanOneAltsContext) {
54 grpc_core::MakeRefCounted<grpc_auth_context>(
nullptr);
55 const std::shared_ptr<AuthContext> auth_context(
56 new SecureAuthContext(
ctx.get()));
60 std::unique_ptr<experimental::AltsContext> alts_context =
65 TEST(AltsUtilTest, AuthContextWithBadAltsContext) {
67 grpc_core::MakeRefCounted<grpc_auth_context>(
nullptr);
68 const std::shared_ptr<AuthContext> auth_context(
69 new SecureAuthContext(
ctx.get()));
72 "bad context string serialization");
73 std::unique_ptr<experimental::AltsContext> alts_context =
78 TEST(AltsUtilTest, AuthContextWithGoodAltsContextWithoutRpcVersions) {
80 grpc_core::MakeRefCounted<grpc_auth_context>(
nullptr);
81 const std::shared_ptr<AuthContext> auth_context(
82 new SecureAuthContext(
ctx.get()));
89 std::string expected_peer_atrributes_value(
"attributes");
102 expected_peer.length()));
105 expected_local.length()));
109 expected_peer_atrributes_key.length()),
111 expected_peer_atrributes_value.length()),
112 context_arena.
ptr());
113 size_t serialized_ctx_length;
115 context, context_arena.
ptr(), &serialized_ctx_length);
118 string(serialized_ctx, serialized_ctx_length));
119 std::unique_ptr<experimental::AltsContext> alts_context =
122 EXPECT_EQ(expected_ap, alts_context->application_protocol());
123 EXPECT_EQ(expected_rp, alts_context->record_protocol());
124 EXPECT_EQ(expected_peer, alts_context->peer_service_account());
125 EXPECT_EQ(expected_local, alts_context->local_service_account());
126 EXPECT_EQ(expected_sl, alts_context->security_level());
128 experimental::AltsContext::RpcProtocolVersions rpc_protocol_versions =
129 alts_context->peer_rpc_versions();
130 EXPECT_EQ(0, rpc_protocol_versions.max_rpc_version.major_version);
131 EXPECT_EQ(0, rpc_protocol_versions.max_rpc_version.minor_version);
132 EXPECT_EQ(0, rpc_protocol_versions.min_rpc_version.major_version);
133 EXPECT_EQ(0, rpc_protocol_versions.min_rpc_version.minor_version);
134 EXPECT_EQ(expected_peer_atrributes_value,
135 alts_context->peer_attributes().at(expected_peer_atrributes_key));
138 TEST(AltsUtilTest, AuthContextWithGoodAltsContext) {
140 grpc_core::MakeRefCounted<grpc_auth_context>(
nullptr);
141 const std::shared_ptr<AuthContext> auth_context(
142 new SecureAuthContext(
ctx.get()));
155 size_t serialized_ctx_length;
157 context, context_arena.
ptr(), &serialized_ctx_length);
160 string(serialized_ctx, serialized_ctx_length));
161 std::unique_ptr<experimental::AltsContext> alts_context =
164 EXPECT_EQ(
"", alts_context->application_protocol());
165 EXPECT_EQ(
"", alts_context->record_protocol());
166 EXPECT_EQ(
"", alts_context->peer_service_account());
167 EXPECT_EQ(
"", alts_context->local_service_account());
169 experimental::AltsContext::RpcProtocolVersions rpc_protocol_versions =
170 alts_context->peer_rpc_versions();
171 EXPECT_EQ(10, rpc_protocol_versions.max_rpc_version.major_version);
172 EXPECT_EQ(0, rpc_protocol_versions.max_rpc_version.minor_version);
173 EXPECT_EQ(0, rpc_protocol_versions.min_rpc_version.major_version);
174 EXPECT_EQ(0, rpc_protocol_versions.min_rpc_version.minor_version);
180 const std::shared_ptr<AuthContext> bad_auth_context(
181 new SecureAuthContext(
nullptr));
182 std::vector<std::string> service_accounts{
"client"};
189 grpc_core::MakeRefCounted<grpc_auth_context>(
nullptr);
190 const std::shared_ptr<AuthContext> auth_context(
191 new SecureAuthContext(
ctx.get()));
194 std::vector<std::string> good_service_accounts{
"good_client",
196 std::vector<std::string> bad_service_accounts{
"bad_client",
"bad_client_1"};
201 size_t serialized_ctx_length;
203 context, context_arena.
ptr(), &serialized_ctx_length);
206 string(serialized_ctx, serialized_ctx_length));
218 int main(
int argc,
char** argv) {