Index: generated/googleapis/test/cloudbilling/v1_test.dart |
diff --git a/generated/googleapis/test/cloudbilling/v1_test.dart b/generated/googleapis/test/cloudbilling/v1_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..dff06d4716ba919e9eef074940945562e55091ea |
--- /dev/null |
+++ b/generated/googleapis/test/cloudbilling/v1_test.dart |
@@ -0,0 +1,456 @@ |
+library googleapis.cloudbilling.v1.test; |
+ |
+import "dart:core" as core; |
+import "dart:collection" as collection; |
+import "dart:async" as async; |
+import "dart:convert" as convert; |
+ |
+import 'package:http/http.dart' as http; |
+import 'package:http/testing.dart' as http_testing; |
+import 'package:unittest/unittest.dart' as unittest; |
+ |
+import 'package:googleapis/cloudbilling/v1.dart' as api; |
+ |
+class HttpServerMock extends http.BaseClient { |
+ core.Function _callback; |
+ core.bool _expectJson; |
+ |
+ void register(core.Function callback, core.bool expectJson) { |
+ _callback = callback; |
+ _expectJson = expectJson; |
+ } |
+ |
+ async.Future<http.StreamedResponse> send(http.BaseRequest request) { |
+ if (_expectJson) { |
+ return request.finalize() |
+ .transform(convert.UTF8.decoder) |
+ .join('') |
+ .then((core.String jsonString) { |
+ if (jsonString.isEmpty) { |
+ return _callback(request, null); |
+ } else { |
+ return _callback(request, convert.JSON.decode(jsonString)); |
+ } |
+ }); |
+ } else { |
+ var stream = request.finalize(); |
+ if (stream == null) { |
+ return _callback(request, []); |
+ } else { |
+ return stream.toBytes().then((data) { |
+ return _callback(request, data); |
+ }); |
+ } |
+ } |
+ } |
+} |
+ |
+http.StreamedResponse stringResponse( |
+ core.int status, core.Map headers, core.String body) { |
+ var stream = new async.Stream.fromIterable([convert.UTF8.encode(body)]); |
+ return new http.StreamedResponse(stream, status, headers: headers); |
+} |
+ |
+core.int buildCounterBillingAccount = 0; |
+buildBillingAccount() { |
+ var o = new api.BillingAccount(); |
+ buildCounterBillingAccount++; |
+ if (buildCounterBillingAccount < 3) { |
+ o.displayName = "foo"; |
+ o.name = "foo"; |
+ o.open = true; |
+ } |
+ buildCounterBillingAccount--; |
+ return o; |
+} |
+ |
+checkBillingAccount(api.BillingAccount o) { |
+ buildCounterBillingAccount++; |
+ if (buildCounterBillingAccount < 3) { |
+ unittest.expect(o.displayName, unittest.equals('foo')); |
+ unittest.expect(o.name, unittest.equals('foo')); |
+ unittest.expect(o.open, unittest.isTrue); |
+ } |
+ buildCounterBillingAccount--; |
+} |
+ |
+buildUnnamed20() { |
+ var o = new core.List<api.BillingAccount>(); |
+ o.add(buildBillingAccount()); |
+ o.add(buildBillingAccount()); |
+ return o; |
+} |
+ |
+checkUnnamed20(core.List<api.BillingAccount> o) { |
+ unittest.expect(o, unittest.hasLength(2)); |
+ checkBillingAccount(o[0]); |
+ checkBillingAccount(o[1]); |
+} |
+ |
+core.int buildCounterListBillingAccountsResponse = 0; |
+buildListBillingAccountsResponse() { |
+ var o = new api.ListBillingAccountsResponse(); |
+ buildCounterListBillingAccountsResponse++; |
+ if (buildCounterListBillingAccountsResponse < 3) { |
+ o.billingAccounts = buildUnnamed20(); |
+ o.nextPageToken = "foo"; |
+ } |
+ buildCounterListBillingAccountsResponse--; |
+ return o; |
+} |
+ |
+checkListBillingAccountsResponse(api.ListBillingAccountsResponse o) { |
+ buildCounterListBillingAccountsResponse++; |
+ if (buildCounterListBillingAccountsResponse < 3) { |
+ checkUnnamed20(o.billingAccounts); |
+ unittest.expect(o.nextPageToken, unittest.equals('foo')); |
+ } |
+ buildCounterListBillingAccountsResponse--; |
+} |
+ |
+buildUnnamed21() { |
+ var o = new core.List<api.ProjectBillingInfo>(); |
+ o.add(buildProjectBillingInfo()); |
+ o.add(buildProjectBillingInfo()); |
+ return o; |
+} |
+ |
+checkUnnamed21(core.List<api.ProjectBillingInfo> o) { |
+ unittest.expect(o, unittest.hasLength(2)); |
+ checkProjectBillingInfo(o[0]); |
+ checkProjectBillingInfo(o[1]); |
+} |
+ |
+core.int buildCounterListProjectBillingInfoResponse = 0; |
+buildListProjectBillingInfoResponse() { |
+ var o = new api.ListProjectBillingInfoResponse(); |
+ buildCounterListProjectBillingInfoResponse++; |
+ if (buildCounterListProjectBillingInfoResponse < 3) { |
+ o.nextPageToken = "foo"; |
+ o.projectBillingInfo = buildUnnamed21(); |
+ } |
+ buildCounterListProjectBillingInfoResponse--; |
+ return o; |
+} |
+ |
+checkListProjectBillingInfoResponse(api.ListProjectBillingInfoResponse o) { |
+ buildCounterListProjectBillingInfoResponse++; |
+ if (buildCounterListProjectBillingInfoResponse < 3) { |
+ unittest.expect(o.nextPageToken, unittest.equals('foo')); |
+ checkUnnamed21(o.projectBillingInfo); |
+ } |
+ buildCounterListProjectBillingInfoResponse--; |
+} |
+ |
+core.int buildCounterProjectBillingInfo = 0; |
+buildProjectBillingInfo() { |
+ var o = new api.ProjectBillingInfo(); |
+ buildCounterProjectBillingInfo++; |
+ if (buildCounterProjectBillingInfo < 3) { |
+ o.billingAccountName = "foo"; |
+ o.billingEnabled = true; |
+ o.name = "foo"; |
+ o.projectId = "foo"; |
+ } |
+ buildCounterProjectBillingInfo--; |
+ return o; |
+} |
+ |
+checkProjectBillingInfo(api.ProjectBillingInfo o) { |
+ buildCounterProjectBillingInfo++; |
+ if (buildCounterProjectBillingInfo < 3) { |
+ unittest.expect(o.billingAccountName, unittest.equals('foo')); |
+ unittest.expect(o.billingEnabled, unittest.isTrue); |
+ unittest.expect(o.name, unittest.equals('foo')); |
+ unittest.expect(o.projectId, unittest.equals('foo')); |
+ } |
+ buildCounterProjectBillingInfo--; |
+} |
+ |
+ |
+main() { |
+ unittest.group("obj-schema-BillingAccount", () { |
+ unittest.test("to-json--from-json", () { |
+ var o = buildBillingAccount(); |
+ var od = new api.BillingAccount.fromJson(o.toJson()); |
+ checkBillingAccount(od); |
+ }); |
+ }); |
+ |
+ |
+ unittest.group("obj-schema-ListBillingAccountsResponse", () { |
+ unittest.test("to-json--from-json", () { |
+ var o = buildListBillingAccountsResponse(); |
+ var od = new api.ListBillingAccountsResponse.fromJson(o.toJson()); |
+ checkListBillingAccountsResponse(od); |
+ }); |
+ }); |
+ |
+ |
+ unittest.group("obj-schema-ListProjectBillingInfoResponse", () { |
+ unittest.test("to-json--from-json", () { |
+ var o = buildListProjectBillingInfoResponse(); |
+ var od = new api.ListProjectBillingInfoResponse.fromJson(o.toJson()); |
+ checkListProjectBillingInfoResponse(od); |
+ }); |
+ }); |
+ |
+ |
+ unittest.group("obj-schema-ProjectBillingInfo", () { |
+ unittest.test("to-json--from-json", () { |
+ var o = buildProjectBillingInfo(); |
+ var od = new api.ProjectBillingInfo.fromJson(o.toJson()); |
+ checkProjectBillingInfo(od); |
+ }); |
+ }); |
+ |
+ |
+ unittest.group("resource-BillingAccountsResourceApi", () { |
+ unittest.test("method--get", () { |
+ |
+ var mock = new HttpServerMock(); |
+ api.BillingAccountsResourceApi res = new api.CloudbillingApi(mock).billingAccounts; |
+ var arg_name = "foo"; |
+ mock.register(unittest.expectAsync((http.BaseRequest req, json) { |
+ var path = (req.url).path; |
+ var pathOffset = 0; |
+ var index; |
+ var subPart; |
+ unittest.expect(path.substring(pathOffset, pathOffset + 1), unittest.equals("/")); |
+ pathOffset += 1; |
+ unittest.expect(path.substring(pathOffset, pathOffset + 3), unittest.equals("v1/")); |
+ pathOffset += 3; |
+ // NOTE: We cannot test reserved expansions due to the inability to reverse the operation; |
+ |
+ var query = (req.url).query; |
+ var queryOffset = 0; |
+ var queryMap = {}; |
+ addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v); |
+ parseBool(n) { |
+ if (n == "true") return true; |
+ if (n == "false") return false; |
+ if (n == null) return null; |
+ throw new core.ArgumentError("Invalid boolean: $n"); |
+ } |
+ if (query.length > 0) { |
+ for (var part in query.split("&")) { |
+ var keyvalue = part.split("="); |
+ addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1])); |
+ } |
+ } |
+ |
+ |
+ var h = { |
+ "content-type" : "application/json; charset=utf-8", |
+ }; |
+ var resp = convert.JSON.encode(buildBillingAccount()); |
+ return new async.Future.value(stringResponse(200, h, resp)); |
+ }), true); |
+ res.get(arg_name).then(unittest.expectAsync(((api.BillingAccount response) { |
+ checkBillingAccount(response); |
+ }))); |
+ }); |
+ |
+ unittest.test("method--list", () { |
+ |
+ var mock = new HttpServerMock(); |
+ api.BillingAccountsResourceApi res = new api.CloudbillingApi(mock).billingAccounts; |
+ var arg_pageSize = 42; |
+ var arg_pageToken = "foo"; |
+ mock.register(unittest.expectAsync((http.BaseRequest req, json) { |
+ var path = (req.url).path; |
+ var pathOffset = 0; |
+ var index; |
+ var subPart; |
+ unittest.expect(path.substring(pathOffset, pathOffset + 1), unittest.equals("/")); |
+ pathOffset += 1; |
+ unittest.expect(path.substring(pathOffset, pathOffset + 18), unittest.equals("v1/billingAccounts")); |
+ pathOffset += 18; |
+ |
+ var query = (req.url).query; |
+ var queryOffset = 0; |
+ var queryMap = {}; |
+ addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v); |
+ parseBool(n) { |
+ if (n == "true") return true; |
+ if (n == "false") return false; |
+ if (n == null) return null; |
+ throw new core.ArgumentError("Invalid boolean: $n"); |
+ } |
+ if (query.length > 0) { |
+ for (var part in query.split("&")) { |
+ var keyvalue = part.split("="); |
+ addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1])); |
+ } |
+ } |
+ unittest.expect(core.int.parse(queryMap["pageSize"].first), unittest.equals(arg_pageSize)); |
+ unittest.expect(queryMap["pageToken"].first, unittest.equals(arg_pageToken)); |
+ |
+ |
+ var h = { |
+ "content-type" : "application/json; charset=utf-8", |
+ }; |
+ var resp = convert.JSON.encode(buildListBillingAccountsResponse()); |
+ return new async.Future.value(stringResponse(200, h, resp)); |
+ }), true); |
+ res.list(pageSize: arg_pageSize, pageToken: arg_pageToken).then(unittest.expectAsync(((api.ListBillingAccountsResponse response) { |
+ checkListBillingAccountsResponse(response); |
+ }))); |
+ }); |
+ |
+ }); |
+ |
+ |
+ unittest.group("resource-BillingAccountsProjectsResourceApi", () { |
+ unittest.test("method--list", () { |
+ |
+ var mock = new HttpServerMock(); |
+ api.BillingAccountsProjectsResourceApi res = new api.CloudbillingApi(mock).billingAccounts.projects; |
+ var arg_name = "foo"; |
+ var arg_pageSize = 42; |
+ var arg_pageToken = "foo"; |
+ mock.register(unittest.expectAsync((http.BaseRequest req, json) { |
+ var path = (req.url).path; |
+ var pathOffset = 0; |
+ var index; |
+ var subPart; |
+ unittest.expect(path.substring(pathOffset, pathOffset + 1), unittest.equals("/")); |
+ pathOffset += 1; |
+ unittest.expect(path.substring(pathOffset, pathOffset + 3), unittest.equals("v1/")); |
+ pathOffset += 3; |
+ // NOTE: We cannot test reserved expansions due to the inability to reverse the operation; |
+ |
+ var query = (req.url).query; |
+ var queryOffset = 0; |
+ var queryMap = {}; |
+ addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v); |
+ parseBool(n) { |
+ if (n == "true") return true; |
+ if (n == "false") return false; |
+ if (n == null) return null; |
+ throw new core.ArgumentError("Invalid boolean: $n"); |
+ } |
+ if (query.length > 0) { |
+ for (var part in query.split("&")) { |
+ var keyvalue = part.split("="); |
+ addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1])); |
+ } |
+ } |
+ unittest.expect(core.int.parse(queryMap["pageSize"].first), unittest.equals(arg_pageSize)); |
+ unittest.expect(queryMap["pageToken"].first, unittest.equals(arg_pageToken)); |
+ |
+ |
+ var h = { |
+ "content-type" : "application/json; charset=utf-8", |
+ }; |
+ var resp = convert.JSON.encode(buildListProjectBillingInfoResponse()); |
+ return new async.Future.value(stringResponse(200, h, resp)); |
+ }), true); |
+ res.list(arg_name, pageSize: arg_pageSize, pageToken: arg_pageToken).then(unittest.expectAsync(((api.ListProjectBillingInfoResponse response) { |
+ checkListProjectBillingInfoResponse(response); |
+ }))); |
+ }); |
+ |
+ }); |
+ |
+ |
+ unittest.group("resource-ProjectsResourceApi", () { |
+ unittest.test("method--getBillingInfo", () { |
+ |
+ var mock = new HttpServerMock(); |
+ api.ProjectsResourceApi res = new api.CloudbillingApi(mock).projects; |
+ var arg_name = "foo"; |
+ mock.register(unittest.expectAsync((http.BaseRequest req, json) { |
+ var path = (req.url).path; |
+ var pathOffset = 0; |
+ var index; |
+ var subPart; |
+ unittest.expect(path.substring(pathOffset, pathOffset + 1), unittest.equals("/")); |
+ pathOffset += 1; |
+ unittest.expect(path.substring(pathOffset, pathOffset + 3), unittest.equals("v1/")); |
+ pathOffset += 3; |
+ // NOTE: We cannot test reserved expansions due to the inability to reverse the operation; |
+ |
+ var query = (req.url).query; |
+ var queryOffset = 0; |
+ var queryMap = {}; |
+ addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v); |
+ parseBool(n) { |
+ if (n == "true") return true; |
+ if (n == "false") return false; |
+ if (n == null) return null; |
+ throw new core.ArgumentError("Invalid boolean: $n"); |
+ } |
+ if (query.length > 0) { |
+ for (var part in query.split("&")) { |
+ var keyvalue = part.split("="); |
+ addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1])); |
+ } |
+ } |
+ |
+ |
+ var h = { |
+ "content-type" : "application/json; charset=utf-8", |
+ }; |
+ var resp = convert.JSON.encode(buildProjectBillingInfo()); |
+ return new async.Future.value(stringResponse(200, h, resp)); |
+ }), true); |
+ res.getBillingInfo(arg_name).then(unittest.expectAsync(((api.ProjectBillingInfo response) { |
+ checkProjectBillingInfo(response); |
+ }))); |
+ }); |
+ |
+ unittest.test("method--updateBillingInfo", () { |
+ |
+ var mock = new HttpServerMock(); |
+ api.ProjectsResourceApi res = new api.CloudbillingApi(mock).projects; |
+ var arg_request = buildProjectBillingInfo(); |
+ var arg_name = "foo"; |
+ mock.register(unittest.expectAsync((http.BaseRequest req, json) { |
+ var obj = new api.ProjectBillingInfo.fromJson(json); |
+ checkProjectBillingInfo(obj); |
+ |
+ var path = (req.url).path; |
+ var pathOffset = 0; |
+ var index; |
+ var subPart; |
+ unittest.expect(path.substring(pathOffset, pathOffset + 1), unittest.equals("/")); |
+ pathOffset += 1; |
+ unittest.expect(path.substring(pathOffset, pathOffset + 3), unittest.equals("v1/")); |
+ pathOffset += 3; |
+ // NOTE: We cannot test reserved expansions due to the inability to reverse the operation; |
+ |
+ var query = (req.url).query; |
+ var queryOffset = 0; |
+ var queryMap = {}; |
+ addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v); |
+ parseBool(n) { |
+ if (n == "true") return true; |
+ if (n == "false") return false; |
+ if (n == null) return null; |
+ throw new core.ArgumentError("Invalid boolean: $n"); |
+ } |
+ if (query.length > 0) { |
+ for (var part in query.split("&")) { |
+ var keyvalue = part.split("="); |
+ addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1])); |
+ } |
+ } |
+ |
+ |
+ var h = { |
+ "content-type" : "application/json; charset=utf-8", |
+ }; |
+ var resp = convert.JSON.encode(buildProjectBillingInfo()); |
+ return new async.Future.value(stringResponse(200, h, resp)); |
+ }), true); |
+ res.updateBillingInfo(arg_request, arg_name).then(unittest.expectAsync(((api.ProjectBillingInfo response) { |
+ checkProjectBillingInfo(response); |
+ }))); |
+ }); |
+ |
+ }); |
+ |
+ |
+} |
+ |