import 'package:flutter_test/flutter_test.dart'; import 'package:motorcycle_dash/services/routes/route_models.dart'; import 'fake_route_provider.dart'; import 'package:motorcycle_dash/services/routes/route_provider.dart'; void main() { group('FakeRouteProvider', () { test('enforces 25 stop maximum', () async { final provider = FakeRouteProvider(); final stops = List.generate(26, (i) => RouteStop( id: 'stop_$i', displayName: 'Stop $i', latitude: 0.0, longitude: 0.0, order: i, stopType: RouteStopType.waypoint, )); expect( () => provider.calculateRoute(stops), throwsA(isA()), ); }); test('enforces 2 stop minimum', () async { final provider = FakeRouteProvider(); final stops = [ const RouteStop( id: 'stop_1', displayName: 'Stop 1', latitude: 0.0, longitude: 0.0, order: 0, stopType: RouteStopType.waypoint, ) ]; expect( () => provider.calculateRoute(stops), throwsA(isA()), ); }); test('calculates successfully', () async { final provider = FakeRouteProvider(); final stops = List.generate(3, (i) => RouteStop( id: 'stop_$i', displayName: 'Stop $i', latitude: i.toDouble(), longitude: i.toDouble(), order: i, stopType: RouteStopType.waypoint, )); final result = await provider.calculateRoute(stops); expect(result.geometry.length, 3); expect(result.isStraightLine, false); }); }); }