Example #1
0
        private TabledataResource.ListRequest CreateListRequest(TableReference tableReference, ListRowsOptions options, TableSchema schema)
        {
            var request = Service.Tabledata.List(tableReference.ProjectId, tableReference.DatasetId, tableReference.TableId);

            options?.ModifyRequest(request);
            // null and empty schemas are handled by BuildSelectedFields,
            // but both values mean the same, and that is to return whole rows.
            request.SelectedFields = schema.BuildSelectedFields();
            RetryHandler.MarkAsRetriable(request);
            return(request);
        }
        public void BuildSelectedFields_OneField()
        {
            var schema = new TableSchema
            {
                Fields = new List <TableFieldSchema>
                {
                    new TableFieldSchema {
                        Name = "foo"
                    },
                }
            };

            Assert.Equal("foo", schema.BuildSelectedFields());
        }
        public void BuildSelectedFields_NullSchema()
        {
            TableSchema schema = null;

            Assert.Null(schema.BuildSelectedFields());
        }
        public void BuildSelectedFields_EmptySchema()
        {
            var schema = new TableSchema();

            Assert.Equal(string.Empty, schema.BuildSelectedFields());
        }
        public void BuildSelectedFields_Nested()
        {
            var schema = new TableSchema
            {
                Fields = new List <TableFieldSchema>
                {
                    new TableFieldSchema
                    {
                        Name   = "l0_f0",
                        Fields = new List <TableFieldSchema>
                        {
                            new TableFieldSchema {
                                Name = "l1_f0"
                            },
                            new TableFieldSchema
                            {
                                Name   = "l1_f1",
                                Fields = new List <TableFieldSchema>
                                {
                                    new TableFieldSchema {
                                        Name = "l2_f0"
                                    },
                                    new TableFieldSchema {
                                        Name = "l2_f1"
                                    }
                                }
                            }
                        }
                    },
                    new TableFieldSchema {
                        Name = "l0_f1"
                    },
                    new TableFieldSchema
                    {
                        Name   = "l0_f2",
                        Fields = new List <TableFieldSchema>
                        {
                            new TableFieldSchema {
                                Name = "l1_f2"
                            },
                            new TableFieldSchema {
                                Name = "l1_f3"
                            }
                        }
                    },
                }
            };

            Assert.Equal("l0_f0.l1_f0,l0_f0.l1_f1.l2_f0,l0_f0.l1_f1.l2_f1,l0_f1,l0_f2.l1_f2,l0_f2.l1_f3", schema.BuildSelectedFields());
        }