blob: 0aee6ae575c98fda425d9e61d5622a6b7a75e8d6 [file] [log] [blame]
// 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)),
);
});
}