< Summary

Information
Class: Amusoft.DotnetNew.Tests.Templating.TemplateInstallation
Assembly: Amusoft.DotnetNew.Tests
File(s): /home/runner/work/Amusoft.DotnetNew.Tests/Amusoft.DotnetNew.Tests/src/Amusoft.DotnetNew.Tests/Templating/TemplateInstallation.cs
Tag: 127_14865883074
Line coverage
100%
Covered lines: 17
Uncovered lines: 0
Coverable lines: 17
Total lines: 62
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
CreateAsync()100%11100%
UninstallAsync()100%22100%
Dispose()100%11100%

File(s)

/home/runner/work/Amusoft.DotnetNew.Tests/Amusoft.DotnetNew.Tests/src/Amusoft.DotnetNew.Tests/Templating/TemplateInstallation.cs

#LineLine coverage
 1using System;
 2using System.IO;
 3using System.Threading;
 4using System.Threading.Tasks;
 5using Amusoft.DotnetNew.Tests.CLI;
 6using Amusoft.DotnetNew.Tests.Rewriters;
 7using Amusoft.DotnetNew.Tests.Scopes;
 8
 9namespace Amusoft.DotnetNew.Tests.Templating;
 10
 11/// <summary>
 12///
 13/// </summary>
 14public class TemplateInstallation : IDisposable
 15{
 16  /// <summary>
 17  ///
 18  /// </summary>
 19  public readonly ProjectTemplatingContext Context;
 20
 621  private TemplateInstallation(ProjectTemplatingContext context)
 22  {
 623    Context = context;
 624  }
 25
 26  internal static async Task<TemplateInstallation> CreateAsync(ProjectTemplatingContext projectTemplatingContext, Cancel
 27  {
 628    await DotnetCli.InstallAsync(projectTemplatingContext.ProjectTemplatePath.OriginalPath, cancellationToken);
 629    var result = new TemplateInstallation(projectTemplatingContext);
 630    var dirName = Path.GetFileName(projectTemplatingContext.ProjectTemplatePath.VirtualPath);
 631    LoggingScope.TryAddRewriter(new FolderNameAliasRewriter(projectTemplatingContext.ProjectTemplatePath, $"ProjectDir:{
 32    // var logger = LoggingScope.Current?.Logger;
 33    // logger?.AddRewriter(new ProjectDirectoryRewriter(projectTemplatingContext));
 34    // logger?.AddRewriter(new ProjectDirectoryRewriter(projectTemplatingContext));
 635    return result;
 636  }
 37
 38  private bool _disposed;
 39
 40  /// <summary>
 41  /// Uninstalls the template
 42  /// </summary>
 43  /// <param name="cancellationToken"></param>
 44  public async Task UninstallAsync(CancellationToken cancellationToken)
 45  {
 746    if (_disposed)
 147      return;
 48
 649    await DotnetCli.UninstallAsync(Context.ProjectTemplatePath.OriginalPath, cancellationToken);
 50
 651    _disposed = true;
 652    GC.SuppressFinalize(this);
 753  }
 54
 55  /// <summary>
 56  /// Dispose
 57  /// </summary>
 58  public void Dispose()
 59  {
 560    UninstallAsync(CancellationToken.None).GetAwaiter().GetResult();
 561  }
 62}