| // Copyright 2019 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import 'package:googleapis/bigquery/v2.dart'; |
| |
| /// A fake bigquery tabledataresourceApi implementation. |
| /// |
| /// This tabledataResourceApi considers only a simple case |
| /// where we focus on the number of rows inserted. This can be |
| /// easily extended for other test cases. |
| class FakeTabledataResource implements TabledataResource { |
| List<TableDataInsertAllRequestRows>? rows; |
| @override |
| Future<TableDataInsertAllResponse> insertAll( |
| TableDataInsertAllRequest request, |
| String projectId, |
| String datasetId, |
| String tableId, { |
| String? $fields, |
| }) async { |
| rows = request.rows; |
| return TableDataInsertAllResponse.fromJson(<String, String>{}); |
| } |
| |
| @override |
| Future<TableDataList> list( |
| String projectId, |
| String datasetId, |
| String tableId, { |
| int? maxResults, |
| String? selectedFields, |
| String? startIndex, |
| String? pageToken, |
| String? $fields, |
| }) async { |
| final List<Map<String, Object>> tableRowList = <Map<String, Object>>[]; |
| for (TableDataInsertAllRequestRows tableDataInsertAllRequestRows in rows!) { |
| final dynamic value = tableDataInsertAllRequestRows.json; |
| final List<Map<String, Object?>> tableCellList = <Map<String, Object?>>[]; |
| tableCellList.add(<String, Object?>{'v': value}); |
| tableRowList.add(<String, Object>{'f': tableCellList}); |
| } |
| |
| return TableDataList.fromJson(<String, Object>{'totalRows': rows!.length.toString(), 'rows': tableRowList}); |
| } |
| } |