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 enum_generator_test; | 6 library enum_generator_test; |
7 | 7 |
8 import 'package:protoc_plugin/indenting_writer.dart'; | 8 import 'package:protoc_plugin/indenting_writer.dart'; |
9 import 'package:protoc_plugin/protoc.dart'; | 9 import 'package:protoc_plugin/protoc.dart'; |
10 import 'package:protoc_plugin/src/descriptor.pb.dart'; | 10 import 'package:protoc_plugin/src/descriptor.pb.dart'; |
11 import 'package:test/test.dart'; | 11 import 'package:test/test.dart'; |
12 | 12 |
13 void main() { | 13 void main() { |
14 test('testEnumGenerator', () { | 14 test('testEnumGenerator', () { |
15 String expected = r''' | 15 String expected = r''' |
16 class PhoneType extends ProtobufEnum { | 16 class PhoneType extends ProtobufEnum { |
17 static const PhoneType MOBILE = const PhoneType._(0, 'MOBILE'); | 17 static const PhoneType MOBILE = const PhoneType._(0, 'MOBILE'); |
18 static const PhoneType HOME = const PhoneType._(1, 'HOME'); | 18 static const PhoneType HOME = const PhoneType._(1, 'HOME'); |
19 static const PhoneType WORK = const PhoneType._(2, 'WORK'); | 19 static const PhoneType WORK = const PhoneType._(2, 'WORK'); |
20 | 20 |
21 static const PhoneType BUSINESS = WORK; | 21 static const PhoneType BUSINESS = WORK; |
22 | 22 |
23 static const List<PhoneType> values = const <PhoneType> [ | 23 static const List<PhoneType> values = const <PhoneType> [ |
24 MOBILE, | 24 MOBILE, |
25 HOME, | 25 HOME, |
26 WORK, | 26 WORK, |
27 ]; | 27 ]; |
28 | 28 |
29 static final Map<int, PhoneType> _byValue = ProtobufEnum.initByValue(values); | 29 static final Map<int, dynamic> _byValue = ProtobufEnum.initByValue(values); |
30 static PhoneType valueOf(int value) => _byValue[value]; | 30 static PhoneType valueOf(int value) => _byValue[value] as PhoneType; |
31 static void $checkItem(PhoneType v) { | 31 static void $checkItem(PhoneType v) { |
32 if (v is !PhoneType) checkItemFailed(v, 'PhoneType'); | 32 if (v is !PhoneType) checkItemFailed(v, 'PhoneType'); |
33 } | 33 } |
34 | 34 |
35 const PhoneType._(int v, String n) : super(v, n); | 35 const PhoneType._(int v, String n) : super(v, n); |
36 } | 36 } |
37 | 37 |
38 '''; | 38 '''; |
39 EnumDescriptorProto ed = new EnumDescriptorProto() | 39 EnumDescriptorProto ed = new EnumDescriptorProto() |
40 ..name = 'PhoneType' | 40 ..name = 'PhoneType' |
41 ..value.addAll([ | 41 ..value.addAll([ |
42 new EnumValueDescriptorProto() | 42 new EnumValueDescriptorProto() |
43 ..name = 'MOBILE' | 43 ..name = 'MOBILE' |
44 ..number = 0, | 44 ..number = 0, |
45 new EnumValueDescriptorProto() | 45 new EnumValueDescriptorProto() |
46 ..name = 'HOME' | 46 ..name = 'HOME' |
47 ..number = 1, | 47 ..number = 1, |
48 new EnumValueDescriptorProto() | 48 new EnumValueDescriptorProto() |
49 ..name = 'WORK' | 49 ..name = 'WORK' |
50 ..number = 2, | 50 ..number = 2, |
51 new EnumValueDescriptorProto() | 51 new EnumValueDescriptorProto() |
52 ..name = 'BUSINESS' | 52 ..name = 'BUSINESS' |
53 ..number = 2]); | 53 ..number = 2 |
| 54 ]); |
54 IndentingWriter writer = new IndentingWriter(); | 55 IndentingWriter writer = new IndentingWriter(); |
55 EnumGenerator eg = new EnumGenerator(ed, null); | 56 EnumGenerator eg = new EnumGenerator(ed, null); |
56 eg.generate(writer); | 57 eg.generate(writer); |
57 expect(writer.toString(), expected); | 58 expect(writer.toString(), expected); |
58 }); | 59 }); |
59 } | 60 } |
OLD | NEW |