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 |