blob: 418fb4e450784c966a8b2261967169708ccc33a3 [file] [log] [blame]
Gustav Wibling6d477072015-10-19 16:19:14 +02001library googleapis.cloudtrace.v1.test;
2
3import "dart:core" as core;
4import "dart:collection" as collection;
5import "dart:async" as async;
6import "dart:convert" as convert;
7
8import 'package:http/http.dart' as http;
9import 'package:http/testing.dart' as http_testing;
Martin Kustermann3953f0d2017-06-12 16:59:53 +020010import 'package:test/test.dart' as unittest;
Gustav Wibling6d477072015-10-19 16:19:14 +020011
12import 'package:googleapis/cloudtrace/v1.dart' as api;
13
14class HttpServerMock extends http.BaseClient {
15 core.Function _callback;
16 core.bool _expectJson;
17
18 void register(core.Function callback, core.bool expectJson) {
19 _callback = callback;
20 _expectJson = expectJson;
21 }
22
23 async.Future<http.StreamedResponse> send(http.BaseRequest request) {
24 if (_expectJson) {
25 return request.finalize()
26 .transform(convert.UTF8.decoder)
27 .join('')
28 .then((core.String jsonString) {
29 if (jsonString.isEmpty) {
30 return _callback(request, null);
31 } else {
32 return _callback(request, convert.JSON.decode(jsonString));
33 }
34 });
35 } else {
36 var stream = request.finalize();
37 if (stream == null) {
38 return _callback(request, []);
39 } else {
40 return stream.toBytes().then((data) {
41 return _callback(request, data);
42 });
43 }
44 }
45 }
46}
47
48http.StreamedResponse stringResponse(
Martin Kustermann3953f0d2017-06-12 16:59:53 +020049 core.int status, core.Map<core.String, core.String> headers, core.String body) {
Gustav Wibling6d477072015-10-19 16:19:14 +020050 var stream = new async.Stream.fromIterable([convert.UTF8.encode(body)]);
51 return new http.StreamedResponse(stream, status, headers: headers);
52}
53
54core.int buildCounterEmpty = 0;
55buildEmpty() {
56 var o = new api.Empty();
57 buildCounterEmpty++;
58 if (buildCounterEmpty < 3) {
59 }
60 buildCounterEmpty--;
61 return o;
62}
63
64checkEmpty(api.Empty o) {
65 buildCounterEmpty++;
66 if (buildCounterEmpty < 3) {
67 }
68 buildCounterEmpty--;
69}
70
Martin Kustermanna28e6712017-08-21 17:36:35 +020071buildUnnamed210() {
Gustav Wibling6d477072015-10-19 16:19:14 +020072 var o = new core.List<api.Trace>();
73 o.add(buildTrace());
74 o.add(buildTrace());
75 return o;
76}
77
Martin Kustermanna28e6712017-08-21 17:36:35 +020078checkUnnamed210(core.List<api.Trace> o) {
Gustav Wibling6d477072015-10-19 16:19:14 +020079 unittest.expect(o, unittest.hasLength(2));
80 checkTrace(o[0]);
81 checkTrace(o[1]);
82}
83
84core.int buildCounterListTracesResponse = 0;
85buildListTracesResponse() {
86 var o = new api.ListTracesResponse();
87 buildCounterListTracesResponse++;
88 if (buildCounterListTracesResponse < 3) {
89 o.nextPageToken = "foo";
Martin Kustermanna28e6712017-08-21 17:36:35 +020090 o.traces = buildUnnamed210();
Gustav Wibling6d477072015-10-19 16:19:14 +020091 }
92 buildCounterListTracesResponse--;
93 return o;
94}
95
96checkListTracesResponse(api.ListTracesResponse o) {
97 buildCounterListTracesResponse++;
98 if (buildCounterListTracesResponse < 3) {
99 unittest.expect(o.nextPageToken, unittest.equals('foo'));
Martin Kustermanna28e6712017-08-21 17:36:35 +0200100 checkUnnamed210(o.traces);
Gustav Wibling6d477072015-10-19 16:19:14 +0200101 }
102 buildCounterListTracesResponse--;
103}
104
Martin Kustermanna28e6712017-08-21 17:36:35 +0200105buildUnnamed211() {
Gustav Wibling6d477072015-10-19 16:19:14 +0200106 var o = new core.List<api.TraceSpan>();
107 o.add(buildTraceSpan());
108 o.add(buildTraceSpan());
109 return o;
110}
111
Martin Kustermanna28e6712017-08-21 17:36:35 +0200112checkUnnamed211(core.List<api.TraceSpan> o) {
Gustav Wibling6d477072015-10-19 16:19:14 +0200113 unittest.expect(o, unittest.hasLength(2));
114 checkTraceSpan(o[0]);
115 checkTraceSpan(o[1]);
116}
117
118core.int buildCounterTrace = 0;
119buildTrace() {
120 var o = new api.Trace();
121 buildCounterTrace++;
122 if (buildCounterTrace < 3) {
123 o.projectId = "foo";
Martin Kustermanna28e6712017-08-21 17:36:35 +0200124 o.spans = buildUnnamed211();
Gustav Wibling6d477072015-10-19 16:19:14 +0200125 o.traceId = "foo";
126 }
127 buildCounterTrace--;
128 return o;
129}
130
131checkTrace(api.Trace o) {
132 buildCounterTrace++;
133 if (buildCounterTrace < 3) {
134 unittest.expect(o.projectId, unittest.equals('foo'));
Martin Kustermanna28e6712017-08-21 17:36:35 +0200135 checkUnnamed211(o.spans);
Gustav Wibling6d477072015-10-19 16:19:14 +0200136 unittest.expect(o.traceId, unittest.equals('foo'));
137 }
138 buildCounterTrace--;
139}
140
Martin Kustermanna28e6712017-08-21 17:36:35 +0200141buildUnnamed212() {
Gustav Wibling6d477072015-10-19 16:19:14 +0200142 var o = new core.Map<core.String, core.String>();
143 o["x"] = "foo";
144 o["y"] = "foo";
145 return o;
146}
147
Martin Kustermanna28e6712017-08-21 17:36:35 +0200148checkUnnamed212(core.Map<core.String, core.String> o) {
Gustav Wibling6d477072015-10-19 16:19:14 +0200149 unittest.expect(o, unittest.hasLength(2));
150 unittest.expect(o["x"], unittest.equals('foo'));
151 unittest.expect(o["y"], unittest.equals('foo'));
152}
153
154core.int buildCounterTraceSpan = 0;
155buildTraceSpan() {
156 var o = new api.TraceSpan();
157 buildCounterTraceSpan++;
158 if (buildCounterTraceSpan < 3) {
159 o.endTime = "foo";
160 o.kind = "foo";
Martin Kustermanna28e6712017-08-21 17:36:35 +0200161 o.labels = buildUnnamed212();
Gustav Wibling6d477072015-10-19 16:19:14 +0200162 o.name = "foo";
163 o.parentSpanId = "foo";
164 o.spanId = "foo";
165 o.startTime = "foo";
166 }
167 buildCounterTraceSpan--;
168 return o;
169}
170
171checkTraceSpan(api.TraceSpan o) {
172 buildCounterTraceSpan++;
173 if (buildCounterTraceSpan < 3) {
174 unittest.expect(o.endTime, unittest.equals('foo'));
175 unittest.expect(o.kind, unittest.equals('foo'));
Martin Kustermanna28e6712017-08-21 17:36:35 +0200176 checkUnnamed212(o.labels);
Gustav Wibling6d477072015-10-19 16:19:14 +0200177 unittest.expect(o.name, unittest.equals('foo'));
178 unittest.expect(o.parentSpanId, unittest.equals('foo'));
179 unittest.expect(o.spanId, unittest.equals('foo'));
180 unittest.expect(o.startTime, unittest.equals('foo'));
181 }
182 buildCounterTraceSpan--;
183}
184
Martin Kustermanna28e6712017-08-21 17:36:35 +0200185buildUnnamed213() {
Gustav Wibling6d477072015-10-19 16:19:14 +0200186 var o = new core.List<api.Trace>();
187 o.add(buildTrace());
188 o.add(buildTrace());
189 return o;
190}
191
Martin Kustermanna28e6712017-08-21 17:36:35 +0200192checkUnnamed213(core.List<api.Trace> o) {
Gustav Wibling6d477072015-10-19 16:19:14 +0200193 unittest.expect(o, unittest.hasLength(2));
194 checkTrace(o[0]);
195 checkTrace(o[1]);
196}
197
198core.int buildCounterTraces = 0;
199buildTraces() {
200 var o = new api.Traces();
201 buildCounterTraces++;
202 if (buildCounterTraces < 3) {
Martin Kustermanna28e6712017-08-21 17:36:35 +0200203 o.traces = buildUnnamed213();
Gustav Wibling6d477072015-10-19 16:19:14 +0200204 }
205 buildCounterTraces--;
206 return o;
207}
208
209checkTraces(api.Traces o) {
210 buildCounterTraces++;
211 if (buildCounterTraces < 3) {
Martin Kustermanna28e6712017-08-21 17:36:35 +0200212 checkUnnamed213(o.traces);
Gustav Wibling6d477072015-10-19 16:19:14 +0200213 }
214 buildCounterTraces--;
215}
216
Gustav Wibling6d477072015-10-19 16:19:14 +0200217
218main() {
219 unittest.group("obj-schema-Empty", () {
220 unittest.test("to-json--from-json", () {
221 var o = buildEmpty();
222 var od = new api.Empty.fromJson(o.toJson());
223 checkEmpty(od);
224 });
225 });
226
227
228 unittest.group("obj-schema-ListTracesResponse", () {
229 unittest.test("to-json--from-json", () {
230 var o = buildListTracesResponse();
231 var od = new api.ListTracesResponse.fromJson(o.toJson());
232 checkListTracesResponse(od);
233 });
234 });
235
236
237 unittest.group("obj-schema-Trace", () {
238 unittest.test("to-json--from-json", () {
239 var o = buildTrace();
240 var od = new api.Trace.fromJson(o.toJson());
241 checkTrace(od);
242 });
243 });
244
245
246 unittest.group("obj-schema-TraceSpan", () {
247 unittest.test("to-json--from-json", () {
248 var o = buildTraceSpan();
249 var od = new api.TraceSpan.fromJson(o.toJson());
250 checkTraceSpan(od);
251 });
252 });
253
254
255 unittest.group("obj-schema-Traces", () {
256 unittest.test("to-json--from-json", () {
257 var o = buildTraces();
258 var od = new api.Traces.fromJson(o.toJson());
259 checkTraces(od);
260 });
261 });
262
263
264 unittest.group("resource-ProjectsResourceApi", () {
265 unittest.test("method--patchTraces", () {
266
267 var mock = new HttpServerMock();
268 api.ProjectsResourceApi res = new api.CloudtraceApi(mock).projects;
269 var arg_request = buildTraces();
270 var arg_projectId = "foo";
Martin Kustermann3953f0d2017-06-12 16:59:53 +0200271 mock.register(unittest.expectAsync2((http.BaseRequest req, json) {
Gustav Wibling6d477072015-10-19 16:19:14 +0200272 var obj = new api.Traces.fromJson(json);
273 checkTraces(obj);
274
275 var path = (req.url).path;
276 var pathOffset = 0;
277 var index;
278 var subPart;
279 unittest.expect(path.substring(pathOffset, pathOffset + 1), unittest.equals("/"));
280 pathOffset += 1;
281 unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("v1/projects/"));
282 pathOffset += 12;
283 index = path.indexOf("/traces", pathOffset);
284 unittest.expect(index >= 0, unittest.isTrue);
285 subPart = core.Uri.decodeQueryComponent(path.substring(pathOffset, index));
286 pathOffset = index;
287 unittest.expect(subPart, unittest.equals("$arg_projectId"));
288 unittest.expect(path.substring(pathOffset, pathOffset + 7), unittest.equals("/traces"));
289 pathOffset += 7;
290
291 var query = (req.url).query;
292 var queryOffset = 0;
293 var queryMap = {};
294 addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
295 parseBool(n) {
296 if (n == "true") return true;
297 if (n == "false") return false;
298 if (n == null) return null;
299 throw new core.ArgumentError("Invalid boolean: $n");
300 }
301 if (query.length > 0) {
302 for (var part in query.split("&")) {
303 var keyvalue = part.split("=");
304 addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
305 }
306 }
307
308
309 var h = {
310 "content-type" : "application/json; charset=utf-8",
311 };
312 var resp = convert.JSON.encode(buildEmpty());
313 return new async.Future.value(stringResponse(200, h, resp));
314 }), true);
Martin Kustermann3953f0d2017-06-12 16:59:53 +0200315 res.patchTraces(arg_request, arg_projectId).then(unittest.expectAsync1(((api.Empty response) {
Gustav Wibling6d477072015-10-19 16:19:14 +0200316 checkEmpty(response);
317 })));
318 });
319
320 });
321
322
323 unittest.group("resource-ProjectsTracesResourceApi", () {
324 unittest.test("method--get", () {
325
326 var mock = new HttpServerMock();
327 api.ProjectsTracesResourceApi res = new api.CloudtraceApi(mock).projects.traces;
328 var arg_projectId = "foo";
329 var arg_traceId = "foo";
Martin Kustermann3953f0d2017-06-12 16:59:53 +0200330 mock.register(unittest.expectAsync2((http.BaseRequest req, json) {
Gustav Wibling6d477072015-10-19 16:19:14 +0200331 var path = (req.url).path;
332 var pathOffset = 0;
333 var index;
334 var subPart;
335 unittest.expect(path.substring(pathOffset, pathOffset + 1), unittest.equals("/"));
336 pathOffset += 1;
337 unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("v1/projects/"));
338 pathOffset += 12;
339 index = path.indexOf("/traces/", pathOffset);
340 unittest.expect(index >= 0, unittest.isTrue);
341 subPart = core.Uri.decodeQueryComponent(path.substring(pathOffset, index));
342 pathOffset = index;
343 unittest.expect(subPart, unittest.equals("$arg_projectId"));
344 unittest.expect(path.substring(pathOffset, pathOffset + 8), unittest.equals("/traces/"));
345 pathOffset += 8;
346 subPart = core.Uri.decodeQueryComponent(path.substring(pathOffset));
347 pathOffset = path.length;
348 unittest.expect(subPart, unittest.equals("$arg_traceId"));
349
350 var query = (req.url).query;
351 var queryOffset = 0;
352 var queryMap = {};
353 addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
354 parseBool(n) {
355 if (n == "true") return true;
356 if (n == "false") return false;
357 if (n == null) return null;
358 throw new core.ArgumentError("Invalid boolean: $n");
359 }
360 if (query.length > 0) {
361 for (var part in query.split("&")) {
362 var keyvalue = part.split("=");
363 addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
364 }
365 }
366
367
368 var h = {
369 "content-type" : "application/json; charset=utf-8",
370 };
371 var resp = convert.JSON.encode(buildTrace());
372 return new async.Future.value(stringResponse(200, h, resp));
373 }), true);
Martin Kustermann3953f0d2017-06-12 16:59:53 +0200374 res.get(arg_projectId, arg_traceId).then(unittest.expectAsync1(((api.Trace response) {
Gustav Wibling6d477072015-10-19 16:19:14 +0200375 checkTrace(response);
376 })));
377 });
378
379 unittest.test("method--list", () {
380
381 var mock = new HttpServerMock();
382 api.ProjectsTracesResourceApi res = new api.CloudtraceApi(mock).projects.traces;
383 var arg_projectId = "foo";
Martin Kustermann571f5922017-02-14 09:00:01 +0100384 var arg_filter = "foo";
385 var arg_endTime = "foo";
Martin Kustermanna6d0a322017-03-27 13:52:31 +0200386 var arg_pageToken = "foo";
Martin Kustermannfa83e312017-07-31 12:48:45 +0200387 var arg_startTime = "foo";
Martin Kustermann571f5922017-02-14 09:00:01 +0100388 var arg_pageSize = 42;
389 var arg_view = "foo";
Martin Kustermanna28e6712017-08-21 17:36:35 +0200390 var arg_orderBy = "foo";
Martin Kustermann3953f0d2017-06-12 16:59:53 +0200391 mock.register(unittest.expectAsync2((http.BaseRequest req, json) {
Gustav Wibling6d477072015-10-19 16:19:14 +0200392 var path = (req.url).path;
393 var pathOffset = 0;
394 var index;
395 var subPart;
396 unittest.expect(path.substring(pathOffset, pathOffset + 1), unittest.equals("/"));
397 pathOffset += 1;
398 unittest.expect(path.substring(pathOffset, pathOffset + 12), unittest.equals("v1/projects/"));
399 pathOffset += 12;
400 index = path.indexOf("/traces", pathOffset);
401 unittest.expect(index >= 0, unittest.isTrue);
402 subPart = core.Uri.decodeQueryComponent(path.substring(pathOffset, index));
403 pathOffset = index;
404 unittest.expect(subPart, unittest.equals("$arg_projectId"));
405 unittest.expect(path.substring(pathOffset, pathOffset + 7), unittest.equals("/traces"));
406 pathOffset += 7;
407
408 var query = (req.url).query;
409 var queryOffset = 0;
410 var queryMap = {};
411 addQueryParam(n, v) => queryMap.putIfAbsent(n, () => []).add(v);
412 parseBool(n) {
413 if (n == "true") return true;
414 if (n == "false") return false;
415 if (n == null) return null;
416 throw new core.ArgumentError("Invalid boolean: $n");
417 }
418 if (query.length > 0) {
419 for (var part in query.split("&")) {
420 var keyvalue = part.split("=");
421 addQueryParam(core.Uri.decodeQueryComponent(keyvalue[0]), core.Uri.decodeQueryComponent(keyvalue[1]));
422 }
423 }
Martin Kustermann571f5922017-02-14 09:00:01 +0100424 unittest.expect(queryMap["filter"].first, unittest.equals(arg_filter));
425 unittest.expect(queryMap["endTime"].first, unittest.equals(arg_endTime));
Martin Kustermanna6d0a322017-03-27 13:52:31 +0200426 unittest.expect(queryMap["pageToken"].first, unittest.equals(arg_pageToken));
Martin Kustermannfa83e312017-07-31 12:48:45 +0200427 unittest.expect(queryMap["startTime"].first, unittest.equals(arg_startTime));
Martin Kustermann571f5922017-02-14 09:00:01 +0100428 unittest.expect(core.int.parse(queryMap["pageSize"].first), unittest.equals(arg_pageSize));
429 unittest.expect(queryMap["view"].first, unittest.equals(arg_view));
Martin Kustermanna28e6712017-08-21 17:36:35 +0200430 unittest.expect(queryMap["orderBy"].first, unittest.equals(arg_orderBy));
Gustav Wibling6d477072015-10-19 16:19:14 +0200431
432
433 var h = {
434 "content-type" : "application/json; charset=utf-8",
435 };
436 var resp = convert.JSON.encode(buildListTracesResponse());
437 return new async.Future.value(stringResponse(200, h, resp));
438 }), true);
Martin Kustermanna28e6712017-08-21 17:36:35 +0200439 res.list(arg_projectId, filter: arg_filter, endTime: arg_endTime, pageToken: arg_pageToken, startTime: arg_startTime, pageSize: arg_pageSize, view: arg_view, orderBy: arg_orderBy).then(unittest.expectAsync1(((api.ListTracesResponse response) {
Gustav Wibling6d477072015-10-19 16:19:14 +0200440 checkListTracesResponse(response);
441 })));
442 });
443
444 });
445
446
Gustav Wibling6d477072015-10-19 16:19:14 +0200447}
448