import 'package:angel_route/angel_route.dart'; import 'package:test/test.dart'; import 'fallback.dart' as fallback; import 'use.dart' as use; final ABC = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; main() { final router = new Router(); final indexRoute = router.get('/', () => ':)'); final fizz = router.post('/user/fizz', null); final deleteUserById = router.delete('/user/:id/detail', (id) => num.parse(id)); Route lower; final letters = router.group('/letter///', (router) { lower = router .get('/:id([A-Za-z])', (id) => ABC.indexOf(id[0])) .child('////lower', handlers: [(String id) => id.toLowerCase()[0]]); lower.parent .child('/upper', handlers: [(String id) => id.toUpperCase()[0]]); }); router.dumpTree(header: "ROUTER TESTS"); test('extensible', () { router['two'] = 2; expect(router.two, equals(2)); }); group('fallback', fallback.main); test('group & use', use.main); test('hierarchy', () { expect(lower.absoluteParent, equals(router.root)); expect(lower.parent.path, equals('letter/:id')); expect(lower.resolve('../upper').path, equals('letter/:id/upper')); expect(lower.resolve('/user/34/detail'), equals(deleteUserById)); expect(deleteUserById.resolve('../../fizz'), equals(fizz)); }); test('resolve', () { expect(router.resolve('/'), equals(indexRoute)); expect(router.resolve('user/1337/detail'), equals(deleteUserById)); expect(router.resolve('/user/1337/detail'), equals(deleteUserById)); expect(router.resolve('letter/a/lower'), equals(lower)); expect(router.resolve('letter/2/lower'), isNull); }); }