OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library smoke.test.codegen.generator_test; | 5 library smoke.test.codegen.generator_test; |
6 | 6 |
7 import 'package:smoke/codegen/generator.dart'; | 7 import 'package:smoke/codegen/generator.dart'; |
8 import 'package:unittest/unittest.dart'; | 8 import 'package:unittest/unittest.dart'; |
9 | 9 |
10 import 'common.dart' show checkResults; | 10 import 'common.dart' show checkResults; |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
51 }); | 51 }); |
52 | 52 |
53 test('names/symbols', () { | 53 test('names/symbols', () { |
54 var generator = new SmokeCodeGenerator(); | 54 var generator = new SmokeCodeGenerator(); |
55 generator.addSymbol('i'); | 55 generator.addSymbol('i'); |
56 generator.addSymbol('foo'); | 56 generator.addSymbol('foo'); |
57 checkResults(generator, initCall: | 57 checkResults(generator, initCall: |
58 'useGeneratedCode(new StaticConfiguration(\n' | 58 'useGeneratedCode(new StaticConfiguration(\n' |
59 ' checkedMode: false,\n' | 59 ' checkedMode: false,\n' |
60 ' names: {\n' | 60 ' names: {\n' |
61 ' #foo: \'foo\',\n' | 61 ' #foo: r\'foo\',\n' |
62 ' #i: \'i\',\n' | 62 ' #i: r\'i\',\n' |
63 ' }));\n'); | 63 ' }));\n'); |
64 }); | 64 }); |
65 | 65 |
66 test('getters, setters, and names', () { | 66 test('getters, setters, and names', () { |
67 var generator = new SmokeCodeGenerator(); | 67 var generator = new SmokeCodeGenerator(); |
68 generator.addGetter('i'); | 68 generator.addGetter('i'); |
69 generator.addSetter('i'); | 69 generator.addSetter('i'); |
70 generator.addSetter('foo'); | 70 generator.addSetter('foo'); |
71 generator.addSymbol('foo'); | 71 generator.addSymbol('foo'); |
72 checkResults(generator, initCall: | 72 checkResults(generator, initCall: |
73 'useGeneratedCode(new StaticConfiguration(\n' | 73 'useGeneratedCode(new StaticConfiguration(\n' |
74 ' checkedMode: false,\n' | 74 ' checkedMode: false,\n' |
75 ' getters: {\n' | 75 ' getters: {\n' |
76 ' #i: (o) => o.i,\n' | 76 ' #i: (o) => o.i,\n' |
77 ' },\n' | 77 ' },\n' |
78 ' setters: {\n' | 78 ' setters: {\n' |
79 ' #foo: (o, v) { o.foo = v; },\n' | 79 ' #foo: (o, v) { o.foo = v; },\n' |
80 ' #i: (o, v) { o.i = v; },\n' | 80 ' #i: (o, v) { o.i = v; },\n' |
81 ' },\n' | 81 ' },\n' |
82 ' names: {\n' | 82 ' names: {\n' |
83 ' #foo: \'foo\',\n' | 83 ' #foo: r\'foo\',\n' |
84 ' }));\n'); | 84 ' }));\n'); |
85 }); | 85 }); |
86 | 86 |
87 test('parents', () { | 87 test('parents', () { |
88 var generator = new SmokeCodeGenerator(); | 88 var generator = new SmokeCodeGenerator(); |
89 generator.addParent(new TypeIdentifier('a.dart', 'A'), | 89 generator.addParent(new TypeIdentifier('a.dart', 'A'), |
90 new TypeIdentifier('b.dart', 'B')); | 90 new TypeIdentifier('b.dart', 'B')); |
91 generator.addParent(new TypeIdentifier('a.dart', 'C'), | 91 generator.addParent(new TypeIdentifier('a.dart', 'C'), |
92 new TypeIdentifier('a.dart', 'A')); | 92 new TypeIdentifier('a.dart', 'A')); |
93 checkResults(generator, | 93 checkResults(generator, |
(...skipping 25 matching lines...) Expand all Loading... |
119 ' checkedMode: false,\n' | 119 ' checkedMode: false,\n' |
120 ' declarations: {\n' | 120 ' declarations: {\n' |
121 ' smoke_0.A: {\n' | 121 ' smoke_0.A: {\n' |
122 ' #bar: const Declaration(#bar, Function, kind: METHOD, ' | 122 ' #bar: const Declaration(#bar, Function, kind: METHOD, ' |
123 'annotations: const [const Annotation(\'hi\')]),\n' | 123 'annotations: const [const Annotation(\'hi\')]),\n' |
124 ' #foo: const Declaration(#foo, int, isFinal: true),\n' | 124 ' #foo: const Declaration(#foo, int, isFinal: true),\n' |
125 ' },\n' | 125 ' },\n' |
126 ' }));\n'); | 126 ' }));\n'); |
127 }); | 127 }); |
128 | 128 |
| 129 test('staticMethod', () { |
| 130 var generator = new SmokeCodeGenerator(); |
| 131 generator.addStaticMethod(new TypeIdentifier('a.dart', 'A'), 'm1'); |
| 132 checkResults(generator, |
| 133 imports: ["import 'a.dart' as smoke_0;"], |
| 134 initCall: |
| 135 'useGeneratedCode(new StaticConfiguration(\n' |
| 136 ' checkedMode: false,\n' |
| 137 ' staticMethods: {\n' |
| 138 ' smoke_0.A: {\n' |
| 139 ' #m1: smoke_0.A.m1,\n' |
| 140 ' },\n' |
| 141 ' }));\n'); |
| 142 }); |
| 143 |
129 test('repeated entries appear only once', () { | 144 test('repeated entries appear only once', () { |
130 var generator = new SmokeCodeGenerator(); | 145 var generator = new SmokeCodeGenerator(); |
131 generator.addGetter('a'); | 146 generator.addGetter('a'); |
132 generator.addGetter('a'); | 147 generator.addGetter('a'); |
133 generator.addSetter('b'); | 148 generator.addSetter('b'); |
134 generator.addSetter('b'); | 149 generator.addSetter('b'); |
135 generator.addSymbol('d'); | 150 generator.addSymbol('d'); |
136 generator.addSymbol('d'); | 151 generator.addSymbol('d'); |
137 generator.addSymbol('c'); | 152 generator.addSymbol('c'); |
138 generator.addSymbol('c'); | 153 generator.addSymbol('c'); |
(...skipping 28 matching lines...) Expand all Loading... |
167 ' },\n' | 182 ' },\n' |
168 ' parents: {\n' | 183 ' parents: {\n' |
169 ' smoke_0.C: smoke_0.A,\n' | 184 ' smoke_0.C: smoke_0.A,\n' |
170 ' },\n' | 185 ' },\n' |
171 ' declarations: {\n' | 186 ' declarations: {\n' |
172 ' smoke_0.A: {\n' | 187 ' smoke_0.A: {\n' |
173 ' #foo: const Declaration(#foo, int, isFinal: true),\n' | 188 ' #foo: const Declaration(#foo, int, isFinal: true),\n' |
174 ' },\n' | 189 ' },\n' |
175 ' },\n' | 190 ' },\n' |
176 ' names: {\n' | 191 ' names: {\n' |
177 ' #c: \'c\',\n' | 192 ' #c: r\'c\',\n' |
178 ' #d: \'d\',\n' | 193 ' #d: r\'d\',\n' |
179 ' }));\n'); | 194 ' }));\n'); |
180 }); | 195 }); |
181 } | 196 } |
OLD | NEW |