FakeFoldableInfo constructor

FakeFoldableInfo({
  1. required Map<int, FoldableData> views,
  2. Map<int, FoldAngles> angles = const {},
})

Creates fixtures; angle fixtures must refer to a declared view.

Implementation

FakeFoldableInfo({
  required Map<int, FoldableData> views,
  Map<int, FoldAngles> angles = const {},
}) {
  for (final entry in views.entries) {
    if (entry.key != entry.value.viewId ||
        (angles[entry.key] != null &&
            angles[entry.key]!.viewId != entry.key)) {
      throw ArgumentError('Fixture view ID mismatch.');
    }
    _views[entry.key] = _FakeView(
      entry.value,
      angles[entry.key] ??
          FoldAngles(
            viewId: entry.key,
            sessionId: entry.value.sessionId,
            sequence: 0,
            angles: DataValue.loading(),
          ),
    );
  }
  if (angles.keys.any((id) => !views.containsKey(id))) {
    throw ArgumentError('Angle fixture has no declared view.');
  }
}