blob: 111d18d624eaf247488d1769c90c43072578140e [file] [edit]
// Copyright (c) 2026, 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.
// ignore_for_file: non_constant_identifier_names
import 'package:api_summary/src/node.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
void main() {
defineReflectiveSuite(() {
defineReflectiveTests(NodeTest);
});
}
@reflectiveTest
class NodeTest {
void test_printNodes_indentChildNodes() {
final buf = StringBuffer();
printNodes(buf, [
(
1,
_simpleNode('one', [
(2, _simpleNode('two')),
(3, _simpleNode('three')),
]),
),
(
4,
_simpleNode('four', [
(5, _simpleNode('five')),
(6, _simpleNode('six')),
]),
),
]);
expect(buf.toString(), '''
one
two
three
four
five
six
''');
}
void test_printNodes_joinTextStrings() {
final buf = StringBuffer();
printNodes(buf, [
(1, Node<num>()..text.addAll(['x', 0])),
]);
expect(buf.toString(), '''
x0
''');
}
void test_printNodes_sortChildNodesByKey() {
final buf = StringBuffer();
printNodes(buf, [
(
0,
_simpleNode('zero', [
(2, _simpleNode('two')),
(1, _simpleNode('one')),
(3, _simpleNode('three')),
]),
),
]);
expect(buf.toString(), '''
zero
one
two
three
''');
}
void test_printNodes_sortedByKey() {
final buf = StringBuffer();
printNodes(buf, [
(2, _simpleNode('two')),
(1, _simpleNode('one')),
(3, _simpleNode('three')),
]);
expect(buf.toString(), '''
one
two
three
''');
}
}
Node<num> _simpleNode(
String text, [
List<(num, Node<num>)> childNodes = const [],
]) {
final node = Node<num>();
node.text.add(text);
node.childNodes.addAll(childNodes);
return node;
}