CockpitTestTargetRequirements.fromJson constructor

CockpitTestTargetRequirements.fromJson(
  1. Object? value, {
  2. required String path,
})

Decodes a CockpitTestTargetRequirements from a JSON object.

Implementation

factory CockpitTestTargetRequirements.fromJson(
  Object? value, {
  required String path,
}) {
  final json = CockpitTestValueReader.object(value, path);
  CockpitTestValueReader.keys(
    json,
    const <String>{
      'platform',
      'targetKind',
      'plane',
      'appId',
      'requiredCapabilities',
    },
    path,
    required: const <String>{'platform', 'targetKind', 'plane'},
  );
  final rawCapabilities = json['requiredCapabilities'] == null
      ? const <Object?>[]
      : CockpitTestValueReader.list(
          json['requiredCapabilities'],
          '$path.requiredCapabilities',
        );
  return CockpitTestTargetRequirements(
    platform: CockpitTestValueReader.string(
      json['platform'],
      '$path.platform',
    ),
    targetKind: CockpitTestValueReader.string(
      json['targetKind'],
      '$path.targetKind',
    ),
    plane: CockpitTestValueReader.enumeration(
      json['plane'],
      CockpitTestPlane.values,
      '$path.plane',
    ),
    appId: CockpitTestValueReader.optionalString(
      json['appId'],
      '$path.appId',
    ),
    requiredCapabilities: <String>[
      for (var index = 0; index < rawCapabilities.length; index += 1)
        CockpitTestValueReader.string(
          rawCapabilities[index],
          '$path.requiredCapabilities[$index]',
        ),
    ],
  );
}