blob: 4672e3f2e376c3e6cbd22f20c4f9874b768d68e9 [file] [log] [blame]
// Copyright 2020 Garett Tok Ern Liang
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
import 'package:test/test.dart';
import 'package:yaml_edit/yaml_edit.dart';
import 'test_utils.dart';
void main() {
group('throws PathError', () {
test('if it is a map', () {
final doc = YamlEditor('a:1');
expect(() => doc.insertIntoList([], 0, 4), throwsPathError);
});
test('if it is a scalar', () {
final doc = YamlEditor('1');
expect(() => doc.insertIntoList([], 0, 4), throwsPathError);
});
});
test('throws RangeError if index is out of range', () {
final doc = YamlEditor('[1, 2]');
expect(() => doc.insertIntoList([], -1, 0), throwsRangeError);
expect(() => doc.insertIntoList([], 3, 0), throwsRangeError);
});
group('block list', () {
test('(1)', () {
final doc = YamlEditor('''
- 1
- 2''');
doc.insertIntoList([], 0, 0);
expect(doc.toString(), equals('''
- 0
- 1
- 2'''));
expectYamlBuilderValue(doc, [0, 1, 2]);
});
test('(2)', () {
final doc = YamlEditor('''
- 1
- 2''');
doc.insertIntoList([], 1, 3);
expect(doc.toString(), equals('''
- 1
- 3
- 2'''));
expectYamlBuilderValue(doc, [1, 3, 2]);
});
test('(3)', () {
final doc = YamlEditor('''
- 1
- 2
''');
doc.insertIntoList([], 2, 3);
expect(doc.toString(), equals('''
- 1
- 2
- 3
'''));
expectYamlBuilderValue(doc, [1, 2, 3]);
});
test('(4)', () {
final doc = YamlEditor('''
- 1
- 3
''');
doc.insertIntoList([], 1, [4, 5, 6]);
expect(doc.toString(), equals('''
- 1
- - 4
- 5
- 6
- 3
'''));
expectYamlBuilderValue(doc, [
1,
[4, 5, 6],
3
]);
});
test(' with comments', () {
final doc = YamlEditor('''
- 0 # comment a
- 2 # comment b
''');
doc.insertIntoList([], 1, 1);
expect(doc.toString(), equals('''
- 0 # comment a
- 1
- 2 # comment b
'''));
expectYamlBuilderValue(doc, [0, 1, 2]);
});
});
group('flow list', () {
test('(1)', () {
final doc = YamlEditor('[1, 2]');
doc.insertIntoList([], 0, 0);
expect(doc.toString(), equals('[0, 1, 2]'));
expectYamlBuilderValue(doc, [0, 1, 2]);
});
test('(2)', () {
final doc = YamlEditor('[1, 2]');
doc.insertIntoList([], 1, 3);
expect(doc.toString(), equals('[1, 3, 2]'));
expectYamlBuilderValue(doc, [1, 3, 2]);
});
test('(3)', () {
final doc = YamlEditor('[1, 2]');
doc.insertIntoList([], 2, 3);
expect(doc.toString(), equals('[1, 2, 3]'));
expectYamlBuilderValue(doc, [1, 2, 3]);
});
test('(4)', () {
final doc = YamlEditor('["[],", "[],"]');
doc.insertIntoList([], 1, 'test');
expect(doc.toString(), equals('["[],", test, "[],"]'));
expectYamlBuilderValue(doc, ['[],', 'test', '[],']);
});
});
}