// Copyright (c) 2020, 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:test/test.dart'; import 'package:yaml_edit/src/equality.dart'; import 'package:yaml_edit/src/errors.dart'; import 'package:yaml_edit/yaml_edit.dart'; /// Asserts that a string containing a single YAML document is unchanged /// when dumped right after loading. void Function() expectLoadPreservesYAML(String source) { final doc = YamlEditor(source); return () => expect(doc.toString(), equals(source)); } /// Asserts that [builder] has the same internal value as [expected]. void expectYamlBuilderValue(YamlEditor builder, Object expected) { final builderValue = builder.parseAt([]); expectDeepEquals(builderValue, expected); } /// Asserts that [actual] has the same internal value as [expected]. void expectDeepEquals(Object? actual, Object expected) { expect( actual, predicate((actual) => deepEquals(actual, expected), '$expected')); } Matcher notEquals(dynamic expected) => isNot(equals(expected)); /// A matcher for functions that throw [PathError]. Matcher throwsPathError = throwsA(isA()); /// A matcher for functions that throw [AliasException]. Matcher throwsAliasException = throwsA(isA()); /// Enum to hold the possible modification methods. enum YamlModificationMethod { appendTo, insert, prependTo, remove, splice, update, }