import 'dart:convert'; import 'package:db_construction_site/db_construction_site.dart'; import 'package:db_construction_site/src/models/connection.dart'; import 'package:test/test.dart'; void main() { test('test if json parsing works as expected', () { const exampleConnectionJsonString = ''' { "id": "3", "name": "RE 17", "kbnr": "430", "von": "Warburg", "verlauf": [ "Hagen Hbf", "Arnsberg (Westf)", "Meschede", "Warburg (Westf)", "Hofgeismar", "Kassel-Wilhelmshöhe" ], "nach": "Kassel", "via": "", "timestamp": "2018-11-16 05:15:43", "verfall": "2018-12-02 23:15:00", "verbindung": "regional", "fern_id": null, "land": "hessen", "url": "https://bauinfos.deutschebahn.com/hessen/Strecke/430-Warburg-Kassel/3", "ics": "https://bauinfos.deutschebahn.com/docs/hessen/ical-hessen-430.ics", "doc": "https://bauinfos.deutschebahn.com/docs/hessen/430.pdf", "meldungen": [], "infos": [] } '''; Map json; try { json = JsonDecoder().convert(exampleConnectionJsonString); assert(json != null); } catch (e) { print('JSON decoding failed, skipping test.'); return; } final connection = Connection.fromJson(json); expect(connection.id, '3'); expect(connection.name, 'RE 17'); expect(connection.courseBookNumber, '430'); expect(connection.origin, 'Warburg'); expect(connection.stops, contains('Hagen Hbf')); expect(connection.destination, 'Kassel'); expect(connection.via, ''); expect(connection.timestamp, DateTime(2018, 11, 16, 05, 15, 43)); expect(connection.expiryDate, DateTime(2018, 12, 02, 23, 15, 00)); expect(connection.type, ConnectionType.regional); expect(connection.region, Region.hesse); }); }