public static void Locals_List_Succeeds(string args) { Assert.NotNull(DotnetCli); Assert.NotNull(XplatDll); using (var mockBaseDirectory = TestDirectory.Create()) { // Arrange var mockGlobalPackagesDirectory = Directory.CreateDirectory(Path.Combine(mockBaseDirectory.Path, @"global-packages")); var mockHttpCacheDirectory = Directory.CreateDirectory(Path.Combine(mockBaseDirectory.Path, @"http-cache")); var mockTmpCacheDirectory = Directory.CreateDirectory(Path.Combine(mockBaseDirectory.Path, @"temp")); DotnetCliUtil.CreateTestFiles(mockGlobalPackagesDirectory.FullName); DotnetCliUtil.CreateTestFiles(mockHttpCacheDirectory.FullName); DotnetCliUtil.CreateTestFiles(mockTmpCacheDirectory.FullName); // Act var result = CommandRunner.Run( DotnetCli, Directory.GetCurrentDirectory(), $"{XplatDll} {args}", waitForExit: true, environmentVariables: new Dictionary <string, string> { { "NUGET_PACKAGES", mockGlobalPackagesDirectory.FullName }, { "NUGET_HTTP_CACHE_PATH", mockHttpCacheDirectory.FullName }, { RuntimeEnvironmentHelper.IsWindows ? "TMP" : "TMPDIR", mockTmpCacheDirectory.FullName } }); // Unix uses TMPDIR as environment variable as opposed to TMP on windows // Assert DotnetCliUtil.VerifyResultSuccess(result, string.Empty); } }
public static void Locals_Clear_Succeeds(string args) { Assert.NotNull(DotnetCli); Assert.NotNull(XplatDll); using (var mockBaseDirectory = TestDirectory.Create()) { // Arrange var mockGlobalPackagesDirectory = Directory.CreateDirectory(Path.Combine(mockBaseDirectory.Path, @"global-packages")); var mockHttpCacheDirectory = Directory.CreateDirectory(Path.Combine(mockBaseDirectory.Path, @"http-cache")); var mockTmpDirectory = Directory.CreateDirectory(Path.Combine(mockBaseDirectory.Path, @"temp")); var mockTmpCacheDirectory = Directory.CreateDirectory(Path.Combine(mockTmpDirectory.FullName, @"NuGetScratch")); DotnetCliUtil.CreateTestFiles(mockGlobalPackagesDirectory.FullName); DotnetCliUtil.CreateTestFiles(mockHttpCacheDirectory.FullName); DotnetCliUtil.CreateTestFiles(mockTmpCacheDirectory.FullName); var cacheType = args.Split(null)[1].StartsWith("-") ? args.Split(null)[2] : args.Split(null)[1]; // Act var result = CommandRunner.Run( DotnetCli, Directory.GetCurrentDirectory(), $"{XplatDll} {args}", waitForExit: true, environmentVariables: new Dictionary <string, string> { { "NUGET_PACKAGES", mockGlobalPackagesDirectory.FullName }, { "NUGET_HTTP_CACHE_PATH", mockHttpCacheDirectory.FullName }, { RuntimeEnvironmentHelper.IsWindows ? "TMP" : "TMPDIR", mockTmpDirectory.FullName } }); // Unix uses TMPDIR as environment variable as opposed to TMP on windows // Assert if (cacheType == "all") { DotnetCliUtil.VerifyClearSuccess(mockGlobalPackagesDirectory.FullName); DotnetCliUtil.VerifyClearSuccess(mockHttpCacheDirectory.FullName); DotnetCliUtil.VerifyClearSuccess(mockTmpCacheDirectory.FullName); // Assert clear message DotnetCliUtil.VerifyResultSuccess(result, "Clearing NuGet global packages cache:"); DotnetCliUtil.VerifyResultSuccess(result, "Clearing NuGet HTTP cache:"); DotnetCliUtil.VerifyResultSuccess(result, "Clearing NuGet Temp cache:"); DotnetCliUtil.VerifyResultSuccess(result, "Local resources cleared."); } else if (cacheType == "global-packages") { // Global packages cache should be cleared DotnetCliUtil.VerifyClearSuccess(mockGlobalPackagesDirectory.FullName); // Http cache and Temp cahce should be untouched DotnetCliUtil.VerifyNoClear(mockHttpCacheDirectory.FullName); DotnetCliUtil.VerifyNoClear(mockTmpCacheDirectory.FullName); // Assert clear message DotnetCliUtil.VerifyResultSuccess(result, "Clearing NuGet global packages cache:"); DotnetCliUtil.VerifyResultSuccess(result, "Local resources cleared."); } else if (cacheType == "http-cache") { // Http cache should be cleared DotnetCliUtil.VerifyClearSuccess(mockHttpCacheDirectory.FullName); // Global packages cache and temp cache should be untouched DotnetCliUtil.VerifyNoClear(mockGlobalPackagesDirectory.FullName); DotnetCliUtil.VerifyNoClear(mockTmpCacheDirectory.FullName); // Assert clear message DotnetCliUtil.VerifyResultSuccess(result, "Clearing NuGet HTTP cache:"); DotnetCliUtil.VerifyResultSuccess(result, "Local resources cleared."); } else if (cacheType == "temp") { // Temp cache should be cleared DotnetCliUtil.VerifyClearSuccess(mockTmpCacheDirectory.FullName); // Global packages cache and Http cache should be un touched DotnetCliUtil.VerifyNoClear(mockGlobalPackagesDirectory.FullName); DotnetCliUtil.VerifyNoClear(mockHttpCacheDirectory.FullName); // Assert clear message DotnetCliUtil.VerifyResultSuccess(result, "Clearing NuGet Temp cache:"); DotnetCliUtil.VerifyResultSuccess(result, "Local resources cleared."); } } }