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

Side by Side Diff: pkg/analyzer/test/source/analysis_options_provider_test.dart

Issue 1425393002: Map merging. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 1 month 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 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 test.source.analysis_options_provider; 5 library test.source.analysis_options_provider;
6 6
7 import 'package:analyzer/file_system/memory_file_system.dart'; 7 import 'package:analyzer/file_system/memory_file_system.dart';
8 import 'package:analyzer/source/analysis_options_provider.dart'; 8 import 'package:analyzer/source/analysis_options_provider.dart';
9 import 'package:unittest/unittest.dart'; 9 import 'package:unittest/unittest.dart';
10 import 'package:yaml/yaml.dart'; 10 import 'package:yaml/yaml.dart';
11 11
12 import '../utils.dart'; 12 import '../utils.dart';
13 13
14 main() { 14 main() {
15 initializeTestEnvironment(); 15 initializeTestEnvironment();
16
17 group('AnalysisOptionsProvider', () {
18 void expectMergesTo(String defaults, String overrides, String expected) {
19 var optionsProvider = new AnalysisOptionsProvider();
20 var defaultOptions = optionsProvider.getOptionsFromString(defaults);
21 var overrideOptions = optionsProvider.getOptionsFromString(overrides);
22 var merged = optionsProvider.merge(defaultOptions, overrideOptions);
23 expect(merged, optionsProvider.getOptionsFromString(expected));
24 }
25
26 group('merging', () {
27 test('integration', () {
28 expectMergesTo(
29 '''
30 analyzer:
31 plugins:
32 - p1
33 - p2
34 errors:
35 unused_local_variable : error
36 linter:
37 rules:
38 - camel_case_types
39 - one_member_abstracts
40 ''',
41 '''
42 analyzer:
43 plugins:
44 - p3
45 errors:
46 unused_local_variable : ignore # overrides error
47 linter:
48 rules:
49 one_member_abstracts: false # promotes and disables
50 always_specify_return_types: true
51 ''',
52 '''
53 analyzer:
54 plugins:
55 - p1
56 - p2
57 - p3
58 errors:
59 unused_local_variable : ignore
60 linter:
61 rules:
62 camel_case_types: true
63 one_member_abstracts: false
64 always_specify_return_types: true
65 ''');
66 });
67 });
68 });
69
16 group('AnalysisOptionsProvider', () { 70 group('AnalysisOptionsProvider', () {
17 setUp(() { 71 setUp(() {
18 buildResourceProvider(); 72 buildResourceProvider();
19 }); 73 });
20 tearDown(() { 74 tearDown(() {
21 clearResourceProvider(); 75 clearResourceProvider();
22 }); 76 });
23 test('test_simple', () { 77 test('test_simple', () {
24 var optionsProvider = new AnalysisOptionsProvider(); 78 var optionsProvider = new AnalysisOptionsProvider();
25 Map<String, YamlNode> options = 79 Map<String, YamlNode> options =
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 } 173 }
120 } 174 }
121 175
122 clearResourceProvider() { 176 clearResourceProvider() {
123 resourceProvider = null; 177 resourceProvider = null;
124 } 178 }
125 179
126 emptyResourceProvider() { 180 emptyResourceProvider() {
127 resourceProvider = new MemoryResourceProvider(); 181 resourceProvider = new MemoryResourceProvider();
128 } 182 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698