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 |