Introducing a Config object as a input to the FirstRunConfigurer. This allows us to decide what operations we want to
do as part of first run based on whether this is the invoke-reportsuccess from a native installer or a regular command being invoked for the first time. This in turn allows us to ignore the skip first run variable on native installers and expand the cache always in those cases.
This commit is contained in:
parent
da7da0b018
commit
b7a8c6d12f
4 changed files with 161 additions and 74 deletions
|
@ -0,0 +1,14 @@
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
namespace Microsoft.DotNet.Configurer
|
||||||
|
{
|
||||||
|
public class DotnetFirstRunConfiguration
|
||||||
|
{
|
||||||
|
public bool GenerateAspNetCertificate { get; set; }
|
||||||
|
|
||||||
|
public bool PrintTelemetryMessage { get; set; }
|
||||||
|
|
||||||
|
public bool SkipFirstRunExperience { get; set; }
|
||||||
|
}
|
||||||
|
}
|
|
@ -12,7 +12,7 @@ namespace Microsoft.DotNet.Configurer
|
||||||
public class DotnetFirstTimeUseConfigurer
|
public class DotnetFirstTimeUseConfigurer
|
||||||
{
|
{
|
||||||
private IReporter _reporter;
|
private IReporter _reporter;
|
||||||
private IEnvironmentProvider _environmentProvider;
|
private DotnetFirstRunConfiguration _dotnetFirstRunConfiguration;
|
||||||
private INuGetCachePrimer _nugetCachePrimer;
|
private INuGetCachePrimer _nugetCachePrimer;
|
||||||
private INuGetCacheSentinel _nugetCacheSentinel;
|
private INuGetCacheSentinel _nugetCacheSentinel;
|
||||||
private IFirstTimeUseNoticeSentinel _firstTimeUseNoticeSentinel;
|
private IFirstTimeUseNoticeSentinel _firstTimeUseNoticeSentinel;
|
||||||
|
@ -29,7 +29,7 @@ namespace Microsoft.DotNet.Configurer
|
||||||
IAspNetCertificateSentinel aspNetCertificateSentinel,
|
IAspNetCertificateSentinel aspNetCertificateSentinel,
|
||||||
IAspNetCoreCertificateGenerator aspNetCoreCertificateGenerator,
|
IAspNetCoreCertificateGenerator aspNetCoreCertificateGenerator,
|
||||||
IFileSentinel toolPathSentinel,
|
IFileSentinel toolPathSentinel,
|
||||||
IEnvironmentProvider environmentProvider,
|
DotnetFirstRunConfiguration dotnetFirstRunConfiguration,
|
||||||
IReporter reporter,
|
IReporter reporter,
|
||||||
string cliFallbackFolderPath,
|
string cliFallbackFolderPath,
|
||||||
IEnvironmentPath pathAdder)
|
IEnvironmentPath pathAdder)
|
||||||
|
@ -40,7 +40,7 @@ namespace Microsoft.DotNet.Configurer
|
||||||
_aspNetCertificateSentinel = aspNetCertificateSentinel;
|
_aspNetCertificateSentinel = aspNetCertificateSentinel;
|
||||||
_aspNetCoreCertificateGenerator = aspNetCoreCertificateGenerator;
|
_aspNetCoreCertificateGenerator = aspNetCoreCertificateGenerator;
|
||||||
_toolPathSentinel = toolPathSentinel;
|
_toolPathSentinel = toolPathSentinel;
|
||||||
_environmentProvider = environmentProvider;
|
_dotnetFirstRunConfiguration = dotnetFirstRunConfiguration;
|
||||||
_reporter = reporter;
|
_reporter = reporter;
|
||||||
_cliFallbackFolderPath = cliFallbackFolderPath;
|
_cliFallbackFolderPath = cliFallbackFolderPath;
|
||||||
_pathAdder = pathAdder ?? throw new ArgumentNullException(nameof(pathAdder));
|
_pathAdder = pathAdder ?? throw new ArgumentNullException(nameof(pathAdder));
|
||||||
|
@ -93,11 +93,8 @@ namespace Microsoft.DotNet.Configurer
|
||||||
#if EXCLUDE_ASPNETCORE
|
#if EXCLUDE_ASPNETCORE
|
||||||
return false;
|
return false;
|
||||||
#else
|
#else
|
||||||
var generateAspNetCertificate =
|
|
||||||
_environmentProvider.GetEnvironmentVariableAsBool("DOTNET_GENERATE_ASPNET_CERTIFICATE", true);
|
|
||||||
|
|
||||||
return ShouldRunFirstRunExperience() &&
|
return ShouldRunFirstRunExperience() &&
|
||||||
generateAspNetCertificate &&
|
_dotnetFirstRunConfiguration.GenerateAspNetCertificate &&
|
||||||
!_aspNetCertificateSentinel.Exists();
|
!_aspNetCertificateSentinel.Exists();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -116,11 +113,8 @@ namespace Microsoft.DotNet.Configurer
|
||||||
|
|
||||||
private bool ShouldPrintFirstTimeUseNotice()
|
private bool ShouldPrintFirstTimeUseNotice()
|
||||||
{
|
{
|
||||||
var showFirstTimeUseNotice =
|
|
||||||
_environmentProvider.GetEnvironmentVariableAsBool("DOTNET_PRINT_TELEMETRY_MESSAGE", true);
|
|
||||||
|
|
||||||
return ShouldRunFirstRunExperience() &&
|
return ShouldRunFirstRunExperience() &&
|
||||||
showFirstTimeUseNotice &&
|
_dotnetFirstRunConfiguration.PrintTelemetryMessage &&
|
||||||
!_firstTimeUseNoticeSentinel.Exists();
|
!_firstTimeUseNoticeSentinel.Exists();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,10 +151,7 @@ namespace Microsoft.DotNet.Configurer
|
||||||
|
|
||||||
private bool ShouldRunFirstRunExperience()
|
private bool ShouldRunFirstRunExperience()
|
||||||
{
|
{
|
||||||
var skipFirstTimeExperience =
|
return !_dotnetFirstRunConfiguration.SkipFirstRunExperience;
|
||||||
_environmentProvider.GetEnvironmentVariableAsBool("DOTNET_SKIP_FIRST_TIME_EXPERIENCE", false);
|
|
||||||
|
|
||||||
return !skipFirstTimeExperience;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -141,6 +141,15 @@ namespace Microsoft.DotNet.Cli
|
||||||
command = "help";
|
command = "help";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var environmentProvider = new EnvironmentProvider();
|
||||||
|
|
||||||
|
bool generateAspNetCertificate =
|
||||||
|
environmentProvider.GetEnvironmentVariableAsBool("DOTNET_GENERATE_ASPNET_CERTIFICATE", true);
|
||||||
|
bool printTelemetryMessage =
|
||||||
|
environmentProvider.GetEnvironmentVariableAsBool("DOTNET_PRINT_TELEMETRY_MESSAGE", true);
|
||||||
|
bool skipFirstRunExperience =
|
||||||
|
environmentProvider.GetEnvironmentVariableAsBool("DOTNET_SKIP_FIRST_TIME_EXPERIENCE", false);
|
||||||
|
|
||||||
topLevelCommandParserResult = new TopLevelCommandParserResult(command);
|
topLevelCommandParserResult = new TopLevelCommandParserResult(command);
|
||||||
var hasSuperUserAccess = false;
|
var hasSuperUserAccess = false;
|
||||||
if (IsDotnetBeingInvokedFromNativeInstaller(topLevelCommandParserResult))
|
if (IsDotnetBeingInvokedFromNativeInstaller(topLevelCommandParserResult))
|
||||||
|
@ -149,15 +158,28 @@ namespace Microsoft.DotNet.Cli
|
||||||
firstTimeUseNoticeSentinel = new NoOpFirstTimeUseNoticeSentinel();
|
firstTimeUseNoticeSentinel = new NoOpFirstTimeUseNoticeSentinel();
|
||||||
toolPathSentinel = new NoOpFileSentinel();
|
toolPathSentinel = new NoOpFileSentinel();
|
||||||
hasSuperUserAccess = true;
|
hasSuperUserAccess = true;
|
||||||
|
|
||||||
|
// When running through a native installer, we want the cache expansion to happen, so
|
||||||
|
// we need to override this.
|
||||||
|
skipFirstRunExperience = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var dotnetFirstRunConfiguration = new DotnetFirstRunConfiguration
|
||||||
|
{
|
||||||
|
GenerateAspNetCertificate = generateAspNetCertificate,
|
||||||
|
PrintTelemetryMessage = printTelemetryMessage,
|
||||||
|
SkipFirstRunExperience = skipFirstRunExperience
|
||||||
|
};
|
||||||
|
|
||||||
ConfigureDotNetForFirstTimeUse(
|
ConfigureDotNetForFirstTimeUse(
|
||||||
nugetCacheSentinel,
|
nugetCacheSentinel,
|
||||||
firstTimeUseNoticeSentinel,
|
firstTimeUseNoticeSentinel,
|
||||||
aspNetCertificateSentinel,
|
aspNetCertificateSentinel,
|
||||||
toolPathSentinel,
|
toolPathSentinel,
|
||||||
cliFallbackFolderPathCalculator,
|
cliFallbackFolderPathCalculator,
|
||||||
hasSuperUserAccess);
|
hasSuperUserAccess,
|
||||||
|
dotnetFirstRunConfiguration,
|
||||||
|
environmentProvider);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -222,15 +244,17 @@ namespace Microsoft.DotNet.Cli
|
||||||
IAspNetCertificateSentinel aspNetCertificateSentinel,
|
IAspNetCertificateSentinel aspNetCertificateSentinel,
|
||||||
IFileSentinel toolPathSentinel,
|
IFileSentinel toolPathSentinel,
|
||||||
CliFolderPathCalculator cliFolderPathCalculator,
|
CliFolderPathCalculator cliFolderPathCalculator,
|
||||||
bool hasSuperUserAccess)
|
bool hasSuperUserAccess,
|
||||||
|
DotnetFirstRunConfiguration dotnetFirstRunConfiguration,
|
||||||
|
IEnvironmentProvider environmentProvider)
|
||||||
{
|
{
|
||||||
var environmentProvider = new EnvironmentProvider();
|
|
||||||
|
|
||||||
using (PerfTrace.Current.CaptureTiming())
|
using (PerfTrace.Current.CaptureTiming())
|
||||||
{
|
{
|
||||||
var nugetPackagesArchiver = new NuGetPackagesArchiver();
|
var nugetPackagesArchiver = new NuGetPackagesArchiver();
|
||||||
var environmentPath =
|
var environmentPath = EnvironmentPathFactory.CreateEnvironmentPath(
|
||||||
EnvironmentPathFactory.CreateEnvironmentPath(cliFolderPathCalculator, hasSuperUserAccess, environmentProvider);
|
cliFolderPathCalculator,
|
||||||
|
hasSuperUserAccess,
|
||||||
|
environmentProvider);
|
||||||
var commandFactory = new DotNetCommandFactory(alwaysRunOutOfProc: true);
|
var commandFactory = new DotNetCommandFactory(alwaysRunOutOfProc: true);
|
||||||
var nugetCachePrimer = new NuGetCachePrimer(
|
var nugetCachePrimer = new NuGetCachePrimer(
|
||||||
nugetPackagesArchiver,
|
nugetPackagesArchiver,
|
||||||
|
@ -244,7 +268,7 @@ namespace Microsoft.DotNet.Cli
|
||||||
aspNetCertificateSentinel,
|
aspNetCertificateSentinel,
|
||||||
aspnetCertificateGenerator,
|
aspnetCertificateGenerator,
|
||||||
toolPathSentinel,
|
toolPathSentinel,
|
||||||
environmentProvider,
|
dotnetFirstRunConfiguration,
|
||||||
Reporter.Output,
|
Reporter.Output,
|
||||||
cliFolderPathCalculator.CliFallbackFolderPath,
|
cliFolderPathCalculator.CliFallbackFolderPath,
|
||||||
environmentPath);
|
environmentPath);
|
||||||
|
|
|
@ -21,7 +21,6 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
private Mock<IAspNetCertificateSentinel> _aspNetCertificateSentinelMock;
|
private Mock<IAspNetCertificateSentinel> _aspNetCertificateSentinelMock;
|
||||||
private Mock<IAspNetCoreCertificateGenerator> _aspNetCoreCertificateGeneratorMock;
|
private Mock<IAspNetCoreCertificateGenerator> _aspNetCoreCertificateGeneratorMock;
|
||||||
private Mock<IFileSentinel> _toolPathSentinelMock;
|
private Mock<IFileSentinel> _toolPathSentinelMock;
|
||||||
private Mock<IEnvironmentProvider> _environmentProviderMock;
|
|
||||||
private Mock<IReporter> _reporterMock;
|
private Mock<IReporter> _reporterMock;
|
||||||
private Mock<IEnvironmentPath> _pathAdderMock;
|
private Mock<IEnvironmentPath> _pathAdderMock;
|
||||||
|
|
||||||
|
@ -33,16 +32,8 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
_aspNetCertificateSentinelMock = new Mock<IAspNetCertificateSentinel>();
|
_aspNetCertificateSentinelMock = new Mock<IAspNetCertificateSentinel>();
|
||||||
_aspNetCoreCertificateGeneratorMock = new Mock<IAspNetCoreCertificateGenerator>();
|
_aspNetCoreCertificateGeneratorMock = new Mock<IAspNetCoreCertificateGenerator>();
|
||||||
_toolPathSentinelMock = new Mock<IFileSentinel>();
|
_toolPathSentinelMock = new Mock<IFileSentinel>();
|
||||||
_environmentProviderMock = new Mock<IEnvironmentProvider>();
|
|
||||||
_reporterMock = new Mock<IReporter>();
|
_reporterMock = new Mock<IReporter>();
|
||||||
_pathAdderMock = new Mock<IEnvironmentPath>();
|
_pathAdderMock = new Mock<IEnvironmentPath>();
|
||||||
|
|
||||||
_environmentProviderMock
|
|
||||||
.Setup(e => e.GetEnvironmentVariableAsBool("DOTNET_SKIP_FIRST_TIME_EXPERIENCE", false))
|
|
||||||
.Returns(false);
|
|
||||||
_environmentProviderMock
|
|
||||||
.Setup(e => e.GetEnvironmentVariableAsBool("DOTNET_PRINT_TELEMETRY_MESSAGE", true))
|
|
||||||
.Returns(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
@ -57,7 +48,11 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
_aspNetCertificateSentinelMock.Object,
|
_aspNetCertificateSentinelMock.Object,
|
||||||
_aspNetCoreCertificateGeneratorMock.Object,
|
_aspNetCoreCertificateGeneratorMock.Object,
|
||||||
_toolPathSentinelMock.Object,
|
_toolPathSentinelMock.Object,
|
||||||
_environmentProviderMock.Object,
|
new DotnetFirstRunConfiguration
|
||||||
|
{
|
||||||
|
SkipFirstRunExperience = false,
|
||||||
|
PrintTelemetryMessage = true
|
||||||
|
},
|
||||||
_reporterMock.Object,
|
_reporterMock.Object,
|
||||||
CliFallbackFolderPath,
|
CliFallbackFolderPath,
|
||||||
_pathAdderMock.Object);
|
_pathAdderMock.Object);
|
||||||
|
@ -72,9 +67,6 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
public void It_does_not_print_the_first_time_use_notice_when_the_user_has_set_the_DOTNET_SKIP_FIRST_TIME_EXPERIENCE_environemnt_variable()
|
public void It_does_not_print_the_first_time_use_notice_when_the_user_has_set_the_DOTNET_SKIP_FIRST_TIME_EXPERIENCE_environemnt_variable()
|
||||||
{
|
{
|
||||||
_firstTimeUseNoticeSentinelMock.Setup(n => n.Exists()).Returns(false);
|
_firstTimeUseNoticeSentinelMock.Setup(n => n.Exists()).Returns(false);
|
||||||
_environmentProviderMock
|
|
||||||
.Setup(e => e.GetEnvironmentVariableAsBool("DOTNET_SKIP_FIRST_TIME_EXPERIENCE", false))
|
|
||||||
.Returns(true);
|
|
||||||
|
|
||||||
var dotnetFirstTimeUseConfigurer = new DotnetFirstTimeUseConfigurer(
|
var dotnetFirstTimeUseConfigurer = new DotnetFirstTimeUseConfigurer(
|
||||||
_nugetCachePrimerMock.Object,
|
_nugetCachePrimerMock.Object,
|
||||||
|
@ -83,7 +75,11 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
_aspNetCertificateSentinelMock.Object,
|
_aspNetCertificateSentinelMock.Object,
|
||||||
_aspNetCoreCertificateGeneratorMock.Object,
|
_aspNetCoreCertificateGeneratorMock.Object,
|
||||||
_toolPathSentinelMock.Object,
|
_toolPathSentinelMock.Object,
|
||||||
_environmentProviderMock.Object,
|
new DotnetFirstRunConfiguration
|
||||||
|
{
|
||||||
|
SkipFirstRunExperience = true,
|
||||||
|
PrintTelemetryMessage = true
|
||||||
|
},
|
||||||
_reporterMock.Object,
|
_reporterMock.Object,
|
||||||
CliFallbackFolderPath,
|
CliFallbackFolderPath,
|
||||||
_pathAdderMock.Object);
|
_pathAdderMock.Object);
|
||||||
|
@ -98,9 +94,6 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
public void It_does_not_print_the_first_time_use_notice_when_the_user_has_set_the_DOTNET_PRINT_TELEMETRY_MESSAGE_environemnt_variable()
|
public void It_does_not_print_the_first_time_use_notice_when_the_user_has_set_the_DOTNET_PRINT_TELEMETRY_MESSAGE_environemnt_variable()
|
||||||
{
|
{
|
||||||
_firstTimeUseNoticeSentinelMock.Setup(n => n.Exists()).Returns(false);
|
_firstTimeUseNoticeSentinelMock.Setup(n => n.Exists()).Returns(false);
|
||||||
_environmentProviderMock
|
|
||||||
.Setup(e => e.GetEnvironmentVariableAsBool("DOTNET_PRINT_TELEMETRY_MESSAGE", true))
|
|
||||||
.Returns(false);
|
|
||||||
|
|
||||||
var dotnetFirstTimeUseConfigurer = new DotnetFirstTimeUseConfigurer(
|
var dotnetFirstTimeUseConfigurer = new DotnetFirstTimeUseConfigurer(
|
||||||
_nugetCachePrimerMock.Object,
|
_nugetCachePrimerMock.Object,
|
||||||
|
@ -109,7 +102,11 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
_aspNetCertificateSentinelMock.Object,
|
_aspNetCertificateSentinelMock.Object,
|
||||||
_aspNetCoreCertificateGeneratorMock.Object,
|
_aspNetCoreCertificateGeneratorMock.Object,
|
||||||
_toolPathSentinelMock.Object,
|
_toolPathSentinelMock.Object,
|
||||||
_environmentProviderMock.Object,
|
new DotnetFirstRunConfiguration
|
||||||
|
{
|
||||||
|
SkipFirstRunExperience = false,
|
||||||
|
PrintTelemetryMessage = false
|
||||||
|
},
|
||||||
_reporterMock.Object,
|
_reporterMock.Object,
|
||||||
CliFallbackFolderPath,
|
CliFallbackFolderPath,
|
||||||
_pathAdderMock.Object);
|
_pathAdderMock.Object);
|
||||||
|
@ -132,7 +129,11 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
_aspNetCertificateSentinelMock.Object,
|
_aspNetCertificateSentinelMock.Object,
|
||||||
_aspNetCoreCertificateGeneratorMock.Object,
|
_aspNetCoreCertificateGeneratorMock.Object,
|
||||||
_toolPathSentinelMock.Object,
|
_toolPathSentinelMock.Object,
|
||||||
_environmentProviderMock.Object,
|
new DotnetFirstRunConfiguration
|
||||||
|
{
|
||||||
|
SkipFirstRunExperience = false,
|
||||||
|
PrintTelemetryMessage = true
|
||||||
|
},
|
||||||
_reporterMock.Object,
|
_reporterMock.Object,
|
||||||
CliFallbackFolderPath,
|
CliFallbackFolderPath,
|
||||||
_pathAdderMock.Object);
|
_pathAdderMock.Object);
|
||||||
|
@ -155,7 +156,11 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
_aspNetCertificateSentinelMock.Object,
|
_aspNetCertificateSentinelMock.Object,
|
||||||
_aspNetCoreCertificateGeneratorMock.Object,
|
_aspNetCoreCertificateGeneratorMock.Object,
|
||||||
_toolPathSentinelMock.Object,
|
_toolPathSentinelMock.Object,
|
||||||
_environmentProviderMock.Object,
|
new DotnetFirstRunConfiguration
|
||||||
|
{
|
||||||
|
SkipFirstRunExperience = false,
|
||||||
|
PrintTelemetryMessage = true
|
||||||
|
},
|
||||||
_reporterMock.Object,
|
_reporterMock.Object,
|
||||||
CliFallbackFolderPath,
|
CliFallbackFolderPath,
|
||||||
_pathAdderMock.Object);
|
_pathAdderMock.Object);
|
||||||
|
@ -177,7 +182,11 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
_aspNetCertificateSentinelMock.Object,
|
_aspNetCertificateSentinelMock.Object,
|
||||||
_aspNetCoreCertificateGeneratorMock.Object,
|
_aspNetCoreCertificateGeneratorMock.Object,
|
||||||
_toolPathSentinelMock.Object,
|
_toolPathSentinelMock.Object,
|
||||||
_environmentProviderMock.Object,
|
new DotnetFirstRunConfiguration
|
||||||
|
{
|
||||||
|
SkipFirstRunExperience = false,
|
||||||
|
PrintTelemetryMessage = true
|
||||||
|
},
|
||||||
_reporterMock.Object,
|
_reporterMock.Object,
|
||||||
CliFallbackFolderPath,
|
CliFallbackFolderPath,
|
||||||
_pathAdderMock.Object);
|
_pathAdderMock.Object);
|
||||||
|
@ -199,7 +208,11 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
_aspNetCertificateSentinelMock.Object,
|
_aspNetCertificateSentinelMock.Object,
|
||||||
_aspNetCoreCertificateGeneratorMock.Object,
|
_aspNetCoreCertificateGeneratorMock.Object,
|
||||||
_toolPathSentinelMock.Object,
|
_toolPathSentinelMock.Object,
|
||||||
_environmentProviderMock.Object,
|
new DotnetFirstRunConfiguration
|
||||||
|
{
|
||||||
|
SkipFirstRunExperience = false,
|
||||||
|
PrintTelemetryMessage = true
|
||||||
|
},
|
||||||
_reporterMock.Object,
|
_reporterMock.Object,
|
||||||
CliFallbackFolderPath,
|
CliFallbackFolderPath,
|
||||||
_pathAdderMock.Object);
|
_pathAdderMock.Object);
|
||||||
|
@ -210,12 +223,9 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void It_does_not_prime_the_cache_if_the_sentinel_exists_but_the_user_has_set_the_DOTNET_SKIP_FIRST_TIME_EXPERIENCE_environemnt_variable()
|
public void It_does_not_prime_the_cache_if_the_sentinel_does_not_exist_but_the_user_has_set_the_DOTNET_SKIP_FIRST_TIME_EXPERIENCE_environment_variable()
|
||||||
{
|
{
|
||||||
_nugetCacheSentinelMock.Setup(n => n.Exists()).Returns(false);
|
_nugetCacheSentinelMock.Setup(n => n.Exists()).Returns(false);
|
||||||
_environmentProviderMock
|
|
||||||
.Setup(e => e.GetEnvironmentVariableAsBool("DOTNET_SKIP_FIRST_TIME_EXPERIENCE", false))
|
|
||||||
.Returns(true);
|
|
||||||
|
|
||||||
var dotnetFirstTimeUseConfigurer = new DotnetFirstTimeUseConfigurer(
|
var dotnetFirstTimeUseConfigurer = new DotnetFirstTimeUseConfigurer(
|
||||||
_nugetCachePrimerMock.Object,
|
_nugetCachePrimerMock.Object,
|
||||||
|
@ -224,7 +234,11 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
_aspNetCertificateSentinelMock.Object,
|
_aspNetCertificateSentinelMock.Object,
|
||||||
_aspNetCoreCertificateGeneratorMock.Object,
|
_aspNetCoreCertificateGeneratorMock.Object,
|
||||||
_toolPathSentinelMock.Object,
|
_toolPathSentinelMock.Object,
|
||||||
_environmentProviderMock.Object,
|
new DotnetFirstRunConfiguration
|
||||||
|
{
|
||||||
|
SkipFirstRunExperience = true,
|
||||||
|
PrintTelemetryMessage = true
|
||||||
|
},
|
||||||
_reporterMock.Object,
|
_reporterMock.Object,
|
||||||
CliFallbackFolderPath,
|
CliFallbackFolderPath,
|
||||||
_pathAdderMock.Object);
|
_pathAdderMock.Object);
|
||||||
|
@ -246,7 +260,11 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
_aspNetCertificateSentinelMock.Object,
|
_aspNetCertificateSentinelMock.Object,
|
||||||
_aspNetCoreCertificateGeneratorMock.Object,
|
_aspNetCoreCertificateGeneratorMock.Object,
|
||||||
_toolPathSentinelMock.Object,
|
_toolPathSentinelMock.Object,
|
||||||
_environmentProviderMock.Object,
|
new DotnetFirstRunConfiguration
|
||||||
|
{
|
||||||
|
SkipFirstRunExperience = false,
|
||||||
|
PrintTelemetryMessage = true
|
||||||
|
},
|
||||||
_reporterMock.Object,
|
_reporterMock.Object,
|
||||||
CliFallbackFolderPath,
|
CliFallbackFolderPath,
|
||||||
_pathAdderMock.Object);
|
_pathAdderMock.Object);
|
||||||
|
@ -269,7 +287,11 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
_aspNetCertificateSentinelMock.Object,
|
_aspNetCertificateSentinelMock.Object,
|
||||||
_aspNetCoreCertificateGeneratorMock.Object,
|
_aspNetCoreCertificateGeneratorMock.Object,
|
||||||
_toolPathSentinelMock.Object,
|
_toolPathSentinelMock.Object,
|
||||||
_environmentProviderMock.Object,
|
new DotnetFirstRunConfiguration
|
||||||
|
{
|
||||||
|
SkipFirstRunExperience = false,
|
||||||
|
PrintTelemetryMessage = true
|
||||||
|
},
|
||||||
_reporterMock.Object,
|
_reporterMock.Object,
|
||||||
CliFallbackFolderPath,
|
CliFallbackFolderPath,
|
||||||
_pathAdderMock.Object);
|
_pathAdderMock.Object);
|
||||||
|
@ -295,7 +317,11 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
_aspNetCertificateSentinelMock.Object,
|
_aspNetCertificateSentinelMock.Object,
|
||||||
_aspNetCoreCertificateGeneratorMock.Object,
|
_aspNetCoreCertificateGeneratorMock.Object,
|
||||||
_toolPathSentinelMock.Object,
|
_toolPathSentinelMock.Object,
|
||||||
_environmentProviderMock.Object,
|
new DotnetFirstRunConfiguration
|
||||||
|
{
|
||||||
|
SkipFirstRunExperience = false,
|
||||||
|
PrintTelemetryMessage = true
|
||||||
|
},
|
||||||
_reporterMock.Object,
|
_reporterMock.Object,
|
||||||
CliFallbackFolderPath,
|
CliFallbackFolderPath,
|
||||||
_pathAdderMock.Object);
|
_pathAdderMock.Object);
|
||||||
|
@ -322,7 +348,11 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
_aspNetCertificateSentinelMock.Object,
|
_aspNetCertificateSentinelMock.Object,
|
||||||
_aspNetCoreCertificateGeneratorMock.Object,
|
_aspNetCoreCertificateGeneratorMock.Object,
|
||||||
_toolPathSentinelMock.Object,
|
_toolPathSentinelMock.Object,
|
||||||
_environmentProviderMock.Object,
|
new DotnetFirstRunConfiguration
|
||||||
|
{
|
||||||
|
SkipFirstRunExperience = false,
|
||||||
|
PrintTelemetryMessage = true
|
||||||
|
},
|
||||||
_reporterMock.Object,
|
_reporterMock.Object,
|
||||||
CliFallbackFolderPath,
|
CliFallbackFolderPath,
|
||||||
_pathAdderMock.Object);
|
_pathAdderMock.Object);
|
||||||
|
@ -345,7 +375,12 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
_aspNetCertificateSentinelMock.Object,
|
_aspNetCertificateSentinelMock.Object,
|
||||||
_aspNetCoreCertificateGeneratorMock.Object,
|
_aspNetCoreCertificateGeneratorMock.Object,
|
||||||
_toolPathSentinelMock.Object,
|
_toolPathSentinelMock.Object,
|
||||||
_environmentProviderMock.Object,
|
new DotnetFirstRunConfiguration
|
||||||
|
{
|
||||||
|
SkipFirstRunExperience = false,
|
||||||
|
PrintTelemetryMessage = true,
|
||||||
|
GenerateAspNetCertificate = true
|
||||||
|
},
|
||||||
_reporterMock.Object,
|
_reporterMock.Object,
|
||||||
CliFallbackFolderPath,
|
CliFallbackFolderPath,
|
||||||
_pathAdderMock.Object);
|
_pathAdderMock.Object);
|
||||||
|
@ -368,7 +403,11 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
_aspNetCertificateSentinelMock.Object,
|
_aspNetCertificateSentinelMock.Object,
|
||||||
_aspNetCoreCertificateGeneratorMock.Object,
|
_aspNetCoreCertificateGeneratorMock.Object,
|
||||||
_toolPathSentinelMock.Object,
|
_toolPathSentinelMock.Object,
|
||||||
_environmentProviderMock.Object,
|
new DotnetFirstRunConfiguration
|
||||||
|
{
|
||||||
|
SkipFirstRunExperience = false,
|
||||||
|
PrintTelemetryMessage = true
|
||||||
|
},
|
||||||
_reporterMock.Object,
|
_reporterMock.Object,
|
||||||
CliFallbackFolderPath,
|
CliFallbackFolderPath,
|
||||||
_pathAdderMock.Object);
|
_pathAdderMock.Object);
|
||||||
|
@ -398,7 +437,11 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
_aspNetCertificateSentinelMock.Object,
|
_aspNetCertificateSentinelMock.Object,
|
||||||
_aspNetCoreCertificateGeneratorMock.Object,
|
_aspNetCoreCertificateGeneratorMock.Object,
|
||||||
_toolPathSentinelMock.Object,
|
_toolPathSentinelMock.Object,
|
||||||
_environmentProviderMock.Object,
|
new DotnetFirstRunConfiguration
|
||||||
|
{
|
||||||
|
SkipFirstRunExperience = false,
|
||||||
|
PrintTelemetryMessage = true
|
||||||
|
},
|
||||||
_reporterMock.Object,
|
_reporterMock.Object,
|
||||||
CliFallbackFolderPath,
|
CliFallbackFolderPath,
|
||||||
_pathAdderMock.Object);
|
_pathAdderMock.Object);
|
||||||
|
@ -420,7 +463,11 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
_aspNetCertificateSentinelMock.Object,
|
_aspNetCertificateSentinelMock.Object,
|
||||||
_aspNetCoreCertificateGeneratorMock.Object,
|
_aspNetCoreCertificateGeneratorMock.Object,
|
||||||
_toolPathSentinelMock.Object,
|
_toolPathSentinelMock.Object,
|
||||||
_environmentProviderMock.Object,
|
new DotnetFirstRunConfiguration
|
||||||
|
{
|
||||||
|
SkipFirstRunExperience = false,
|
||||||
|
PrintTelemetryMessage = true
|
||||||
|
},
|
||||||
_reporterMock.Object,
|
_reporterMock.Object,
|
||||||
CliFallbackFolderPath,
|
CliFallbackFolderPath,
|
||||||
_pathAdderMock.Object);
|
_pathAdderMock.Object);
|
||||||
|
@ -435,9 +482,6 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
public void It_does_not_generate_the_aspnet_https_development_certificate_when_the_user_has_set_the_DOTNET_SKIP_FIRST_TIME_EXPERIENCE_environment_variable()
|
public void It_does_not_generate_the_aspnet_https_development_certificate_when_the_user_has_set_the_DOTNET_SKIP_FIRST_TIME_EXPERIENCE_environment_variable()
|
||||||
{
|
{
|
||||||
_aspNetCertificateSentinelMock.Setup(n => n.Exists()).Returns(false);
|
_aspNetCertificateSentinelMock.Setup(n => n.Exists()).Returns(false);
|
||||||
_environmentProviderMock
|
|
||||||
.Setup(e => e.GetEnvironmentVariableAsBool("DOTNET_SKIP_FIRST_TIME_EXPERIENCE", false))
|
|
||||||
.Returns(true);
|
|
||||||
|
|
||||||
var dotnetFirstTimeUseConfigurer = new DotnetFirstTimeUseConfigurer(
|
var dotnetFirstTimeUseConfigurer = new DotnetFirstTimeUseConfigurer(
|
||||||
_nugetCachePrimerMock.Object,
|
_nugetCachePrimerMock.Object,
|
||||||
|
@ -446,7 +490,11 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
_aspNetCertificateSentinelMock.Object,
|
_aspNetCertificateSentinelMock.Object,
|
||||||
_aspNetCoreCertificateGeneratorMock.Object,
|
_aspNetCoreCertificateGeneratorMock.Object,
|
||||||
_toolPathSentinelMock.Object,
|
_toolPathSentinelMock.Object,
|
||||||
_environmentProviderMock.Object,
|
new DotnetFirstRunConfiguration
|
||||||
|
{
|
||||||
|
SkipFirstRunExperience = false,
|
||||||
|
PrintTelemetryMessage = true
|
||||||
|
},
|
||||||
_reporterMock.Object,
|
_reporterMock.Object,
|
||||||
CliFallbackFolderPath,
|
CliFallbackFolderPath,
|
||||||
_pathAdderMock.Object);
|
_pathAdderMock.Object);
|
||||||
|
@ -461,9 +509,6 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
public void It_does_not_generate_the_aspnet_https_development_certificate_when_the_user_has_set_the_DOTNET_GENERATE_ASPNET_CERTIFICATE_environment_variable()
|
public void It_does_not_generate_the_aspnet_https_development_certificate_when_the_user_has_set_the_DOTNET_GENERATE_ASPNET_CERTIFICATE_environment_variable()
|
||||||
{
|
{
|
||||||
_aspNetCertificateSentinelMock.Setup(n => n.Exists()).Returns(false);
|
_aspNetCertificateSentinelMock.Setup(n => n.Exists()).Returns(false);
|
||||||
_environmentProviderMock
|
|
||||||
.Setup(e => e.GetEnvironmentVariableAsBool("DOTNET_GENERATE_ASPNET_CERTIFICATE", true))
|
|
||||||
.Returns(false);
|
|
||||||
|
|
||||||
var dotnetFirstTimeUseConfigurer = new DotnetFirstTimeUseConfigurer(
|
var dotnetFirstTimeUseConfigurer = new DotnetFirstTimeUseConfigurer(
|
||||||
_nugetCachePrimerMock.Object,
|
_nugetCachePrimerMock.Object,
|
||||||
|
@ -472,7 +517,11 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
_aspNetCertificateSentinelMock.Object,
|
_aspNetCertificateSentinelMock.Object,
|
||||||
_aspNetCoreCertificateGeneratorMock.Object,
|
_aspNetCoreCertificateGeneratorMock.Object,
|
||||||
_toolPathSentinelMock.Object,
|
_toolPathSentinelMock.Object,
|
||||||
_environmentProviderMock.Object,
|
new DotnetFirstRunConfiguration
|
||||||
|
{
|
||||||
|
SkipFirstRunExperience = false,
|
||||||
|
PrintTelemetryMessage = true
|
||||||
|
},
|
||||||
_reporterMock.Object,
|
_reporterMock.Object,
|
||||||
CliFallbackFolderPath,
|
CliFallbackFolderPath,
|
||||||
_pathAdderMock.Object);
|
_pathAdderMock.Object);
|
||||||
|
@ -487,8 +536,6 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
public void It_generates_the_aspnet_https_development_certificate_if_the_sentinel_does_not_exist()
|
public void It_generates_the_aspnet_https_development_certificate_if_the_sentinel_does_not_exist()
|
||||||
{
|
{
|
||||||
_aspNetCertificateSentinelMock.Setup(n => n.Exists()).Returns(false);
|
_aspNetCertificateSentinelMock.Setup(n => n.Exists()).Returns(false);
|
||||||
_environmentProviderMock.Setup(e => e.GetEnvironmentVariableAsBool("DOTNET_GENERATE_ASPNET_CERTIFICATE", true))
|
|
||||||
.Returns(true);
|
|
||||||
|
|
||||||
var dotnetFirstTimeUseConfigurer = new DotnetFirstTimeUseConfigurer(
|
var dotnetFirstTimeUseConfigurer = new DotnetFirstTimeUseConfigurer(
|
||||||
_nugetCachePrimerMock.Object,
|
_nugetCachePrimerMock.Object,
|
||||||
|
@ -497,7 +544,12 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
_aspNetCertificateSentinelMock.Object,
|
_aspNetCertificateSentinelMock.Object,
|
||||||
_aspNetCoreCertificateGeneratorMock.Object,
|
_aspNetCoreCertificateGeneratorMock.Object,
|
||||||
_toolPathSentinelMock.Object,
|
_toolPathSentinelMock.Object,
|
||||||
_environmentProviderMock.Object,
|
new DotnetFirstRunConfiguration
|
||||||
|
{
|
||||||
|
SkipFirstRunExperience = false,
|
||||||
|
PrintTelemetryMessage = true,
|
||||||
|
GenerateAspNetCertificate = true
|
||||||
|
},
|
||||||
_reporterMock.Object,
|
_reporterMock.Object,
|
||||||
CliFallbackFolderPath,
|
CliFallbackFolderPath,
|
||||||
_pathAdderMock.Object);
|
_pathAdderMock.Object);
|
||||||
|
@ -520,7 +572,12 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
_aspNetCertificateSentinelMock.Object,
|
_aspNetCertificateSentinelMock.Object,
|
||||||
_aspNetCoreCertificateGeneratorMock.Object,
|
_aspNetCoreCertificateGeneratorMock.Object,
|
||||||
_toolPathSentinelMock.Object,
|
_toolPathSentinelMock.Object,
|
||||||
_environmentProviderMock.Object,
|
new DotnetFirstRunConfiguration
|
||||||
|
{
|
||||||
|
SkipFirstRunExperience = false,
|
||||||
|
PrintTelemetryMessage = true,
|
||||||
|
GenerateAspNetCertificate = true
|
||||||
|
},
|
||||||
_reporterMock.Object,
|
_reporterMock.Object,
|
||||||
CliFallbackFolderPath,
|
CliFallbackFolderPath,
|
||||||
_pathAdderMock.Object);
|
_pathAdderMock.Object);
|
||||||
|
@ -533,10 +590,6 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
[Fact]
|
[Fact]
|
||||||
public void It_does_not_add_the_tool_path_to_the_environment_if_the_first_run_experience_is_skipped()
|
public void It_does_not_add_the_tool_path_to_the_environment_if_the_first_run_experience_is_skipped()
|
||||||
{
|
{
|
||||||
_environmentProviderMock
|
|
||||||
.Setup(e => e.GetEnvironmentVariableAsBool("DOTNET_SKIP_FIRST_TIME_EXPERIENCE", false))
|
|
||||||
.Returns(true);
|
|
||||||
|
|
||||||
var dotnetFirstTimeUseConfigurer = new DotnetFirstTimeUseConfigurer(
|
var dotnetFirstTimeUseConfigurer = new DotnetFirstTimeUseConfigurer(
|
||||||
_nugetCachePrimerMock.Object,
|
_nugetCachePrimerMock.Object,
|
||||||
_nugetCacheSentinelMock.Object,
|
_nugetCacheSentinelMock.Object,
|
||||||
|
@ -544,7 +597,12 @@ namespace Microsoft.DotNet.Configurer.UnitTests
|
||||||
_aspNetCertificateSentinelMock.Object,
|
_aspNetCertificateSentinelMock.Object,
|
||||||
_aspNetCoreCertificateGeneratorMock.Object,
|
_aspNetCoreCertificateGeneratorMock.Object,
|
||||||
_toolPathSentinelMock.Object,
|
_toolPathSentinelMock.Object,
|
||||||
_environmentProviderMock.Object,
|
new DotnetFirstRunConfiguration
|
||||||
|
{
|
||||||
|
SkipFirstRunExperience = true,
|
||||||
|
PrintTelemetryMessage = true,
|
||||||
|
GenerateAspNetCertificate = true
|
||||||
|
},
|
||||||
_reporterMock.Object,
|
_reporterMock.Object,
|
||||||
CliFallbackFolderPath,
|
CliFallbackFolderPath,
|
||||||
_pathAdderMock.Object);
|
_pathAdderMock.Object);
|
||||||
|
|
Loading…
Reference in a new issue