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

Side by Side Diff: test/file_generator_test.dart

Issue 2043913005: Change how to set the Dart name of a field (Closed) Base URL: git@github.com:dart-lang/dart-protoc-plugin.git@master
Patch Set: better error checking, clean up pubspec Created 4 years, 6 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
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/indenting_writer.dart'; 8 import 'package:protoc_plugin/indenting_writer.dart';
9 import 'package:protoc_plugin/src/descriptor.pb.dart'; 9 import 'package:protoc_plugin/src/descriptor.pb.dart';
10 import 'package:protoc_plugin/src/plugin.pb.dart'; 10 import 'package:protoc_plugin/src/plugin.pb.dart';
(...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 401
402 FileGenerator fg = new FileGenerator(fd); 402 FileGenerator fg = new FileGenerator(fd);
403 link(options, [fg]); 403 link(options, [fg]);
404 404
405 var writer = new IndentingWriter(); 405 var writer = new IndentingWriter();
406 fg.writeMainHeader(writer); 406 fg.writeMainHeader(writer);
407 expect(fg.generateMainFile(), expectedClient); 407 expect(fg.generateMainFile(), expectedClient);
408 expect(fg.generateServerFile(), expectedServer); 408 expect(fg.generateServerFile(), expectedServer);
409 }); 409 });
410 410
411 test('FileGenerator handles field_name options', () {
412 // NOTE: Below > 80 cols because it is matching generated code > 80 cols.
413 String expected = r'''
414 ///
415 // Generated code. Do not modify.
416 ///
417 library test;
418
419 import 'package:protobuf/protobuf.dart';
420
421 class PhoneNumber extends GeneratedMessage {
422 static final BuilderInfo _i = new BuilderInfo('PhoneNumber')
423 ..a/*<String>*/(1, 'no', PbFieldType.QS)
424 ..a/*<int>*/(2, 'the_type', PbFieldType.O3)
425 ..a/*<String>*/(3, 'name_', PbFieldType.OS, '\$')
426 ;
427
428 PhoneNumber() : super();
429 PhoneNumber.fromBuffer(List<int> i, [ExtensionRegistry r = ExtensionRegistry.E MPTY]) : super.fromBuffer(i, r);
430 PhoneNumber.fromJson(String i, [ExtensionRegistry r = ExtensionRegistry.EMPTY] ) : super.fromJson(i, r);
431 PhoneNumber clone() => new PhoneNumber()..mergeFromMessage(this);
432 BuilderInfo get info_ => _i;
433 static PhoneNumber create() => new PhoneNumber();
434 static PbList<PhoneNumber> createRepeated() => new PbList<PhoneNumber>();
435 static PhoneNumber getDefault() {
436 if (_defaultInstance == null) _defaultInstance = new _ReadonlyPhoneNumber();
437 return _defaultInstance;
438 }
439 static PhoneNumber _defaultInstance;
440 static void $checkItem(PhoneNumber v) {
441 if (v is !PhoneNumber) checkItemFailed(v, 'PhoneNumber');
442 }
443
444 String get no => $_get(0, 1, '');
445 void set no(String v) { $_setString(0, 1, v); }
446 bool hasNo() => $_has(0, 1);
447 void clearNo() => clearField(1);
448
449 int get the_type => $_get(1, 2, 0);
450 void set the_type(int v) { $_setUnsignedInt32(1, 2, v); }
451 bool hasThe_type() => $_has(1, 2);
452 void clearThe_type() => clearField(2);
453
454 String get name_ => $_get(2, 3, '\$');
455 void set name_(String v) { $_setString(2, 3, v); }
456 bool hasName_() => $_has(2, 3);
457 void clearName_() => clearField(3);
458 }
459
460 class _ReadonlyPhoneNumber extends PhoneNumber with ReadonlyMessageMixin {}
461
462 ''';
463 FileDescriptorProto fd = buildFileDescriptor();
464 var request = new CodeGeneratorRequest();
465 request.parameter = 'field_name=PhoneNumber.number|No,'
466 'field_name=PhoneNumber.name|Name_,'
467 'field_name=PhoneNumber.type|The_type';
468 var options = parseGenerationOptions(request, new CodeGeneratorResponse());
469
470 FileGenerator fg = new FileGenerator(fd);
471 link(options, [fg]);
472 expect(fg.generateMainFile(), expected);
473 });
474
475 test('FileGenerator generates imports for .pb.dart files', () { 411 test('FileGenerator generates imports for .pb.dart files', () {
476 // NOTE: Below > 80 cols because it is matching generated code > 80 cols. 412 // NOTE: Below > 80 cols because it is matching generated code > 80 cols.
477 String expected = r''' 413 String expected = r'''
478 /// 414 ///
479 // Generated code. Do not modify. 415 // Generated code. Do not modify.
480 /// 416 ///
481 library test; 417 library test;
482 418
483 import 'package:protobuf/protobuf.dart'; 419 import 'package:protobuf/protobuf.dart';
484 420
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
641 var request = new CodeGeneratorRequest(); 577 var request = new CodeGeneratorRequest();
642 var response = new CodeGeneratorResponse(); 578 var response = new CodeGeneratorResponse();
643 var options = parseGenerationOptions(request, response); 579 var options = parseGenerationOptions(request, response);
644 580
645 FileGenerator fg = new FileGenerator(fd); 581 FileGenerator fg = new FileGenerator(fd);
646 link(options, [fg, new FileGenerator(fd1), new FileGenerator(fd2)]); 582 link(options, [fg, new FileGenerator(fd1), new FileGenerator(fd2)]);
647 expect(fg.generateMainFile(), expected); 583 expect(fg.generateMainFile(), expected);
648 expect(fg.generateJsonFile(), expectedJson); 584 expect(fg.generateJsonFile(), expectedJson);
649 }); 585 });
650 } 586 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698