defineIdentifierMap<TValue> method

Map<String, TValue> defineIdentifierMap<TValue>(
  1. Object id,
  2. List list, {
  3. String getId(
    1. TValue
    )?,
})

Creates a map from test data ids to object values

Implementation

Map<String, TValue> defineIdentifierMap<TValue>(Object id, List<dynamic> list, {
  String Function(TValue)? getId,
}) {
  assert(TValue != dynamic);
  final result = <String, TValue>{};
  if(list is List<String>) {
    for(final itemId in list) {
      final found = find<TValue>(itemId);
      assert(found != null);
      result[itemId] = found;
    }
  } else {
    for(final obj in list) {
      String id;
      if(getId != null) {
        id = getId(obj);
      } else {
        id = obj.id;
      }
      result[id] = obj;
    }
  }

  define(id, result);
  return result;
}