File: DotnetNewUpdateTests.Approval.cs
Web Access
Project: ..\..\..\test\dotnet-new.IntegrationTests\dotnet-new.IntegrationTests.csproj (dotnet-new.IntegrationTests)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using Microsoft.DotNet.Cli.Utils;
 
namespace Microsoft.DotNet.Cli.New.IntegrationTests
{
    public partial class DotnetNewUpdateTests
    {
        [Fact]
        public Task CanShowMessageInCaseShortNameConflict()
        {
            string customHivePath = CreateTemporaryFolder(folderName: "Home");
            InstallTestTemplate("TemplateWithConflictShortName", _log, customHivePath);
 
            CommandResult commandResult = new DotnetNewCommand(_log, "update")
                  .WithCustomHive(customHivePath)
                  .WithoutBuiltInTemplates()
                  .Execute();
 
            commandResult
                .Should()
                .Pass();
 
            return Verify(commandResult.StdOut);
        }
 
        [Fact]
        public Task CanShowError_WhenGlobalSettingsFileIsCorrupted()
        {
            string homeDirectory = CreateTemporaryFolder();
            new DotnetNewCommand(_log, "install", "Microsoft.DotNet.Common.ProjectTemplates.5.0::5.0.0")
                .WithCustomHive(homeDirectory)
                .WithoutBuiltInTemplates()
                .Execute()
                .Should()
                .Pass()
                .And.HaveStdOutContaining("console");
 
            var globalSettingsFile = Path.Combine(homeDirectory, "packages.json");
            File.WriteAllText(globalSettingsFile, string.Empty);
 
            CommandResult commandResult = new DotnetNewCommand(_log, "update")
                .WithCustomHive(homeDirectory)
                .WithoutBuiltInTemplates()
                .Execute();
 
            return Verify(commandResult.StdOut)
                .AddScrubber(output => output.ScrubAndReplace(globalSettingsFile, "%GLOBAL SETTINGS FILE%"))
                .AddScrubber(output =>
                {
                    output.UnixifyNewlines()
                          .ScrubAndReplace("All template packages are up-to-date.", string.Empty);
 
                    output.ScrubAndReplace("\n", string.Empty);
                });
        }
    }
}