// 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 'dart:async';

import 'package:flutter_test/flutter_test.dart';

void testConfig(
  String description,
  String? expectedStringValue, {
  Map<Type, dynamic> otherExpectedValues = const <Type, dynamic>{int: isNull},
}) {
  final String? actualStringValue = Zone.current[String] as String?;
  final Map<Type, dynamic> otherActualValues = otherExpectedValues.map<Type, dynamic>(
    (Type key, dynamic value) {
      return MapEntry<Type, dynamic>(key, Zone.current[key]);
    },
  );

  test(description, () {
    expect(actualStringValue, expectedStringValue);
    for (final Type key in otherExpectedValues.keys) {
      expect(otherActualValues[key], otherExpectedValues[key]);
    }
  });
}
