OLD | NEW |
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 unittest.backend.metadata; | 5 library unittest.backend.metadata; |
6 | 6 |
7 import 'platform_selector.dart'; | 7 import 'platform_selector.dart'; |
8 | 8 |
9 /// Metadata for a test or test suite. | 9 /// Metadata for a test or test suite. |
10 /// | 10 /// |
11 /// This metadata comes from declarations on the test itself; it doesn't include | 11 /// This metadata comes from declarations on the test itself; it doesn't include |
12 /// configuration from the user. | 12 /// configuration from the user. |
13 class Metadata { | 13 class Metadata { |
14 /// The selector indicating which platforms the suite supports. | 14 /// The selector indicating which platforms the suite supports. |
15 final PlatformSelector testOn; | 15 final PlatformSelector testOn; |
16 | 16 |
17 /// Creates new Metadata. | 17 /// Creates new Metadata. |
18 /// | 18 /// |
19 /// [testOn] defaults to [PlatformSelector.all]. | 19 /// [testOn] defaults to [PlatformSelector.all]. |
20 Metadata({PlatformSelector testOn}) | 20 Metadata({PlatformSelector testOn}) |
21 : testOn = testOn == null ? PlatformSelector.all : testOn; | 21 : testOn = testOn == null ? PlatformSelector.all : testOn; |
22 | 22 |
23 /// Parses metadata fields from strings. | 23 /// Parses metadata fields from strings. |
24 /// | 24 /// |
25 /// Throws a [FormatException] if any field is invalid. | 25 /// Throws a [FormatException] if any field is invalid. |
26 Metadata.parse({String testOn}) | 26 Metadata.parse({String testOn}) |
27 : this( | 27 : this( |
28 testOn: testOn == null ? null : new PlatformSelector.parse(testOn)); | 28 testOn: testOn == null ? null : new PlatformSelector.parse(testOn)); |
| 29 |
| 30 /// Dezerializes the result of [Metadata.serialize] into a new [Metadata]. |
| 31 Metadata.deserialize(serialized) |
| 32 : this.parse(testOn: serialized['testOn']); |
| 33 |
| 34 /// Return a new [Metadata] that merges [this] with [other]. |
| 35 /// |
| 36 /// If the two [Metadata]s have conflicting properties, [other] wins. |
| 37 Metadata merge(Metadata other) => |
| 38 new Metadata(testOn: testOn.intersect(other.testOn)); |
| 39 |
| 40 /// Serializes [this] into a JSON-safe object that can be deserialized using |
| 41 /// [new Metadata.deserialize]. |
| 42 serialize() => { |
| 43 'testOn': testOn == PlatformSelector.all ? null : testOn.toString() |
| 44 }; |
29 } | 45 } |
OLD | NEW |