blob: c4d69c61b20b49de261942d27e7db5ca70b8a9c0 [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();'''),
);
});
}