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 |