public async stt::Task CheckAndMutateRow2ResourceNamesAsync()
        {
            moq::Mock <Bigtable.BigtableClient> mockGrpcClient = new moq::Mock <Bigtable.BigtableClient>(moq::MockBehavior.Strict);
            CheckAndMutateRowRequest            request        = new CheckAndMutateRowRequest
            {
                TableNameAsTableName = TableName.FromProjectInstanceTable("[PROJECT]", "[INSTANCE]", "[TABLE]"),
                RowKey          = proto::ByteString.CopyFromUtf8("row_key7adfb7cb"),
                TrueMutations   = { new Mutation(), },
                FalseMutations  = { new Mutation(), },
                PredicateFilter = new RowFilter(),
                AppProfileId    = "app_profile_id57fb0442",
            };
            CheckAndMutateRowResponse expectedResponse = new CheckAndMutateRowResponse
            {
                PredicateMatched = true,
            };

            mockGrpcClient.Setup(x => x.CheckAndMutateRowAsync(request, moq::It.IsAny <grpccore::CallOptions>())).Returns(new grpccore::AsyncUnaryCall <CheckAndMutateRowResponse>(stt::Task.FromResult(expectedResponse), null, null, null, null));
            BigtableClient            client = new BigtableClientImpl(mockGrpcClient.Object, null);
            CheckAndMutateRowResponse responseCallSettings = await client.CheckAndMutateRowAsync(request.TableNameAsTableName, request.RowKey, request.PredicateFilter, request.TrueMutations, request.FalseMutations, request.AppProfileId, gaxgrpc::CallSettings.FromCancellationToken(st::CancellationToken.None));

            xunit::Assert.Same(expectedResponse, responseCallSettings);
            CheckAndMutateRowResponse responseCancellationToken = await client.CheckAndMutateRowAsync(request.TableNameAsTableName, request.RowKey, request.PredicateFilter, request.TrueMutations, request.FalseMutations, request.AppProfileId, st::CancellationToken.None);

            xunit::Assert.Same(expectedResponse, responseCancellationToken);
            mockGrpcClient.VerifyAll();
        }
        public async Task CheckAndMutateRow_AppProfileId_From_Client()
        {
            var appProfileIdOnClient = "csharp";
            var request = new CheckAndMutateRowRequest
            {
                TableNameAsTableName = new TableName("project", "instance", "table"),
                RowKey         = ByteString.CopyFromUtf8("abc"),
                FalseMutations = { new Mutation() },
                TrueMutations  = { new Mutation() }
            };
            var request2 = new CheckAndMutateRowRequest(request);
            Mock <BigtableServiceApiClient> mockGrpcClient =
                new Mock <BigtableServiceApiClient>(MockBehavior.Strict);

            mockGrpcClient
            .Setup(x => x.CheckAndMutateRow(request, It.IsAny <CallSettings>()))
            .Returns(new CheckAndMutateRowResponse());
            mockGrpcClient
            .Setup(x => x.CheckAndMutateRowAsync(request, It.IsAny <CallSettings>()))
            .ReturnsAsync(new CheckAndMutateRowResponse());
            BigtableClient client = new BigtableClientImpl(mockGrpcClient.Object, appProfileIdOnClient);

            client.CheckAndMutateRow(request);
            await client.CheckAndMutateRowAsync(request2);

            Assert.Equal(appProfileIdOnClient, request.AppProfileId);
            Assert.Equal(appProfileIdOnClient, request2.AppProfileId);
        }