Addressing code review comments and adding a DOTNET_SKIP_FIRST_TIME_EXPERIENCE env variable to have a way to turn off the feature.

This commit is contained in:
Livar Cunha 2016-06-10 13:02:48 -07:00
parent 4d631cc1b1
commit ed7e583ab6
8 changed files with 91 additions and 51 deletions

View file

@ -15,11 +15,17 @@ namespace Microsoft.DotNet.Configurer.UnitTests
{
private Mock<INuGetCachePrimer> _nugetCachePrimerMock;
private Mock<INuGetCacheSentinel> _nugetCacheSentinelMock;
private Mock<IEnvironmentProvider> _environmentProviderMock;
public GivenADotnetFirstTimeUseConfigurer()
{
_nugetCachePrimerMock = new Mock<INuGetCachePrimer>();
_nugetCacheSentinelMock = new Mock<INuGetCacheSentinel>();
_environmentProviderMock = new Mock<IEnvironmentProvider>();
_environmentProviderMock
.Setup(e => e.GetEnvironmentVariableAsBool("DOTNET_SKIP_FIRST_TIME_EXPERIENCE", false))
.Returns(false);
}
[Fact]
@ -29,7 +35,26 @@ namespace Microsoft.DotNet.Configurer.UnitTests
var dotnetFirstTimeUseConfigurer = new DotnetFirstTimeUseConfigurer(
_nugetCachePrimerMock.Object,
_nugetCacheSentinelMock.Object);
_nugetCacheSentinelMock.Object,
_environmentProviderMock.Object);
dotnetFirstTimeUseConfigurer.Configure();
_nugetCachePrimerMock.Verify(r => r.PrimeCache(), Times.Never);
}
[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()
{
_nugetCacheSentinelMock.Setup(n => n.Exists()).Returns(false);
_environmentProviderMock
.Setup(e => e.GetEnvironmentVariableAsBool("DOTNET_SKIP_FIRST_TIME_EXPERIENCE", false))
.Returns(true);
var dotnetFirstTimeUseConfigurer = new DotnetFirstTimeUseConfigurer(
_nugetCachePrimerMock.Object,
_nugetCacheSentinelMock.Object,
_environmentProviderMock.Object);
dotnetFirstTimeUseConfigurer.Configure();
@ -43,7 +68,8 @@ namespace Microsoft.DotNet.Configurer.UnitTests
var dotnetFirstTimeUseConfigurer = new DotnetFirstTimeUseConfigurer(
_nugetCachePrimerMock.Object,
_nugetCacheSentinelMock.Object);
_nugetCacheSentinelMock.Object,
_environmentProviderMock.Object);
dotnetFirstTimeUseConfigurer.Configure();