| // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | |
| // for details. All rights reserved. Use of this source code is governed by a | |
| // BSD-style license that can be found in the LICENSE file. | |
| import 'package:code_builder/code_builder.dart'; | |
| import 'package:test/test.dart'; | |
| import 'common.dart'; | |
| void main() { | |
| useDartfmt(); | |
| final $LinkedHashMap = refer('LinkedHashMap', 'dart:collection'); | |
| final library = Library( | |
| (b) => b | |
| ..directives.add(Directive.export('../relative.dart')) | |
| ..directives.add(Directive.export('package:foo/foo.dart')) | |
| ..directives.add(Directive.part('lib.g.dart')) | |
| ..body.add( | |
| Field( | |
| (b) => b | |
| ..name = 'relativeRef' | |
| ..modifier = FieldModifier.final$ | |
| ..assignment = refer( | |
| 'Relative', | |
| '../relative.dart', | |
| ).newInstance([]).code, | |
| ), | |
| ) | |
| ..body.add( | |
| Field( | |
| (b) => b | |
| ..name = 'pkgRefFoo' | |
| ..modifier = FieldModifier.final$ | |
| ..assignment = refer( | |
| 'Foo', | |
| 'package:foo/foo.dart', | |
| ).newInstance([]).code, | |
| ), | |
| ) | |
| ..body.add( | |
| Field( | |
| (b) => b | |
| ..name = 'pkgRefBar' | |
| ..modifier = FieldModifier.final$ | |
| ..assignment = refer( | |
| 'Bar', | |
| 'package:foo/bar.dart', | |
| ).newInstance([]).code, | |
| ), | |
| ) | |
| ..body.add( | |
| Field( | |
| (b) => b | |
| ..name = 'collectionRef' | |
| ..modifier = FieldModifier.final$ | |
| ..assignment = $LinkedHashMap.newInstance([]).code, | |
| ), | |
| ), | |
| ); | |
| test('should emit a source file with imports in defined order', () { | |
| expect( | |
| library, | |
| equalsDart(r''' | |
| // ignore_for_file: no_leading_underscores_for_library_prefixes | |
| import '../relative.dart' as _i1; | |
| import 'package:foo/foo.dart' as _i2; | |
| import 'package:foo/bar.dart' as _i3; | |
| import 'dart:collection' as _i4; | |
| export '../relative.dart'; | |
| export 'package:foo/foo.dart'; | |
| part 'lib.g.dart'; | |
| final relativeRef = _i1.Relative(); | |
| final pkgRefFoo = _i2.Foo(); | |
| final pkgRefBar = _i3.Bar(); | |
| final collectionRef = _i4.LinkedHashMap();''', DartEmitter.scoped()), | |
| ); | |
| }); | |
| test('should emit a source file with ordered', () { | |
| expect( | |
| library, | |
| equalsDart( | |
| r''' | |
| // ignore_for_file: no_leading_underscores_for_library_prefixes | |
| import 'dart:collection' as _i4; | |
| import 'package:foo/bar.dart' as _i3; | |
| import 'package:foo/foo.dart' as _i2; | |
| import '../relative.dart' as _i1; | |
| export 'package:foo/foo.dart'; | |
| export '../relative.dart'; | |
| part 'lib.g.dart'; | |
| final relativeRef = _i1.Relative(); | |
| final pkgRefFoo = _i2.Foo(); | |
| final pkgRefBar = _i3.Bar(); | |
| final collectionRef = _i4.LinkedHashMap();''', | |
| DartEmitter.scoped(orderDirectives: true), | |
| ), | |
| ); | |
| }); | |
| } |