// Copyright (c) .NET Foundation and contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. using FluentAssertions; using Microsoft.DotNet.Tools.Test.Utilities; using NuGet.ProjectModel; using Xunit; namespace Microsoft.DotNet.ToolPackage.Tests { public class LockFileMatcherTests : TestBase { [Theory] [InlineData("tools/netcoreapp1.1/any/tool.dll", "tool.dll", true)] [InlineData(@"tools\netcoreapp1.1\any\subDirectory\tool.dll", "subDirectory/tool.dll", true)] [InlineData("tools/netcoreapp1.1/win-x64/tool.dll", "tool.dll", true)] [InlineData("tools/netcoreapp1.1/any/subDirectory/tool.dll", "subDirectory/tool.dll", true)] [InlineData("libs/netcoreapp1.1/any/tool.dll", "tool.dll", false)] [InlineData("tools/netcoreapp1.1/any/subDirectory/tool.dll", "tool.dll", false)] [InlineData("tools/netcoreapp1.1/any/subDirectory/tool.dll", "subDirectory/subDirectory/subDirectory/subDirectory/subDirectory/tool.dll", false)] public void MatchesEntryPointTests(string pathInLockFileItem, string targetRelativeFilePath, bool shouldMatch) { LockFileMatcher.MatchesFile(new LockFileItem(pathInLockFileItem), targetRelativeFilePath) .Should().Be(shouldMatch); } [Theory] [InlineData("tools/netcoreapp1.1/any/tool.dll", "", true)] [InlineData(@"tools\netcoreapp1.1\any\subDirectory\tool.dll", "subDirectory", true)] [InlineData(@"tools\netcoreapp1.1\any\subDirectory\tool.dll", "sub", false)] [InlineData("tools/netcoreapp1.1/any/subDirectory/tool.dll", "any/subDirectory", false)] public void MatchesDirectoryPathTests( string pathInLockFileItem, string targetRelativeFilePath, bool shouldMatch) { LockFileMatcher.MatchesDirectoryPath(new LockFileItem(pathInLockFileItem), targetRelativeFilePath) .Should().Be(shouldMatch); } } }