public void ToolPathResolver_BuildsOriginalcaseCacheFileDirectoryPath()
        {
            // Arrange
            var target   = new ToolPathResolver("packages", isLowercase: false);
            var expected = Path.Combine(
                "packages",
                ".tools",
                "packagea",
                "3.1.4-BETA",
                "netstandard1.3");
            // Act

            var actual = target.GetToolDirectoryPath("packagea", NuGetVersion.Parse("3.1.4-BETA"), NuGetFramework.Parse("netstandard1.3"));

            // Assert
            Assert.Equal(expected, actual);
        }
        internal static string GetToolCacheFilePath(RestoreRequest request, LockFile lockFile)
        {
            if (request.ProjectStyle == ProjectStyle.DotnetCliTool && lockFile != null)
            {
                var toolName        = ToolRestoreUtility.GetToolIdOrNullFromSpec(request.Project);
                var lockFileLibrary = ToolRestoreUtility.GetToolTargetLibrary(lockFile, toolName);

                if (lockFileLibrary != null)
                {
                    var version          = lockFileLibrary.Version;
                    var toolPathResolver = new ToolPathResolver(request.PackagesDirectory);

                    return(GetToolCacheFilePath(toolPathResolver.GetToolDirectoryPath(
                                                    toolName,
                                                    version,
                                                    lockFile.Targets.First().TargetFramework), toolName));
                }
            }
            return(null);
        }
        public void NoOpRestoreUtility_CacheFileToolNameIsLowercase()
        {
            var package = "PackageA";
            // Arrange
            var target   = new ToolPathResolver("packages", isLowercase: true);
            var expected = Path.Combine(
                "packages",
                ".tools",
                "packagea",
                "3.1.4-beta",
                "netstandard1.3",
                "packagea.nuget.cache");

            // Act
            var actual = NoOpRestoreUtilities.GetToolCacheFilePath(
                target.GetToolDirectoryPath(
                    package,
                    NuGetVersion.Parse("3.1.4-beta"),
                    FrameworkConstants.CommonFrameworks.NetStandard13), package);

            // Assert
            Assert.Equal(expected, actual);
        }