| 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/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'; |
| 11 import 'package:unittest/unittest.dart'; | 11 import 'package:unittest/unittest.dart'; |
| 12 | 12 |
| 13 | 13 |
| 14 FileDescriptorProto buildFileDescriptor({topLevelEnum: false}) { | 14 FileDescriptorProto buildFileDescriptor({topLevelEnum: false}) { |
| 15 EnumDescriptorProto ed; | 15 EnumDescriptorProto ed; |
| 16 if (topLevelEnum) { | 16 if (topLevelEnum) { |
| 17 ed = new EnumDescriptorProto() | 17 ed = new EnumDescriptorProto() |
| 18 ..name = 'PhoneType' | 18 ..name = 'PhoneType' |
| 19 ..value.addAll([ | 19 ..value.addAll([ |
| 20 new EnumValueDescriptorProto() | 20 new EnumValueDescriptorProto() |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 103 String get name => getField(3); | 103 String get name => getField(3); |
| 104 void set name(String v) { setField(3, v); } | 104 void set name(String v) { setField(3, v); } |
| 105 bool hasName() => hasField(3); | 105 bool hasName() => hasField(3); |
| 106 void clearName() => clearField(3); | 106 void clearName() => clearField(3); |
| 107 } | 107 } |
| 108 | 108 |
| 109 '''; | 109 '''; |
| 110 FileDescriptorProto fd = buildFileDescriptor(); | 110 FileDescriptorProto fd = buildFileDescriptor(); |
| 111 MemoryWriter buffer = new MemoryWriter(); | 111 MemoryWriter buffer = new MemoryWriter(); |
| 112 IndentingWriter writer = new IndentingWriter(' ', buffer); | 112 IndentingWriter writer = new IndentingWriter(' ', buffer); |
| 113 var options = | 113 var options = parseGenerationOptions( |
| 114 new GenerationOptions( | 114 new CodeGeneratorRequest(), new CodeGeneratorResponse()); |
| 115 new CodeGeneratorRequest(), new CodeGeneratorResponse()); | 115 FileGenerator fg = new FileGenerator(fd, null, |
| 116 FileGenerator fg = | 116 new GenerationContext(options, new DefaultOutputConfiguration())); |
| 117 new FileGenerator(fd, null, new GenerationContext(options)); | |
| 118 fg.generate(writer); | 117 fg.generate(writer); |
| 119 expect(buffer.toString(), expected); | 118 expect(buffer.toString(), expected); |
| 120 }); | 119 }); |
| 121 | 120 |
| 122 test('testMessageGeneratorTopLevelEmun', () { | 121 test('testMessageGeneratorTopLevelEmun', () { |
| 123 // NOTE: Below > 80 cols because it is matching generated code > 80 cols. | 122 // NOTE: Below > 80 cols because it is matching generated code > 80 cols. |
| 124 String expected = r''' | 123 String expected = r''' |
| 125 /// | 124 /// |
| 126 // Generated code. Do not modify. | 125 // Generated code. Do not modify. |
| 127 /// | 126 /// |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 String get name => getField(3); | 174 String get name => getField(3); |
| 176 void set name(String v) { setField(3, v); } | 175 void set name(String v) { setField(3, v); } |
| 177 bool hasName() => hasField(3); | 176 bool hasName() => hasField(3); |
| 178 void clearName() => clearField(3); | 177 void clearName() => clearField(3); |
| 179 } | 178 } |
| 180 | 179 |
| 181 '''; | 180 '''; |
| 182 FileDescriptorProto fd = buildFileDescriptor(topLevelEnum: true); | 181 FileDescriptorProto fd = buildFileDescriptor(topLevelEnum: true); |
| 183 MemoryWriter buffer = new MemoryWriter(); | 182 MemoryWriter buffer = new MemoryWriter(); |
| 184 IndentingWriter writer = new IndentingWriter(' ', buffer); | 183 IndentingWriter writer = new IndentingWriter(' ', buffer); |
| 185 var options = | 184 var options = parseGenerationOptions( |
| 186 new GenerationOptions( | 185 new CodeGeneratorRequest(), new CodeGeneratorResponse()); |
| 187 new CodeGeneratorRequest(), new CodeGeneratorResponse()); | 186 FileGenerator fg = new FileGenerator(fd, null, |
| 188 FileGenerator fg = | 187 new GenerationContext(options, new DefaultOutputConfiguration())); |
| 189 new FileGenerator(fd, null, new GenerationContext(options)); | |
| 190 fg.generate(writer); | 188 fg.generate(writer); |
| 191 expect(buffer.toString(), expected); | 189 expect(buffer.toString(), expected); |
| 192 }); | 190 }); |
| 193 | 191 |
| 194 test('testMessageGeneratorPackage', () { | 192 test('testMessageGeneratorPackage', () { |
| 195 // NOTE: Below > 80 cols because it is matching generated code > 80 cols. | 193 // NOTE: Below > 80 cols because it is matching generated code > 80 cols. |
| 196 String expected = r''' | 194 String expected = r''' |
| 197 /// | 195 /// |
| 198 // Generated code. Do not modify. | 196 // Generated code. Do not modify. |
| 199 /// | 197 /// |
| (...skipping 29 matching lines...) Expand all Loading... |
| 229 void set name(String v) { setField(3, v); } | 227 void set name(String v) { setField(3, v); } |
| 230 bool hasName() => hasField(3); | 228 bool hasName() => hasField(3); |
| 231 void clearName() => clearField(3); | 229 void clearName() => clearField(3); |
| 232 } | 230 } |
| 233 | 231 |
| 234 '''; | 232 '''; |
| 235 FileDescriptorProto fd = buildFileDescriptor(); | 233 FileDescriptorProto fd = buildFileDescriptor(); |
| 236 fd.package = "pb_library"; | 234 fd.package = "pb_library"; |
| 237 MemoryWriter buffer = new MemoryWriter(); | 235 MemoryWriter buffer = new MemoryWriter(); |
| 238 IndentingWriter writer = new IndentingWriter(' ', buffer); | 236 IndentingWriter writer = new IndentingWriter(' ', buffer); |
| 239 var options = | 237 var options = parseGenerationOptions( |
| 240 new GenerationOptions( | 238 new CodeGeneratorRequest(), new CodeGeneratorResponse()); |
| 241 new CodeGeneratorRequest(), new CodeGeneratorResponse()); | 239 FileGenerator fg = new FileGenerator(fd, null, |
| 242 FileGenerator fg = | 240 new GenerationContext(options, new DefaultOutputConfiguration())); |
| 243 new FileGenerator(fd, null, new GenerationContext(options)); | |
| 244 fg.generate(writer); | 241 fg.generate(writer); |
| 245 expect(buffer.toString(), expected); | 242 expect(buffer.toString(), expected); |
| 246 }); | 243 }); |
| 247 | 244 |
| 248 test('testMessageGeneratorFieldNameOption', () { | 245 test('testMessageGeneratorFieldNameOption', () { |
| 249 // NOTE: Below > 80 cols because it is matching generated code > 80 cols. | 246 // NOTE: Below > 80 cols because it is matching generated code > 80 cols. |
| 250 String expected = r''' | 247 String expected = r''' |
| 251 /// | 248 /// |
| 252 // Generated code. Do not modify. | 249 // Generated code. Do not modify. |
| 253 /// | 250 /// |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 286 } | 283 } |
| 287 | 284 |
| 288 '''; | 285 '''; |
| 289 FileDescriptorProto fd = buildFileDescriptor(); | 286 FileDescriptorProto fd = buildFileDescriptor(); |
| 290 MemoryWriter buffer = new MemoryWriter(); | 287 MemoryWriter buffer = new MemoryWriter(); |
| 291 IndentingWriter writer = new IndentingWriter(' ', buffer); | 288 IndentingWriter writer = new IndentingWriter(' ', buffer); |
| 292 var request = new CodeGeneratorRequest(); | 289 var request = new CodeGeneratorRequest(); |
| 293 request.parameter = 'field_name=PhoneNumber.number|No,' | 290 request.parameter = 'field_name=PhoneNumber.number|No,' |
| 294 'field_name=PhoneNumber.name|Name_,' | 291 'field_name=PhoneNumber.name|Name_,' |
| 295 'field_name=PhoneNumber.type|The_type'; | 292 'field_name=PhoneNumber.type|The_type'; |
| 296 var options = | 293 var options = parseGenerationOptions( |
| 297 new GenerationOptions( | 294 request, new CodeGeneratorResponse()); |
| 298 request, new CodeGeneratorResponse()); | 295 FileGenerator fg = new FileGenerator(fd, null, |
| 299 FileGenerator fg = | 296 new GenerationContext(options, new DefaultOutputConfiguration())); |
| 300 new FileGenerator( | |
| 301 fd, null, new GenerationContext(options)); | |
| 302 fg.generate(writer); | 297 fg.generate(writer); |
| 303 expect(buffer.toString(), expected); | 298 expect(buffer.toString(), expected); |
| 304 }); | 299 }); |
| 305 | 300 |
| 306 test('testMessageGeneratorFieldNameOption', () { | 301 test('testMessageGeneratorFieldNameOption', () { |
| 307 // NOTE: Below > 80 cols because it is matching generated code > 80 cols. | 302 // NOTE: Below > 80 cols because it is matching generated code > 80 cols. |
| 308 String expected = r''' | 303 String expected = r''' |
| 309 /// | 304 /// |
| 310 // Generated code. Do not modify. | 305 // Generated code. Do not modify. |
| 311 /// | 306 /// |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 436 ..type = FieldDescriptorProto_Type.TYPE_MESSAGE | 431 ..type = FieldDescriptorProto_Type.TYPE_MESSAGE |
| 437 ..typeName = ".p2.M", | 432 ..typeName = ".p2.M", |
| 438 ]); | 433 ]); |
| 439 FileDescriptorProto fd = new FileDescriptorProto() | 434 FileDescriptorProto fd = new FileDescriptorProto() |
| 440 ..name = 'test.proto' | 435 ..name = 'test.proto' |
| 441 ..messageType.add(md); | 436 ..messageType.add(md); |
| 442 fd.dependency.addAll(['package1.proto', 'package2.proto']); | 437 fd.dependency.addAll(['package1.proto', 'package2.proto']); |
| 443 MemoryWriter buffer = new MemoryWriter(); | 438 MemoryWriter buffer = new MemoryWriter(); |
| 444 IndentingWriter writer = new IndentingWriter(' ', buffer); | 439 IndentingWriter writer = new IndentingWriter(' ', buffer); |
| 445 var request = new CodeGeneratorRequest(); | 440 var request = new CodeGeneratorRequest(); |
| 446 var options = new GenerationOptions(request, new CodeGeneratorResponse()); | 441 var response = new CodeGeneratorResponse(); |
| 447 var context = new GenerationContext(options); | 442 var options = parseGenerationOptions(request, response); |
| 443 var context = new GenerationContext(options, |
| 444 new DefaultOutputConfiguration()); |
| 448 new FileGenerator(fd1, null, context); | 445 new FileGenerator(fd1, null, context); |
| 449 new FileGenerator(fd2, null, context); | 446 new FileGenerator(fd2, null, context); |
| 450 FileGenerator fg = new FileGenerator(fd, null, context); | 447 FileGenerator fg = new FileGenerator(fd, null, context); |
| 451 fg.generate(writer); | 448 fg.generate(writer); |
| 452 expect(buffer.toString(), expected); | 449 expect(buffer.toString(), expected); |
| 453 }); | 450 }); |
| 454 } | 451 } |
| OLD | NEW |