Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(156)

Side by Side Diff: test/file_generator_test.dart

Issue 269823003: Parameterize uri resolution and parsing of options, use package:path (Closed) Base URL: git@github.com:dart-lang/dart-protoc-plugin.git@master
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698