blob: 3d53687bcf3a836a0dfc6c94842ce96cd75c12bf [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();
test('should create a field', () {
expect(
Field((b) => b..name = 'foo'),
equalsDart(r'''
var foo;
'''),
);
});
test('should create a typed field', () {
expect(
Field((b) => b
..name = 'foo'
..type = refer('String')),
equalsDart(r'''
String foo;
'''),
);
});
test('should create a final field', () {
expect(
Field((b) => b
..name = 'foo'
..modifier = FieldModifier.final$),
equalsDart(r'''
final foo;
'''),
);
});
test('should create a constant field', () {
expect(
Field((b) => b
..name = 'foo'
..modifier = FieldModifier.constant),
equalsDart(r'''
const foo;
'''),
);
});
test('should create a late field if using null-safety', () {
expect(
Field((b) => b
..late = true
..name = 'foo'),
equalsDart(r'''
late var foo;
''', DartEmitter(useNullSafetySyntax: true)),
);
});
test('should not create a late field if not using null-safety', () {
expect(
Field((b) => b
..late = true
..name = 'foo'),
equalsDart(r'''
var foo;
'''),
);
});
test('should create a static late field', () {
expect(
Field((b) => b
..static = true
..late = true
..name = 'foo'),
equalsDart(r'''
static late var foo;
''', DartEmitter(useNullSafetySyntax: true)),
);
});
test('should create a field with an assignment', () {
expect(
Field((b) => b
..name = 'foo'
..assignment = const Code('1')),
equalsDart(r'''
var foo = 1;
'''),
);
});
test('should create a external field', () {
expect(
Field((b) => b
..name = 'value'
..external = true
..type = refer('double')
..annotations.addAll([refer('Float').call([])])),
equalsDart(r'''
@Float()
external double value;
'''),
);
});
}