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

Side by Side Diff: test/map_test.dart

Issue 1192943003: changes for 0.3.9 (Closed) Base URL: https://github.com/dart-lang/dart-protoc-plugin.git@master
Patch Set: made mixins more general Created 5 years, 6 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 library map_test; 1 library map_test;
2 2
3 import 'package:unittest/unittest.dart' 3 import 'package:unittest/unittest.dart'
4 show test, expect, predicate, same, throwsA, 4 show test, expect, predicate, same, throwsA,
5 throwsArgumentError, throwsUnsupportedError; 5 throwsArgumentError, throwsUnsupportedError;
6 6
7 import '../out/protos/map_api.pb.dart' as pb; 7 import '../out/protos/map_api.pb.dart' as pb;
8 import '../out/protos/map_api2.pb.dart' as pb2; 8 import '../out/protos/map_api2.pb.dart' as pb2;
9 9
10 throwsError(Type expectedType, String expectedMessage) => 10 throwsError(Type expectedType, String expectedMessage) =>
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 expect(rec["num"], 42); 47 expect(rec["num"], 42);
48 rec.nums.add(123); 48 rec.nums.add(123);
49 expect(rec["nums"], [123]); 49 expect(rec["nums"], [123]);
50 rec.str = "hello"; 50 rec.str = "hello";
51 expect(rec["str"], "hello"); 51 expect(rec["str"], "hello");
52 var msg = new pb.NonMap(); 52 var msg = new pb.NonMap();
53 rec.msg = msg; 53 rec.msg = msg;
54 expect(rec["msg"], same(msg)); 54 expect(rec["msg"], same(msg));
55 }); 55 });
56 56
57 test('operator [] handles dotted paths', () {
58 var rec = new pb.Rec();
59 rec.msg = new pb.NonMap();
60 rec.msg.str = "hello";
61 expect(rec["msg.str"], "hello");
62
63 rec.msg.child = new pb.NonMap();
64 rec.msg.child.str = "child";
65 expect(rec["msg.child.str"], "child");
66 });
67
68 test('operator []= throws exception for invalid key', () { 57 test('operator []= throws exception for invalid key', () {
69 var rec = new pb.Rec(); 58 var rec = new pb.Rec();
70 expect(() { rec["unknown"] = 123; }, 59 expect(() { rec["unknown"] = 123; },
71 throwsError(ArgumentError, "field 'unknown' not found in Rec")); 60 throwsError(ArgumentError, "field 'unknown' not found in Rec"));
72 }); 61 });
73 62
74 test('operator []= throws exception for repeated field', () { 63 test('operator []= throws exception for repeated field', () {
75 // Copying the values would be confusing. 64 // Copying the values would be confusing.
76 var rec = new pb.Rec(); 65 var rec = new pb.Rec();
77 expect(() { rec["nums"] = [1, 2]; }, throwsArgumentError); 66 expect(() { rec["nums"] = [1, 2]; }, throwsArgumentError);
78 }); 67 });
79 68
80 test('operator []= throws exception for invalid value type', () { 69 test('operator []= throws exception for invalid value type', () {
81 var rec = new pb.Rec(); 70 var rec = new pb.Rec();
82 expect(() { rec["num"] = "hello"; }, throwsArgumentError); 71 expect(() { rec["num"] = "hello"; }, throwsArgumentError);
83 expect(() { rec["str"] = 123; }, throwsArgumentError); 72 expect(() { rec["str"] = 123; }, throwsArgumentError);
84 }); 73 });
85 74
86 test('operator []= sets the field', () { 75 test('operator []= sets the field', () {
87 var rec = new pb.Rec(); 76 var rec = new pb.Rec();
88 rec["num"] = 123; 77 rec["num"] = 123;
89 expect(rec.num, 123); 78 expect(rec.num, 123);
90 rec["str"] = "hello"; 79 rec["str"] = "hello";
91 expect(rec.str, "hello"); 80 expect(rec.str, "hello");
92 }); 81 });
93 82
94 test('operator []= handles dotted paths', () {
95 var rec = new pb.Rec();
96 rec.msg = new pb.NonMap();
97 rec["msg.str"] = "hello";
98 expect(rec.msg.str, "hello");
99
100 rec.msg.child = new pb.NonMap();
101 rec["msg.child.str"] = "child";
102 expect(rec.msg.child.str, "child");
103 });
104
105 test('operator []= throws exception for invalid dotted path', () {
106 var rec = new pb.Rec();
107 rec.msg = new pb.NonMap();
108 expect(() { rec["msg.unknown"] = "hello"; },
109 throwsError(ArgumentError, "field 'unknown' not found in NonMap"));
110 expect(() { rec["msg.unknown.child"] = "hello"; },
111 throwsError(ArgumentError, "field 'unknown' not found in NonMap"));
112 });
113
114 test('keys returns each field name (even when unset)', () { 83 test('keys returns each field name (even when unset)', () {
115 var rec = new pb.Rec(); 84 var rec = new pb.Rec();
116 expect(new Set.from(rec.keys), new Set.from(["msg", "num", "nums", "str"])); 85 expect(new Set.from(rec.keys), new Set.from(["msg", "num", "nums", "str"]));
117 }); 86 });
118 87
119 test('containsKey returns true for fields that exist (even when unset)', () { 88 test('containsKey returns true for fields that exist (even when unset)', () {
120 var rec = new pb.Rec(); 89 var rec = new pb.Rec();
121 expect(rec.containsKey("unknown"), false); 90 expect(rec.containsKey("unknown"), false);
122 expect(rec.containsKey("str"), true); 91 expect(rec.containsKey("str"), true);
123 expect(rec.containsKey("num"), true); 92 expect(rec.containsKey("num"), true);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 expect(rec["str"], "hello"); 128 expect(rec["str"], "hello");
160 expect(rec["num"], 123); 129 expect(rec["num"], 123);
161 }); 130 });
162 131
163 test("addAll doesn't work for repeated fields", () { 132 test("addAll doesn't work for repeated fields", () {
164 // It would be confusing to copy the values. 133 // It would be confusing to copy the values.
165 var rec = new pb.Rec(); 134 var rec = new pb.Rec();
166 expect(() { rec.addAll({"nums": [1,2,3]}); }, throwsArgumentError); 135 expect(() { rec.addAll({"nums": [1,2,3]}); }, throwsArgumentError);
167 }); 136 });
168 } 137 }
OLDNEW
« lib/file_generator.dart ('K') | « pubspec.yaml ('k') | test/message_generator_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698