| 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 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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 = |
| 114 new GenerationOptions( | 114 parseDefaultGenerationOptions( |
| 115 new CodeGeneratorRequest(), new CodeGeneratorResponse()); | 115 new CodeGeneratorRequest(), new CodeGeneratorResponse()); |
| 116 FileGenerator fg = | 116 FileGenerator fg = new FileGenerator(fd, null, |
| 117 new FileGenerator(fd, null, new GenerationContext(options)); | 117 new GenerationContext(options, new DefaultOutputConfiguration())); |
| 118 fg.generate(writer); | 118 fg.generate(writer); |
| 119 expect(buffer.toString(), expected); | 119 expect(buffer.toString(), expected); |
| 120 }); | 120 }); |
| 121 | 121 |
| 122 test('testMessageGeneratorTopLevelEmun', () { | 122 test('testMessageGeneratorTopLevelEmun', () { |
| 123 // NOTE: Below > 80 cols because it is matching generated code > 80 cols. | 123 // NOTE: Below > 80 cols because it is matching generated code > 80 cols. |
| 124 String expected = r''' | 124 String expected = r''' |
| 125 /// | 125 /// |
| 126 // Generated code. Do not modify. | 126 // Generated code. Do not modify. |
| 127 /// | 127 /// |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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 parseDefaultGenerationOptions( |
| 187 new CodeGeneratorRequest(), new CodeGeneratorResponse()); | 187 new CodeGeneratorRequest(), new CodeGeneratorResponse()); |
| 188 FileGenerator fg = | 188 FileGenerator fg = new FileGenerator(fd, null, |
| 189 new FileGenerator(fd, null, new GenerationContext(options)); | 189 new GenerationContext(options, new DefaultOutputConfiguration())); |
| 190 fg.generate(writer); | 190 fg.generate(writer); |
| 191 expect(buffer.toString(), expected); | 191 expect(buffer.toString(), expected); |
| 192 }); | 192 }); |
| 193 | 193 |
| 194 test('testMessageGeneratorPackage', () { | 194 test('testMessageGeneratorPackage', () { |
| 195 // NOTE: Below > 80 cols because it is matching generated code > 80 cols. | 195 // NOTE: Below > 80 cols because it is matching generated code > 80 cols. |
| 196 String expected = r''' | 196 String expected = r''' |
| 197 /// | 197 /// |
| 198 // Generated code. Do not modify. | 198 // Generated code. Do not modify. |
| 199 /// | 199 /// |
| (...skipping 30 matching lines...) Expand all Loading... |
| 230 bool hasName() => hasField(3); | 230 bool hasName() => hasField(3); |
| 231 void clearName() => clearField(3); | 231 void clearName() => clearField(3); |
| 232 } | 232 } |
| 233 | 233 |
| 234 '''; | 234 '''; |
| 235 FileDescriptorProto fd = buildFileDescriptor(); | 235 FileDescriptorProto fd = buildFileDescriptor(); |
| 236 fd.package = "pb_library"; | 236 fd.package = "pb_library"; |
| 237 MemoryWriter buffer = new MemoryWriter(); | 237 MemoryWriter buffer = new MemoryWriter(); |
| 238 IndentingWriter writer = new IndentingWriter(' ', buffer); | 238 IndentingWriter writer = new IndentingWriter(' ', buffer); |
| 239 var options = | 239 var options = |
| 240 new GenerationOptions( | 240 parseDefaultGenerationOptions( |
| 241 new CodeGeneratorRequest(), new CodeGeneratorResponse()); | 241 new CodeGeneratorRequest(), new CodeGeneratorResponse()); |
| 242 FileGenerator fg = | 242 FileGenerator fg = new FileGenerator(fd, null, |
| 243 new FileGenerator(fd, null, new GenerationContext(options)); | 243 new GenerationContext(options, new DefaultOutputConfiguration())); |
| 244 fg.generate(writer); | 244 fg.generate(writer); |
| 245 expect(buffer.toString(), expected); | 245 expect(buffer.toString(), expected); |
| 246 }); | 246 }); |
| 247 | 247 |
| 248 test('testMessageGeneratorFieldNameOption', () { | 248 test('testMessageGeneratorFieldNameOption', () { |
| 249 // NOTE: Below > 80 cols because it is matching generated code > 80 cols. | 249 // NOTE: Below > 80 cols because it is matching generated code > 80 cols. |
| 250 String expected = r''' | 250 String expected = r''' |
| 251 /// | 251 /// |
| 252 // Generated code. Do not modify. | 252 // Generated code. Do not modify. |
| 253 /// | 253 /// |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 287 | 287 |
| 288 '''; | 288 '''; |
| 289 FileDescriptorProto fd = buildFileDescriptor(); | 289 FileDescriptorProto fd = buildFileDescriptor(); |
| 290 MemoryWriter buffer = new MemoryWriter(); | 290 MemoryWriter buffer = new MemoryWriter(); |
| 291 IndentingWriter writer = new IndentingWriter(' ', buffer); | 291 IndentingWriter writer = new IndentingWriter(' ', buffer); |
| 292 var request = new CodeGeneratorRequest(); | 292 var request = new CodeGeneratorRequest(); |
| 293 request.parameter = 'field_name=PhoneNumber.number|No,' | 293 request.parameter = 'field_name=PhoneNumber.number|No,' |
| 294 'field_name=PhoneNumber.name|Name_,' | 294 'field_name=PhoneNumber.name|Name_,' |
| 295 'field_name=PhoneNumber.type|The_type'; | 295 'field_name=PhoneNumber.type|The_type'; |
| 296 var options = | 296 var options = |
| 297 new GenerationOptions( | 297 parseDefaultGenerationOptions( |
| 298 request, new CodeGeneratorResponse()); | 298 request, new CodeGeneratorResponse()); |
| 299 FileGenerator fg = | 299 FileGenerator fg = new FileGenerator(fd, null, |
| 300 new FileGenerator( | 300 new GenerationContext(options, new DefaultOutputConfiguration())); |
| 301 fd, null, new GenerationContext(options)); | |
| 302 fg.generate(writer); | 301 fg.generate(writer); |
| 303 expect(buffer.toString(), expected); | 302 expect(buffer.toString(), expected); |
| 304 }); | 303 }); |
| 305 | 304 |
| 306 test('testMessageGeneratorFieldNameOption', () { | 305 test('testMessageGeneratorFieldNameOption', () { |
| 307 // NOTE: Below > 80 cols because it is matching generated code > 80 cols. | 306 // NOTE: Below > 80 cols because it is matching generated code > 80 cols. |
| 308 String expected = r''' | 307 String expected = r''' |
| 309 /// | 308 /// |
| 310 // Generated code. Do not modify. | 309 // Generated code. Do not modify. |
| 311 /// | 310 /// |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 436 ..type = FieldDescriptorProto_Type.TYPE_MESSAGE | 435 ..type = FieldDescriptorProto_Type.TYPE_MESSAGE |
| 437 ..typeName = ".p2.M", | 436 ..typeName = ".p2.M", |
| 438 ]); | 437 ]); |
| 439 FileDescriptorProto fd = new FileDescriptorProto() | 438 FileDescriptorProto fd = new FileDescriptorProto() |
| 440 ..name = 'test.proto' | 439 ..name = 'test.proto' |
| 441 ..messageType.add(md); | 440 ..messageType.add(md); |
| 442 fd.dependency.addAll(['package1.proto', 'package2.proto']); | 441 fd.dependency.addAll(['package1.proto', 'package2.proto']); |
| 443 MemoryWriter buffer = new MemoryWriter(); | 442 MemoryWriter buffer = new MemoryWriter(); |
| 444 IndentingWriter writer = new IndentingWriter(' ', buffer); | 443 IndentingWriter writer = new IndentingWriter(' ', buffer); |
| 445 var request = new CodeGeneratorRequest(); | 444 var request = new CodeGeneratorRequest(); |
| 446 var options = new GenerationOptions(request, new CodeGeneratorResponse()); | 445 var response = new CodeGeneratorResponse(); |
| 447 var context = new GenerationContext(options); | 446 var options = parseDefaultGenerationOptions(request, response); |
| 447 var context = new GenerationContext(options, |
| 448 new DefaultOutputConfiguration()); |
| 448 new FileGenerator(fd1, null, context); | 449 new FileGenerator(fd1, null, context); |
| 449 new FileGenerator(fd2, null, context); | 450 new FileGenerator(fd2, null, context); |
| 450 FileGenerator fg = new FileGenerator(fd, null, context); | 451 FileGenerator fg = new FileGenerator(fd, null, context); |
| 451 fg.generate(writer); | 452 fg.generate(writer); |
| 452 expect(buffer.toString(), expected); | 453 expect(buffer.toString(), expected); |
| 453 }); | 454 }); |
| 454 } | 455 } |
| OLD | NEW |