blob: 31bd2a494e9ac10a61a8bd0e422590da5f27b7e1 [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),
),
);
});
}