// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'enum_util.dart'; import 'message.dart'; /// A Flutter Driver command that requests an application health check. class GetHealth extends Command { /// Create a health check command. const GetHealth({ Duration timeout }) : super(timeout: timeout); /// Deserializes this command from the value generated by [serialize]. GetHealth.deserialize(Map<String, String> json) : super.deserialize(json); @override String get kind => 'get_health'; @override bool get requiresRootWidgetAttached => false; } /// A description of application state. enum HealthStatus { /// Application is known to be in a good shape and should be able to respond. ok, /// Application is not known to be in a good shape and may be unresponsive. bad, } final EnumIndex<HealthStatus> _healthStatusIndex = EnumIndex<HealthStatus>(HealthStatus.values); /// A description of the application state, as provided in response to a /// [FlutterDriver.checkHealth] test. class Health extends Result { /// Creates a [Health] object with the given [status]. const Health(this.status) : assert(status != null); /// The status represented by this object. /// /// If the application responded, this will be [HealthStatus.ok]. final HealthStatus status; /// Deserializes the result from JSON. static Health fromJson(Map<String, dynamic> json) { return Health(_healthStatusIndex.lookupBySimpleName(json['status'] as String)); } @override Map<String, dynamic> toJson() => <String, dynamic>{ 'status': _healthStatusIndex.toSimpleName(status), }; }