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

Side by Side Diff: test/message_test.dart

Issue 1829573002: Fix all strong mode warnings in protoc-plugin (Closed) Base URL: git@github.com:dart-lang/dart-protoc-plugin.git@master
Patch Set: regenerate pb.dart files Created 4 years, 8 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
« no previous file with comments | « test/message_generator_test.dart ('k') | test/service_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 message_test; 6 library message_test;
7 7
8 import 'package:test/test.dart'; 8 import 'package:test/test.dart';
9 9
10 import 'test_util.dart'; 10 import 'test_util.dart';
11 11
12 import '../out/protos/descriptor_2_5_opensource.pb.dart' 12 import '../out/protos/descriptor_2_5_opensource.pb.dart' show DescriptorProto;
13 show DescriptorProto;
14 import '../out/protos/google/protobuf/unittest.pb.dart'; 13 import '../out/protos/google/protobuf/unittest.pb.dart';
15 14
16 void main() { 15 void main() {
17 TestRequired TEST_REQUIRED_UNINITIALIZED = new TestRequired(); 16 TestRequired TEST_REQUIRED_UNINITIALIZED = new TestRequired();
18 17
19 TestRequired TEST_REQUIRED_INITIALIZED = new TestRequired() 18 TestRequired TEST_REQUIRED_INITIALIZED = new TestRequired()
20 ..a = 1 19 ..a = 1
21 ..b = 2 20 ..b = 2
22 ..c = 3; 21 ..c = 3;
23 22
24 test('testMergeFrom', () { 23 test('testMergeFrom', () {
25 TestAllTypes mergeSource = new TestAllTypes() 24 TestAllTypes mergeSource = new TestAllTypes()
26 ..optionalInt32 = 1 25 ..optionalInt32 = 1
27 ..optionalString = 'foo' 26 ..optionalString = 'foo'
28 ..optionalForeignMessage = new ForeignMessage() 27 ..optionalForeignMessage = new ForeignMessage()
29 ..repeatedString.add('bar'); 28 ..repeatedString.add('bar');
30 29
31 TestAllTypes mergeDest = new TestAllTypes() 30 TestAllTypes mergeDest = new TestAllTypes()
32 ..optionalInt64 = make64(2) 31 ..optionalInt64 = make64(2)
33 ..optionalString = 'baz' 32 ..optionalString = 'baz'
34 ..optionalForeignMessage = new ForeignMessage() 33 ..optionalForeignMessage = new ForeignMessage()
35 ..optionalForeignMessage = (new ForeignMessage()..c = 3) 34 ..optionalForeignMessage = (new ForeignMessage()..c = 3)
36 ..repeatedString.add('qux'); 35 ..repeatedString.add('qux');
37 36
38 String mergeResultExpected = ''' 37 String mergeResultExpected = '''
39 optionalInt32: 1 38 optionalInt32: 1
40 optionalInt64: 2 39 optionalInt64: 2
41 optionalString: baz 40 optionalString: baz
42 optionalForeignMessage: { 41 optionalForeignMessage: {
43 c: 3 42 c: 3
44 } 43 }
45 repeatedString: bar 44 repeatedString: bar
46 repeatedString: qux 45 repeatedString: qux
47 '''; 46 ''';
48 47
49 TestAllTypes result = new TestAllTypes() 48 TestAllTypes result = new TestAllTypes()
50 ..mergeFromMessage(mergeSource) 49 ..mergeFromMessage(mergeSource)
51 ..mergeFromMessage(mergeDest); 50 ..mergeFromMessage(mergeDest);
52 51
53 expect(result.toString(), mergeResultExpected); 52 expect(result.toString(), mergeResultExpected);
54 }); 53 });
55 54
56 test('testRequired', () { 55 test('testRequired', () {
57 TestRequired message = new TestRequired(); 56 TestRequired message = new TestRequired();
58 57
59 expect(message.isInitialized(), isFalse, reason: 'no required fields set'); 58 expect(message.isInitialized(), isFalse, reason: 'no required fields set');
60 message.a = 1; 59 message.a = 1;
61 expect(message.isInitialized(), isFalse, 60 expect(message.isInitialized(), isFalse,
62 reason: 'single required field set'); 61 reason: 'single required field set');
63 message.b = 1; 62 message.b = 1;
64 expect(message.isInitialized(), isFalse, 63 expect(message.isInitialized(), isFalse,
65 reason: 'all but one required field set'); 64 reason: 'all but one required field set');
66 message.c = 1; 65 message.c = 1;
67 expect(message.isInitialized(), isTrue, reason: 'required fields set'); 66 expect(message.isInitialized(), isTrue, reason: 'required fields set');
68 }); 67 });
69 68
70 test('testRequiredForeign', () { 69 test('testRequiredForeign', () {
71 TestRequiredForeign message = new TestRequiredForeign(); 70 TestRequiredForeign message = new TestRequiredForeign();
72 expect(message.isInitialized(), isTrue, 71 expect(message.isInitialized(), isTrue,
73 reason: 'TestRequiredForeign without children should be initialized'); 72 reason: 'TestRequiredForeign without children should be initialized');
74 73
75 message.optionalMessage = TEST_REQUIRED_UNINITIALIZED; 74 message.optionalMessage = TEST_REQUIRED_UNINITIALIZED;
76 expect(message.isInitialized(), isFalse, reason: 75 expect(message.isInitialized(), isFalse,
77 'TestRequiredForeign with optional TEST_REQUIRED_UNINITIALIZED ' 76 reason: 'TestRequiredForeign with optional TEST_REQUIRED_UNINITIALIZED '
78 'should not be initialized'); 77 'should not be initialized');
79 78
80 message.optionalMessage = TEST_REQUIRED_INITIALIZED; 79 message.optionalMessage = TEST_REQUIRED_INITIALIZED;
81 expect(message.isInitialized(), isTrue, 80 expect(message.isInitialized(), isTrue,
82 reason: 'TestRequiredForeign with optional TEST_REQUIRED_INITIALIZED ' 81 reason: 'TestRequiredForeign with optional TEST_REQUIRED_INITIALIZED '
83 'should be initialized'); 82 'should be initialized');
84 83
85 message.repeatedMessage.add(TEST_REQUIRED_UNINITIALIZED); 84 message.repeatedMessage.add(TEST_REQUIRED_UNINITIALIZED);
86 expect(message.isInitialized(), isFalse, reason: 85 expect(message.isInitialized(), isFalse,
87 'TestRequiredForeign with repeating TEST_REQUIRED_UNINITIALIZED ' 86 reason:
88 'should not be initialized'); 87 'TestRequiredForeign with repeating TEST_REQUIRED_UNINITIALIZED '
88 'should not be initialized');
89 89
90 message.repeatedMessage[0] = TEST_REQUIRED_INITIALIZED; 90 message.repeatedMessage[0] = TEST_REQUIRED_INITIALIZED;
91 expect(message.isInitialized(), isTrue, 91 expect(message.isInitialized(), isTrue,
92 reason: 'TestRequiredForeign with repeating TEST_REQUIRED_INITIALIZED ' 92 reason: 'TestRequiredForeign with repeating TEST_REQUIRED_INITIALIZED '
93 'should be initialized'); 93 'should be initialized');
94 }); 94 });
95 95
96 test('testRequiredExtension', () { 96 test('testRequiredExtension', () {
97 TestAllExtensions message = new TestAllExtensions(); 97 TestAllExtensions message = new TestAllExtensions();
98 expect(message.isInitialized(), isTrue); 98 expect(message.isInitialized(), isTrue);
99 99
100 message.setExtension(TestRequired.single, TEST_REQUIRED_UNINITIALIZED); 100 message.setExtension(TestRequired.single, TEST_REQUIRED_UNINITIALIZED);
101 expect(message.isInitialized(), isFalse); 101 expect(message.isInitialized(), isFalse);
102 102
103 message.setExtension(TestRequired.single, TEST_REQUIRED_INITIALIZED); 103 message.setExtension(TestRequired.single, TEST_REQUIRED_INITIALIZED);
(...skipping 26 matching lines...) Expand all
130 TestRequiredForeign message = new TestRequiredForeign(); 130 TestRequiredForeign message = new TestRequiredForeign();
131 message.optionalMessage = TEST_REQUIRED_UNINITIALIZED; 131 message.optionalMessage = TEST_REQUIRED_UNINITIALIZED;
132 message.repeatedMessage.add(TEST_REQUIRED_UNINITIALIZED); 132 message.repeatedMessage.add(TEST_REQUIRED_UNINITIALIZED);
133 message.repeatedMessage.add(TEST_REQUIRED_UNINITIALIZED); 133 message.repeatedMessage.add(TEST_REQUIRED_UNINITIALIZED);
134 message.check(); 134 message.check();
135 fail('Should have thrown an exception.'); 135 fail('Should have thrown an exception.');
136 } on StateError catch (e) { 136 } on StateError catch (e) {
137 // NOTE: error message differs from Java in that 137 // NOTE: error message differs from Java in that
138 // fields are referenced using Dart fieldnames r.t. 138 // fields are referenced using Dart fieldnames r.t.
139 // proto field names. 139 // proto field names.
140 expect(e.message, 140 expect(
141 'Message missing required fields: ' 141 e.message,
142 'optionalMessage.a, ' 142 'Message missing required fields: '
143 'optionalMessage.b, ' 143 'optionalMessage.a, '
144 'optionalMessage.c, ' 144 'optionalMessage.b, '
145 'repeatedMessage[0].a, ' 145 'optionalMessage.c, '
146 'repeatedMessage[0].b, ' 146 'repeatedMessage[0].a, '
147 'repeatedMessage[0].c, ' 147 'repeatedMessage[0].b, '
148 'repeatedMessage[1].a, ' 148 'repeatedMessage[0].c, '
149 'repeatedMessage[1].b, ' 149 'repeatedMessage[1].a, '
150 'repeatedMessage[1].c'); 150 'repeatedMessage[1].b, '
151 'repeatedMessage[1].c');
151 } 152 }
152 }); 153 });
153 154
154 test('testBuildNestedPartial', () { 155 test('testBuildNestedPartial', () {
155 // We're mostly testing that no exception is thrown. 156 // We're mostly testing that no exception is thrown.
156 TestRequiredForeign message = new TestRequiredForeign(); 157 TestRequiredForeign message = new TestRequiredForeign();
157 message.optionalMessage = TEST_REQUIRED_UNINITIALIZED; 158 message.optionalMessage = TEST_REQUIRED_UNINITIALIZED;
158 message.repeatedMessage.add(TEST_REQUIRED_UNINITIALIZED); 159 message.repeatedMessage.add(TEST_REQUIRED_UNINITIALIZED);
159 message.repeatedMessage.add(TEST_REQUIRED_UNINITIALIZED); 160 message.repeatedMessage.add(TEST_REQUIRED_UNINITIALIZED);
160 expect(message.isInitialized(), isFalse); 161 expect(message.isInitialized(), isFalse);
(...skipping 15 matching lines...) Expand all
176 message.repeatedMessage.add(TEST_REQUIRED_UNINITIALIZED); 177 message.repeatedMessage.add(TEST_REQUIRED_UNINITIALIZED);
177 List<int> buffer = message.writeToBuffer(); 178 List<int> buffer = message.writeToBuffer();
178 179
179 try { 180 try {
180 (new TestRequiredForeign.fromBuffer(buffer)).check(); 181 (new TestRequiredForeign.fromBuffer(buffer)).check();
181 fail('Should have thrown an exception.'); 182 fail('Should have thrown an exception.');
182 } on StateError catch (e) { 183 } on StateError catch (e) {
183 // NOTE: error message differs from Java in that 184 // NOTE: error message differs from Java in that
184 // fields are referenced using Dart fieldnames r.t. 185 // fields are referenced using Dart fieldnames r.t.
185 // proto field names. 186 // proto field names.
186 expect(e.message, 187 expect(
188 e.message,
187 'Message missing required fields: ' 189 'Message missing required fields: '
188 'optionalMessage.a, ' 190 'optionalMessage.a, '
189 'optionalMessage.b, ' 191 'optionalMessage.b, '
190 'optionalMessage.c, ' 192 'optionalMessage.c, '
191 'repeatedMessage[0].a, ' 193 'repeatedMessage[0].a, '
192 'repeatedMessage[0].b, ' 194 'repeatedMessage[0].b, '
193 'repeatedMessage[0].c, ' 195 'repeatedMessage[0].c, '
194 'repeatedMessage[1].a, ' 196 'repeatedMessage[1].a, '
195 'repeatedMessage[1].b, ' 197 'repeatedMessage[1].b, '
196 'repeatedMessage[1].c'); 198 'repeatedMessage[1].c');
197 } 199 }
198 }); 200 });
199 201
200 test('testClearField', () { 202 test('testClearField', () {
201 int fieldNo; 203 int fieldNo;
202 TestAllTypes message = new TestAllTypes(); 204 TestAllTypes message = new TestAllTypes();
203 205
204 // Singular field with no default. 206 // Singular field with no default.
205 fieldNo = 1; 207 fieldNo = 1;
206 expect(message.hasField(fieldNo), isFalse); 208 expect(message.hasField(fieldNo), isFalse);
207 expect(message.getField(fieldNo), 0); 209 expect(message.getField(fieldNo), 0);
208 message.clearField(fieldNo); 210 message.clearField(fieldNo);
209 expect(message.hasField(fieldNo), isFalse); 211 expect(message.hasField(fieldNo), isFalse);
210 message.setField(fieldNo, 0); 212 message.setField(fieldNo, 0);
211 expect(message.getField(fieldNo), 0); 213 expect(message.getField(fieldNo), 0);
212 expect(message.hasField(fieldNo), isTrue); 214 expect(message.hasField(fieldNo), isTrue);
213 message.clearField(fieldNo); 215 message.clearField(fieldNo);
214 expect(message.hasField(fieldNo), isFalse); 216 expect(message.hasField(fieldNo), isFalse);
215 217
216 // Repeated field. 218 // Repeated field.
217 fieldNo = 31; 219 fieldNo = 31;
218 expect(message.hasField(fieldNo), isFalse); 220 expect(message.hasField(fieldNo), isFalse);
219 message.getField(fieldNo).add(1); 221 message.getField(fieldNo).add(1);
220 expect(message.hasField(fieldNo), isTrue); 222 expect(message.hasField(fieldNo), isTrue);
221 223
222 // Singular field with default. 224 // Singular field with default.
223 fieldNo = 61; 225 fieldNo = 61;
224 expect(message.hasField(fieldNo), isFalse); 226 expect(message.hasField(fieldNo), isFalse);
225 expect(message.getField(fieldNo), 41); 227 expect(message.getField(fieldNo), 41);
226 message.clearField(fieldNo); 228 message.clearField(fieldNo);
227 message.setField(fieldNo, 41); 229 message.setField(fieldNo, 41);
228 expect(message.hasField(fieldNo), isTrue); 230 expect(message.hasField(fieldNo), isTrue);
229 message.setField(fieldNo, 42); 231 message.setField(fieldNo, 42);
230 expect(message.hasField(fieldNo), isTrue); 232 expect(message.hasField(fieldNo), isTrue);
231 expect(message.getField(fieldNo), 42); 233 expect(message.getField(fieldNo), 42);
232 message.clearField(fieldNo); 234 message.clearField(fieldNo);
233 expect(message.hasField(fieldNo), isFalse); 235 expect(message.hasField(fieldNo), isFalse);
234 expect(message.getField(fieldNo), 41); 236 expect(message.getField(fieldNo), 41);
235 }); 237 });
236 238
237 test('JSON constants share structure', () { 239 test('JSON constants share structure', () {
238 const nestedTypeTag = 3; 240 const nestedTypeTag = 3;
239 expect(TestAllTypes$json['$nestedTypeTag'][0], 241 List fields = TestAllTypes$json['$nestedTypeTag'];
240 same(TestAllTypes_NestedMessage$json)); 242 expect(fields[0], same(TestAllTypes_NestedMessage$json));
241 243
242 const enumTypeTag = 4; 244 const enumTypeTag = 4;
243 expect(TestAllTypes$json['$enumTypeTag'][0], 245 fields = TestAllTypes$json['$enumTypeTag'];
244 same(TestAllTypes_NestedEnum$json)); 246 expect(fields[0], same(TestAllTypes_NestedEnum$json));
245 }); 247 });
246 248
247 test('Can read JSON constant into DescriptorProto', () { 249 test('Can read JSON constant into DescriptorProto', () {
248 var d = new DescriptorProto()..mergeFromJsonMap(TestAllTypes$json); 250 var d = new DescriptorProto()..mergeFromJsonMap(TestAllTypes$json);
249 expect(d.name, "TestAllTypes"); 251 expect(d.name, "TestAllTypes");
250 expect(d.field[0].name, "optional_int32"); 252 expect(d.field[0].name, "optional_int32");
251 expect(d.nestedType[0].name, "NestedMessage"); 253 expect(d.nestedType[0].name, "NestedMessage");
252 }); 254 });
253 } 255 }
OLDNEW
« no previous file with comments | « test/message_generator_test.dart ('k') | test/service_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698