Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(321)

Side by Side Diff: test/file_generator_test.dart

Issue 120983006: Add a test of file generating when using import (Closed) Base URL: https://github.com/dart-lang/dart-protoc-plugin.git@master
Patch Set: Update pubspec Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « pubspec.yaml ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env dart 1 #!/usr/bin/env dart
2 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 2 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
3 // for details. All rights reserved. Use of this source code is governed by a 3 // for details. All rights reserved. Use of this source code is governed by a
4 // BSD-style license that can be found in the LICENSE file. 4 // BSD-style license that can be found in the LICENSE file.
5 5
6 library file_generator_test; 6 library file_generator_test;
7 7
8 import 'package:protoc-plugin/src/descriptor.pb.dart'; 8 import 'package:protoc-plugin/src/descriptor.pb.dart';
9 import 'package:protoc-plugin/src/plugin.pb.dart'; 9 import 'package:protoc-plugin/src/plugin.pb.dart';
10 import 'package:protoc-plugin/protoc.dart'; 10 import 'package:protoc-plugin/protoc.dart';
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 bool hasType() => hasField(2); 172 bool hasType() => hasField(2);
173 void clearType() => clearField(2); 173 void clearType() => clearField(2);
174 174
175 String get name => getField(3); 175 String get name => getField(3);
176 void set name(String v) { setField(3, v); } 176 void set name(String v) { setField(3, v); }
177 bool hasName() => hasField(3); 177 bool hasName() => hasField(3);
178 void clearName() => clearField(3); 178 void clearName() => clearField(3);
179 } 179 }
180 180
181 '''; 181 ''';
182 FileDescriptorProto fd = buildFileDescriptor(topLevelEnum: true); 182 FileDescriptorProto fd = buildFileDescriptor(topLevelEnum: true);
183 MemoryWriter buffer = new MemoryWriter(); 183 MemoryWriter buffer = new MemoryWriter();
184 IndentingWriter writer = new IndentingWriter(' ', buffer); 184 IndentingWriter writer = new IndentingWriter(' ', buffer);
185 var options = 185 var options =
186 new GenerationOptions( 186 new GenerationOptions(
187 new CodeGeneratorRequest(), new CodeGeneratorResponse()); 187 new CodeGeneratorRequest(), new CodeGeneratorResponse());
188 FileGenerator fg = 188 FileGenerator fg =
189 new FileGenerator(fd, null, new GenerationContext(options)); 189 new FileGenerator(fd, null, new GenerationContext(options));
190 fg.generate(writer); 190 fg.generate(writer);
191 expect(buffer.toString(), expected); 191 expect(buffer.toString(), expected);
192 }); 192 });
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 'field_name=PhoneNumber.type|The_type'; 295 'field_name=PhoneNumber.type|The_type';
296 var options = 296 var options =
297 new GenerationOptions( 297 new GenerationOptions(
298 request, new CodeGeneratorResponse()); 298 request, new CodeGeneratorResponse());
299 FileGenerator fg = 299 FileGenerator fg =
300 new FileGenerator( 300 new FileGenerator(
301 fd, null, new GenerationContext(options)); 301 fd, null, new GenerationContext(options));
302 fg.generate(writer); 302 fg.generate(writer);
303 expect(buffer.toString(), expected); 303 expect(buffer.toString(), expected);
304 }); 304 });
305
306 test('testMessageGeneratorFieldNameOption', () {
307 // NOTE: Below > 80 cols because it is matching generated code > 80 cols.
308 String expected = r'''
309 ///
310 // Generated code. Do not modify.
311 ///
312 library test;
313
314 import 'package:fixnum/fixnum.dart';
315 import 'package:protobuf/protobuf.dart';
316 import 'package1.pb.dart' as p1;
317 import 'package2.pb.dart' as p2;
318
319 class M extends GeneratedMessage {
320 static final BuilderInfo _i = new BuilderInfo('M')
321 ..a(1, 'm', GeneratedMessage.OM, () => new M(), () => new M())
322 ..a(2, 'm1', GeneratedMessage.OM, () => new p1.M(), () => new p1.M())
323 ..a(3, 'm2', GeneratedMessage.OM, () => new p2.M(), () => new p2.M())
324 ..hasRequiredFields = false
325 ;
326
327 M() : super();
328 M.fromBuffer(List<int> i, [ExtensionRegistry r = ExtensionRegistry.EMPTY]) : s uper.fromBuffer(i, r);
329 M.fromJson(String i, [ExtensionRegistry r = ExtensionRegistry.EMPTY]) : super. fromJson(i, r);
330 M clone() => new M()..mergeFromMessage(this);
331 BuilderInfo get info_ => _i;
332
333 M get m => getField(1);
334 void set m(M v) { setField(1, v); }
335 bool hasM() => hasField(1);
336 void clearM() => clearField(1);
337
338 p1.M get m1 => getField(2);
339 void set m1(p1.M v) { setField(2, v); }
340 bool hasM1() => hasField(2);
341 void clearM1() => clearField(2);
342
343 p2.M get m2 => getField(3);
344 void set m2(p2.M v) { setField(3, v); }
345 bool hasM2() => hasField(3);
346 void clearM2() => clearField(3);
347 }
348
349 ''';
350
351 // This defines three .proto files package1.proto, package2.proto and
352 // test.proto with the following content:
353 //
354 // package1.proto:
355 // ---------------
356 // package p1;
357 // message M {
358 // optional M m = 2;
359 // }
360 //
361 // package2.proto:
362 // ---------------
363 // package p2;
364 // message M {
365 // optional M m = 2;
366 // }
367 //
368 // test.proto:
369 // ---------------
370 // package test;
371 // import "package1.proto";
372 // import "package2.proto";
373 // message M {
374 // optional M m = 1;
375 // optional p1.M m1 = 2;
376 // optional p2.M m2 = 3;
377 // }
378
379 // Description of package1.proto.
380 DescriptorProto md1 = new DescriptorProto()
381 ..name = 'M'
382 ..field.addAll([
383 // optional M m = 1;
384 new FieldDescriptorProto()
385 ..name = 'm'
386 ..number = 1
387 ..label = FieldDescriptorProto_Label.LABEL_OPTIONAL
388 ..type = FieldDescriptorProto_Type.TYPE_MESSAGE
389 ..typeName = ".p1.M",
390 ]);
391 FileDescriptorProto fd1 = new FileDescriptorProto()
392 ..package = 'p1'
393 ..name = 'package1.proto'
394 ..messageType.add(md1);
395
396 // Description of package1.proto.
397 DescriptorProto md2 = new DescriptorProto()
398 ..name = 'M'
399 ..field.addAll([
400 // optional M m = 1;
401 new FieldDescriptorProto()
402 ..name = 'x'
403 ..number = 1
404 ..label = FieldDescriptorProto_Label.LABEL_OPTIONAL
405 ..type = FieldDescriptorProto_Type.TYPE_MESSAGE
406 ..typeName = ".p2.M",
407 ]);
408 FileDescriptorProto fd2 = new FileDescriptorProto()
409 ..package = 'p2'
410 ..name = 'package2.proto'
411 ..messageType.add(md2);
412
413 // Description of test.proto.
414 DescriptorProto md = new DescriptorProto()
415 ..name = 'M'
416 ..field.addAll([
417 // optional M m = 1;
418 new FieldDescriptorProto()
419 ..name = 'm'
420 ..number = 1
421 ..label = FieldDescriptorProto_Label.LABEL_OPTIONAL
422 ..type = FieldDescriptorProto_Type.TYPE_MESSAGE
423 ..typeName = ".M",
424 // optional p1.M m1 = 2;
425 new FieldDescriptorProto()
426 ..name = 'm1'
427 ..number = 2
428 ..label = FieldDescriptorProto_Label.LABEL_OPTIONAL
429 ..type = FieldDescriptorProto_Type.TYPE_MESSAGE
430 ..typeName = ".p1.M",
431 // optional p2.M m2 = 3;
432 new FieldDescriptorProto()
433 ..name = 'm2'
434 ..number = 3
435 ..label = FieldDescriptorProto_Label.LABEL_OPTIONAL
436 ..type = FieldDescriptorProto_Type.TYPE_MESSAGE
437 ..typeName = ".p2.M",
438 ]);
439 FileDescriptorProto fd = new FileDescriptorProto()
440 ..name = 'test.proto'
441 ..messageType.add(md);
442 fd.dependency.addAll(['package1.proto', 'package2.proto']);
443 MemoryWriter buffer = new MemoryWriter();
444 IndentingWriter writer = new IndentingWriter(' ', buffer);
445 var request = new CodeGeneratorRequest();
446 var options = new GenerationOptions(request, new CodeGeneratorResponse());
447 var context = new GenerationContext(options);
448 new FileGenerator(fd1, null, context);
449 new FileGenerator(fd2, null, context);
450 FileGenerator fg = new FileGenerator(fd, null, context);
451 fg.generate(writer);
452 expect(buffer.toString(), expected);
453 });
305 } 454 }
OLDNEW
« no previous file with comments | « pubspec.yaml ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698