Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 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 | |
| 3 // BSD-style license that can be found in the LICENSE file. | |
| 4 | |
| 5 library analyzer.test.util.yaml; | |
| 6 | |
| 7 import 'package:analyzer/src/util/yaml.dart'; | |
| 8 import 'package:unittest/unittest.dart'; | |
| 9 | |
| 10 import '../../utils.dart'; | |
| 11 | |
| 12 main() { | |
| 13 initializeTestEnvironment(); | |
| 14 | |
| 15 group('yaml', () { | |
| 16 group('merge', () { | |
| 17 test('map', () { | |
| 18 expect( | |
| 19 merge({ | |
| 20 'one': true, | |
| 21 'two': false, | |
| 22 'three': { | |
| 23 'nested': {'four': true} | |
| 24 } | |
| 25 }, { | |
| 26 'three': { | |
| 27 'nested': {'four': false, 'five': true}, | |
| 28 'five': true | |
| 29 } | |
|
Brian Wilkerson
2015/11/03 01:07:27
Add a sibling to "three" to ensure that unmatched
pquitslund
2015/11/03 18:38:09
Done.
| |
| 30 }), | |
| 31 equals({ | |
| 32 'one': true, | |
| 33 'two': false, | |
| 34 'three': { | |
| 35 'nested': {'four': false, 'five': true}, | |
|
Brian Wilkerson
2015/11/03 01:07:27
Can't actually tell whether the resulting value fo
pquitslund
2015/11/03 18:38:08
Fixed.
| |
| 36 'five': true | |
| 37 } | |
| 38 })); | |
| 39 }); | |
| 40 | |
| 41 test('list', () { | |
| 42 expect(merge([1, 2, 3], [2, 3, 4, 5]), equals([1, 2, 3, 4, 5])); | |
| 43 }); | |
| 44 test('list w/ promotion', () { | |
| 45 expect(merge(['one', 'two', 'three'], {'three': false, 'four': true}), | |
| 46 equals({'one': true, 'two': true, 'three': false, 'four': true})); | |
| 47 expect(merge({'one': false, 'two': false}, ['one', 'three']), | |
| 48 equals({'one': true, 'two': false, 'three': true})); | |
| 49 }); | |
| 50 test('map w/ list promotion', () { | |
| 51 var map1 = { | |
| 52 'one': ['a', 'b', 'c'] | |
| 53 }; | |
| 54 var map2 = { | |
| 55 'one': {'a': true, 'b': false} | |
| 56 }; | |
| 57 var map3 = { | |
| 58 'one': {'a': true, 'b': false, 'c': true} | |
| 59 }; | |
| 60 expect(merge(map1, map2), map3); | |
| 61 }); | |
|
Brian Wilkerson
2015/11/03 01:07:27
Consider also testing
- merging maps and lists whe
pquitslund
2015/11/03 18:38:09
Fantastic. Thanks for the nudge. It turns out my
| |
| 62 }); | |
| 63 }); | |
| 64 } | |
| 65 | |
| 66 final Merger merger = new Merger(); | |
| 67 | |
| 68 Object merge(Object o1, Object o2) => merger.merge(o1, o2); | |
| OLD | NEW |