87 lines
2 KiB
Dart
87 lines
2 KiB
Dart
import 'package:charcode/charcode.dart';
|
|
import 'package:test/test.dart';
|
|
import 'package:angel3_code_buffer/angel3_code_buffer.dart';
|
|
|
|
void main() {
|
|
var buf = CodeBuffer();
|
|
tearDown(buf.clear);
|
|
|
|
test('writeCharCode', () {
|
|
buf.writeCharCode($x);
|
|
expect(buf.toString(), 'x');
|
|
});
|
|
|
|
test('write', () {
|
|
buf.write('hello world');
|
|
expect(buf.toString(), 'hello world');
|
|
});
|
|
|
|
test('custom space', () {
|
|
var b = CodeBuffer(space: '+')
|
|
..writeln('foo')
|
|
..indent()
|
|
..writeln('baz');
|
|
expect(b.toString(), 'foo\n+baz');
|
|
});
|
|
|
|
test('custom newline', () {
|
|
var b = CodeBuffer(newline: 'N')
|
|
..writeln('foo')
|
|
..indent()
|
|
..writeln('baz');
|
|
expect(b.toString(), 'fooN baz');
|
|
});
|
|
|
|
test('trailing newline', () {
|
|
var b = CodeBuffer(trailingNewline: true)..writeln('foo');
|
|
expect(b.toString(), 'foo\n');
|
|
});
|
|
|
|
group('multiple lines', () {
|
|
setUp(() {
|
|
buf..writeln('foo')..writeln('bar')..writeln('baz');
|
|
expect(buf.lines, hasLength(3));
|
|
expect(buf.lines[0].text, 'foo');
|
|
expect(buf.lines[1].text, 'bar');
|
|
expect(buf.lines[2].text, 'baz');
|
|
});
|
|
});
|
|
|
|
test('indent', () {
|
|
buf
|
|
..writeln('foo')
|
|
..indent()
|
|
..writeln('bar')
|
|
..indent()
|
|
..writeln('baz')
|
|
..outdent()
|
|
..writeln('quux')
|
|
..outdent()
|
|
..writeln('end');
|
|
expect(buf.toString(), 'foo\n bar\n baz\n quux\nend');
|
|
});
|
|
|
|
group('sets lastLine text', () {
|
|
test('writeCharCode', () {
|
|
buf.writeCharCode($x);
|
|
expect(buf.lastLine!.text, 'x');
|
|
});
|
|
|
|
test('write', () {
|
|
buf.write('hello world');
|
|
expect(buf.lastLine!.text, 'hello world');
|
|
});
|
|
});
|
|
|
|
group('sets lastLine lastSpan', () {
|
|
test('writeCharCode', () {
|
|
buf.writeCharCode($x);
|
|
expect(buf.lastLine!.lastSpan!.text, 'x');
|
|
});
|
|
|
|
test('write', () {
|
|
buf.write('hello world');
|
|
expect(buf.lastLine!.lastSpan!.text, 'hello world');
|
|
});
|
|
});
|
|
}
|