blob: e8d1bc3ac77eb61ba696c44b1afd0f6d18094854 [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 constMap = literalConstMap({
'list': literalConstList([]),
'duration': refer('Duration').constInstance([]),
});
test('expression', () {
expect(
constMap,
equalsDart(r'''
const {'list': [], 'duration': Duration(), }'''),
);
});
test('assignConst', () {
expect(
// ignore: deprecated_member_use_from_same_package
constMap.assignConst('constField'),
equalsDart(
r'''
const constField = {'list': [], 'duration': Duration(), }''',
DartEmitter.scoped(),
),
);
});
test('assign to declared constant', () {
expect(
declareConst('constField').assign(constMap),
equalsDart(
r'''
const constField = {'list': [], 'duration': Duration(), }''',
DartEmitter.scoped(),
),
);
});
test('assign to declared non-constant', () {
expect(
declareVar('varField').assign(constMap),
equalsDart(
r'''
var varField = const {'list': [], 'duration': Duration(), }''',
DartEmitter.scoped(),
),
);
});
final library = Library(
(b) =>
b
..body.add(
Field(
(b) =>
b
..name = 'val1'
..modifier = FieldModifier.constant
..assignment = refer('ConstClass').constInstance([]).code,
),
)
..body.add(
Field(
(b) =>
b
..name = 'val2'
..modifier = FieldModifier.constant
..assignment =
refer(
'ConstClass',
).constInstanceNamed('other', []).code,
),
),
);
test('should emit a source file with imports in defined order', () {
expect(
library,
equalsDart(r'''
const val1 = ConstClass();
const val2 = ConstClass.other();'''),
);
});
}