blob: 9f802db04f14da38a91d4d0e0a593f7cc37720ae [file]
// Copyright (c) 2023, 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:native_toolchain_c/src/tool/tool.dart';
import 'package:native_toolchain_c/src/tool/tool_instance.dart';
import 'package:native_toolchain_c/src/tool/tool_requirement.dart';
import 'package:pub_semver/pub_semver.dart';
import 'package:test/test.dart';
void main() {
test('toString', () {
final requirement =
ToolRequirement(Tool(name: 'clang'), minimumVersion: Version(10, 0, 0));
expect(requirement.toString(), contains('clang'));
expect(requirement.toString(), contains('10.0.0'));
});
test('RequireOne', () {
final requirement = RequireOne([
ToolRequirement(Tool(name: 'bar'), minimumVersion: Version(10, 0, 0)),
ToolRequirement(Tool(name: 'foo'), minimumVersion: Version(10, 0, 0)),
]);
final toolInstances = [
ToolInstance(
tool: Tool(name: 'bar'),
version: Version(10, 0, 0),
uri: Uri.file('path/to/bar'),
),
ToolInstance(
tool: Tool(name: 'foo'),
version: Version(9, 0, 0),
uri: Uri.file('path/to/foo'),
),
];
final result = requirement.satisfy(toolInstances);
expect(
result,
[
ToolInstance(
tool: Tool(name: 'bar'),
version: Version(10, 0, 0),
uri: Uri.file('path/to/bar'),
)
],
);
});
}