| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |