RestFake constructor
- required FakeWorld world,
- required ContractSchemas contract,
- required DpopVerifier verifier,
- required FaultPlan faults,
Creates the REST side.
Implementation
RestFake({
required this.world,
required this.contract,
required this.verifier,
required this.faults,
}) {
for (final op in contract.operations) {
final names = <String>[];
final source = op.path.replaceAllMapped(RegExp(r'\{([a-z_]+)\}'), (m) {
names.add(m[1]!);
return '([^/]+)';
});
_routes.add(_Route(op, RegExp('^/api/v1$source\$'), names));
}
// A literal segment wins over a parameter (`/me/devices/pairings` before
// `/me/devices/{device_id}`).
_routes.sort((a, b) => a.names.length.compareTo(b.names.length));
}