| // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| /// A message emitted by a test. |
| /// |
| /// A message encompasses any textual information that should be presented to |
| /// the user. Reporters are encouraged to visually distinguish different message |
| /// types. |
| class Message { |
| final MessageType type; |
| |
| final String text; |
| |
| Message(this.type, this.text); |
| |
| Message.print(this.text) : type = MessageType.print; |
| Message.skip(this.text) : type = MessageType.skip; |
| } |
| |
| class MessageType { |
| /// A message explicitly printed by the user's test. |
| static const print = MessageType._('print'); |
| |
| /// A message indicating that a test, or some portion of one, was skipped. |
| static const skip = MessageType._('skip'); |
| |
| /// The name of the message type. |
| final String name; |
| |
| factory MessageType.parse(String name) => switch (name) { |
| 'print' => MessageType.print, |
| 'skip' => MessageType.skip, |
| _ => throw ArgumentError('Invalid message type "$name".'), |
| }; |
| |
| const MessageType._(this.name); |
| |
| @override |
| String toString() => name; |
| } |