| // 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; | |
| } |