9575 references to FullName
aspire (853)
Acquisition\InstallationCandidateSources.cs (2)
24public string AspireHome => AspireHomeDirectory.FullName; 143var toolStore = Path.Combine(context.HomeDirectory.FullName, ".dotnet", "tools", ".store", "aspire.cli");
Acquisition\InstallationDiscovery.cs (1)
131var aspireHome = _executionContext.AspireHomeDirectory.FullName;
Acquisition\InstallSourceDetector.cs (3)
107return MatchesConfiguredDirectory(installsDirectory.FullName, environment.GetEnvironmentVariable("MISE_INSTALLS_DIR"), comparison) || 108MatchesConfiguredDirectory(installsDirectory.FullName, environment.GetEnvironmentVariable("MISE_SYSTEM_INSTALLS_DIR"), comparison) || 110MatchesConfiguredDirectory(installsDirectory.Parent?.FullName, environment.GetEnvironmentVariable("MISE_DATA_DIR"), comparison));
Agents\AgentEnvironmentScanContext.cs (3)
29var path = Path.Combine(currentDirectory.FullName, directoryName); 31!string.Equals(currentDirectory.FullName, homeDirectory.FullName, StringComparison.OrdinalIgnoreCase))
Agents\AgentPath.cs (7)
18Path.Combine(Path.GetPathRoot(context.HomeDirectory.FullName)!, "Program Files"), productName); 31var relativePath = Path.GetRelativePath(workspaceRoot.FullName, workingDirectory.FullName); 42if (Path.GetRelativePath(workspaceRoot.FullName, directory.FullName) == ".") 56var homeDirectory = executionContext.HomeDirectory.FullName; 70return Path.IsPathFullyQualified(path) ? path : Path.Combine(executionContext.WorkingDirectory.FullName, path);
Agents\AspireSkills\AspireSkillsBundleProvider.cs (8)
85ValidateArchiveSha512(archive.FullName, expectedArchiveSha512); 87Directory.CreateDirectory(bundleDirectory.FullName); 94temporaryDirectoryRoot.FullName, 99ExtractArchive(archive.FullName, extractionDirectory.FullName); 105CopyDirectory(bundleRoot.FullName, bundleDirectory.FullName); 116var manifestPath = Path.Combine(bundleDirectory.FullName, AspireSkillsBundleLayout.ManifestFileName); 276var fullPath = Path.Combine(bundleDirectory.FullName, AspireSkillsBundleLayout.SkillsDirectoryName, skillName, relativePath);
Agents\AspireSkills\AspireSkillsInstaller.cs (1)
947return Path.Combine(executionContext.CacheDirectory.FullName, "aspire-skills");
Agents\AspireSkills\EmbeddedAspireSkillsBundleProvider.cs (2)
69Directory.CreateDirectory(bundleDirectory.FullName); 75temporaryDirectoryRoot.FullName,
Agents\ClaudeCode\ClaudeCodeAgentClient.cs (5)
27? Path.Combine(workspaceRoot.FullName, ClaudeCodePaths.ConfigDirectoryName) 44? Path.Combine(workspaceRoot.FullName, ClaudeCodePaths.ConfigDirectoryName) 59=> scope is AgentConfigurationScope.Project ? Path.Combine(workspaceRoot.FullName, ".mcp.json") 279yield return Path.Combine(workspaceRoot.FullName, ".claude", "settings.json"); 280yield return Path.Combine(workspaceRoot.FullName, ".claude", "settings.local.json");
Agents\ClaudeCode\ClaudeCodeAgentEnvironmentScanner.cs (2)
20logger.LogDebug("Starting Claude Code environment scan in directory: {WorkingDirectory}", context.WorkingDirectory.FullName); 21logger.LogDebug("Workspace root: {RepositoryRoot}", context.RepositoryRoot.FullName);
Agents\ClaudeCode\ClaudeCodePaths.cs (2)
12?? Path.Combine(executionContext.HomeDirectory.FullName, ConfigDirectoryName); 18var directory = GetConfigDirectoryOverride(executionContext, environment) ?? executionContext.HomeDirectory.FullName;
Agents\Copilot\CopilotAgentClient.cs (11)
38=> Path.Combine(scope is AgentConfigurationScope.Project ? workspaceRoot.FullName : context.HomeDirectory.FullName, 44var root = scope is AgentConfigurationScope.Project ? workspaceRoot.FullName : context.HomeDirectory.FullName; 59? Path.Combine(workspaceRoot.FullName, ".github", "copilot") : GetSettingsDirectory(); 71=> scope is AgentConfigurationScope.Project ? Path.Combine(workspaceRoot.FullName, ".mcp.json") 83yield return (Path.Combine(workspaceRoot.FullName, path), false); 169yield return Path.Combine(workspaceRoot.FullName, ".claude", "settings.json"); 170yield return Path.Combine(workspaceRoot.FullName, ".claude", "settings.local.json"); 171yield return Path.Combine(workspaceRoot.FullName, ".github", "copilot", "settings.json"); 172yield return Path.Combine(workspaceRoot.FullName, ".github", "copilot", "settings.local.json");
Agents\Copilot\CopilotAppInstallationDetector.cs (3)
54Path.Combine(executionContext.HomeDirectory.FullName, "AppData", "Local"), 68Path.Combine(executionContext.HomeDirectory.FullName, "Applications", MacOSAppBundleName), 100: Path.Combine(executionContext.HomeDirectory.FullName, ".local", "share");
Agents\Copilot\CopilotPaths.cs (1)
25: Path.Combine(homeDirectory.FullName, DefaultCopilotDirectoryName);
Agents\Hooks\TelemetryHookInstaller.cs (1)
39var hooksDirectory = Path.Combine(_executionContext.AspireHomeDirectory.FullName, HooksDirectoryName);
Agents\OpenCode\OpenCodeAgentClient.cs (6)
48=> Path.Combine(scope is AgentConfigurationScope.Project ? workspaceRoot.FullName : context.HomeDirectory.FullName, 54var root = scope is AgentConfigurationScope.Project ? workspaceRoot.FullName : context.HomeDirectory.FullName; 118? Path.Combine(context.HomeDirectory.FullName, value[2..]) 120yield return Path.GetFullPath(expanded.Length == 0 ? "." : expanded, context.WorkingDirectory.FullName);
Agents\OpenCode\OpenCodeAgentEnvironmentScanner.cs (2)
19logger.LogDebug("Starting OpenCode environment scan in directory: {WorkingDirectory}", context.WorkingDirectory.FullName); 20logger.LogDebug("Workspace root: {RepositoryRoot}", context.RepositoryRoot.FullName);
Agents\OpenCode\OpenCodePaths.cs (7)
13=> SelectConfigPath(GetConfigPaths(directory.FullName), directory); 19=> GetConfigPaths(directory.FullName).Concat(GetConfigPaths(Path.Combine(directory.FullName, ".opencode"))); 31Path.Combine(context.HomeDirectory.FullName, ".config"), "opencode"); 37Path.Combine(Path.GetPathRoot(context.HomeDirectory.FullName)!, "ProgramData"), "opencode") 58? Path.GetFullPath(value, executionContext.WorkingDirectory.FullName) 62=> candidates.LastOrDefault(File.Exists) ?? Path.Combine(directory.FullName, "opencode.jsonc");
Agents\Playwright\PlaywrightCliInstaller.cs (3)
95return await InstallAsync(stagingDirectory.FullName, selectedSkillDirectories, cancellationToken); 105logger.LogDebug(ex, "Failed to clean up generated Playwright skills at {Path}.", stagingDirectory.FullName); 214var tempDir = Directory.CreateTempSubdirectory("aspire-playwright-").FullName;
Agents\VsCode\VsCodeAgentEnvironmentScanner.cs (3)
22logger.LogDebug("Starting VS Code environment scan in directory: {WorkingDirectory}", context.WorkingDirectory.FullName); 23logger.LogDebug("Workspace root: {RepositoryRoot}", context.RepositoryRoot.FullName); 30logger.LogDebug("Found .vscode folder at: {VsCodeFolder}", vsCodeFolder.FullName);
Backchannel\AppHostConnectionResolver.cs (6)
116var explicitDirectory = Directory.Exists(projectFile.FullName); 162projectFile.FullName, 163executionContext.HomeDirectory.FullName, 195var displayPath = Path.GetRelativePath(executionContext.WorkingDirectory.FullName, projectFile.FullName); 220var workingDirectory = executionContext.WorkingDirectory.FullName;
Backchannel\AuxiliaryBackchannelMonitor.cs (4)
43private readonly IReadOnlyList<AppHostSocketDirectory> _socketDirectories = AppHostSocketManager.GetSocketDirectories(executionContext.HomeDirectory.FullName); 237.Where(c => IsAppHostInScopeOfDirectory(c.AppHostInfo?.AppHostPath, workingDirectory.FullName)) 403executionContext.HomeDirectory.FullName, Environment.ProcessId, logger, 673=> IsAppHostInScopeOfDirectory(appHostPath, executionContext.WorkingDirectory.FullName);
Caching\AppHostInfoDiskCache.cs (19)
116_cacheDirectory = new DirectoryInfo(Path.Combine(executionContext.CacheDirectory.FullName, SubDirectoryName)); 139var path = Path.Combine(_cacheDirectory.FullName, $"{key}.json"); 142_logger.LogTrace("AppHost info cache miss for {Project} (key {Key})", projectFile.FullName, key); 151_logger.LogTrace("AppHost info cache schema mismatch for {Project}", projectFile.FullName); 161_logger.LogTrace("AppHost info cache entry for {Project} is missing RunCommand", projectFile.FullName); 165_logger.LogTrace("AppHost info cache hit for {Project} (key {Key})", projectFile.FullName, key); 171_logger.LogDebug(ex, "Failed to read AppHost info cache for {Project}", projectFile.FullName); 206projectFile.FullName, 212var path = Path.Combine(_cacheDirectory.FullName, $"{key}.json"); 218tempPath = Path.Combine(_cacheDirectory.FullName, $"{Path.GetRandomFileName()}.tmp"); 226_logger.LogTrace("Stored AppHost info cache entry for {Project} (key {Key})", projectFile.FullName, key); 235_logger.LogDebug(ex, "Failed to write AppHost info cache for {Project}", projectFile.FullName); 285projectFile.FullName); 304sb.Append(CliPathHelper.NormalizePathCasing(projectFile.FullName, environment)); 306AppendMtime(sb, projectFile.FullName, "csproj"); 308var projectDir = projectFile.Directory?.FullName; 359AppendMtime(sb, Path.Combine(dir.FullName, siblingName), siblingName); 361AppendMtime(sb, Path.Combine(dir.FullName, "global.json"), "globaljson"); 366AppendMtime(sb, Path.Combine(dir.FullName, customName), customName);
Caching\DiskCache.cs (11)
24_cacheDirectory = new DirectoryInfo(Path.Combine(executionContext.CacheDirectory.FullName, "nuget-search")); 85_logger.LogDebug(ex, "Failed to create cache directory {CacheDirectory}", _cacheDirectory.FullName); 97var fullPath = Path.Combine(_cacheDirectory.FullName, fileName); 136_logger.LogDebug(ex, "Failed to delete cache file {CacheFile}", file.FullName); 143_logger.LogDebug(ex, "Failed to clear disk cache at {CacheDirectory}", _cacheDirectory.FullName); 207valid = file.FullName; 264_logger.LogTrace("Deleted expired cache file: {CacheFile}", file.FullName); 268_logger.LogTrace("Deleted old cache file during global cleanup: {CacheFile}", file.FullName); 272_logger.LogTrace("Deleted invalid cache file: {CacheFile}", file.FullName); 276_logger.LogTrace("Deleted cache file: {CacheFile}", file.FullName); 281_logger.LogDebug(ex, "Failed to delete cache file {CacheFile}", file.FullName);
Certificates\CertificateGeneration\MacOSCertificateManager.cs (1)
546Log.DirectoryPermissionsNotSecure(dirInfo.FullName);
Certificates\CertificateGeneration\UnixCertificateManager.cs (3)
580Log.DirectoryPermissionsNotSecure(dirInfo.FullName); 946if (!TryGetOpenSslHash(cert.FullName, out var hash)) 966Log.UnixOpenSslRehashTooManyHashes(cert.FullName, hash, MaxHashCollisions);
Certificates\CertificateGeneration\WindowsCertificateManager.cs (1)
165Log.DirectoryPermissionsNotSecure(dirInfo.FullName);
Certificates\CertificateService.cs (1)
61executionContext.AspireHomeDirectory.FullName, "dev-certs");
CliExecutionContext.cs (1)
184? Path.Combine(homeDirectory.FullName, ".aspire")
Commands\AddCommand.cs (2)
364var nugetConfigPath = Path.Combine(projectDir.FullName, "nuget.config"); 543Path.Combine(projectDirectory.FullName, "nuget.config"));
Commands\AgentInitCommand.cs (2)
292binding: PromptBinding.Create(parseResult, s_workspaceRootOption, defaultWorkspaceRoot.FullName), 980var relativePath = Path.GetRelativePath(root.FullName, path);
Commands\AgentMcpCommand.cs (2)
125var appHostOptionSpecifiedAsDirectory = Directory.Exists(appHostProjectFile.FullName); 144var selectedPath = Path.GetFullPath(selectedProjectFile.FullName);
Commands\AppHostLauncher.cs (10)
200logger.LogDebug("Starting AppHost in background: {AppHostPath}", effectiveAppHostFile.FullName); 208var childLogFile = GenerateChildLogFilePath(executionContext.LogsDirectory.FullName, timeProvider); 228updateStatus => LaunchAndWaitForBackchannelAsync(executablePath, childArgs, effectiveAppHostFile.FullName, appHostSelectionOrigin, TimeSpan.FromSeconds(timeoutSeconds), updateStatus, cancellationToken)); 308effectiveAppHostFile.FullName, 309executionContext.HomeDirectory.FullName, 335effectiveAppHostFile.FullName, 374logger.LogDebug("Working directory: {WorkingDirectory}", executionContext.WorkingDirectory.FullName); 967effectiveAppHostFile.FullName, 977var appHostRelativePath = Path.GetRelativePath(executionContext.WorkingDirectory.FullName, effectiveAppHostFile.FullName);
Commands\CacheCommand.cs (1)
52skipFile: f => f.FullName.Equals(currentLogFilePath, StringComparison.OrdinalIgnoreCase));
Commands\DcpWorkloadCleanupService.cs (2)
27layoutDiscovery.GetComponentPath(LayoutComponent.Dcp, executionContext.WorkingDirectory.FullName); 47workingDirectory: executionContext.WorkingDirectory.FullName,
Commands\ExtensionInternalCommand.cs (2)
43SelectedProjectFile = result.SelectedProjectFile?.FullName, 44AllProjectFileCandidates = result.AllProjectFileCandidates.Select(f => f.FullName).ToList()
Commands\InitCommand.cs (10)
291=> new(Path.Combine(solutionFile.Directory!.FullName, $"{Path.GetFileNameWithoutExtension(solutionFile.Name)}.AppHost")); 309outputPath: workingDirectory.FullName, 316var appHostPath = Path.Combine(workingDirectory.FullName, "apphost.cs"); 383var appHostDirPath = appHostDirectory.FullName; 403outputPath: solutionDir.FullName, 521.FirstOrDefault(pattern => File.Exists(Path.Combine(workingDirectory.FullName, pattern))); 529var displayPath = PathNormalizer.NormalizePathForStorage(Path.GetRelativePath(workingDirectory.FullName, appHostPath)); 567var configPath = Path.Combine(directory.FullName, AspireConfigFile.FileName); 745return AspireConfigFile.Load(directory.FullName)?.Channel; 827var path = Path.Combine(directory.FullName, fileName);
Commands\LsCommand.cs (3)
248appHosts.Sort((x, y) => string.Compare(x.AppHostFile.FullName, y.AppHostFile.FullName, StringComparison.Ordinal)); 266Path = appHost.AppHostFile.FullName,
Commands\NewCommand.cs (1)
799var workspaceRoot = new DirectoryInfo(templateResult.OutputPath ?? ExecutionContext.WorkingDirectory.FullName);
Commands\ParseResultHelper.cs (1)
295? fileSystemInfo.FullName
Commands\PipelineCommandBase.cs (4)
209ExecutionContext.WorkingDirectory.FullName, 210passedAppHostProjectFile?.FullName, 221[KnownConfigNames.AspireHome] = ExecutionContext.AspireHomeDirectory.FullName 270[KnownConfigNames.AspireHome] = ExecutionContext.AspireHomeDirectory.FullName
Commands\RenderCommand.cs (1)
446var filePath = Path.Combine(tempDirectory.FullName, "safe file link sample.txt");
Commands\ResourceCommand.cs (2)
687if (Directory.Exists(appHostProjectFile.FullName)) 707var targetPath = PathNormalizer.ResolveToFilesystemPath(selectedAppHostProjectFile.FullName);
Commands\RestoreCommand.cs (11)
96configOnlyProjectDirectory.FullName); 133_logger.LogDebug("Restoring packages for {AppHost} in {Directory}", effectiveAppHostFile.FullName, appHostDirectory.FullName); 153_logger.LogDebug("Restoring SDK code for {AppHost} in {Directory}", effectiveAppHostFile.FullName, directory.FullName); 201config = AspireConfigFile.Load(searchDirectory.FullName); 205_logger.LogDebug(ex, "Ignoring invalid config while resolving config-only guest AppHost in {Directory}", searchDirectory.FullName); 221_logger.LogDebug("Configured AppHost language '{Language}' is not available for config-only restore in {Directory}", config.AppHost.Language, searchDirectory.FullName); 230searchDirectory.FullName); 251if (Directory.Exists(passedAppHostProjectFile.FullName)) 253return new DirectoryInfo(passedAppHostProjectFile.FullName);
Commands\RunCommand.cs (4)
239ExecutionContext.WorkingDirectory.FullName, 240passedAppHostProjectFile?.FullName, 493var appHostRelativePath = Path.GetRelativePath(ExecutionContext.WorkingDirectory.FullName, effectiveAppHostFile.FullName);
Commands\Sdk\IntegrationAssemblyNameResolver.cs (1)
25var document = XDocument.Load(projectFile.FullName);
Commands\Sdk\SdkDumpCommand.cs (7)
107return CommandResult.Failure(CliExitCodes.FailedToFindProject, $"Integration project not found: {projectFile.FullName}"); 112projectFile.FullName)); 177var tempDir = tempDirectory.FullName; 239await File.WriteAllTextAsync(outputFile.FullName, output, cancellationToken); 240InteractionService.DisplaySuccess($"Capabilities written to {outputFile.FullName}"); 276var tempDir = tempDirectory.FullName; 367var outputPath = Path.Combine(outputDirectory.FullName, $"{integration.Name}.ats.txt");
Commands\Sdk\SdkExportCommand.cs (1)
183var tempDirectoryPath = tempDirectory.FullName;
Commands\Sdk\SdkGenerateCommand.cs (5)
68return CommandResult.Failure(CliExitCodes.FailedToFindProject, $"Integration project not found: {integrationProject.FullName}"); 135integrationProject.FullName)); 170var outputDirFullPath = Path.GetFullPath(outputDir.FullName); 173var filePath = Path.GetFullPath(Path.Combine(outputDir.FullName, fileName)); 191InteractionService.DisplaySuccess($"Generated {generatedFiles.Count} files in {outputDir.FullName}");
Commands\StartCommand.cs (2)
89ExecutionContext.WorkingDirectory.FullName, 90passedAppHostProjectFile?.FullName,
Commands\StopCommand.cs (8)
193(appHostFile is null || GetAppHostPathComparer().Equals(info.AppHostPath, appHostFile.FullName))) 201: string.Format(CultureInfo.CurrentCulture, StopCommandStrings.AppHostNotRunningAtPathWithPid, appHostFile.FullName, processId)); 267var projectOptionSpecifiedAsDirectory = Directory.Exists(passedAppHostProjectFile.FullName); 389var canonicalAppHostPath = PathNormalizer.ResolveToFilesystemPath(appHostFile.FullName); 404var displayPath = Path.GetRelativePath(ExecutionContext.WorkingDirectory.FullName, appHostFile.FullName); 434var appHostPath = appHostFile.FullName; 648? Path.GetRelativePath(ExecutionContext.WorkingDirectory.FullName, appHostPath)
Commands\StopCommand.TrayProtocol.cs (2)
70info.ProcessId == processId && GetAppHostPathComparer().Equals(info.AppHostPath, appHostFile.FullName)) 96AppHostPath = appHostFile.FullName,
Commands\TerminalPsCommand.cs (1)
84passedAppHostProjectFile?.FullName ?? "<auto-detected>");
Commands\TerminalTapePlayCommand.cs (1)
93file = new FileInfo(Path.GetFullPath(tapePath, ExecutionContext.WorkingDirectory.FullName));
Commands\UpdateCommand.cs (5)
182: Directory.Exists(requestedFile.FullName) ? new DirectoryInfo(requestedFile.FullName) : requestedFile.Directory!; 184if (configuredFile is not null && !Directory.Exists(configuredFile.FullName)) 208if (requestedFile is not null && !requestedFile.Exists && !Directory.Exists(requestedFile.FullName)) 878var tempExtractDir = Directory.CreateTempSubdirectory("aspire-cli-extract").FullName;
Configuration\ConfigSourceService.cs (6)
204var path = Path.Combine(projectDirectory.FullName, AspireConfigFile.FileName); 219await ApplySnapshotAsync(source, snapshot, Path.Combine(projectDirectory.FullName, AspireConfigFile.FileName), cancellationToken); 418return Path.Combine(executionContext.AspireHomeDirectory.FullName, "configsources", key); 543var (commit, version) = await CheckRepositoryAsync(identity, temporaryDirectory.FullName, cancellationToken); 551DeleteAcquisitionDirectory(temporaryDirectory.FullName); 692var path = Path.TrimEndingDirectorySeparator(directory.FullName);
Configuration\ConfigurationService.cs (11)
120return File.Exists(preferredFile.FullName) ? preferredFile.FullName : globalSettingsFile.FullName; 136var newSettingsPath = Path.Combine(searchDirectory.FullName, AspireConfigFile.FileName); 146var legacySettingsPath = ConfigurationHelper.BuildPathToSettingsJsonFile(searchDirectory.FullName); 157var defaultPath = Path.Combine(executionContext.WorkingDirectory.FullName, AspireConfigFile.FileName); 171var aspireConfigPath = Path.Combine(legacySettingsRootDirectory.FullName, AspireConfigFile.FileName); 174logger.LogInformation("Migrating legacy settings from {LegacyDir} to {ConfigFile}", legacySettingsRootDirectory.FullName, aspireConfigPath); 175_ = AspireConfigFile.LoadOrCreate(legacySettingsRootDirectory.FullName); 404var configFilePath = Path.Combine(searchDirectory.FullName, AspireConfigFile.FileName); 417var legacySettingsPath = ConfigurationHelper.BuildPathToSettingsJsonFile(searchDirectory.FullName);
Documentation\FileBackedDocumentContentCache.cs (5)
22private readonly DirectoryInfo _diskCacheDirectory = new(Path.Combine(executionContext.CacheDirectory.FullName, subdirectory)); 252private string GetTextFilePath(string key) => Path.Combine(_diskCacheDirectory.FullName, $"{SanitizeFileName(key)}.txt"); 254private string GetETagFilePath(string key) => Path.Combine(_diskCacheDirectory.FullName, $"{SanitizeFileName(key)}.etag.txt"); 256private string GetJsonFilePath(string key) => Path.Combine(_diskCacheDirectory.FullName, $"{SanitizeFileName(key)}.json"); 320_logger.LogDebug(ex, "Failed to create cache directory: {Directory}", _diskCacheDirectory.FullName);
DotNet\DotNetAppHostNuGetConfigMerger.cs (7)
69targetFile ??= new FileInfo(Path.Combine(targetDirectory.FullName, "nuget.config")); 71? await File.ReadAllBytesAsync(targetFile.FullName, cancellationToken) 115var targetPath = PathNormalizer.ResolveToFilesystemPath(targetFile.FullName); 131var proposedContent = await File.ReadAllBytesAsync(file.ConfigFile.FullName, cancellationToken).ConfigureAwait(false); 140targetFile.FullName, 290string.Format(CultureInfo.CurrentCulture, UpdateCommandStrings.UpdateCandidateFileChangedFormat, candidate.TargetFile.FullName)); 312throw new InvalidOperationException($"Multiple NuGet.config files found in '{directory.FullName}' differing only by case.");
DotNet\DotNetAppHostRestorePreview.cs (6)
42candidate.TargetFile.FullName, rootProject.DirectoryName)); 73foreach (var path in new[] { rootProject.FullName }.Concat(projectRestoreTargets.Keys).Distinct(StringComparers.FileSystemPath)) 85var identity = string.Equals(path, rootProject.FullName, StringComparisons.FileSystemPath) 91new XElement("RestoreRootConfigDirectory", MSBuildEscaping.Escape(configuration.EffectiveWorkingDirectory.FullName)))); 98preview.RootConfiguration.EffectiveWorkingDirectory.FullName, "Aspire.CandidateRestore.targets")); 99await File.WriteAllTextAsync(preview.TargetsFile.FullName, document.ToString(), cancellationToken);
DotNet\DotNetAppHostUpdateTransaction.cs (2)
30var paths = files.Select(static file => PathNormalizer.ResolveToFilesystemPath(file.FullName)) 61var path = PathNormalizer.ResolveToFilesystemPath(file.FullName);
DotNet\DotNetCliRunner.cs (38)
307projectFile.FullName, 375: Path.GetFullPath(Path.Combine(workingDirectory.FullName, binlogDirectory)); 512var sdksDirectory = executionContext.SdksDirectory.FullName; 799cliArgsList.Add(projectFile.FullName); 920false => [watchOrRunCommand, nonInteractiveSwitch, verboseSwitch, noBuildSwitch, noRestoreSwitch, noProfileSwitch, .. launchProfileSwitch, "--project", projectFile.FullName], 923true => ["run", noBuildSwitch, noRestoreSwitch, noProfileSwitch, .. launchProfileSwitch, noBuild ? string.Empty : suppressCliRunHookProperty, "--file", projectFile.FullName] 1039List<string> cliArgs = ["new", "install", localPackagePath?.FullName ?? $"{packageName}@{version}"]; 1177sourcePath = Path.GetFullPath(nugetSource, workingDirectory.FullName); 1253string[] cliArgs = ["restore", projectFilePath.FullName]; 1256cliArgs = [.. cliArgs, $"-property:NuGetRestoreTargets={MSBuildEscaping.Escape(restoreTargets.FullName)}"]; 1277string[] cliArgs = ["build", noRestoreSwitch, projectFilePath.FullName]; 1308cliArgsList.AddRange(["--file", projectFilePath.FullName]); 1320cliArgsList.Add(projectFilePath.FullName); 1335logger.LogInformation("Adding package {PackageName} with version {PackageVersion} to project {ProjectFilePath}", packageName, packageVersion, projectFilePath.FullName); 1348logger.LogError("Failed to add package {PackageName} with version {PackageVersion} to project {ProjectFilePath}. See debug logs for more details.", packageName, packageVersion, projectFilePath.FullName); 1352logger.LogInformation("Package {PackageName} with version {PackageVersion} added to project {ProjectFilePath}", packageName, packageVersion, projectFilePath.FullName); 1362string[] cliArgs = ["sln", solutionFile.FullName, "add", projectFile.FullName]; 1364logger.LogInformation("Adding project {ProjectFilePath} to solution {SolutionFilePath}", projectFile.FullName, solutionFile.FullName); 1377logger.LogError("Failed to add project {ProjectFilePath} to solution {SolutionFilePath}. See debug logs for more details.", projectFile.FullName, solutionFile.FullName); 1381logger.LogInformation("Project {ProjectFilePath} added to solution {SolutionFilePath}", projectFile.FullName, solutionFile.FullName); 1424: Path.Combine(workingDirectory.FullName, configPath); 1525cliArgs.Add(nugetConfigFile.FullName); 1596nugetConfigFile?.FullName ?? "(default)", 1677string[] cliArgs = ["sln", solutionFile.FullName, "list"]; 1733: Path.Combine(solutionFile.Directory!.FullName, line); 1745string[] cliArgs = ["add", projectFile.FullName, "reference", referencedProject.FullName]; 1747logger.LogInformation("Adding project reference from {ProjectFile} to {ReferencedProject}", projectFile.FullName, referencedProject.FullName); 1760logger.LogError("Failed to add project reference from {ProjectFile} to {ReferencedProject}. See debug logs for more details.", projectFile.FullName, referencedProject.FullName); 1764logger.LogInformation("Project reference added from {ProjectFile} to {ReferencedProject}", projectFile.FullName, referencedProject.FullName); 1772return ExecuteAsync(["user-secrets", "init", "--project", projectFile.FullName], env: null, projectFile: null, projectFile.Directory!, backchannelCompletionSource: null, options, cancellationToken);
DotNet\DotNetRestoreConfiguration.cs (1)
33string.Format(CultureInfo.InvariantCulture, UpdateCommandStrings.FailedFetchItemsAndPropertiesFormat, projectFile.FullName));
DotNet\ProcessExecutionFactory.cs (2)
61effectiveLogger.LogDebug("Running {FileName} in {WorkingDirectory} with args: {Args}", fileName, workingDirectory.FullName, loggableArgs); 71var startInfo = CreateProcessStartInfo(fileName, args, workingDirectory.FullName, options);
Git\GitClient.cs (2)
68arguments.AddRange(["--", repository.Directory.FullName]); 107string[] gitArguments = repository.IsBare ? [$"--git-dir={repository.Directory.FullName}", .. arguments] : arguments;
Git\GitCommandRunner.cs (1)
34var startInfo = CreateStartInfo(workingDirectory.FullName, arguments, mode);
Git\GitRepository.cs (8)
22logger.LogDebug("Searching for Git repository root from working directory: {WorkingDirectory}", executionContext.WorkingDirectory.FullName); 49logger.LogDebug("Found Git repository root: {GitRoot}", directoryInfo.FullName); 72logger.LogDebug("Search root does not exist: {SearchRoot}", searchRoot.FullName); 76logger.LogDebug("Listing git-included files under: {SearchRoot}", searchRoot.FullName); 91logger.LogDebug("git ls-files returned non-zero exit code {ExitCode} from {SearchRoot}: {Error}", result.ExitStatus.ExitCode, searchRoot.FullName, result.StandardError.Trim()); 100var rootFullName = searchRoot.FullName; 115logger.LogDebug("git ls-files returned {Count} files under {SearchRoot}", includedFiles.Count, searchRoot.FullName); 130WorkingDirectory = workingDirectory.FullName,
Git\GitWorktree.cs (6)
78if (parent is null || string.Equals(parent.FullName, current, StringComparison.Ordinal)) 83current = parent.FullName; 180if (parent is null || string.Equals(parent.FullName, current, StringComparison.Ordinal)) 185current = parent.FullName; 238Path.Combine(current.FullName, GitDirFileName), 239current.FullName,
Mcp\Tools\ListAppHostsTool.cs (1)
43var workingDirectory = executionContext.WorkingDirectory.FullName;
Mcp\Tools\SelectAppHostTool.cs (1)
69: Path.Combine(executionContext.WorkingDirectory.FullName, appHostPath));
Migrations\TypeScriptAppHostMigration.cs (11)
81appHostFile.FullName), 85["appHostPath"] = appHostFile.FullName 101var modernAppHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, LegacyTypeScriptAppHost.ModernAppHostFileName)); 144!LegacyTypeScriptAppHost.IsLegacyLayout(appHostDirectory.FullName)) 161var modernAppHostContent = LegacyTypeScriptAppHost.RewriteAppHostContent(File.ReadAllText(legacyAppHostFile.FullName)); 178File.WriteAllText(modernAppHostFile.FullName, modernAppHostContent); 182var legacyModulesDir = Path.Combine(appHostDirectory.FullName, LanguageInfo.LegacyGeneratedFolderName); 192var configPath = Path.Combine(configDirectory.FullName, AspireConfigFile.FileName); 232var tsConfigPath = Path.Combine(appHostDirectory.FullName, TsConfigFileName); 280var packageJsonPath = Path.Combine(appHostDirectory.FullName, PackageJsonFileName); 325var configPath = Path.Combine(appHostDirectory.FullName, configFileName);
Npm\NpmRunner.cs (1)
185return Directory.CreateTempSubdirectory("aspire-npm-").FullName;
NuGet\BundleNuGetPackageCache.cs (2)
163configuration.ExplicitConfigFile?.FullName, 164configuration.EffectiveWorkingDirectory.FullName,
NuGet\BundleNuGetService.cs (20)
226var settings = GetNuGetSettings(workingDirectory.FullName, cancellationToken); 251return GetNuGetSettings(workingDirectory.FullName, cancellationToken).PackageSourceMappings.Count > 0; 260var settings = GetNuGetSettings(workingDirectory.FullName, cancellationToken); 280GetNuGetSettings(workingDirectory.FullName, cancellationToken), workloadId, channel); 311new DirectoryInfo(Path.Combine(workingDirectory.FullName, ".aspire")), 323=> _nuGetClient.GetGlobalPackagesFolder(workingDirectory.FullName); 337var settings = GetNuGetSettings(configuration.EffectiveWorkingDirectory.FullName, cancellationToken); 339package, directory.FullName, 340configuration.EffectiveWorkingDirectory.FullName, globalPackagesFolder, 357_logger.LogWarning(exception, "Could not remove package acquisition directory {Directory}", directory.FullName); 369var settings = GetNuGetSettings(workingDirectory.FullName, cancellationToken); 371var targetPath = PathNormalizer.ResolveToFilesystemPath(targetFile.FullName); 376paths[index] = replacementFile.FullName; 380if (!IsAncestorDirectory(targetFile.DirectoryName!, workingDirectory.FullName)) 383$"NuGet configuration '{targetFile.FullName}' is not in the hierarchy of '{workingDirectory.FullName}'."); 387!IsAncestorDirectory(Path.GetDirectoryName(path)!, workingDirectory.FullName)); 388paths.Insert(index < 0 ? paths.Count : index, replacementFile.FullName); 392new DirectoryInfo(Path.Combine(workingDirectory.FullName, ".aspire")), 642return Path.Combine(integrationCacheDirectory.FullName, "package-restore");
NuGet\NuGetClient.cs (5)
1448Path.Combine(rootDirectory.FullName, "trustedroots")); 1449WriteResource("codesignctl.pem", trustedRootsDirectory.FullName); 1450WriteResource("timestampctl.pem", trustedRootsDirectory.FullName); 1454AppContext.SetData("Microsoft.DotNet.Sdk.Root", rootDirectory.FullName); 1469diagnosticLogger.LogDebug($"Failed to delete temporary trust store directory '{rootDirectory.FullName}': {ex.Message}");
NuGet\NuGetPackageCache.cs (6)
129var key = $"TemplatePackages-{configuration.OriginalWorkingDirectory.FullName}-{prerelease}-{configuration.CacheIdentity}"; 154var key = $"CliPackages-{configuration.OriginalWorkingDirectory.FullName}-{prerelease}-{configuration.CacheIdentity}"; 243configuration.ExplicitConfigFile?.FullName, 244configuration.EffectiveWorkingDirectory.FullName, 296configuration.ExplicitConfigFile?.FullName, 297configuration.EffectiveWorkingDirectory.FullName,
NuGet\NuGetPackageOperationConfiguration.cs (1)
76configurationFile?.FullName ?? "ambient",
NuGet\TemporaryNuGetConfigFile.cs (6)
45parentDirectory.FullName, 73await using (var stream = new FileStream(file.FullName, options)) 94var configFile = new FileInfo(Path.Combine(directory.FullName, "NuGet.Config")); 95writeConfig(configFile.FullName); 101TryDeleteDirectory(directory.FullName); 109writeConfig(_configFile.FullName);
Packaging\IntegrationPackageSearchService.cs (1)
207var appHostDirectory = appHostProjectFile.Directory!.FullName;
Packaging\PackageChannel.cs (5)
355.Select(file => GetPackageFileMetadata(file.FullName)) 404.Select(file => GetPackageFileMetadata(file.FullName)) 524if (GetPackageFileMetadata(file.FullName) is not { } metadata || 532if (PackageHasPolyglotTag(file.FullName, logger)) 847.Select(file => GetPackageFileMetadata(file.FullName))
Packaging\PackageSourceOverrideMappings.cs (1)
29return Path.GetFullPath(source, workingDirectory.FullName);
Packaging\PackagingService.cs (6)
163prPackageChannels.Add(CreateLocalHiveChannel(prHive.Name, new DirectoryInfo(Path.Combine(prHive.FullName, "packages")))); 242identityPackagesDirectory.FullName, 279var packagesPath = PathNormalizer.NormalizePathForStorage(packagesDirectory.FullName); 324var packagesDirectory = new DirectoryInfo(Path.Combine(installPrefix.FullName, "hives", identityChannel, "packages")); 683packagesDirectory.FullName)); 718packagesDirectory.FullName,
Processes\DcpExecutableResolver.cs (1)
29layoutDiscovery.GetComponentPath(LayoutComponent.Dcp, executionContext.WorkingDirectory.FullName);
Processes\ProcessTreeGracefulShutdownService.cs (1)
325workingDirectory: executionContext.WorkingDirectory.FullName,
Profiling\ProfileCaptureOptions.cs (2)
71outputPath = Path.Combine(workingDirectory.FullName, CreateDefaultOutputFileName(timeProvider, sessionId)); 77outputPath = Path.Combine(workingDirectory.FullName, outputPath);
Program.cs (3)
222if (ConfigurationHelper.TryLoadSettingsFile(globalSettingsFile.FullName, out var globalSettings) && 228globalSettingsFile.FullName, 610: new FileSystemTufCache(Path.Combine(executionContext.CacheDirectory.FullName, "tuf"));
Projects\AppHostCandidateFinder.cs (8)
148logger.LogDebug("Git enumeration unavailable for {SearchDirectory}; falling back to filesystem walk.", searchDirectory.FullName); 182var rootFullName = searchDirectory.FullName; 413.Select(path => new FileInfo(Path.Combine(searchDirectory.FullName, path.Replace('/', Path.DirectorySeparatorChar)))) 529public override string FullName => _directory.FullName; 569return new MatcherDirectoryInfo(new DirectoryInfo(Path.Combine(_directory.FullName, path)), _options, _excludePath, _applyDirectoryExclusions, _pathComparison, _counters, _onDirectoryEnumerated, _depth + 1, _maxDepth, _cancellationToken); 574return new MatcherFileInfo(new FileInfo(Path.Combine(_directory.FullName, path)), _options, _excludePath, _applyDirectoryExclusions, _pathComparison, _counters, _onDirectoryEnumerated, _depth, _maxDepth, _cancellationToken); 590var directoryPath = Path.GetFullPath(directory.FullName); 615public override string FullName => _file.FullName;
Projects\AppHostInfoResolver.cs (1)
25var key = (projectFile.FullName, projectFile.LastWriteTimeUtc);
Projects\AppHostProjectFactory.cs (3)
44_logger.LogDebug("TryGetProject called for file: {AppHostFile}", appHostFile.FullName); 49_logger.LogDebug("No language found for file: {AppHostFile}", appHostFile.FullName); 53_logger.LogDebug("Language detected: {LanguageId} for file: {AppHostFile}", language.LanguageId.Value, appHostFile.FullName);
Projects\AppHostServerProject.cs (1)
161return KnownFeatures.IsAppHostServerV2Enabled(AspireConfigFile.Load(configDirectory.FullName));
Projects\AppHostWorkloadId.cs (1)
24return Create(appHostFile.FullName);
Projects\DefaultLanguageDiscovery.cs (2)
106directory.FullName, 124if (language.FindInDirectory(directory.FullName) is not null)
Projects\DotNetAppHostProject.cs (26)
181var content = File.ReadAllText(candidateFile.FullName); 194if (!TryLoadProjectRoot(projectFile.FullName, out var root) || root is null) 297var filePath = Path.Combine(current.FullName, fileName); 707if (TryLoadProjectRoot(projectFile.FullName, out var projectRoot) && projectRoot is not null) 725var filePath = Path.Combine(current.FullName, fileName); 792|| !TryResolveImportPath(containingDirectory.FullName, targetPath, out var resolvedPath)) 1842_logger.LogDebug("Falling back to dotnet run for {Project}; direct AppHost launch is disabled by configuration.", effectiveAppHostFile.FullName); 1889workingDirectory.FullName, 1916effectiveAppHostFile.FullName, 1925effectiveAppHostFile.FullName); 1945effectiveAppHostFile.FullName); 1954effectiveAppHostFile.FullName, 1964effectiveAppHostFile.FullName, 1978effectiveAppHostFile.FullName, 1998=> Path.IsPathFullyQualified(path) ? path : Path.GetFullPath(Path.Combine(baseDirectory.FullName, path)); 2030effectiveAppHostFile.FullName); 2038effectiveAppHostFile.FullName, 2089_logger.LogDebug(ex, "Falling back to dotnet run because launch settings could not be parsed for {Project}.", effectiveAppHostFile.FullName); 2094_logger.LogDebug(ex, "Falling back to dotnet run because launch settings could not be read for {Project}.", effectiveAppHostFile.FullName); 2099_logger.LogDebug(ex, "Falling back to dotnet run because launch settings could not be read for {Project}.", effectiveAppHostFile.FullName); 2106var directory = projectFile.Directory!.FullName; 2255var runJsonFilePath = appHostFile.FullName[..^2] + "run.json"; 2301var profiles = AspireConfigFile.ReadApphostRunProfiles(appHostFile.FullName[..^2] + "run.json"); 2338var selectedAppHostPath = PathNormalizer.ResolveToFilesystemPath(appHostFile.FullName); 2535appHostFile.FullName, 2536homeDirectory.FullName,
Projects\ExtensionGuestLauncher.cs (1)
61_appHostFile.FullName,
Projects\FallbackProjectParser.cs (6)
97_logger.LogDebug("Parsing project file '{ProjectFile}' using fallback parser", projectFile.FullName); 120_logger.LogError(ex, "Failed to parse project file '{ProjectFile}' using fallback parser", projectFile.FullName); 121throw new ProjectUpdaterException($"Failed to parse project file '{projectFile.FullName}' using fallback parser: {ex.Message}", ex); 130var doc = XDocument.Load(projectFile.FullName); 135throw new InvalidOperationException($"Invalid project file format: {projectFile.FullName}"); 162var fileContent = GetDirectivePreamble(File.ReadAllText(projectFile.FullName));
Projects\GuestAppHostProject.cs (43)
163directory.FullName, 173return new FileInfo(Path.Combine(directory.FullName, appHostFileName)); 220return AspireRepositoryDetector.DetectRepositoryRoot(appHostFile.Directory?.FullName) is not null; 238var integrations = config.GetIntegrationReferences(defaultSdkVersion, GetConfigDirectory(directory).FullName).ToList(); 277var config = AspireConfigFile.LoadOrCreate(configDir.FullName, GetEffectiveSdkVersion()); 278_logger.LogInformation("Loaded config from {Directory} (file exists: {Exists})", configDir.FullName, AspireConfigFile.Exists(configDir.FullName)); 283_logger.LogError(ex, "Failed to load configuration from {Directory}", configDir.FullName); 291config.Save(configDir.FullName); 308? AspireConfigFile.Load(GetConfigDirectory(directory).FullName) 373var appHostServerProject = await _appHostServerProjectFactory.CreateAsync(directory.FullName, appHostFile, cancellationToken); 449directory.FullName, 494directory.FullName, 529_logger.LogDebug("AppHost file {File} does not exist", appHostFile.FullName); 544_logger.LogDebug("Validated {Language} AppHost: {File}", _resolvedLanguage.DisplayName, appHostFile.FullName); 554_logger.LogDebug("Running {Language} AppHost: {AppHostFile}", DisplayName, appHostFile.FullName); 590var appHostServerProject = await _appHostServerProjectFactory.CreateAsync(directory.FullName, appHostFile, cancellationToken); 632launchSettingsEnvVars["AppHost__FilePath"] = appHostFile.FullName; 648launchSettingsEnvVars[KnownConfigNames.AspireUserSecretsId] = UserSecretsPathHelper.ComputeSyntheticUserSecretsId(appHostFile.FullName); 730directory.FullName, 827environmentVariables["ASPIRE_PROJECT_DIRECTORY"] = directory.FullName; 828environmentVariables["ASPIRE_APPHOST_FILEPATH"] = appHostFile.FullName; 1107var exitCodePath = Path.Combine(resultDirectory.FullName, "exit-code"); 1266var aspireConfig = AspireConfigFile.Load(configDir.FullName); 1274_logger.LogWarning(ex, "Failed to load config for launch profiles from {Directory}", configDir.FullName); 1278var apphostRunPath = Path.Combine(directory.FullName, "apphost.run.json"); 1279var launchSettingsPath = Path.Combine(directory.FullName, "Properties", "launchSettings.json"); 1285_logger.LogDebug("No aspire.config.json, apphost.run.json, or launchSettings.json found in {Path}", directory.FullName); 1406_logger.LogDebug("Publishing guest AppHost: {AppHostFile}", appHostFile.FullName); 1415var appHostServerProject = await _appHostServerProjectFactory.CreateAsync(directory.FullName, appHostFile, cancellationToken); 1440launchSettingsEnvVars[KnownConfigNames.AspireHome] = _executionContext.AspireHomeDirectory.FullName; 1455launchSettingsEnvVars[KnownConfigNames.AspireUserSecretsId] = UserSecretsPathHelper.ComputeSyntheticUserSecretsId(appHostFile.FullName); 1530directory.FullName, 1588environmentVariables[KnownConfigNames.AspireHome] = _executionContext.AspireHomeDirectory.FullName; 1590environmentVariables["ASPIRE_PROJECT_DIRECTORY"] = directory.FullName; 1591environmentVariables["ASPIRE_APPHOST_FILEPATH"] = appHostFile.FullName; 2019context.AppHostFile.FullName)); 2055var genericAppHostPath = _appHostServerProjectFactory.GetInstanceIdentifier(directory.FullName); 2060homeDirectory.FullName, 2238sdkVersion = AspireConfigFile.Load(configDir.FullName)?.SdkVersion; 2651var id = UserSecretsPathHelper.ComputeSyntheticUserSecretsId(appHostFile.FullName); 2700var existingBundlePath = Path.GetFullPath(existingCertificateBundle, workingDirectory.FullName); 2716_executionContext.AspireHomeDirectory.FullName,
Projects\GuestRuntime.cs (9)
330return new FileInfo(Path.Combine(directory.FullName, resolved)); 352var path = Path.IsPathRooted(output) ? output : Path.Combine(directory.FullName, output); 360var stampDirectory = stampFile.Directory?.FullName; 369var path = Path.IsPathRooted(trimmed) ? trimmed : Path.Combine(directory.FullName, trimmed); 565File.WriteAllBytes(stampFile.FullName, []); 571_logger.LogDebug(ex, "Unable to write up-to-date stamp {Stamp}.", stampFile.FullName); 637var filePath = Path.Combine(directory.FullName, fileName); 669.Replace("{appHostFile}", appHostFile?.FullName ?? "") 670.Replace("{appHostDir}", directory.FullName);
Projects\IntegrationClosureBuilder.cs (3)
175var integrationCacheFullPath = PathNormalizer.ResolveToFilesystemPath(integrationCacheDirectory.FullName); 176var appHostFullPath = PathNormalizer.ResolveToFilesystemPath(appHostDirectory.FullName); 192appHostDirectory.FullName,
Projects\IntegrationRestorePlan.cs (3)
393: [overlay.ConfigFile.FullName, .. _configuration.Settings.ConfigPaths]; 423FileInfo? restoreOverlayFile = new(Path.Combine(policyDirectory.FullName, "NuGet.Config")); 437restoreOverlayFile.FullName,
Projects\JavaAppHostToolchainResolver.cs (30)
119resolution.ProjectDirectory.FullName, 133if (File.Exists(Path.Combine(candidate.FullName, MavenPomFileName))) 135return new(JavaAppHostToolchain.Maven, candidate, $"{MavenPomFileName} found in {candidate.FullName}"); 140if (File.Exists(Path.Combine(candidate.FullName, gradleBuildFileName))) 142return new(JavaAppHostToolchain.Gradle, candidate, $"{gradleBuildFileName} found in {candidate.FullName}"); 147return new(JavaAppHostToolchain.Javac, appHostDirectory, $"no build file found in {appHostDirectory.FullName}"); 191var candidate = Path.Combine(directory.FullName, wrapperName); 192var isProjectDirectory = directory.FullName == projectDirectory.FullName; 198|| (IsBuildRoot(directory.FullName, toolchain) 199&& !IsWorldWritable(directory.FullName) 206var gitPath = Path.Combine(directory.FullName, ".git"); 313$"The Java AppHost project in '{projectDirectory.FullName}' declares a {GetDisplayName(toolchain)} " + 345var relativeWrapperPath = Path.GetRelativePath(appHostDirectory.FullName, wrapperPath); 387&& !string.Equals(invocation.WrapperDirectory.FullName, resolution.ProjectDirectory.FullName, PathComparison) 436var scriptPath = Path.Combine(resolution.ProjectDirectory.FullName, GradleInitScriptPath); 496resolution.ProjectDirectory.FullName, 527var relativePath = Path.GetRelativePath(appHostDirectory.FullName, projectDirectory.FullName); 571var reactorPath = Path.GetRelativePath(appHostDirectory.FullName, invocation.WrapperDirectory.FullName); 572var modulePath = Path.GetRelativePath(invocation.WrapperDirectory.FullName, projectDirectory.FullName); 587return IsMavenReactorModule(reactorDirectory, projectDirectory.FullName, visited); 595if (!visited.Add(aggregatorDirectory.FullName)) 602var document = XDocument.Load(Path.Combine(aggregatorDirectory.FullName, MavenPomFileName)); 618var moduleDirectory = new DirectoryInfo(Path.GetFullPath(Path.Combine(aggregatorDirectory.FullName, modulePath))); 619if (string.Equals(moduleDirectory.FullName, projectDirectory, PathComparison) 620|| (File.Exists(Path.Combine(moduleDirectory.FullName, MavenPomFileName))
Projects\LegacyTypeScriptAppHost.cs (1)
170var discoveredPath = detectedLanguage?.FindInDirectory(workingDirectory.FullName);
Projects\NativeAppHostServerProject.cs (3)
122var generatedSdkDirectory = Path.Combine(_directory.FullName, $"sdk-{++_preparationCount}"); 123var requestPath = Path.Combine(_directory.FullName, "codegen-request.json"); 290Cleanup(() => directory.Delete(recursive: true), directory.FullName);
Projects\PrebuiltAppHostServer.cs (1)
110_workingDirectory = IntegrationClosureBuilder.GetAppHostIntegrationCacheDirectory(new DirectoryInfo(_appDirectoryPath)).FullName;
Projects\ProcessGuestLauncher.cs (1)
111WorkingDirectory = workingDirectory.FullName,
Projects\ProjectLocator.cs (104)
182candidates.Sort((x, y) => string.Compare(x.AppHostFile.FullName, y.AppHostFile.FullName, StringComparison.Ordinal)); 297logger.LogDebug("Searching for project files in {SearchDirectory}", searchDirectory.FullName); 347logger.LogDebug("Checking candidate file {CandidateFile}", candidateFile.FullName); 352logger.LogTrace("No handler found for {CandidateFile}", candidateFile.FullName); 388logger.LogDebug("Found {Language} apphost {CandidateFile}", handler.DisplayName, candidateFile.FullName); 389var relativePath = Path.GetRelativePath(executionContext.WorkingDirectory.FullName, candidateFile.FullName); 409var relativePath = Path.GetRelativePath(executionContext.WorkingDirectory.FullName, candidateFile.FullName); 414logger.LogDebug("Skipping unsupported project {CandidateFile}", candidateFile.FullName); 422var relativePath = Path.GetRelativePath(executionContext.WorkingDirectory.FullName, candidateFile.FullName); 437logger.LogTrace("File {CandidateFile} is not a valid Aspire host", candidateFile.FullName); 456appHostProjects.Sort((x, y) => string.Compare(x.AppHostFile.FullName, y.AppHostFile.FullName, StringComparison.Ordinal)); 484var settingsCanonicalPath = PathNormalizer.ResolveToFilesystemPath(settingsAppHost.FullName); 487if (string.Equals(candidate.AppHostFile.FullName, settingsAppHost.FullName, StringComparisons.FileSystemPath)) 492var candidateCanonicalPath = PathNormalizer.ResolveToFilesystemPath(candidate.AppHostFile.FullName); 504var relativePath = Path.GetRelativePath(executionContext.WorkingDirectory.FullName, settingsAppHost.FullName); 510logger.LogDebug("Skipping configured AppHost project {SettingsAppHost} because no project handler was found.", settingsAppHost.FullName); 516var settingsAppHostRelativePath = Path.GetRelativePath(executionContext.WorkingDirectory.FullName, settingsAppHost.FullName); 546logger.LogDebug("Skipping unsupported configured AppHost project {SettingsAppHost}", settingsAppHost.FullName); 583logger.LogWarning("Ignoring AppHost path '{AppHostPath}' from settings because no project handler can process it.", settingsAppHost.FullName); 613if (IsUnder(file.FullName, directory.FullName)) 622PathNormalizer.ResolveToFilesystemPath(file.FullName), 623PathNormalizer.ResolveToFilesystemPath(directory.FullName)); 649logger.LogWarning("Ignoring AppHost path '{AppHostPath}' from settings because no project handler can process it.", settingsAppHost.FullName); 662logger.LogWarning("Ignoring AppHost path '{AppHostPath}' from settings because it is not supported in the current environment{MessageSuffix}.", settingsAppHost.FullName, messageSuffix); 670logger.LogWarning("AppHost path '{AppHostPath}' from settings could not be evaluated by MSBuild and may not be buildable{MessageSuffix}.", settingsAppHost.FullName, messageSuffix); 675logger.LogWarning("Ignoring AppHost path '{AppHostPath}' from settings because it is no longer a valid AppHost project{MessageSuffix}.", settingsAppHost.FullName, messageSuffix); 689aspireConfig = AspireConfigFile.Load(searchDirectory.FullName); 699var configFilePath = Path.Combine(searchDirectory.FullName, AspireConfigFile.FileName); 713: Path.Combine(searchDirectory.FullName, configAppHostPath); 719logger.LogInformation("Found AppHost path '{AppHostPath}' from config file in {Directory}", configAppHostPath, searchDirectory.FullName); 735var settingsFile = new FileInfo(ConfigurationHelper.BuildPathToSettingsJsonFile(searchDirectory.FullName)); 746ReportInvalidConfigurationFileShape(settingsFile.FullName, silent); 754ReportInvalidConfiguredAppHostPathType(settingsFile.FullName, LegacySettingsAppHostPathKey, silent); 763if (!IsValidConfiguredAppHostPath(appHostPath, settingsFile.FullName, fieldName: LegacySettingsAppHostPathKey, silent: silent)) 768var qualifiedAppHostPath = Path.IsPathRooted(appHostPath) ? appHostPath : Path.Combine(settingsFile.Directory!.FullName, appHostPath); 786interactionService.DisplayMessage(KnownEmojis.Warning, string.Format(CultureInfo.CurrentCulture, ErrorStrings.AppHostWasSpecifiedButDoesntExist, settingsFile.FullName, qualifiedAppHostPath)); 795var message = string.Format(CultureInfo.CurrentCulture, ErrorStrings.InvalidJsonInConfigFile, settingsFile.FullName, ex.Message); 897if (Directory.Exists(projectFile.FullName)) 899logger.LogDebug("Provided path {Path} is a directory, searching for project files recursively", projectFile.FullName); 900var directory = new DirectoryInfo(projectFile.FullName); 940unbuildableAppHost.FullName, 941directory.FullName); 961logger.LogError("No AppHost project files found in directory {Directory}", directory.FullName); 966logger.LogDebug("Found single AppHost project file {ProjectFile} in directory {Directory}", appHostProjects[0].FullName, directory.FullName); 973logger.LogDebug("Multiple AppHost project files found in directory {Directory}, prompting user to select", directory.FullName); 978file => $"{file.Name.EscapeMarkup()} ({Path.GetRelativePath(executionContext.WorkingDirectory.FullName, file.FullName).EscapeMarkup()})", 984logger.LogDebug("Multiple AppHost project files found in directory {Directory}, selecting none", directory.FullName); 989logger.LogError("Multiple AppHost project files found in directory {Directory}, throwing exception", directory.FullName); 994else if (File.Exists(projectFile.FullName)) 1001var resolvedProjectPath = PathNormalizer.ResolvePathCasing(projectFile.FullName); 1003if (!string.Equals(resolvedProjectPath, projectFile.FullName, StringComparison.Ordinal)) 1007projectFile.FullName, 1019logger.LogError("Project file {ProjectFile} does not exist.", projectFile.FullName); 1031logger.LogDebug("Using {Language} apphost {ProjectFile}", handler.DisplayName, projectFile.FullName); 1053projectFile.FullName); 1066return await UseOrFindAppHostProjectFileAsync(new FileInfo(parentDirectory.FullName), multipleAppHostProjectsFoundBehavior, createSettingsFile, displayProgress, cancellationToken); 1079logger.LogDebug("Using AppHost path from settings without scanning: {AppHost}", settingsAppHost.FullName); 1143: PathNormalizer.ResolveToFilesystemPath(settingsAppHost.FullName); 1148string.Equals(c.AppHostFile.FullName, settingsAppHost.FullName, StringComparisons.FileSystemPath) || 1150PathNormalizer.ResolveToFilesystemPath(c.AppHostFile.FullName), 1159logger.LogDebug("Using previously-selected AppHost from settings: {AppHost}", settingsAppHost.FullName); 1168MultipleAppHostProjectsFoundBehavior.Prompt => await interactionService.PromptForSelectionAsync(InteractionServiceStrings.SelectAppHostToUse, results.BuildableAppHost.Select(c => c.AppHostFile).ToList(), projectFile => $"{projectFile.Name.EscapeMarkup()} ({Path.GetRelativePath(executionContext.WorkingDirectory.FullName, projectFile.FullName).EscapeMarkup()})", cancellationToken: cancellationToken), 1181PathNormalizer.ResolveToFilesystemPath(selectedAppHost.FullName), 1182PathNormalizer.ResolveToFilesystemPath(settingsAppHost.FullName), 1196!allCandidates.Any(f => string.Equals(f.FullName, selectedAppHost.FullName, StringComparison.Ordinal))) 1198var selectedAppHostCanonicalPath = PathNormalizer.ResolveToFilesystemPath(selectedAppHost.FullName); 1201PathNormalizer.ResolveToFilesystemPath(f.FullName), 1264IsValidConfiguredAppHostPath(existingPath, settingsFile.FullName, AspireConfigAppHostPathKey, silent: true)) 1267Path.IsPathRooted(existingPath) ? existingPath : Path.Combine(settingsFile.Directory!.FullName, existingPath)); 1269if (IsSamePersistedAppHostPath(resolvedPath, projectFile.FullName)) 1273settingsFile.FullName, 1274projectFile.FullName); 1285projectFile.FullName, 1291logger.LogDebug("Creating settings file at {SettingsFilePath}", settingsFile.FullName); 1293var relativePathToProjectFile = Path.GetRelativePath(settingsFile.Directory!.FullName, projectFile.FullName).Replace(Path.DirectorySeparatorChar, '/'); 1296await ConfigurationService.SetConfigurationInFileAsync(settingsFile.FullName, AspireConfigAppHostPathKey, relativePathToProjectFile, cancellationToken); 1302await ConfigurationService.SetConfigurationInFileAsync(settingsFile.FullName, "appHost.language", language.LanguageId.Value, cancellationToken); 1313await ConfigurationService.SetConfigurationInFileAsync(settingsFile.FullName, "sdk.version", inheritedSdkVersion, cancellationToken); 1318var relativeSettingsFilePath = Path.GetRelativePath(executionContext.WorkingDirectory.FullName, settingsFile.FullName).Replace(Path.DirectorySeparatorChar, '/'); 1338targetSettingsFilePath = Path.Combine(parentDirectory.FullName, AspireConfigFile.FileName); 1348logger.LogDebug("Using existing config file at {Path}", configuredSettingsFile.FullName); 1354var newConfigPath = Path.Combine(configRoot.FullName, AspireConfigFile.FileName); 1365return AspireConfigFile.Load(configRoot.FullName); 1368var legacySettingsFile = new FileInfo(ConfigurationHelper.BuildPathToSettingsJsonFile(configRoot.FullName)); 1374logger.LogInformation("Migrating legacy settings from {LegacyDir} to {ConfigFile}", configRoot.FullName, settingsFile.FullName); 1375return AspireConfigFile.LoadOrCreate(configRoot.FullName); 1391var userProfile = executionContext.HomeDirectory.FullName;
Projects\ProjectUpdater.cs (61)
37logger.LogDebug("Fetching '{AppHostPath}' items and properties.", projectFile.FullName); 125logger.LogInformation("No updates required for project: {ProjectFile}", projectFile.FullName); 135.GroupBy(step => step.ProjectFile.FullName) 213var nugetConfigDirBinding = context.NuGetConfigDirBinding.WithDefault(recommendedNuGetConfigDirectory.FullName); 236PathNormalizer.ResolveToFilesystemPath(configurationCandidate.TargetFile.FullName), 335throw new ProjectUpdaterException(string.Format(CultureInfo.InvariantCulture, UpdateCommandStrings.FailedToRestoreAfterUpdateFormat, projectFile.FullName)); 401context.AppHostFile.FullName); 411context.AppHostFile.FullName, 529new(Path.Combine(configRoot.FullName, AspireConfigFile.FileName)) 542var configToSave = AspireConfigFile.LoadOrCreate(configRoot.FullName); 545configToSave.Save(configRoot.FullName); 564var path = PathNormalizer.ResolveToFilesystemPath(file.FullName); 589var cacheKey = $"{ItemsAndPropertiesCacheKeyPrefix}_{projectFile.FullName}_{itemsKey}_{propertiesKey}"; 602throw new ProjectUpdaterException(string.Format(CultureInfo.InvariantCulture, UpdateCommandStrings.FailedFetchItemsAndPropertiesFormat, projectFile.FullName)); 623logger.LogWarning("Falling back to parsing for '{ProjectFile}'. Reason: {Message}", projectFile.FullName, ex.Message); 637var projectPath = PathNormalizer.ResolveToFilesystemPath(projectFile.FullName); 638var appHostProjectPath = PathNormalizer.ResolveToFilesystemPath(appHostProjectFile.FullName); 648var appHostProjectAnalyzeStep = new AnalyzeStep(string.Format(CultureInfo.InvariantCulture, UpdateCommandStrings.AnalyzeProjectFormat, context.AppHostProjectFile.FullName), () => AnalyzeProjectAsync(context.AppHostProjectFile, context, cancellationToken)); 686logger.LogDebug("Analyzing App Host SDK for: {AppHostFile}", context.AppHostProjectFile.FullName); 701sourceXml = XDocument.Load(context.AppHostProjectFile.FullName); 710UpdateCommandStrings.ConditionalSdkEvaluationRequiredFormat, context.AppHostProjectFile.FullName)); 800candidates.Add(projectFile.FullName); 808candidates.Add(Path.GetFullPath(path, projectFile.Directory!.FullName)); 820UpdateCommandStrings.ConditionalSdkExplicitEditRequiredFormat, projectFile.FullName)); 824throw new ProjectUpdaterException($"Could not uniquely locate the imported Aspire.AppHost.Sdk declaration for '{projectFile.FullName}'. Found {declarations.Length} declaring files; update the imported SDK version explicitly."); 845var document = XDocument.Load(file.FullName, LoadOptions.PreserveWhitespace); 857await File.WriteAllTextAsync(file.FullName, document.ToString(SaveOptions.DisableFormatting)); 921projectDocument.Load(projectFile.FullName); 942propsDocument.Load(cpmInfo.DirectoryPackagesPropsFile.FullName); 963projectDocument.Load(projectFile.FullName); 968projectDocument.Save(projectFile.FullName); 1000projectDocument.Load(projectFile.FullName); 1110projectDocument.Load(projectFile.FullName); 1115throw new ProjectUpdaterException(string.Format(CultureInfo.InvariantCulture, UpdateCommandStrings.CouldNotFindRootProjectElementFormat, projectFile.FullName)); 1139throw new ProjectUpdaterException(string.Format(CultureInfo.InvariantCulture, UpdateCommandStrings.CouldNotFindSdkElementFormat, projectFile.FullName)); 1148projectDocument.Save(projectFile.FullName); 1173projectDocument.Save(projectFile.FullName); 1266propsDocument.Load(cpmInfo.DirectoryPackagesPropsFile.FullName); 1283propsDocument.Save(cpmInfo.DirectoryPackagesPropsFile.FullName); 1296cpmInfo.DirectoryPackagesPropsFile.FullName, 1304var fileContent = await File.ReadAllTextAsync(projectFile.FullName); 1312"Could not find '#:sdk Aspire.AppHost.Sdk@<version>' directive in single-file AppHost: {0}", projectFile.FullName)); 1329await File.WriteAllTextAsync(projectFile.FullName, updatedContent); 1345var fileContent = File.ReadAllText(projectFile.FullName); 1358var fileContent = await File.ReadAllTextAsync(projectFile.FullName); 1363await File.WriteAllTextAsync(projectFile.FullName, updatedContent); 1380if (!context.VisitedProjects.Add(projectFile.FullName)) 1415context.ProjectRestoreTargets[projectFile.FullName] = 1444context.AnalyzeSteps.Enqueue(new AnalyzeStep(string.Format(CultureInfo.InvariantCulture, UpdateCommandStrings.AnalyzeProjectFormat, referencedProjectFile.FullName), () => AnalyzeProjectAsync(referencedProjectFile, context, cancellationToken))); 1514var directoryPackagesPropsPath = Path.Combine(current.FullName, "Directory.Packages.props"); 1601doc.Load(directoryPackagesPropsFile.FullName); 1645logger.LogInformation(ex, "Ignoring parsing error in Directory.Packages.props '{DirectoryPackagesPropsFile}' for project '{ProjectFile}'", directoryPackagesPropsFile.FullName, projectFile.FullName); 1686logger.LogWarning(ex, "Exception while resolving MSBuild property '{PropertyName}' for project '{ProjectFile}'", propertyName, projectFile.FullName); 1699doc.Load(directoryPackagesPropsFile.FullName); 1704throw new ProjectUpdaterException(string.Format(CultureInfo.InvariantCulture, UpdateCommandStrings.CouldNotFindPackageVersionInDirectoryPackagesProps, packageId, directoryPackagesPropsFile.FullName)); 1708doc.Save(directoryPackagesPropsFile.FullName); 1730throw new ProjectUpdaterException(string.Format(CultureInfo.InvariantCulture, UpdateCommandStrings.FailedUpdatePackageReferenceFormat, package.Id, projectFile.FullName)); 1738var document = XDocument.Load(definingFile.FullName, LoadOptions.PreserveWhitespace); 1743throw new ProjectUpdaterException($"Expected one declaration of '{package.Id}' in '{definingFile.FullName}', found {references.Length}."); 1755document.Save(definingFile.FullName);
Projects\RepositoryToolUpdater.cs (15)
34logger.LogDebug("Finding repository CLI manifests from {Directory}", directory.FullName); 46foreach (var path in new[] { Path.Combine(current.FullName, ".config", "dotnet-tools.json"), Path.Combine(current.FullName, "dotnet-tools.json") }) 69var manifest = await ReadManifestAsync(Path.Combine(current.FullName, "package.json"), isNpm: true, cancellationToken); 124UpdateCommandStrings.UnsupportedToolVersionFormat, manifest.File.FullName, reference.Version)); 153update.Manifest.File.FullName.EscapeMarkup(), update.Manifest.PackageId.EscapeMarkup(), 157Files = updates.Select(static update => update.Manifest.File).DistinctBy(static file => file.FullName).ToArray() 186var manifest = await ReadManifestAsync(original.File.FullName, original.IsNpm, cancellationToken); 193throw new ProjectUpdaterException(string.Format(CultureInfo.CurrentCulture, UpdateCommandStrings.ToolManifestChangedFormat, original.File.FullName)); 196originalFiles.Add(manifest.File.FullName, await File.ReadAllBytesAsync(manifest.File.FullName, cancellationToken)); 214await File.WriteAllTextAsync(manifest.File.FullName, content, cancellationToken); 222await File.WriteAllBytesAsync(manifest.File.FullName, originalFiles[manifest.File.FullName], CancellationToken.None); 230logger.LogDebug("Updated repository CLI reference in {ManifestPath}", manifest.File.FullName);
Projects\SolutionLocator.cs (6)
20logger.LogDebug("Searching for solution files starting from {StartDirectory}", startDirectory.FullName); 26logger.LogDebug("No solution files found in {Directory} or subdirectories", startDirectory.FullName); 30logger.LogDebug("Found {Count} solution file(s) in {Directory}", solutionFiles.Count, startDirectory.FullName); 43solutionFile => $"{solutionFile.Name.EscapeMarkup()} ({Path.GetRelativePath(startDirectory.FullName, solutionFile.FullName).EscapeMarkup()})", 87.OrderBy(f => f.Directory?.FullName.Count(c => c == Path.DirectorySeparatorChar) ?? 0)
Projects\TypeScriptAppHostToolchainResolver.cs (14)
63if (File.Exists(Path.Combine(candidateDirectory.FullName, BunLockFileName))) 68if (File.Exists(Path.Combine(candidateDirectory.FullName, BunBinaryLockFileName))) 73if (File.Exists(Path.Combine(candidateDirectory.FullName, PnpmLockFileName))) 78var yarnLockFilePath = Path.Combine(candidateDirectory.FullName, YarnLockFileName); 89if (File.Exists(Path.Combine(candidateDirectory.FullName, YarnConfigFileName))) 94if (File.Exists(Path.Combine(candidateDirectory.FullName, DenoLockFileName))) 99if (File.Exists(Path.Combine(candidateDirectory.FullName, DenoJsonFileName))) 104if (File.Exists(Path.Combine(candidateDirectory.FullName, DenoJsoncFileName))) 109if (File.Exists(Path.Combine(candidateDirectory.FullName, PackageLockFileName))) 115return new(TypeScriptAppHostToolchain.Npm, $"no package manager marker found in {appHostDirectory.FullName} or an eligible parent directory"); 355var packageJsonPath = Path.Combine(appHostDirectory.FullName, PackageJsonFileName); 503var parentPath = Path.TrimEndingDirectorySeparator(parentDirectory.FullName); 504if (string.Equals(parentPath, Path.TrimEndingDirectorySeparator(parentDirectory.Root.FullName), pathComparison)) 516return new(toolchain, $"{markerName} found in {directory.FullName}");
Scaffolding\ScaffoldingService.cs (23)
99var config = AspireConfigFile.LoadOrCreate(directory.FullName, sdkVersion); 128config.Save(directory.FullName); 133var integrations = config.GetIntegrationReferences(sdkVersion, directory.FullName).ToList(); 146Directory.CreateDirectory(scaffoldDirectory.FullName); 148var appHostServerProject = await _appHostServerProjectFactory.CreateAsync(scaffoldDirectory.FullName, cancellationToken); 177scaffoldDirectory.FullName, 182var conflictingFiles = GetConflictingScaffoldFiles(scaffoldDirectory.FullName, scaffoldFiles.Keys); 187scaffoldDirectory.FullName, 197var filePath = Path.Combine(scaffoldDirectory.FullName, fileName); 238scaffoldDirectory.FullName, 255var appHostRunPath = Path.Combine(scaffoldDirectory.FullName, "apphost.run.json"); 275config.Save(directory.FullName); 281if (IsTypeScriptLanguage(language) && File.Exists(Path.Combine(directory.FullName, PackageJsonFileName))) 285return new DirectoryInfo(Path.Combine(directory.FullName, BrownfieldTypeScriptAppHostDirectoryName)); 295return Path.Combine(scaffoldDirectory.FullName, appHostFileName); 301rootDirectory.FullName.TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar), 302scaffoldDirectory.FullName.TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar), 307var packageJsonPath = Path.Combine(rootDirectory.FullName, PackageJsonFileName); 324var relativeAppHostDirectory = PathNormalizer.NormalizePathForStorage(Path.GetRelativePath(rootDirectory.FullName, appHostDirectory.FullName)); 382Path.GetRelativePath(rootDirectory.FullName, Path.Combine(scaffoldDirectory.FullName, appHostFileName))); 528!File.Exists(Path.Combine(directory.FullName, PackageJsonFileName)) ||
Secrets\AspireSecretsStoreResolver.cs (1)
180var syntheticId = AspireSecretsPathHelper.ComputeSyntheticAppHostId(appHostFile.FullName);
src\Shared\ChildProcess.cs (1)
128_completionPath = Path.Combine(_completionDirectory.FullName, "exit-code");
src\Shared\PathNormalizer.cs (2)
418if (linkTarget?.FullName is { Length: > 0 } resolved) 507if (linkTarget?.FullName is { Length: > 0 } resolved)
src\Shared\SocketPermissionHelper.cs (12)
46var isWorkingDirectory = string.Equals(directory.FullName, Path.TrimEndingDirectorySeparator(currentDirectory), comparison); 47var isUserProfile = string.Equals(directory.FullName, profileRoot, comparison); 48var isTemporaryRoot = string.Equals(Path.TrimEndingDirectorySeparator(directory.FullName), tempRoot, comparison); 61if (string.Equals(current.FullName, profileRoot, comparison) || 62string.Equals(current.FullName, tempRoot, comparison)) 65if (!Directory.Exists(resolvedBase.FullName)) 67throw new IOException($"The socket directory base '{current.FullName}' must resolve to an existing directory."); 84if (directory.Exists && (File.GetUnixFileMode(directory.FullName) & UnixFileMode.StickyBit) != 0) 91return DirectoryHelper.CreateWithOwnerOnlyPermissions(directory.FullName); 96Directory.CreateDirectory(directory.FullName, OwnerOnlyMode); 97if (File.GetUnixFileMode(directory.FullName) != OwnerOnlyMode) 174throw new IOException($"The configured socket directory '{directory.FullName}' must have a protected owner-only ACL with inheritable full control for the current user (SYSTEM is also allowed). Set those permissions or choose a new dedicated directory.");
src\Shared\Telemetry\InternalMicrosoftDetector.cs (3)
72Path.Combine(cacheDirectory.FullName, CacheSubdirectoryName, CacheFileName), 905var copilotHome = Path.Combine(_homeDirectory.FullName, ".copilot"); 1141WorkingDirectory = _workingDirectory.FullName,
src\Shared\UserSecrets\AspireSecretsPathHelper.cs (1)
83return Path.Combine(homeDirectory.FullName, ".aspire", SecretsDirectoryName, safeAppHostId);
Telemetry\ProfilingTelemetry.cs (5)
968public void SetAppHostDiscoverySearchDirectory(DirectoryInfo searchDirectory) => SetTag(Tags.AppHostDiscoverySearchDirectory, searchDirectory.FullName); 1051SetTag(Tags.DotNetProjectFile, projectFile?.FullName); 1052SetTag(Tags.DotNetWorkingDirectory, workingDirectory.FullName); 1064SetTag(Tags.GuestWorkingDirectory, workingDirectory.FullName); 1071SetTag(Tags.GitWorkingDirectory, workingDirectory.FullName);
Templating\CliTemplateFactory.cs (13)
132(ctx, projectName) => OutputPathHelper.GetUniqueDefaultOutputPath(projectName, ctx.WorkingDirectory.FullName), 141(ctx, projectName) => OutputPathHelper.GetUniqueDefaultOutputPath(projectName, ctx.WorkingDirectory.FullName), 152(ctx, projectName) => OutputPathHelper.GetUniqueDefaultOutputPath(projectName, ctx.WorkingDirectory.FullName), 163(ctx, projectName) => OutputPathHelper.GetUniqueDefaultOutputPath(projectName, ctx.WorkingDirectory.FullName), 174(ctx, projectName) => OutputPathHelper.GetUniqueDefaultOutputPath(projectName, ctx.WorkingDirectory.FullName), 185(ctx, projectName) => OutputPathHelper.GetUniqueDefaultOutputPath(projectName, ctx.WorkingDirectory.FullName), 196(ctx, projectName) => OutputPathHelper.GetUniqueDefaultOutputPath(projectName, ctx.WorkingDirectory.FullName), 207(ctx, projectName) => OutputPathHelper.GetUniqueDefaultOutputPath(projectName, ctx.WorkingDirectory.FullName), 220(ctx, projectName) => OutputPathHelper.GetUniqueDefaultOutputPath(projectName, ctx.WorkingDirectory.FullName), 229(ctx, projectName) => OutputPathHelper.GetUniqueDefaultOutputPath(projectName, ctx.WorkingDirectory.FullName), 274_executionContext.WorkingDirectory.FullName, 278var outputPathValidator = OutputPathHelper.CreateOutputPathValidator(_executionContext.WorkingDirectory.FullName); 395var currentDir = _executionContext.WorkingDirectory.FullName;
Templating\DotNetTemplateFactory.cs (14)
108var sdkInstallPath = Path.Combine(executionContext.SdksDirectory.FullName, "dotnet", DotNetSdkInstaller.MinimumSdkVersion); 141(ctx, projectName) => OutputPathHelper.GetUniqueDefaultOutputPath(projectName, ctx.WorkingDirectory.FullName), 150(ctx, projectName) => OutputPathHelper.GetUniqueDefaultOutputPath(projectName, ctx.WorkingDirectory.FullName), 161(ctx, projectName) => OutputPathHelper.GetUniqueDefaultOutputPath(projectName, ctx.WorkingDirectory.FullName), 171(ctx, projectName) => OutputPathHelper.GetUniqueDefaultOutputPath(projectName, ctx.WorkingDirectory.FullName), 180(ctx, projectName) => OutputPathHelper.GetUniqueDefaultOutputPath(projectName, ctx.WorkingDirectory.FullName), 191(ctx, projectName) => OutputPathHelper.GetUniqueDefaultOutputPath(projectName, ctx.WorkingDirectory.FullName), 201(ctx, projectName) => OutputPathHelper.GetUniqueDefaultOutputPath(projectName, ctx.WorkingDirectory.FullName), 211(ctx, projectName) => OutputPathHelper.GetUniqueDefaultOutputPath(projectName, ctx.WorkingDirectory.FullName), 224(ctx, projectName) => OutputPathHelper.GetUniqueDefaultOutputPath(projectName, ctx.WorkingDirectory.FullName), 245(ctx, projectName) => OutputPathHelper.GetUniqueDefaultOutputPath(projectName, ctx.WorkingDirectory.FullName), 426executionContext.WorkingDirectory.FullName, 621executionContext.WorkingDirectory.FullName, 625var validator = OutputPathHelper.CreateOutputPathValidator(executionContext.WorkingDirectory.FullName);
Templating\TemplateEngineFactory.cs (9)
59? Path.GetFullPath(source.Path, executionContext.WorkingDirectory.FullName) 122(context, name) => OutputPathHelper.GetUniqueDefaultOutputPath(name, context.WorkingDirectory.FullName), 143var cacheRoot = Path.Combine(executionContext.CacheDirectory.FullName, "git"); 174Directory.Move(Path.Combine(repositoryRoot.FullName, ".git"), Path.Combine(checkout.FullName, ".git")); 213var localPath = Path.GetFullPath(repository, executionContext.WorkingDirectory.FullName); 257for (var directory = new DirectoryInfo(fullPath); directory is not null && directory.FullName != repositoryRoot; directory = directory.Parent) 359executionContext.WorkingDirectory.FullName, 361OutputPathHelper.GetUniqueDefaultOutputPath(name, executionContext.WorkingDirectory.FullName), 363OutputPathHelper.CreateOutputPathValidator(executionContext.WorkingDirectory.FullName),
Templating\TemplateEngineFactory.NuGetValues.cs (4)
34var parent = Directory.GetParent(Path.TrimEndingDirectorySeparator(outputPath))!.FullName; 110var outputError = OutputPathHelper.ValidateOutputPath(outputPath, executionContext.WorkingDirectory.FullName); 165configs.Add(Path.GetRelativePath(root, config.FullName), File.ReadAllBytes(config.FullName));
Templating\TemplateNuGetConfigService.cs (5)
88if (string.Equals(outputDir.FullName, executionContext.WorkingDirectory.FullName, StringComparisons.FileSystemPath) && 163AppHostWorkloadId.Create(targetDirectory.FullName), 238throw new IOException($"Cannot create template NuGet configuration because '{existingConfig.FullName}' already exists."); 248var targetFile = new FileInfo(Path.Combine(outputDirectory.FullName, "nuget.config"));
Utils\AppHostHelper.cs (4)
75var relativePath = Path.GetRelativePath(workingDirectory.FullName, projectFile.FullName); 89var relativePath = Path.GetRelativePath(workingDirectory.FullName, projectFile.FullName);
Utils\AspireRepositoryDetector.cs (1)
102currentDirectory = Directory.GetParent(currentDirectory)?.FullName;
Utils\CliDownloader.cs (1)
57var tempDir = Directory.CreateTempSubdirectory("aspire-cli-download").FullName;
Utils\CliPathHelper.cs (2)
72return Path.Combine(aspireHomeDirectory.FullName, StagingNuGetPackagesFolderName); 435return resolved?.FullName;
Utils\ConfigurationHelper.cs (12)
52var newSettingsPath = Path.Combine(currentDirectory.FullName, AspireConfigFile.FileName); 79var legacySettingsPath = BuildPathToSettingsJsonFile(currentDirectory.FullName); 90if (File.Exists(globalSettingsFile.FullName)) 92AddSettingsFile(configuration, globalSettingsFile.FullName, persistNormalization); 98AddSettingsFile(configuration, localSettingsFile.FullName, persistNormalization); 105? new FileInfo(Path.Combine(settingsFile.Directory!.FullName, AspireConfigFile.FileName)) 118var normalizedSettingsPath = PathNormalizer.ResolveSymlinks(settingsFile.FullName) 122var lockPath = Path.Combine(cacheDirectory.FullName, "workspace-config-locks", $"{lockFileName}.lock"); 185return new DirectoryInfo(Path.Combine(configRoot.FullName, AspireJsonConfiguration.SettingsFolder)); 191return new DirectoryInfo(Path.Combine(workspaceAspireDirectory.FullName, IntegrationCacheFolderName)); 204var configPath = Path.Combine(searchDir.FullName, AspireConfigFile.FileName); 210var legacyPath = BuildPathToSettingsJsonFile(searchDir.FullName);
Utils\EnvironmentChecker\AspireVersionCheck.cs (5)
322logger.LogDebug(ex, "Failed to check Aspire AppHost version for {AppHostPath}.", appHostFile.FullName); 349var directory = configDirectory.FullName; 391executionContext.WorkingDirectory.FullName); 420return Path.GetRelativePath(executionContext.WorkingDirectory.FullName, file.FullName);
Utils\EnvironmentChecker\DcpConnectionChecker.cs (1)
228var sessionDirectory = Directory.CreateTempSubdirectory("aspire-dcp-doctor-").FullName;
Utils\EnvironmentChecker\DcpConnectionHealthCheck.cs (1)
37var dcpDirectory = layoutDiscovery.GetComponentPath(LayoutComponent.Dcp, executionContext.WorkingDirectory.FullName);
Utils\EnvironmentChecker\DeprecatedAgentConfigCheck.cs (1)
46var configPath = Path.Combine(workingDirectory.FullName, location.RelativePath);
Utils\EnvironmentChecker\GoAppHostToolingCheck.cs (3)
159var discoveredPath = goLanguage?.FindInDirectory(_executionContext.WorkingDirectory.FullName); 236var output = await _toolchainResolver(goPath, probeDirectory.FullName, cancellationToken); 289["appHostPath"] = appHostFile.FullName
Utils\EnvironmentChecker\LegacySettingsFileCheck.cs (2)
40var modernConfigPath = Path.Combine(searchDir.FullName, AspireConfigFile.FileName); 47var legacySettingsPath = ConfigurationHelper.BuildPathToSettingsJsonFile(searchDir.FullName);
Utils\EnvironmentChecker\TypeScriptAppHostToolingCheck.cs (3)
94["appHostPath"] = appHostFile.FullName 165["appHostPath"] = appHostFile.FullName 198["appHostPath"] = appHostFile.FullName
Utils\EnvironmentChecker\VsCodeExtensionCheck.cs (1)
159var home = homeDirectory.FullName;
aspire-tray (7)
NativeSmokeHarness.cs (4)
53_missing = Path.Combine(_directory.FullName, "Missing.AppHost.cs"); 69var path = Path.Combine(_directory.FullName, name); 102var folder = Directory.CreateDirectory(Path.Combine(_directory.FullName, "project;new-tab")).FullName;
src\Aspire.Tray\Common\TrayConfiguration.cs (1)
138var binary = new FileInfo(cliPath).ResolveLinkTarget(returnFinalTarget: true)?.FullName ?? cliPath;
src\Aspire.Tray\Common\TraySavedState.cs (1)
152return File.GetAttributes(target.FullName);
src\Aspire.Tray\Common\TrayStartupEntry.cs (1)
120current = ResolveCore(target.FullName, remainingLinks - 1);
Aspire.Acquisition.Tests (10)
Scripts\Common\ScriptFunctionCommand.cs (1)
61var repoRoot = TestUtils.FindRepoRoot()?.FullName
Scripts\Common\ScriptHostFixture.cs (1)
35var repoRoot = TestUtils.FindRepoRoot()?.FullName
Scripts\Common\ScriptToolCommand.cs (1)
65var repoRoot = TestUtils.FindRepoRoot()?.FullName
Scripts\Common\TestEnvironment.cs (1)
30TempDirectory = Directory.CreateTempSubdirectory("aspire-test-").FullName;
Scripts\HomebrewCompletionTests.cs (1)
20var repoRoot = TestUtils.FindRepoRoot()!.FullName;
Scripts\LocalHiveScriptFunctionTests.cs (1)
107var repoRoot = Aspire.Templates.Tests.TestUtils.FindRepoRoot()?.FullName
Scripts\PipedInstallTests.cs (2)
125var repoRoot = TestUtils.FindRepoRoot()?.FullName 147var repoRoot = TestUtils.FindRepoRoot()?.FullName
tests\Shared\Playwright\TestUtils.cs (2)
14if (Directory.Exists(Path.Combine(repoRoot.FullName, ".git")) || File.Exists(Path.Combine(repoRoot.FullName, ".git")))
Aspire.Cli.EndToEnd.Tests (368)
AgentCommandTests.cs (14)
97var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, ".mcp.json"); 152var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, ".mcp.json"); 186var vscodePath = Path.Combine(workspace.WorkspaceRoot.FullName, ".vscode"); 232Assert.False(Directory.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, ".agents", "skills"))); 267var skillsRoot = Path.Combine(workspace.WorkspaceRoot.FullName, ".agents", "skills"); 302var vscodePath = Path.Combine(workspace.WorkspaceRoot.FullName, ".vscode"); 303var mcpConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, ".mcp.json"); 375var mcpConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "StarterApp", ".mcp.json"); 401Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "StarterApp", ".claude", "skills", "aspireify", "SKILL.md"))); 425var executablePathFile = Path.Combine(workspace.WorkspaceRoot.FullName, "cli-executable.txt"); 431var containerHome = CliE2ETestHelpers.ToContainerPath(home.FullName, workspace); 438var containerProject = CliE2ETestHelpers.ToContainerPath(project.FullName, workspace); 482var root = scope == "project" ? project.FullName : home.FullName;
AgentMcpExcludeFromMcpTests.cs (1)
37var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "McpExcludeApp", "McpExcludeApp.AppHost", "AppHost.cs");
AppHostSyntaxErrorOutputTests.cs (1)
118configureProject(Path.Combine(workspace.WorkspaceRoot.FullName, projectName));
BundleSmokeTests.cs (4)
64var projectRoot = Path.Combine(workspace.WorkspaceRoot.FullName, projectName); 88var appHostProjectRelativePath = Path.GetRelativePath(workspace.WorkspaceRoot.FullName, appHostProjectPath); 129var projectRoot = Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName); 222var projectRoot = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
CentralPackageManagementTests.cs (3)
44var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, "CpmTest"); 156var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, "CpmTest"); 279var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, "CpmTest");
ChannelUpdateWorkflowTests.cs (4)
84var projectPath = Path.Combine(workspace.WorkspaceRoot.FullName, projectName); 254var projectPath = Path.Combine(workspace.WorkspaceRoot.FullName, projectName); 296var projectPath = Path.Combine(workspace.WorkspaceRoot.FullName, projectName); 339var projectPath = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
CompletionTests.cs (13)
34await File.WriteAllTextAsync(Path.Combine(home.FullName, "globalsettings.json"), legacyConfig); 42var localConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.config.json"); 60Assert.Equal(string.Empty, await File.ReadAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "completion.stderr"))); 61Assert.Equal(string.Empty, await File.ReadAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "suggestions.stderr"))); 62Assert.Equal("completions\n", await File.ReadAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "suggestions.txt"))); 63Assert.Equal("complete -o default -F _aspire_complete aspire\n", await File.ReadAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "registration.txt"))); 64Assert.Equal(["globalsettings.json"], Directory.GetFiles(home.FullName, "*", SearchOption.AllDirectories).Select(Path.GetFileName)); 65Assert.Empty(Directory.GetDirectories(home.FullName)); 66Assert.Equal(legacyConfig, await File.ReadAllTextAsync(Path.Combine(home.FullName, "globalsettings.json"))); 89await File.WriteAllTextAsync(Path.Combine(fakeBin.FullName, "aspire"), (""" 110await File.ReadAllBytesAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "completion-arguments.bin"))); 111Assert.False(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "completion-executed"))); 126await File.ReadAllBytesAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "completion-arguments.bin")));
ConfigDiscoveryTests.cs (3)
52var workspaceRoot = workspace.WorkspaceRoot.FullName; 162workspace.WorkspaceRoot.FullName, projectName, "aspire.config.json"); 164workspace.WorkspaceRoot.FullName, "aspire.config.json");
ConfigHealingTests.cs (1)
48workspace.WorkspaceRoot.FullName,
ConfigMigrationTests.cs (1)
46var aspireHomeDir = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire-home");
CSharpInitTests.cs (15)
28[Path.Combine(appDirectory.FullName, "package.json")] = """{"name":"existing-web","private":true}""", 29[Path.Combine(appDirectory.FullName, "Incidental.slnx")] = "<Solution />" 33existingFiles[Path.Combine(appDirectory.FullName, "aspire.config.json")] = """{"appHost":{"language":"typescript/nodejs"}}"""; 68Assert.Equal(existingFiles.Keys.Order(), Directory.GetFiles(appDirectory.FullName, "*", SearchOption.AllDirectories).Order()); 82var toolsDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "tools")); 83var projectPath = Path.Combine(toolsDirectory.FullName, "Incidental.csproj"); 86[Path.Combine(workspace.WorkspaceRoot.FullName, "Incidental.sln")] = """ 91[Path.Combine(toolsDirectory.FullName, "Incidental.slnx")] = """ 124Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"))); 125Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.run.json"))); 126var config = JsonNode.Parse(await File.ReadAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.config.json"))); 129Assert.Equal([projectPath], Directory.GetFiles(workspace.WorkspaceRoot.FullName, "*.csproj", SearchOption.AllDirectories)); 141var description = JsonNode.Parse(await File.ReadAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "resources.json"))); 188var appHostCs = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"); 189var aspireConfigJson = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.config.json");
CSharpProjectModeInitTests.cs (7)
67var solutionPath = Path.Combine(workspace.WorkspaceRoot.FullName, solutionFileName); 85var workspaceNuGetConfig = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"); 86var appHostCsproj = Path.Combine(workspace.WorkspaceRoot.FullName, "Test.AppHost", "Test.AppHost.csproj"); 139var solutionPath = Path.Combine(workspace.WorkspaceRoot.FullName, "Test.sln"); 141var appHostDir = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "Test.AppHost")); 142var leftoverPath = Path.Combine(appHostDir.FullName, "leftover.txt"); 158var workspaceNuGetConfig = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config");
CustomTemplateTests.cs (7)
38Path.Combine(workspace.WorkspaceRoot.FullName, "template")); 43var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, "template", ".template.config", "template.json"); 73var sourceLocation = CliE2ETestHelpers.ToContainerPath(Path.Combine(workspace.WorkspaceRoot.FullName, "template"), workspace); 103var listed = JsonNode.Parse(await File.ReadAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "sources.json")))!.AsObject(); 110var table = await File.ReadAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "sources.txt")); 204Assert.Empty(JsonNode.Parse(await File.ReadAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "empty-sources.json")))!.AsObject()); 208var outputDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "out");
DescribeCommandTests.cs (1)
111var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, "AspireReplicaTestApp");
DockerComposeDeployWithVolumeTests.cs (1)
48var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName);
DockerDeploymentTests.cs (2)
54var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName); 151var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName);
DocsCommandE2ETests.cs (1)
19var docsFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "llms-small.txt");
DoctorCommandTests.cs (6)
71Path.Combine(runtimeDirectory.FullName, runtime), 108Path.Combine(workspace.WorkspaceRoot.FullName, "doctor-runtime.txt"), 118Path.Combine(workspace.WorkspaceRoot.FullName, "doctor-runtime.json"), 135Assert.Equal("1", await File.ReadAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "doctor-text.exit"))); 136Assert.Equal("1", await File.ReadAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "doctor-json.exit"))); 296TypeScriptAppHostToolchainTestHelpers.SetPackageManager(workspace.WorkspaceRoot.FullName, toolchain, cleanInstallState: true);
EmptyAppHostTemplateTests.cs (9)
64var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "DestroySentinel", "apphost.cs"); 79var exitCode = await File.ReadAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "destroy-exit.txt")); 80var errorOutput = await File.ReadAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "destroy-output.txt")); 81var sentinelPath = Path.Combine(workspace.WorkspaceRoot.FullName, "destroy-apphost-started"); 192var sourcePackage = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "source-template.nupkg")); 275var destinationPath = Path.Combine(destinationFeed.FullName, $"Aspire.ProjectTemplates.{packageVersion}.nupkg"); 276using var sourceArchive = ZipFile.OpenRead(sourcePackage.FullName); 313Assert.True(foundNuspec, $"Expected a nuspec in template package '{sourcePackage.FullName}'."); 319Path.Combine(workspace.FullName, "NuGet.Config"),
EmulatedLocalReleaseBuildTests.cs (8)
88var projectDir = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, projectName)); 96var appHostCsproj = Path.Combine(projectDir.FullName, $"{projectName}.AppHost", $"{projectName}.AppHost.csproj"); 153var projectDir = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, projectName)); 154var configPath = Path.Combine(projectDir.FullName, "aspire.config.json"); 239var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.config.json"); 292Path.Combine(workspace.WorkspaceRoot.FullName, "explicit-feed"), 336var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.config.json"); 606.Select(f => f.FullName)
EmulatedReleasedBuildTests.cs (5)
70var projectDir = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, projectName)); 77var appHostCsproj = Path.Combine(projectDir.FullName, $"{projectName}.AppHost", $"{projectName}.AppHost.csproj"); 128var projectDir = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, projectName)); 129var configPath = Path.Combine(projectDir.FullName, "aspire.config.json"); 219.Select(f => f.FullName)
EmulatedStagingBuildTests.cs (8)
82await File.WriteAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"), $$""" 98var projectDir = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, projectName)); 103var appHostCsproj = Path.Combine(projectDir.FullName, $"{projectName}.AppHost", $"{projectName}.AppHost.csproj"); 155var projectDir = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, projectName)); 156var configPath = Path.Combine(projectDir.FullName, "aspire.config.json"); 269$"Emulating a staging build, 'aspire new' must drop exactly one NuGet.config registering the darc feed. Found: {nuGetConfigs.Count} ({string.Join(", ", nuGetConfigs.Select(f => f.FullName))})."); 271var configPath = nuGetConfigs[0].FullName; 369.Select(f => f.FullName)
EntityFrameworkCoreDeploymentTests.cs (2)
137var projectDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName); 157var projectDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName);
GoCodegenValidationTests.cs (1)
38var modulesDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "modules");
GoEmptyAppHostTemplateTests.cs (1)
77var projectRoot = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
GoKubernetesDeployTests.cs (1)
77var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName, "apphost.go");
GoPublishTests.cs (4)
72var dockerComposePath = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire-output", "docker-compose.yaml"); 104Path.Combine(workspace.WorkspaceRoot.FullName, projectName, "apphost.go"), 110var artifactsPath = Path.Combine(workspace.WorkspaceRoot.FullName, projectName, "artifacts"); 129Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.go"),
GoSecretAppHostTests.cs (1)
63await File.ReadAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "listed-secrets.json"), TestContext.Current.CancellationToken));
GoStarterTemplateTests.cs (1)
43var projectRoot = Path.Combine(workspace.WorkspaceRoot.FullName, "GoStarterApp");
Helpers\CliE2EAutomatorHelpers.cs (2)
657await auto.PrepareBashEnvironmentAsync(workspace.WorkspaceRoot.FullName, counter, TimeSpan.FromSeconds(10)); 658await auto.RunCommandAsync($"export ASPIRE_E2E_WORKSPACE={AspireCliShellCommandHelpers.QuoteBashArg(workspace.WorkspaceRoot.FullName)}", counter);
Helpers\CliE2ETestHelpers.cs (9)
254output.WriteLine($" Workspace: {workspace?.WorkspaceRoot.FullName ?? "(none)"}"); 279c.Volumes.Add($"{workspace.WorkspaceRoot.FullName}:/workspace/{workspace.WorkspaceRoot.Name}"); 444options.Volumes.Add($"{workspace.WorkspaceRoot.FullName}:/workspace/{workspace.WorkspaceRoot.Name}"); 462output.WriteLine($" Workspace: {workspace?.WorkspaceRoot.FullName ?? "(none)"}"); 656if (File.Exists(Path.Combine(dir.FullName, "Aspire.slnx"))) 658return dir.FullName; 965var relativePath = Path.GetRelativePath(workspace.WorkspaceRoot.FullName, hostPath); 1196Directory.CreateDirectory(destDir).FullName, 1209var destDir = Directory.CreateDirectory(GetCaptureRootDirectory(testName)).FullName;
Helpers\CliInstallStrategyTests.cs (30)
72(CliE2ETestHelpers.CliArchiveDirEnvironmentVariableName, tempDir.FullName), 79Assert.Equal(tempDir.FullName, strategy.ArchiveDir); 100(CliE2ETestHelpers.CliArchiveDirEnvironmentVariableName, tempDir.FullName), 107Assert.Equal(tempDir.FullName, strategy.ArchiveDir); 147(CliE2ETestHelpers.CliArchiveDirEnvironmentVariableName, tempDir.FullName)); 154Assert.Contains($"{tempDir.FullName}:/tmp/aspire-cli-archives:ro", options.Volumes); 535("ASPIRE_E2E_DOTNET_TOOL_SOURCE", tempDir.FullName), 549Assert.Equal(tempDir.FullName, strategy.NupkgSourcePath); 564File.WriteAllText(Path.Combine(tempDir.FullName, "Aspire.Cli.13.3.0-preview.1.25175.1.nupkg"), ""); 565File.WriteAllText(Path.Combine(tempDir.FullName, "Aspire.Cli.linux-x64.13.3.0-preview.1.25175.1.nupkg"), ""); 569("ASPIRE_E2E_DOTNET_TOOL_SOURCE", tempDir.FullName), 583Assert.Equal(tempDir.FullName, strategy.NupkgSourcePath); 729var strategy = CliInstallStrategy.FromDotnetToolLocalSource(tempDir.FullName, "13.3.0"); 778var strategy = CliInstallStrategy.FromDotnetToolLocalSource(tempDir.FullName, "13.3.0"); 833(CliE2ETestHelpers.CliArchiveDirEnvironmentVariableName, tempDir.FullName), 840Assert.Equal(tempDir.FullName, strategy.ArchiveDir); 861File.WriteAllText(Path.Combine(tempDir.FullName, "Aspire.Cli.13.3.0-preview.1.12345.1.nupkg"), ""); 863var strategy = CliInstallStrategy.FromLocalArchive(tempDir.FullName); 883File.WriteAllText(Path.Combine(tempDir.FullName, $"Aspire.Cli.{version}.nupkg"), ""); 885var strategy = CliInstallStrategy.FromLocalArchive(tempDir.FullName); 901File.WriteAllText(Path.Combine(tempDir.FullName, "Aspire.Cli.linux-x64.13.3.0.nupkg"), ""); 903var strategy = CliInstallStrategy.FromLocalArchive(tempDir.FullName); 919File.WriteAllText(Path.Combine(tempDir.FullName, "Aspire.Cli.13.3.0.nupkg"), ""); 920File.WriteAllText(Path.Combine(tempDir.FullName, "Aspire.Cli.13.4.0.nupkg"), ""); 922var exception = Assert.Throws<InvalidOperationException>(() => CliInstallStrategy.FromLocalArchive(tempDir.FullName)); 939File.WriteAllText(Path.Combine(tempDir.FullName, "Aspire.Cli.linux-x64.13.3.0.nupkg"), ""); 941var exception = Assert.Throws<InvalidOperationException>(() => CliInstallStrategy.FromDotnetToolLocalSource(tempDir.FullName)); 960("ASPIRE_E2E_DOTNET_TOOL_SOURCE", nupkgDir.FullName), 967(CliE2ETestHelpers.CliArchiveDirEnvironmentVariableName, archiveDir.FullName), 974Assert.Equal(nupkgDir.FullName, strategy.NupkgSourcePath);
Helpers\ConfigSourceTestContext.cs (2)
27_root = workspace.WorkspaceRoot.FullName; 269await File.WriteAllTextAsync(Path.Combine(directory.FullName, "platform.json"), $$"""
Helpers\IntegrationHostLifetimeTestHelper.cs (12)
20File.Copy(Path.Combine(directory, file), Path.Combine(evidence.FullName, file), overwrite: true); 23Path.Combine(evidence.FullName, "session.log"), overwrite: true); 26Path.Combine(evidence.FullName, "processes.jsonl"), 30File.Copy(Path.Combine(directory, "restart.log"), Path.Combine(evidence.FullName, "restart.log"), overwrite: true); 34File.Copy(Path.Combine(directory, "probe-stalled.log"), Path.Combine(evidence.FullName, "probe-stalled.log"), overwrite: true); 39Path.Combine(evidence.FullName, "install-session.log"), overwrite: true); 40File.Copy(Path.Combine(directory, "install.log"), Path.Combine(evidence.FullName, "install.log"), overwrite: true); 42Path.Combine(evidence.FullName, "install-processes.json"), overwrite: true); 45return evidence.FullName; 53Path.Combine(integration.FullName, "host-runtime.ts")); 54File.WriteAllText(Path.Combine(integration.FullName, "host.ts"), HostSource); 55File.WriteAllText(Path.Combine(integration.FullName, "package.json"), """
Helpers\LaunchSettingsPortHelpers.cs (1)
74Directory.EnumerateFiles(project.FullName, "launchSettings.json", SearchOption.AllDirectories).Order(StringComparer.Ordinal);
Helpers\TerminalRun.cs (2)
119var diagnosticsSource = Path.Combine(_workspace.WorkspaceRoot.FullName, CliE2EAutomatorHelpers.DiagnosticsDirectoryName); 134WriteTestOutput($"[TerminalRun] Source workspace: {_workspace.WorkspaceRoot.FullName}");
IntegrationHostLifetimeTests.cs (3)
63IntegrationHostLifetimeTestHelper.WriteFixture(workspace.WorkspaceRoot.FullName, repoRoot, target); 66IntegrationHostLifetimeTestHelper.WriteInstallCrashFixture(workspace.WorkspaceRoot.FullName); 152var evidence = IntegrationHostLifetimeTestHelper.CaptureEvidence(workspace.WorkspaceRoot.FullName, testName, target);
JavaCodegenValidationTests.cs (1)
52var modulesDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire/modules");
JavaEmptyAppHostTemplateTests.cs (1)
37Path.Combine(workspace.WorkspaceRoot.FullName, "JavaEmptyApp"),
JavaPolyglotApphostDirectoryTests.cs (1)
73var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "javaapp", "AppHost.java");
JavaPolyglotTests.cs (1)
55var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.java");
JavaScriptPublishTests.cs (8)
52CliE2ETestHelpers.WriteLocalChannelSettings(workspace.WorkspaceRoot.FullName, localChannel.SdkVersion); 114CliE2ETestHelpers.WriteLocalChannelSettings(workspace.WorkspaceRoot.FullName, localChannel.SdkVersion); 145var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts"); 178var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts"); 213var appDir = Path.Combine(workspace.WorkspaceRoot.FullName, appName); 277File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "verify-runtime.sh"), $$""" 330File.Copy(file, Path.Combine(workspace.WorkspaceRoot.FullName, Path.GetFileName(file))); 336var targetDir = Path.Combine(workspace.WorkspaceRoot.FullName, Path.GetFileName(fixtureDir));
KubernetesDeployBasicApiServiceTests.cs (1)
110Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName),
KubernetesDeployTypeScriptTests.cs (1)
76var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName);
KubernetesDeployTypeScriptWithPersistentVolumeTests.cs (1)
91var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName);
KubernetesDeployWithCertManagerTests.cs (2)
29var fixtureDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "pebble-eab"); 76workspace.WorkspaceRoot.FullName, projectName, typeScript ? "apphost.mts" : "apphost.cs");
KubernetesDeployWithFileKeyRefTests.cs (1)
124Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName),
KubernetesDeployWithGarnetTests.cs (1)
106Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName),
KubernetesDeployWithHelmChartTests.cs (1)
103Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName),
KubernetesDeployWithMongoDBTests.cs (1)
109Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName),
KubernetesDeployWithMySqlTests.cs (1)
103Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName),
KubernetesDeployWithNatsTests.cs (1)
102Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName),
KubernetesDeployWithPersistentVolumeTests.cs (1)
150Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName),
KubernetesDeployWithPostgresTests.cs (1)
103Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName),
KubernetesDeployWithProjectPersistentVolumeTests.cs (1)
131Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName),
KubernetesDeployWithRabbitMQTests.cs (1)
99Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName),
KubernetesDeployWithRedisTests.cs (1)
111Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName),
KubernetesDeployWithSqlServerTests.cs (1)
103Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName),
KubernetesDeployWithValkeyTests.cs (1)
106Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName),
KubernetesPublishRequiresExternalEndpointTests.cs (1)
89var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName);
KubernetesPublishTests.cs (2)
133var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName); 341workspace.WorkspaceRoot.FullName,
LaunchProfileTests.cs (2)
29File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "LaunchProfile.sln"), "Fake solution file"); 41var appHostDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "LaunchProfile.AppHost");
LaunchSettingsPortHelpersTests.cs (2)
130File.WriteAllText(Path.Combine(properties.FullName, "launchSettings.json"), content); 134Path.Combine(project.FullName, $"{project.Name}.AppHost", "Properties", "launchSettings.json");
LocalConfigMigrationTests.cs (2)
89var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.config.json"); 142var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, "StaleConfigApp", "aspire.config.json");
NewChannelNuGetConfigTests.cs (1)
64var nugetConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, projectName, "nuget.config");
OllamaIntegrationTests.cs (2)
52var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName); 74var crashDir = Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName, "crash");
PersistentContainerEndToEndTests.cs (1)
134Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName),
PodmanDeploymentTests.cs (1)
64var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName);
ProjectReferenceTests.cs (7)
34CreateRestoreProbePackage(Path.Combine(workspace.WorkspaceRoot.FullName, "source-feed")); 35Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "empty-source")); 75var workDir = workspace.WorkspaceRoot.FullName; 87File.WriteAllText(Path.Combine(integrationDirectory.FullName, "NuGet.Config"), """ 96File.WriteAllText(Path.Combine(integrationDirectory.FullName, "MyIntegration.csproj"), """ 156File.WriteAllText(Path.Combine(integrationDirectory.FullName, "MyIntegrationExtensions.cs"), """ 243var workDir = workspace.WorkspaceRoot.FullName;
PsCommandTests.cs (1)
99var outputFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "ps-output.json");
PythonReactTemplateTests.cs (1)
36Path.Combine(workspace.WorkspaceRoot.FullName, "AspirePyReactApp"),
RadiusDeployTests.cs (6)
118workspace.WorkspaceRoot.FullName, 146var appBicepPath = Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName, "radius-output", "app.bicep"); 323workspace.WorkspaceRoot.FullName, 351var appBicepPath = Path.Combine(workspace.WorkspaceRoot.FullName, PostgresProjectName, "radius-output", "app.bicep"); 582workspace.WorkspaceRoot.FullName, 620var appBicepPath = Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName, "radius-output", "app.bicep");
RadiusDotnetProjectDeployTests.cs (1)
27var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName);
RadiusPublishTests.cs (3)
81workspace.WorkspaceRoot.FullName, 116var outputDir = Path.Combine(workspace.WorkspaceRoot.FullName, ProjectName, "radius-output-v1"); 162workspace.WorkspaceRoot.FullName,
RepositoryToolUpdateTests.cs (3)
42var repositoryPath = Path.Combine(workspace.WorkspaceRoot.FullName, "repository"); 45var probeDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "package-manager-probes"); 46var invocationLogPath = Path.Combine(workspace.WorkspaceRoot.FullName, "package-manager-invocations.log");
ResourceCommandTests.cs (4)
40var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, projectName, "apphost.cs"); 138var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, projectName, "apphost.cs"); 235var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, projectName, "apphost.cs"); 343var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, projectName, "apphost.cs");
SdkExportTests.cs (2)
24var scriptPath = Path.Combine(workspace.WorkspaceRoot.FullName, "run-sdk-export.sh"); 25var exportPath = Path.Combine(workspace.WorkspaceRoot.FullName, "sdk-export.json");
SecretDotNetAppHostTests.cs (1)
93var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "DeploymentSecrets", "apphost.cs");
SelfUpdateChannelPersistenceTests.cs (1)
37var projectPath = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
SingleFileAppHostInitDotnetRunTests.cs (3)
66var appHostCs = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"); 67var aspireConfigJson = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.config.json"); 68var appHostRunJson = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.run.json");
SmokeTests.cs (2)
211var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, projectName, "apphost.cs"); 247var projectPath = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
StartStopTests.cs (6)
90Path.Combine(workspace.WorkspaceRoot.FullName, projectName, "Directory.Build.targets"), 129var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, projectName, "apphost.cs"); 205var bothInstancesPath = Path.Combine(workspace.WorkspaceRoot.FullName, "both-instances.json"); 206var remainingInstancePath = Path.Combine(workspace.WorkspaceRoot.FullName, "remaining-instance.json"); 207var stoppedInstancesPath = Path.Combine(workspace.WorkspaceRoot.FullName, "stopped-instances.json"); 343var assertionScript = Path.Combine(workspace.WorkspaceRoot.FullName, "assert-detached-process-group.py");
StopForceTests.cs (1)
44var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, projectName, "apphost.cs");
StopNonInteractiveTests.cs (4)
178await auto.TypeAsync($"cd {CliE2ETestHelpers.ToContainerPath(workspace.WorkspaceRoot.FullName, workspace)}"); 244await auto.TypeAsync($"cd {CliE2ETestHelpers.ToContainerPath(workspace.WorkspaceRoot.FullName, workspace)}"); 274new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "App2")), 275new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "App1")));
TerminalCommandTests.cs (2)
36var projectDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "TerminalReplicas"); 167var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "TerminalSupportApp", "apphost.mts");
tests\Aspire.Hosting.TestUtilities\Utils\MSBuildUtils.cs (1)
15directory = Directory.GetParent(directory)!.FullName;
tests\Shared\TemporaryWorkspace.cs (11)
21public string Path => workspaceDirectory.FullName; 30if (s_preservedWorkspaces.ContainsKey(workspaceDirectory.FullName)) 32outputHelper.WriteLine($"Preserved temporary workspace at: {workspaceDirectory.FullName}"); 36outputHelper.WriteLine($"Disposing temporary workspace at: {workspaceDirectory.FullName}"); 44outputHelper.WriteLine($"Failed to delete temporary workspace '{workspaceDirectory.FullName}': {ex.Message}"); 105throw new IOException($"Cannot delete '{file.FullName}': {ex.Message}", ex); 116throw new IOException($"Cannot delete directory '{directory.FullName}': {ex.Message}", ex); 156s_preservedWorkspaces[workspaceDirectory.FullName] = 0; 157outputHelper.WriteLine($"Marked temporary workspace for preservation: {workspaceDirectory.FullName}"); 194outputHelper.WriteLine($"Temporary workspace created at: {workspaceDirectory.FullName}"); 198TestContext.Current?.KeyValueStorage["WorkspacePath"] = workspaceDirectory.FullName;
TypeScriptBlazorGatewayTests.cs (3)
71CliE2ETestHelpers.WriteLocalChannelSettings(workspace.WorkspaceRoot.FullName, localChannel.SdkVersion); 83var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts"); 96var verificationScriptPath = Path.Combine(workspace.WorkspaceRoot.FullName, "verify-blazor-gateway.sh");
TypeScriptCodegenValidationTests.cs (10)
53TypeScriptAppHostToolchainTestHelpers.SetPackageManager(workspace.WorkspaceRoot.FullName, toolchain, cleanInstallState: true); 61CliE2ETestHelpers.WriteLocalChannelSettings(workspace.WorkspaceRoot.FullName, localChannel.SdkVersion); 80workspace.WorkspaceRoot.FullName, 88var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts"); 119var modulesDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "modules"); 190var modulesDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "modules"); 251var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.config.json"); 264var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts"); 315var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts"); 397var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts");
TypeScriptEmptyAppHostTemplateTests.cs (4)
37var appDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "TsEmptyApp"); 92var appDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "TsDeadlockRepro"); 108File.WriteAllText(Path.Combine(extensionDirectory.FullName, "DeadlockExtension.csproj"), $$""" 122File.WriteAllText(Path.Combine(extensionDirectory.FullName, "DeadlockExtensions.cs"), """
TypeScriptLegacyAppHostTests.cs (2)
58ConvertScaffoldToLegacyAppHostTs(workspace.WorkspaceRoot.FullName); 76AssertLegacyModulesLayout(workspace.WorkspaceRoot.FullName);
TypeScriptMigrateAppHostTests.cs (2)
58ConvertScaffoldToLegacyAppHostTs(workspace.WorkspaceRoot.FullName); 74AssertModernModulesLayout(workspace.WorkspaceRoot.FullName);
TypeScriptPolyglotApphostDirectoryTests.cs (1)
59var projectRoot = Path.Combine(workspace.WorkspaceRoot.FullName, "tsapp");
TypeScriptPolyglotTests.cs (20)
63TypeScriptAppHostToolchainTestHelpers.SetPackageManager(workspace.WorkspaceRoot.FullName, toolchain, cleanInstallState: true); 71CliE2ETestHelpers.WriteLocalChannelSettings(workspace.WorkspaceRoot.FullName, localChannel.SdkVersion); 82var viteProjectRoot = Path.Combine(workspace.WorkspaceRoot.FullName, "viteapp"); 98var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts"); 122workspace.WorkspaceRoot.FullName, 186TypeScriptAppHostToolchainTestHelpers.SetPackageManager(workspace.WorkspaceRoot.FullName, appHostToolchain, cleanInstallState: true); 190CliE2ETestHelpers.WriteLocalChannelSettings(workspace.WorkspaceRoot.FullName, localChannel.SdkVersion); 197var viteProjectRoot = Path.Combine(workspace.WorkspaceRoot.FullName, "viteapp"); 208var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts"); 228workspace.WorkspaceRoot.FullName, 272TypeScriptAppHostToolchainTestHelpers.SetPackageManager(workspace.WorkspaceRoot.FullName, toolchain, cleanInstallState: true); 276CliE2ETestHelpers.WriteLocalChannelSettings(workspace.WorkspaceRoot.FullName, localChannel.SdkVersion); 284workspace.WorkspaceRoot.FullName, 346TypeScriptAppHostToolchainTestHelpers.SetPackageManager(workspace.WorkspaceRoot.FullName, "deno", cleanInstallState: true); 349CliE2ETestHelpers.WriteLocalChannelSettings(workspace.WorkspaceRoot.FullName, localChannel.SdkVersion); 352var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.config.json"); 360var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts"); 361var restartCountPath = Path.Combine(workspace.WorkspaceRoot.FullName, ".deno-watch-restart-count"); 426Path.Combine(workspace.WorkspaceRoot.FullName, "package.json"), 447var projectRoot = Path.Combine(workspace.WorkspaceRoot.FullName, "packages", "brownfield");
TypeScriptPublishTests.cs (13)
45CliE2ETestHelpers.WriteLocalChannelSettings(workspace.WorkspaceRoot.FullName, localChannel.SdkVersion); 51var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts"); 123var artifactsPath = Path.Combine(workspace.WorkspaceRoot.FullName, "artifacts"); 140var failureLog = await File.ReadAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "callback-failure.log")); 186var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts"); 249CliE2ETestHelpers.WriteLocalChannelSettings(workspace.WorkspaceRoot.FullName, localChannel.SdkVersion); 271var artifactsPath = Path.Combine(workspace.WorkspaceRoot.FullName, "artifacts"); 362var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts"); 390var dockerComposePath = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire-output", "docker-compose.yaml"); 437var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts"); 468var envFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "artifacts", ".env"); 478var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts"); 512Path.Combine(workspace.WorkspaceRoot.FullName, fixtureName));
TypeScriptReusablePackageTests.cs (15)
31var appDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "app")); 32var helperDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "packages", "aspire-commands")); 35await auto.TypeAsync($"cd {CliE2ETestHelpers.ToContainerPath(appDirectory.FullName, workspace)}"); 44var appAppHostPath = Path.Combine(appDirectory.FullName, "apphost.mts"); 57var helperAppHostPath = Path.Combine(helperDirectory.FullName, "apphost.mts"); 60await auto.TypeAsync($"cd {CliE2ETestHelpers.ToContainerPath(helperDirectory.FullName, workspace)}"); 69var helperModulesDirectory = Path.Combine(helperDirectory.FullName, ".aspire", "modules"); 77await auto.TypeAsync($"cd {CliE2ETestHelpers.ToContainerPath(appDirectory.FullName, workspace)}"); 93var configPath = Path.Combine(appDirectory.FullName, "aspire.config.json"); 101File.WriteAllText(Path.Combine(appDirectory.FullName, "apphost.mts"), """ 113File.WriteAllText(Path.Combine(appDirectory.FullName, "tsconfig.json"), """ 141File.WriteAllText(Path.Combine(helperDirectory.FullName, "aspire.config.json"), $$""" 155File.WriteAllText(Path.Combine(helperDirectory.FullName, "package.json"), """ 171File.WriteAllText(Path.Combine(helperDirectory.FullName, "tsconfig.json"), """ 194File.WriteAllText(Path.Combine(helperSourceDirectory.FullName, "index.ts"), """
TypeScriptSqlServerNativeAssetsBundleTests.cs (1)
54var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts");
TypeScriptStarterSmokeTests.cs (1)
50var projectRoot = Path.Combine(workspace.WorkspaceRoot.FullName, "TsStarterApp");
TypeScriptStarterTemplateTests.cs (1)
37var projectRoot = Path.Combine(workspace.WorkspaceRoot.FullName, "TsStarterApp");
UpdateChannelNuGetConfigOrderingTests.cs (4)
95var appHostCsPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"); 96var nugetConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"); 97var aspireConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.config.json"); 143CliE2ETestHelpers.WriteLocalChannelSettings(workspace.WorkspaceRoot.FullName, localChannel.SdkVersion);
Aspire.Cli.Tests (5966)
Acquisition\IdentityResolverTests.cs (19)
27WriteSidecar(workspace.WorkspaceRoot.FullName, """{"source":"script","channel":"staging"}"""); 42WriteSidecar(workspace.WorkspaceRoot.FullName, """{"source":"script","channel":"staging"}"""); 85WriteSidecar(workspace.WorkspaceRoot.FullName, """{"source":"script","channel":"staging"}"""); 170WriteSidecar(workspace.WorkspaceRoot.FullName, """{"source":"script","version":"garbage"}"""); 270WriteSidecar(workspace.WorkspaceRoot.FullName, """{"source":"script","nugetServiceIndexOverride":"http://sidecar/v3/index.json"}"""); 285WriteSidecar(workspace.WorkspaceRoot.FullName, """{"source":"script","nugetServiceIndexOverride":"http://proxy.local/v3/index.json"}"""); 311WriteSidecar(workspace.WorkspaceRoot.FullName, """{"source":"script","packages":"/sidecar/packages"}"""); 326WriteSidecar(workspace.WorkspaceRoot.FullName, """{"source":"script","packages":"/sidecar/packages"}"""); 376WriteSidecar(workspace.WorkspaceRoot.FullName, JsonSerializer.Serialize(sidecar)); 408workspace.WorkspaceRoot.FullName, 431WriteSidecar(workspace.WorkspaceRoot.FullName, """{"source":"script"}"""); 451workspace.WorkspaceRoot.FullName, 458[IdentityResolver.PackagesEnvVar] = packagesDirectory.FullName, 467Assert.Equal(packagesDirectory.FullName, context.IdentityPackagesDirectory!.FullName); 517IdentityField.Packages => workspace.CreateDirectory("identity-packages").FullName, 566workspace.WorkspaceRoot.FullName, 580logsDirectory: Path.Combine(workspace.WorkspaceRoot.FullName, "logs"), 581logFilePath: Path.Combine(workspace.WorkspaceRoot.FullName, "logs", "test.log"),
Acquisition\InstallationDiscoveryDiscoverAllTests.cs (31)
39var pathDir = Path.Combine(workspace.WorkspaceRoot.FullName, "no-sidecar-bin"); 69var pathDir = Path.Combine(workspace.WorkspaceRoot.FullName, "unreadable-bin"); 101var pathDir = Path.Combine(workspace.WorkspaceRoot.FullName, "malformed-bin"); 128var binDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "bin"); 163var firstPathDir = Path.Combine(workspace.WorkspaceRoot.FullName, "path-first"); 164var secondPathDir = Path.Combine(workspace.WorkspaceRoot.FullName, "path-second"); 165var offPathDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "bin"); 218var binDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "bin"); 249var binDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "bin"); 276var prDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "dogfood", "pr-9999", "bin"); 300var binDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "bin"); 322var binDir = Path.Combine(workspace.WorkspaceRoot.FullName, hasInstallMetadata ? "metadata-bin" : "no-metadata-bin"); 366var prDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "dogfood", "pr-12345", "bin"); 400var prDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "dogfood", "pr-12345", "bin"); 435var brewDir = Path.Combine(workspace.WorkspaceRoot.FullName, "Caskroom", "aspire", "13.4.0-pr.17115.gcd700928"); 471var brewDir = Path.Combine(workspace.WorkspaceRoot.FullName, "Caskroom", "aspire", "13.4.0"); 509var binary = Path.Combine(workspace.WorkspaceRoot.FullName, "dogfood", labelName, "bin", "aspire"); 523var binary = Path.Combine(workspace.WorkspaceRoot.FullName, "staging", "pr-1234", "bin", "aspire"); 534var binary = Path.Combine(workspace.WorkspaceRoot.FullName, "dogfood", "pr-9876", "bin", "aspire"); 574var pathDir = Path.Combine(workspace.WorkspaceRoot.FullName, "no-sidecar-bin"); 606var staleDogfoodDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "dogfood", "pr-9999"); 637var dogfoodRoot = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "dogfood"); 680var toolStore = Path.Combine(workspace.WorkspaceRoot.FullName, ".dotnet", "tools", ".store", "aspire.cli"); 762var releaseBinDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "bin"); 792var releaseBinDir = Path.Combine(aspireHome.FullName, "bin"); 815logFilePath: Path.Combine(root.FullName, "test.log"), 847var binDir = Path.Combine(workspace.WorkspaceRoot.FullName, "firmlink-self-bin"); 922var binDir = Path.Combine(workspace.WorkspaceRoot.FullName, "hint-bin"); 925var fakeCanonical = Path.Combine(workspace.WorkspaceRoot.FullName, "deliberately-different-canonical-path", "aspire"); 958return resolved?.FullName ?? Path.GetFullPath(path); 996logFilePath: Path.Combine(root.FullName, "test.log"),
Acquisition\InstallSidecarReaderTests.cs (29)
31WriteSidecar(workspace.WorkspaceRoot.FullName, $"{{\"source\":\"{wireValue}\"}}"); 34var result = reader.TryRead(workspace.WorkspaceRoot.FullName); 45var expectedPath = Path.Combine(workspace.WorkspaceRoot.FullName, InstallSidecarReader.SidecarFileName); 48var result = reader.TryRead(workspace.WorkspaceRoot.FullName); 76var sidecarPath = WriteSidecar(workspace.WorkspaceRoot.FullName, "{\"source\":\"script\"}"); 84var result = reader.TryRead(workspace.WorkspaceRoot.FullName); 100var sidecarPath = WriteSidecar(workspace.WorkspaceRoot.FullName, "{not valid json"); 103var result = reader.TryRead(workspace.WorkspaceRoot.FullName); 123WriteSidecar(workspace.WorkspaceRoot.FullName, sidecarBody); 126var result = reader.TryRead(workspace.WorkspaceRoot.FullName); 137WriteSidecar(workspace.WorkspaceRoot.FullName, "{\"source\":\"script\"}"); 140var result = reader.TryRead(workspace.WorkspaceRoot.FullName); 143var expectedPath = Path.Combine(workspace.WorkspaceRoot.FullName, InstallSidecarReader.SidecarFileName); 151var sidecarPath = WriteSidecar(workspace.WorkspaceRoot.FullName, "{\"source\":\"script\"}"); 162var sidecarPath = Path.Combine(workspace.WorkspaceRoot.FullName, InstallSidecarReader.SidecarFileName); 173var sidecarPath = WriteSidecar(workspace.WorkspaceRoot.FullName, "{not valid json"); 190var sidecarPath = WriteSidecar(workspace.WorkspaceRoot.FullName, "{\"source\":\"script\"}"); 235var sidecarPath = Path.Combine(workspace.WorkspaceRoot.FullName, InstallSidecarReader.SidecarFileName); 240var result = reader.TryRead(workspace.WorkspaceRoot.FullName); 251var sidecarPath = Path.Combine(workspace.WorkspaceRoot.FullName, InstallSidecarReader.SidecarFileName); 267var sidecarPath = Path.Combine(workspace.WorkspaceRoot.FullName, InstallSidecarReader.SidecarFileName); 272var result = reader.TryRead(workspace.WorkspaceRoot.FullName); 285var sidecarPath = Path.Combine(workspace.WorkspaceRoot.FullName, InstallSidecarReader.SidecarFileName); 300WriteSidecar(workspace.WorkspaceRoot.FullName, "{\"source\":\"script\",\"futureField\":\"value\",\"nested\":{\"a\":1,\"b\":[1,2]}}"); 303var result = reader.TryRead(workspace.WorkspaceRoot.FullName); 320workspace.WorkspaceRoot.FullName, 332var ok = Assert.IsType<InstallSidecarReadResult.Ok>(reader.TryRead(workspace.WorkspaceRoot.FullName)); 349WriteSidecar(workspace.WorkspaceRoot.FullName, "{\"source\":\"script\"}"); 352var ok = Assert.IsType<InstallSidecarReadResult.Ok>(reader.TryRead(workspace.WorkspaceRoot.FullName));
Acquisition\InstallSourceDetectorTests.cs (6)
26File.WriteAllText(Path.Combine(binaryDirectory.FullName, InstallSidecarReader.SidecarFileName), $$"""{"source":"{{source}}"}"""); 31var detector = CreateDetector(Path.Combine(binaryDirectory.FullName, "aspire.exe"), environment, new TestWindowsRegistryReader(true)); 236File.WriteAllText(Path.Combine(directory.FullName, InstallSidecarReader.SidecarFileName), sidecar); 242var detector = CreateDetector(Path.Combine(directory.FullName, "aspire"), environment); 265var processPath = Path.Combine(installDirectory.FullName, "aspire"); 267File.WriteAllText(Path.Combine(installDirectory.FullName, InstallSidecarReader.SidecarFileName), """{"source":"brew"}""");
Acquisition\PeerInstallProbeTests.cs (7)
68var missing = Path.Combine(workspace.WorkspaceRoot.FullName, "does-not-exist"); 392var pidFile = Path.Combine(workspace.WorkspaceRoot.FullName, "peer.pid"); 520var argvFile = Path.Combine(workspace.WorkspaceRoot.FullName, "argv.txt"); 522? Path.Combine(workspace.WorkspaceRoot.FullName, "peer.cmd") 523: Path.Combine(workspace.WorkspaceRoot.FullName, "peer"); 545? Path.Combine(workspace.WorkspaceRoot.FullName, "peer.cmd") 546: Path.Combine(workspace.WorkspaceRoot.FullName, "peer");
Agents\AgentConfigurationTestContext.cs (2)
31["ProgramFiles"] = Path.Combine(Workspace.WorkspaceRoot.FullName, "system"), 32["ProgramData"] = Path.Combine(Workspace.WorkspaceRoot.FullName, "system-data")
Agents\AgentConfigurationTests.cs (38)
32var path = Path.Combine(_context.Project.FullName, "settings.json"); 55var path = Path.Combine(_context.Project.FullName, "settings.json"); 81var path = Path.Combine(_context.Project.FullName, "settings.json"); 108var path = Path.Combine(_context.Project.FullName, "settings.json"); 133var directory = Path.Combine(_context.Project.FullName, "missing"); 143Assert.Empty(Directory.GetFiles(_context.Project.FullName, "*", SearchOption.AllDirectories)); 151var path = Path.Combine(_context.Project.FullName, "settings.json"); 163Assert.Equal(existed ? [path] : [], Directory.GetFiles(_context.Project.FullName)); 173var path = Path.Combine(_context.Project.FullName, "settings.json"); 188Assert.Equal([path], Directory.GetFiles(_context.Project.FullName)); 210Assert.Equal([path], Directory.GetFiles(_context.Project.FullName, "*", SearchOption.AllDirectories)); 272Assert.Empty(Directory.GetFiles(_context.Project.FullName, "*", SearchOption.AllDirectories)); 324var path = Path.Combine(_context.Project.FullName, "settings.json"); 325var target = Path.Combine(_context.Project.FullName, "linked.json"); 355var path = Path.Combine(_context.Project.FullName, "settings.json"); 387Assert.Equal([path], Directory.GetFiles(_context.Project.FullName)); 401var path = Path.Combine(_context.Project.FullName, "settings.json"); 408TestPosixAcl.SetDefault(_context.Project.FullName, "user::rwx,user:65534:r-x,group::---,mask::r-x,other::---"); 423Assert.Equal([path], Directory.GetFiles(_context.Project.FullName)); 434var path = Path.Combine(_context.Project.FullName, "settings.json"); 461var path = Path.Combine(_context.Project.FullName, "settings.json"); 516Assert.Equal([path], Directory.GetFiles(_context.Project.FullName)); 525Assert.Equal(Path.Combine(_context.Project.FullName, ".github", "copilot", "settings.json"), 538var project = await File.ReadAllTextAsync(Path.Combine(_context.Project.FullName, ".github", "copilot", "settings.json")).DefaultTimeout(); 541Assert.False(Directory.Exists(Path.Combine(_context.Project.FullName, ".vscode"))); 576var project = await File.ReadAllTextAsync(Path.Combine(_context.Project.FullName, ".claude", "settings.json")).DefaultTimeout(); 593var path = local ? Path.Combine(_context.Project.FullName, ".claude", "settings.local.json") 602Directory.EnumerateFiles(_context.Project.FullName, "*", SearchOption.AllDirectories)); 616var target = Path.Combine(_context.Project.FullName, ".claude", "settings.json"); 652var target = Path.Combine(_context.Project.FullName, ".claude", "settings.json"); 667var custom = Path.Combine(_context.Home.FullName, "claude-work"); 677Assert.False(File.Exists(Path.Combine(_context.Home.FullName, ".claude.json"))); 684_context.SetVariable("COPILOT_HOME", Path.Combine(_context.Project.FullName, ".github", "copilot")); 689Assert.Equal(Path.Combine(_context.Project.FullName, ".github", "copilot", "settings.json"), results[0].TargetPath); 690Assert.Equal([results[0].TargetPath], Directory.EnumerateFiles(_context.Project.FullName, "*", SearchOption.AllDirectories)); 706Assert.Equal([result.TargetPath], Directory.EnumerateFiles(_context.Home.FullName, "*", SearchOption.AllDirectories)); 734var unreadable = Path.Combine(_context.Project.FullName, ".github", "copilot", "settings.json"); 741Assert.True(File.Exists(Path.Combine(_context.Project.FullName, ".claude", "settings.json")));
Agents\AgentEnvironmentDetectorTests.cs (4)
43Assert.Equal(workspace.WorkspaceRoot.FullName, scanner.ScanContext?.WorkingDirectory.FullName); 44Assert.Equal(workspace.WorkspaceRoot.FullName, scanner.ScanContext?.RepositoryRoot.FullName);
Agents\AgentPathTests.cs (4)
25? _context.Home.FullName 26: Path.Combine(_context.Home.FullName, relative.Replace('/', Path.DirectorySeparatorChar)); 41var expected = Path.Combine(_context.Home.FullName, "custom-config"); 55Assert.Equal(Path.Combine(_context.Project.FullName, "~other-user"), AgentPath.Expand("~other-user", _context.ExecutionContext));
Agents\AspireSkillsBundleTests.cs (1)
940return Directory.CreateTempSubdirectory("aspire-skills-bundle-test-").FullName;
Agents\AspireSkillsInstallerTests.cs (19)
88var cacheRoot = Path.Combine(executionContext.CacheDirectory.FullName, "aspire-skills"); 446var cachedBundleDirectory = Path.Combine(executionContext.CacheDirectory.FullName, "aspire-skills", AspireSkillsInstaller.Version); 558executionContext.CacheDirectory.FullName, 595var cacheRoot = Path.Combine(executionContext.CacheDirectory.FullName, "aspire-skills"); 640var cacheRoot = Path.Combine(executionContext.CacheDirectory.FullName, "aspire-skills"); 687var cacheRoot = Path.Combine(executionContext.CacheDirectory.FullName, "aspire-skills"); 756var cacheRoot = Path.Combine(executionContext.CacheDirectory.FullName, "aspire-skills"); 882executionContext.CacheDirectory.FullName, 900var cacheRoot = Path.Combine(executionContext.CacheDirectory.FullName, "aspire-skills"); 947var cacheRoot = Path.Combine(executionContext.CacheDirectory.FullName, "aspire-skills"); 954var staleDirectory = Directory.CreateDirectory(Path.Combine(cacheRoot, $"{prefix}stale")).FullName; 957recentDirectories.Add(Directory.CreateDirectory(Path.Combine(cacheRoot, $"{prefix}recent")).FullName); 1019var cacheRoot = Path.Combine(executionContext.CacheDirectory.FullName, "aspire-skills"); 1492Directory.Move(stageDirectory.FullName, targetDirectory); 2180executionContext.CacheDirectory.FullName, 2236return Directory.CreateTempSubdirectory("aspire-skills-installer-test-").FullName; 2315Directory.CreateDirectory(bundleDirectory.FullName); 2316var archivePath = Path.Combine(bundleDirectory.FullName, $".test-embedded-{Guid.NewGuid():N}.tgz"); 2346archive.FullName,
Agents\ClaudeCodeAgentEnvironmentScannerTests.cs (8)
22var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, ".mcp.json"); 59? new DirectoryInfo(workspace.WorkspaceRoot.FullName + Path.DirectorySeparatorChar) 62var before = Directory.GetFileSystemEntries(workspace.WorkspaceRoot.FullName, "*", SearchOption.AllDirectories); 68Assert.Equal(before, Directory.GetFileSystemEntries(workspace.WorkspaceRoot.FullName, "*", SearchOption.AllDirectories)); 108Directory.CreateDirectory(Path.Combine(workingDirectory.FullName, ".claude")); 111Directory.CreateDirectory(Path.Combine(selectedRoot.FullName, ".claude")); 123var before = Directory.GetFileSystemEntries(workspace.WorkspaceRoot.FullName, "*", SearchOption.AllDirectories); 129Assert.Equal(before, Directory.GetFileSystemEntries(workspace.WorkspaceRoot.FullName, "*", SearchOption.AllDirectories));
Agents\CopilotAgentEnvironmentScannerTests.cs (3)
33var before = Directory.GetFileSystemEntries(workspace.WorkspaceRoot.FullName, "*", SearchOption.AllDirectories); 40Assert.Equal(before, Directory.GetFileSystemEntries(workspace.WorkspaceRoot.FullName, "*", SearchOption.AllDirectories)); 74var configPath = Path.Combine(configDirectory.FullName, "mcp-config.json");
Agents\CopilotAppInstallationDetectorTests.cs (16)
17Path.Combine(localAppData.FullName, "Programs", "GitHub Copilot")); 19Path.Combine(appDirectory.FullName, "github.exe"), 24["LOCALAPPDATA"] = localAppData.FullName, 26var executablePath = Path.Combine(appDirectory.FullName, "github.exe"); 35var appBundlePath = Path.Combine(workspace.WorkspaceRoot.FullName, "Applications", "GitHub Copilot.app"); 63Path.Combine(applicationsDirectory.FullName, "github-copilot.desktop"), 70var desktopEntryPath = Path.Combine(applicationsDirectory.FullName, "github-copilot.desktop"); 86Path.Combine(workspace.WorkspaceRoot.FullName, ".local", "share", "applications"), 102["XDG_DATA_HOME"] = dataHome.FullName, 105firstDataDirectory.FullName, 107secondDataDirectory.FullName), 113Path.Combine(dataHome.FullName, "applications"), 114Path.Combine(firstDataDirectory.FullName, "applications"), 115Path.Combine(secondDataDirectory.FullName, "applications"), 128["XDG_DATA_HOME"] = dataHome.FullName, 129["XDG_DATA_DIRS"] = dataDirectory.FullName,
Agents\LocalAspireSkillsTests.cs (25)
26var paths = names.Select(name => Path.Combine(_context.Project.FullName, ".agents", "skills", name, "SKILL.md")).ToArray(); 32Assert.False(Directory.Exists(_context.ExecutionContext.CacheDirectory.FullName)); 49var path = Path.Combine(_context.Project.FullName, directory, "skills", "aspire", "SKILL.md"); 52var empty = Path.Combine(_context.Project.FullName, directory, "skills", "aspire-init", "SKILL.md"); 55await AgentConfigurationTestContext.WriteAsync(Path.Combine(_context.Project.FullName, directory, "skills", "aspire-custom", "SKILL.md"), "unrelated"); 56await AgentConfigurationTestContext.WriteAsync(Path.Combine(_context.Project.FullName, directory, "skills", "playwright-cli", "SKILL.md"), "unrelated"); 72var project = Path.Combine(_context.Project.FullName, ".agents", "skills", "aspire-init", "SKILL.md"); 73var user = Path.Combine(_context.Home.FullName, ".agents", "skills", "aspireify", "SKILL.md"); 86var custom = Path.Combine(_context.Home.FullName, "claude-work"); 90await AgentConfigurationTestContext.WriteAsync(Path.Combine(_context.Home.FullName, ".claude", "skills", "aspire", "SKILL.md"), "old home"); 91await AgentConfigurationTestContext.WriteAsync(Path.Combine(_context.Project.FullName, ".github", "skills", "aspire", "SKILL.md"), "other agent"); 103_context.SetVariable("OPENCODE_CONFIG_DIR", custom.FullName); 106Path.Combine(_context.Project.FullName, ".opencode", "skill", "aspire", "SKILL.md"), 107Path.Combine(custom.FullName, "skills", "aspire-orchestration", "SKILL.md") 129: Path.Combine(_context.Project.FullName, ".opencode", "opencode.jsonc"); 132Path.Combine(_context.Project.FullName, "team-skills", "aspire", "SKILL.md"), 133Path.Combine(_context.Home.FullName, "shared-skills", "aspireify", "SKILL.md") 161var path = Path.Combine(_context.Project.FullName, "opencode.json"); 176await AgentConfigurationTestContext.WriteAsync(Path.Combine(_context.Project.FullName, "unrelated", ".agents", "skills", "aspire", "SKILL.md"), "unrelated"); 196.Select(root => Path.Combine(root.FullName, directory, "skills", "aspire", "SKILL.md")).ToArray(); 202Path.Combine(parent.FullName, "sibling", directory, "skills", "aspire", "SKILL.md"), "unrelated"); 219var selected = Path.Combine(_context.Project.FullName, ".agents", "skills", "aspire", "SKILL.md"); 221await AgentConfigurationTestContext.WriteAsync(Path.Combine(outside.FullName, ".agents", "skills", "aspire", "SKILL.md"), "outside"); 234var path = Path.Combine(_context.Project.FullName, ".agents", "skills", "aspire", "SKILL.md"); 236await AgentConfigurationTestContext.WriteAsync(Path.Combine(_context.Project.FullName, ".agents", "skills", "aspireify", "SKILL.md"), "readable");
Agents\OpenCodeAgentClientTests.cs (23)
22var nestedConfig = Path.Combine(workingDirectory.FullName, "opencode.json"); 28Assert.Equal(Path.Combine(_context.Project.FullName, "opencode.jsonc"), target); 46var lowerPath = Path.Combine(_context.Project.FullName, "opencode.json"); 47var ownerPath = Path.Combine(_context.Project.FullName, ".opencode", "opencode.json"); 74var json = Path.Combine(_context.Project.FullName, "opencode.json"); 103var directory = scope is AgentConfigurationScope.Project ? _context.Project.FullName : _context.OpenCodeDirectory; 125var json = Path.Combine(_context.Project.FullName, "opencode.json"); 144var path = Path.Combine(_context.Project.FullName, "opencode.json"); 156var path = Path.Combine(_context.Project.FullName, "opencode.json"); 190var root = Path.Combine(_context.Project.FullName, "opencode.jsonc"); 193var path = Path.Combine(_context.Project.FullName, ".opencode", "opencode.jsonc"); 214var path = Path.Combine(_context.Project.FullName, "opencode.json"); 240var path = Path.Combine(_context.Project.FullName, "opencode.json"); 265var path = Path.Combine(_context.Project.FullName, "opencode.json"); 291var path = Path.Combine(_context.Project.FullName, "opencode.json"); 306var directory = scope is AgentConfigurationScope.Project ? _context.Project.FullName : _context.OpenCodeDirectory; 344? Path.Combine(_context.Project.FullName, "~", "custom-opencode") 345: Path.Combine(_context.Home.FullName, "custom-opencode"); 359Directory.EnumerateFiles(_context.Home.FullName, "*", SearchOption.AllDirectories) 360.Concat(Directory.EnumerateFiles(_context.Project.FullName, "*", SearchOption.AllDirectories)).Order()); 368var selected = Path.Combine(_context.Home.FullName, "selected", "custom.jsonc"); 369var customDirectory = Path.Combine(_context.Home.FullName, "custom-opencode"); 386Directory.EnumerateFiles(_context.Home.FullName, "*", SearchOption.AllDirectories).Order());
Agents\OpenCodeAgentEnvironmentScannerTests.cs (3)
24var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, fileName); 54var before = Directory.GetFileSystemEntries(workspace.WorkspaceRoot.FullName, "*", SearchOption.AllDirectories); 60Assert.Equal(before, Directory.GetFileSystemEntries(workspace.WorkspaceRoot.FullName, "*", SearchOption.AllDirectories));
Agents\PlaywrightCliInstallerTests.cs (12)
39var directory = Path.Combine(root.FullName, scopeName, clientFolder, "skills", PlaywrightCliInstaller.PlaywrightCliSkillName); 67var sharedDirectory = Path.Combine(root.FullName, scope, ".agents", "skills"); 72Path.Combine(root.FullName, scope, ".claude", "skills") 85foreach (var path in Directory.EnumerateFiles(root.FullName, "*", SearchOption.AllDirectories)) 87files.Add(Path.GetRelativePath(root.FullName, path).Replace('\\', '/'), await File.ReadAllTextAsync(path)); 110new HashSet<string> { Path.Combine(root.FullName, ".agents", "skills") }, CancellationToken.None); 132var blockedPath = Path.Combine(root.FullName, "blocked"); 135var destination = Path.Combine(root.FullName, "skills"); 184new HashSet<string> { Path.Combine(root.FullName, "skills") }, CancellationToken.None); 227var destination = Path.Combine(root.FullName, "skills"); 466var tempDir = Directory.CreateTempSubdirectory("test-playwright-").FullName; 602var tempDir = Directory.CreateTempSubdirectory("test-playwright-").FullName;
Agents\TelemetryHookConfiguratorTests.cs (24)
30var hookFile = Path.Combine(home.FullName, ".copilot", "hooks", "aspire-telemetry.json"); 60Assert.True(File.Exists(Path.Combine(home.FullName, ".copilot", "hooks", "aspire-telemetry.json"))); 61Assert.True(File.Exists(Path.Combine(home.FullName, ".claude", "settings.json"))); 69var copilotHome = Path.Combine(workspace.WorkspaceRoot.FullName, "copilot-home-file"); 84Assert.True(File.Exists(Path.Combine(home.FullName, ".claude", "settings.json"))); 96["COPILOT_HOME"] = copilotHome.FullName, 101Assert.True(File.Exists(Path.Combine(copilotHome.FullName, "hooks", "aspire-telemetry.json"))); 102Assert.False(Directory.Exists(Path.Combine(home.FullName, ".copilot"))); 150var claudeDirectory = Directory.CreateDirectory(Path.Combine(home.FullName, ".claude")); 151var settingsPath = Path.Combine(claudeDirectory.FullName, "settings.json"); 189var claude = Directory.CreateDirectory(Path.Combine(home.FullName, ".claude")); 190await File.WriteAllTextAsync(Path.Combine(claude.FullName, "settings.json"), 215var claudeDirectory = Directory.CreateDirectory(Path.Combine(home.FullName, ".claude")); 216var settingsPath = Path.Combine(claudeDirectory.FullName, "settings.json"); 239var claude = Directory.CreateDirectory(Path.Combine(home.FullName, ".claude")); 262await File.WriteAllTextAsync(Path.Combine(claude.FullName, "settings.json"), settings.ToJsonString()); 282var claudeDirectory = Directory.CreateDirectory(Path.Combine(home.FullName, ".claude")); 283var settingsPath = Path.Combine(claudeDirectory.FullName, "settings.json"); 299var claudeDirectory = Directory.CreateDirectory(Path.Combine(home.FullName, ".claude")); 300var settingsPath = Path.Combine(claudeDirectory.FullName, "settings.json"); 327Assert.False(Directory.Exists(Path.Combine(home.FullName, ".aspire", "hooks"))); 328Assert.False(Directory.Exists(Path.Combine(home.FullName, ".copilot"))); 329Assert.False(Directory.Exists(Path.Combine(home.FullName, ".claude"))); 334var settingsPath = Path.Combine(home.FullName, ".claude", "settings.json");
Agents\TelemetryHookInstallerTests.cs (4)
26var expectedDirectory = Path.Combine(home.FullName, ".aspire", "hooks"); 52await using var manifestStream = File.OpenRead(Path.Combine(bundleDirectory.FullName, "skill-manifest.json")); 70var bundledPath = Path.Combine(bundleDirectory.FullName, "hooks", "scripts", file.Name); 123var hooksDirectory = Path.Combine(home.FullName, ".aspire", "hooks");
Agents\TelemetryHookScriptTests.cs (4)
514var capturePath = Path.Combine(workspace.WorkspaceRoot.FullName, "capture.txt"); 515var recorderPath = CreateBashRecorder(workspace.WorkspaceRoot.FullName); 528var capturePath = Path.Combine(workspace.WorkspaceRoot.FullName, "capture.txt"); 529var recorderPath = CreatePwshRecorder(workspace.WorkspaceRoot.FullName);
Agents\VsCodeAgentEnvironmentScannerTests.cs (6)
31var before = Directory.GetFileSystemEntries(workspace.WorkspaceRoot.FullName, "*", SearchOption.AllDirectories); 37Assert.Equal(before, Directory.GetFileSystemEntries(workspace.WorkspaceRoot.FullName, "*", SearchOption.AllDirectories)); 73var configPath = Path.Combine(configDirectory.FullName, "mcp.json"); 104var before = Directory.GetFileSystemEntries(workspace.WorkspaceRoot.FullName, "*", SearchOption.AllDirectories); 110Assert.Equal(before, Directory.GetFileSystemEntries(workspace.WorkspaceRoot.FullName, "*", SearchOption.AllDirectories)); 136homeDirectory: new DirectoryInfo(Path.Combine(workingDirectory.FullName, "fake-home")));
AssemblyMetadataChannelTests.cs (2)
61while (dir is not null && !File.Exists(Path.Combine(dir.FullName, "global.json"))) 66return dir.FullName;
Backchannel\AppHostCliBackchannelTests.cs (2)
34var tempFile = Path.Combine(tempDir.FullName, "large.bin"); 69var tempFile = Path.Combine(tempDir.FullName, "small.bin");
Backchannel\AppHostConnectionResolverTests.cs (26)
61Assert.False(File.Exists(Path.Combine(projectFile.Directory!.FullName, AspireConfigFile.FileName))); 113var socketPath = CreateMatchingSocketFile(projectFile.FullName, workspace.WorkspaceRoot, int.MaxValue - 1); 144using var otherServer = TestResolverBackchannelServer.Start(projectFile.FullName, processId: 1111); 145using var requestedServer = TestResolverBackchannelServer.Start(projectFile.FullName, processId: 2222); 209new FileInfo(appHostDirectory.FullName), 247new FileInfo(appHostDirectory.FullName), 282new FileInfo(appHostDirectory.FullName), 375var realProjectFile = new FileInfo(Path.Combine(realDirectory.FullName, "TestAppHost.csproj")); 376File.WriteAllText(realProjectFile.FullName, "<Project />"); 379var symlinkDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "link"); 380Directory.CreateSymbolicLink(symlinkDirectory, realDirectory.FullName); 384var socketPath = CreateMatchingSocketFile(projectFileViaSymlink.FullName, workspace.WorkspaceRoot, int.MaxValue - 1); 419var projectFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "TestAppHost.csproj")); 420File.WriteAllText(projectFile.FullName, "<Project />"); 423workspace.WorkspaceRoot.FullName, 466Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, ".git")); 472var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost", "AppHost.csproj"); 580Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, ".git")); 586var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost", "AppHost.csproj"); 640var commonGitDirectory = Path.Combine(primaryCheckout.FullName, ".git"); 642var worktreeRoot = Directory.CreateDirectory(Path.Combine(primaryCheckout.FullName, ".worktrees", "feature")).FullName; 650var projectFile = new FileInfo(Path.Combine(directory.FullName, fileName)); 651File.WriteAllText(projectFile.FullName, "<Project />"); 665var backchannelsDir = Path.Combine(homeDirectory.FullName, ".aspire", "cli", "bch"); 668var prefix = BackchannelConstants.ComputeSocketPrefix(socketKeyPath, homeDirectory.FullName);
Backchannel\AuxiliaryBackchannelMonitorTests.cs (40)
31CreateLiveOwnerSocketPath(homeDirectory), Path.Combine(homeDirectory.FullName, "MyApp.AppHost.csproj")); 75var appHostPath = Path.Combine(homeDirectory.FullName, "MyApp.AppHost.csproj"); 123var actualPath = Path.Combine(directory.FullName, "CaseSensitive.AppHost.csproj"); 126workspace.WorkspaceRoot.FullName, 151workspace.WorkspaceRoot.FullName, 159var lowercaseAppHostPath = Path.Combine(lowercaseDirectory.FullName, "AppHost.csproj"); 160var uppercaseAppHostPath = Path.Combine(uppercaseDirectory.FullName, "AppHost.csproj"); 175workspace.WorkspaceRoot.FullName, 189var existingPath = Path.Combine(workspace.WorkspaceRoot.FullName, "Existing.AppHost.csproj"); 190var missingPath = Path.Combine(workspace.WorkspaceRoot.FullName, "Missing.AppHost.csproj"); 209caseSensitiveDirectory.FullName, 216var actualPath = Path.Combine(caseSensitiveDirectory.FullName, "CaseSensitive.AppHost.csproj"); 217var caseVariant = Path.Combine(caseSensitiveDirectory.FullName, "casesensitive.apphost.csproj"); 248var firstTarget = Path.Combine(workspace.WorkspaceRoot.FullName, "first.csproj"); 249var secondTarget = Path.Combine(workspace.WorkspaceRoot.FullName, "second.csproj"); 252var linkPath = Path.Combine(workspace.WorkspaceRoot.FullName, "current.csproj"); 289var appHostPath = Path.Combine(homeDirectory.FullName, "MyApp.AppHost.csproj"); 367Assert.All(AppHostSocketManager.GetSocketDirectories(homeDirectory.FullName), 387var compactDirectory = BackchannelConstants.GetBackchannelsDirectory(homeDirectory.FullName); 388var legacyDirectory = BackchannelConstants.GetLegacyBackchannelsDirectory(homeDirectory.FullName); 430var legacyDirectory = BackchannelConstants.GetLegacyBackchannelsDirectory(homeDirectory.FullName); 459var socketPath = Path.Combine(homeDirectory.FullName, "stale-socket"); 497var realDirectory = Directory.CreateDirectory(Path.Combine(tempRoot.FullName, "real")); 498var symlinkDirectory = Path.Combine(tempRoot.FullName, "link"); 499Directory.CreateSymbolicLink(symlinkDirectory, realDirectory.FullName); 502var appHostPathViaReal = Path.Combine(realDirectory.FullName, "apphost.cs"); 507Assert.True(AuxiliaryBackchannelMonitor.IsAppHostInScopeOfDirectory(appHostPathViaSymlink, realDirectory.FullName)); 521var workingDirectory = Directory.CreateDirectory(Path.Combine(tempRoot.FullName, "wd")).FullName; 522var outsideAppHost = Path.Combine(tempRoot.FullName, "other", "apphost.cs"); 545var primaryRoot = tempRoot.FullName; 547var worktreeRoot = Directory.CreateDirectory(Path.Combine(primaryRoot, ".worktrees", "feature")).FullName; 570var primaryRoot = tempRoot.FullName; 572var submoduleRoot = Directory.CreateDirectory(Path.Combine(primaryRoot, "extern", "dep")).FullName; 592var primaryRoot = tempRoot.FullName; 594var worktreeRoot = Directory.CreateDirectory(Path.Combine(primaryRoot, ".worktrees", "feature")).FullName; 596var submoduleRoot = Directory.CreateDirectory(Path.Combine(worktreeRoot, "extern", "dep")).FullName; 753var backchannelsDirectory = BackchannelConstants.GetBackchannelsDirectory(homeDirectory.FullName); 756var appHostId = BackchannelConstants.ComputeAppHostId(Path.Combine(homeDirectory.FullName, "MyApp.AppHost.csproj")); 789logFilePath: Path.Combine(homeDirectory.FullName, "test.log"),
Backchannel\BackchannelConstantsTests.cs (31)
244var backchannelsDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cli", "bch"); 249var prefix = BackchannelConstants.ComputeSocketPrefix(appHostPath, workspace.WorkspaceRoot.FullName); 260var sockets = BackchannelConstants.FindMatchingSockets(appHostPath, workspace.WorkspaceRoot.FullName); 272var legacyBackchannelsDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cli", "backchannels"); 285var sockets = BackchannelConstants.FindMatchingSockets(appHostPath, workspace.WorkspaceRoot.FullName); 297var backchannelsDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cli", "bch"); 302var prefix = BackchannelConstants.ComputeSocketPrefix(appHostPath, workspace.WorkspaceRoot.FullName); 313var sockets = BackchannelConstants.FindMatchingSockets(appHostPath, workspace.WorkspaceRoot.FullName); 323var backchannelsDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cli", "bch"); 332var sockets = BackchannelConstants.FindMatchingSockets(appHostPath, workspace.WorkspaceRoot.FullName); 341var backchannelsDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cli", "bch"); 350var prefix = BackchannelConstants.ComputeSocketPrefix(resolvedAppHostPath, workspace.WorkspaceRoot.FullName); 364workspace.WorkspaceRoot.FullName, 386var symlinkDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "link"); 387Directory.CreateSymbolicLink(symlinkDirectory, realDirectory.FullName); 403var backchannelsDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cli", "bch"); 408BackchannelConstants.ComputeSocketPrefix(path, workspace.WorkspaceRoot.FullName)); 416workspace.WorkspaceRoot.FullName, 431var homeDirectory = workspace.WorkspaceRoot.FullName; 438var symlinkDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "link"); 439Directory.CreateSymbolicLink(symlinkDirectory, realDirectory.FullName); 441var realProjectPath = Path.Combine(realDirectory.FullName, "TestAppHost.csproj"); 517var backchannelsDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cli", "bch"); 527var found = BackchannelConstants.FindMatchingSockets(mixedPath, workspace.WorkspaceRoot.FullName); 539var backchannelsDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cli", "bch"); 549var upperPrefix = BackchannelConstants.ComputeSocketPrefix(upperDrivePath, workspace.WorkspaceRoot.FullName); 550var lowerPrefix = BackchannelConstants.ComputeSocketPrefix(lowerDrivePath, workspace.WorkspaceRoot.FullName); 559var fromUpper = BackchannelConstants.FindMatchingSockets(upperDrivePath, workspace.WorkspaceRoot.FullName); 560var fromLower = BackchannelConstants.FindMatchingSockets(lowerDrivePath, workspace.WorkspaceRoot.FullName); 575var backchannelsDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cli", "backchannels"); 592var found = BackchannelConstants.FindMatchingSockets(appHostPath, workspace.WorkspaceRoot.FullName);
Backchannel\OrphanedAppHostCollectorTests.cs (5)
222Directory.Delete(tempDir.FullName, recursive: true); 248Directory.Delete(tempDir.FullName, recursive: true); 274Directory.Delete(tempDir.FullName, recursive: true); 307Directory.Delete(tempDir.FullName, recursive: true); 369var path = Path.Combine(directory.FullName, name);
BundleNuGetServiceTests.cs (1)
17var managedPath = Path.Combine(tempDir.FullName, "aspire-managed");
Bundles\BundleServiceCrossRouteExtractionTests.cs (1)
69var root = Directory.CreateTempSubdirectory("aspire-extract-dir-").FullName;
BundleServiceIntegrationTests.cs (20)
33var layoutRoot = workspace.WorkspaceRoot.FullName; 87var layoutRoot = workspace.WorkspaceRoot.FullName; 114var layoutRoot = workspace.WorkspaceRoot.FullName; 151var layoutRoot = workspace.WorkspaceRoot.FullName; 205var layoutRoot = workspace.WorkspaceRoot.FullName; 263var layoutRoot = workspace.WorkspaceRoot.FullName; 296var layoutRoot = workspace.WorkspaceRoot.FullName; 313var sourcePath = workspace.CreateDirectory("source").FullName; 314var destinationPath = Path.Combine(workspace.WorkspaceRoot.FullName, "destination"); 320new TestLayoutDiscovery(workspace.WorkspaceRoot.FullName)); 343var layoutRoot = workspace.WorkspaceRoot.FullName; 401var versionsDir = Path.Combine(workspace.WorkspaceRoot.FullName, BundleService.VersionsDirectoryName); 416var versionsDir = Path.Combine(workspace.WorkspaceRoot.FullName, BundleService.VersionsDirectoryName); 437var versionsDir = Path.Combine(workspace.WorkspaceRoot.FullName, BundleService.VersionsDirectoryName); 464var versionDir = workspace.CreateDirectory("version").FullName; 482workspace.WorkspaceRoot.FullName, 538var binaryDir = Path.Combine(workspace.WorkspaceRoot.FullName, "opt", "aspire-readonly", "bin"); 544var aspireHome = Path.Combine(workspace.WorkspaceRoot.FullName, "home", ".aspire"); 618var dest = workspace.WorkspaceRoot.FullName; 643var layoutRoot = workspace.WorkspaceRoot.FullName;
BundleServiceTests.cs (11)
31var dir = workspace.WorkspaceRoot.FullName; 42Assert.Null(BundleService.ReadVersionMarker(workspace.WorkspaceRoot.FullName)); 77var processPath = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire"); 123var dir = workspace.WorkspaceRoot.FullName; 145var dir = workspace.WorkspaceRoot.FullName; 174var dir = workspace.WorkspaceRoot.FullName; 200var dir = workspace.WorkspaceRoot.FullName; 232var dir = workspace.WorkspaceRoot.FullName; 243var dir = workspace.WorkspaceRoot.FullName; 283var versionsRoot = Path.Combine(workspace.WorkspaceRoot.FullName, BundleService.VersionsDirectoryName); 304var dir = workspace.WorkspaceRoot.FullName;
Caching\AppHostInfoDiskCacheTests.cs (103)
29var globalSettingsFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "settings.global.json")); 36var path = Path.Combine(workspace.WorkspaceRoot.FullName, name); 58var cacheDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cache", "apphost-info"); 75var freshProject = new FileInfo(projectFile.FullName); 97var hit = await cache.TryGetAsync(new FileInfo(projectFile.FullName), CancellationToken.None).DefaultTimeout(); 152File.WriteAllText(projectFile.FullName, "<Project Sdk=\"Microsoft.NET.Sdk\" />\n<!-- edit -->"); 153File.SetLastWriteTimeUtc(projectFile.FullName, DateTime.UtcNow.AddSeconds(2)); 155var freshProject = new FileInfo(projectFile.FullName); 170var objDir = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "obj")); 171var assetsPath = Path.Combine(objDir.FullName, "project.assets.json"); 174var hit = await cache.TryGetAsync(new FileInfo(projectFile.FullName), CancellationToken.None).DefaultTimeout(); 189File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "Directory.Packages.props"), "<Project />"); 191var hit = await cache.TryGetAsync(new FileInfo(projectFile.FullName), CancellationToken.None).DefaultTimeout(); 199File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName), """ 212var cacheDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cache", "apphost-info"); 249var cacheDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cache", "apphost-info"); 252var hit = await cache.TryGetAsync(new FileInfo(projectFile.FullName), CancellationToken.None).DefaultTimeout(); 267File.WriteAllText(projectFile.FullName, "<Project Sdk=\"Microsoft.NET.Sdk\" />\n<!-- edit -->"); 268File.SetLastWriteTimeUtc(projectFile.FullName, DateTime.UtcNow.AddSeconds(2)); 270await cache.SetAsync(new FileInfo(projectFile.FullName), expectedKey, SampleEntry(), CancellationToken.None).DefaultTimeout(); 272var hit = await cache.TryGetAsync(new FileInfo(projectFile.FullName), CancellationToken.None).DefaultTimeout(); 288var projectDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "src", "MyHost")); 289var projectFile = new FileInfo(Path.Combine(projectDirectory.FullName, "MyHost.csproj")); 290File.WriteAllText(projectFile.FullName, """ 296var commonProps = Path.Combine(workspace.WorkspaceRoot.FullName, "Aspire.Common.props"); 300Assert.NotNull(await cache.TryGetAsync(new FileInfo(projectFile.FullName), CancellationToken.None).DefaultTimeout()); 311var hit = await cache.TryGetAsync(new FileInfo(projectFile.FullName), CancellationToken.None).DefaultTimeout(); 325File.WriteAllText(projectFile.FullName, """ 331await cache.SetAsync(new FileInfo(projectFile.FullName), cache.GetCacheKey(projectFile), SampleEntry(), CancellationToken.None).DefaultTimeout(); 332var hit = await cache.TryGetAsync(new FileInfo(projectFile.FullName), CancellationToken.None).DefaultTimeout(); 352var projectDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "repo", "proj")); 353var projectFile = new FileInfo(Path.Combine(projectDirectory.FullName, "MyHost.csproj")); 354File.WriteAllText(projectFile.FullName, """ 358File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "repo", "Directory.Build.props"), """ 364var sharedDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "shared")); 365var sharedProps = Path.Combine(sharedDirectory.FullName, "Directory.Build.props"); 369Assert.NotNull(await cache.TryGetAsync(new FileInfo(projectFile.FullName), CancellationToken.None).DefaultTimeout()); 380var hit = await cache.TryGetAsync(new FileInfo(projectFile.FullName), CancellationToken.None).DefaultTimeout(); 389var projectDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "repo", "proj")); 390var projectFile = new FileInfo(Path.Combine(projectDirectory.FullName, "MyHost.csproj")); 391File.WriteAllText(projectFile.FullName, "<Project Sdk=\"Microsoft.NET.Sdk\" />"); 392File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "repo", "Directory.Build.props"), """ 398var sharedDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "shared")); 399var sharedProps = Path.Combine(sharedDirectory.FullName, "Directory.Build.props"); 403Assert.NotNull(await cache.TryGetAsync(new FileInfo(projectFile.FullName), CancellationToken.None).DefaultTimeout()); 414Assert.Null(await cache.TryGetAsync(new FileInfo(projectFile.FullName), CancellationToken.None).DefaultTimeout()); 422var projectDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "repo", "proj")); 423var projectFile = new FileInfo(Path.Combine(projectDirectory.FullName, "MyHost.csproj")); 424File.WriteAllText(projectFile.FullName, "<Project Sdk=\"Microsoft.NET.Sdk\" />"); 425File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "repo", "Directory.Build.props"), """ 433Assert.Null(await cache.TryGetAsync(new FileInfo(projectFile.FullName), CancellationToken.None).DefaultTimeout()); 447var projectDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "repo", "proj")); 448var projectFile = new FileInfo(Path.Combine(projectDirectory.FullName, "MyHost.csproj")); 449File.WriteAllText(projectFile.FullName, """ 453File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "repo", "Directory.Build.props"), """ 460var hit = await cache.TryGetAsync(new FileInfo(projectFile.FullName), CancellationToken.None).DefaultTimeout(); 476var projectDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "src", "MyHost")); 477var projectFile = new FileInfo(Path.Combine(projectDirectory.FullName, "MyHost.csproj")); 478File.WriteAllText(projectFile.FullName, """ 484File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "Aspire.Common"), ""); 485var commonProps = Path.Combine(workspace.WorkspaceRoot.FullName, "Aspire.Common.props"); 489Assert.NotNull(await cache.TryGetAsync(new FileInfo(projectFile.FullName), CancellationToken.None).DefaultTimeout()); 500var hit = await cache.TryGetAsync(new FileInfo(projectFile.FullName), CancellationToken.None).DefaultTimeout(); 513File.WriteAllText(projectFile.FullName, """ 519await cache.SetAsync(new FileInfo(projectFile.FullName), cache.GetCacheKey(projectFile), SampleEntry(), CancellationToken.None).DefaultTimeout(); 520var hit = await cache.TryGetAsync(new FileInfo(projectFile.FullName), CancellationToken.None).DefaultTimeout(); 532File.WriteAllText(projectFile.FullName, """ 540Assert.Null(await cache.TryGetAsync(new FileInfo(projectFile.FullName), CancellationToken.None).DefaultTimeout()); 556var projectDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "repo", "proj")); 557var projectFile = new FileInfo(Path.Combine(projectDirectory.FullName, "MyHost.csproj")); 558File.WriteAllText(projectFile.FullName, """ 562File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "Directory.Build.props"), """ 567File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "repo", "Directory.Build.props"), """ 577var hit = await cache.TryGetAsync(new FileInfo(projectFile.FullName), CancellationToken.None).DefaultTimeout(); 592var projectDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "src", "MyHost")); 593var projectFile = new FileInfo(Path.Combine(projectDirectory.FullName, "MyHost.csproj")); 594File.WriteAllText(projectFile.FullName, """ 600File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "Repo.marker"), ""); 601var customProps = Path.Combine(workspace.WorkspaceRoot.FullName, "Custom.props"); 605Assert.NotNull(await cache.TryGetAsync(new FileInfo(projectFile.FullName), CancellationToken.None).DefaultTimeout()); 616var hit = await cache.TryGetAsync(new FileInfo(projectFile.FullName), CancellationToken.None).DefaultTimeout(); 630File.WriteAllText(projectFile.FullName, """ 636await cache.SetAsync(new FileInfo(projectFile.FullName), cache.GetCacheKey(projectFile), SampleEntry(), CancellationToken.None).DefaultTimeout(); 637var hit = await cache.TryGetAsync(new FileInfo(projectFile.FullName), CancellationToken.None).DefaultTimeout(); 654File.WriteAllText(projectFile.FullName, """ 660await cache.SetAsync(new FileInfo(projectFile.FullName), cache.GetCacheKey(projectFile), SampleEntry(), CancellationToken.None).DefaultTimeout(); 662var hit = await cache.TryGetAsync(new FileInfo(projectFile.FullName), CancellationToken.None).DefaultTimeout(); 672var key1 = AppHostInfoDiskCache.ComputeKeyAsync(new FileInfo(projectFile.FullName), new TestEnvironment()); 673var key2 = AppHostInfoDiskCache.ComputeKeyAsync(new FileInfo(projectFile.FullName), new TestEnvironment()); 707var fullPath = projectFile.FullName; 722var projectDir = workspace.WorkspaceRoot.FullName; 725projectDir = Directory.CreateDirectory(Path.Combine(projectDir, $"level-{i}")).FullName; 729File.WriteAllText(projectFile.FullName, "<Project Sdk=\"Microsoft.NET.Sdk\" />"); 732File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "Directory.Build.props"), "<Project />"); 733var keyAfterImport = AppHostInfoDiskCache.ComputeKeyAsync(new FileInfo(projectFile.FullName), new TestEnvironment()); 743var parentImport = Path.Combine(workspace.WorkspaceRoot.FullName, "Directory.Build.props"); 746var repoRoot = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "worktree-root")); 748Path.Combine(repoRoot.FullName, ".git"), 749$"gitdir: {Path.Combine(workspace.WorkspaceRoot.FullName, ".git", "worktrees", "worktree-root")}"); 751var projectDir = Directory.CreateDirectory(Path.Combine(repoRoot.FullName, "src", "AppHost")); 752var projectFile = new FileInfo(Path.Combine(projectDir.FullName, "AppHost.csproj")); 753File.WriteAllText(projectFile.FullName, "<Project Sdk=\"Microsoft.NET.Sdk\" />"); 760var keyAfterParentImportEdit = AppHostInfoDiskCache.ComputeKeyAsync(new FileInfo(projectFile.FullName), new TestEnvironment());
Caching\DiskCacheTests.cs (2)
70var diskPath = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cache", "nuget-search"); 116var diskPath = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cache", "nuget-search");
Certificates\CertificateServiceTests.cs (1)
267Assert.Equal(Path.Combine(aspireHomeDirectory.FullName, "dev-certs"), exportDirectory);
Certificates\NativeCertificateToolRunnerTests.cs (2)
76workspace.WorkspaceRoot.FullName, 95var outputDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "dev-certs");
Certificates\UnixCertificateManagerTests.cs (58)
26var nssDb = Assert.Single(manager.GetNssDbs(homeDirectory.FullName)); 45var nssDb = Assert.Single(manager.GetNssDbs(homeDirectory.FullName)); 63var nssDb = Assert.Single(manager.GetNssDbs(homeDirectory.FullName)); 79var nssDb = Assert.Single(manager.GetNssDbs(homeDirectory.FullName)); 97var nssDb = Assert.Single(manager.GetNssDbs(homeDirectory.FullName)); 117var nssDb = Assert.Single(manager.GetNssDbs(homeDirectory.FullName)); 135var nssDb = Assert.Single(manager.GetNssDbs(homeDirectory.FullName)); 153var nssDb = Assert.Single(manager.GetNssDbs(homeDirectory.FullName)); 177var nssDb = Assert.Single(manager.GetNssDbs(homeDirectory.FullName)); 200var nssDb = Assert.Single(manager.GetNssDbs(homeDirectory.FullName)); 212var missingProfileDirectory = Path.Combine(homeDirectory.FullName, "missing-profile"); 227var nssDbs = manager.GetNssDbs(homeDirectory.FullName); 247var missingProfileDirectory = Path.Combine(homeDirectory.FullName, "missing-profile"); 265var nssDbs = manager.GetNssDbs(homeDirectory.FullName); 290var nssDb = Assert.Single(manager.GetNssDbs(homeDirectory.FullName)); 308var nssDb = Assert.Single(manager.GetNssDbs(homeDirectory.FullName)); 325var nssDbs = manager.GetNssDbs(homeDirectory.FullName); 343var nssDb = Assert.Single(manager.GetNssDbs(homeDirectory.FullName)); 359var nssDb = Assert.Single(manager.GetNssDbs(homeDirectory.FullName)); 360var certificatePath = Path.Combine(homeDirectory.FullName, "certificate with spaces.pem"); 385var nssDb = Assert.Single(manager.GetNssDbs(homeDirectory.FullName)); 386var certificatePath = Path.Combine(homeDirectory.FullName, "certificate with spaces.pem"); 407var nssDbDirectory = Directory.CreateDirectory(Path.Combine(tempDirectory.FullName, "nssdb")); 408var parentPidFile = Path.Combine(tempDirectory.FullName, "certutil-parent.pid"); 409var childPidFile = Path.Combine(tempDirectory.FullName, "certutil-child.pid"); 419["PATH"] = tempDirectory.FullName, 420["SSL_CERT_DIR"] = tempDirectory.FullName, 421["DOTNET_DEV_CERTS_NSSDB_PATHS"] = nssDbDirectory.FullName 425startInfo.FileName = certUtilFile.FullName; 458var nssDbDirectory = Directory.CreateDirectory(Path.Combine(tempDirectory.FullName, "nssdb")); 465["PATH"] = tempDirectory.FullName, 466["SSL_CERT_DIR"] = tempDirectory.FullName, 467["DOTNET_DEV_CERTS_NSSDB_PATHS"] = nssDbDirectory.FullName 471startInfo.FileName = certUtilFile.FullName; 499["PATH"] = Path.Combine(openSslDirectory.FullName, "missing-tools"), 500["SSL_CERT_DIR"] = openSslDirectory.FullName, 501["DOTNET_DEV_CERTS_NSSDB_PATHS"] = Path.Combine(openSslDirectory.FullName, "missing-nss-db") 507var certificatePath = Path.Combine(openSslDirectory.FullName, $"aspnetcore-localhost-{certificate.Thumbprint}.pem"); 534["PATH"] = Path.Combine(corruptOpenSslDirectory.FullName, "missing-tools"), 535["SSL_CERT_DIR"] = string.Join(Path.PathSeparator, corruptOpenSslDirectory.FullName, validOpenSslDirectory.FullName), 536["DOTNET_DEV_CERTS_NSSDB_PATHS"] = Path.Combine(corruptOpenSslDirectory.FullName, "missing-nss-db") 543File.WriteAllText(Path.Combine(corruptOpenSslDirectory.FullName, certificateFileName), "not a certificate"); 544File.WriteAllText(Path.Combine(validOpenSslDirectory.FullName, certificateFileName), certificate.ExportCertificatePem()); 569["PATH"] = Path.Combine(openSslDirectory.FullName, "missing-tools"), 570["DOTNET_DEV_CERTS_NSSDB_PATHS"] = Path.Combine(openSslDirectory.FullName, "missing-nss-db"), 571[CertificateHelpers.DevCertsOpenSslCertDirEnvVar] = openSslDirectory.FullName 578var certificatePath = Path.Combine(openSslDirectory.FullName, $"aspnetcore-localhost-{savedCertificate.Thumbprint}.pem"); 604["PATH"] = Path.Combine(nssDbDirectory.FullName, "missing-certutil"), 605["DOTNET_DEV_CERTS_NSSDB_PATHS"] = nssDbDirectory.FullName, 606[CertificateHelpers.DevCertsOpenSslCertDirEnvVar] = openSslDirectory.FullName 631var certUtilFile = new FileInfo(Path.Combine(directory.FullName, "certutil")); 638await File.WriteAllTextAsync(certUtilFile.FullName, script); 640certUtilFile.FullName, 655var certUtilFile = new FileInfo(Path.Combine(directory.FullName, "certutil")); 663await File.WriteAllTextAsync(certUtilFile.FullName, script); 665certUtilFile.FullName, 688var path = Path.Combine([homeDirectory.FullName, .. pathSegments]);
CliBootstrapTests.cs (32)
118using var aspireHomeOverride = new EnvVarOverride(CliPathHelper.AspireHomeEnvironmentVariable, aspireHome.FullName); 148using var aspireHomeOverride = new EnvVarOverride(CliPathHelper.AspireHomeEnvironmentVariable, aspireHome.FullName); 153Assert.Equal(Path.Combine(aspireHome.FullName, "cache"), context.CacheDirectory.FullName); 157var cacheDirectory = Path.Combine(context.CacheDirectory.FullName, "tuf"); 186var tufDirectory = Directory.CreateDirectory(Path.Combine(aspireHome.FullName, "cache", "tuf")); 187Directory.CreateDirectory(Path.Combine(tufDirectory.FullName, "targets")); 199using var aspireHomeOverride = new EnvVarOverride(CliPathHelper.AspireHomeEnvironmentVariable, aspireHome.FullName); 218using var aspireHomeOverride = new EnvVarOverride(CliPathHelper.AspireHomeEnvironmentVariable, aspireHome.FullName); 259Assert.Equal(Path.Combine(aspireHome.FullName, "cache"), context.CacheDirectory.FullName); 260var cacheDirectory = Path.Combine(context.CacheDirectory.FullName, "tuf"); 307nssDbPaths = $"firefox={ambientNssDbDirectory.FullName}" 310File.WriteAllText(Path.Combine(aspireHome.FullName, AspireConfigFile.FileName), globalConfig); 312using var aspireHomeOverride = new EnvVarOverride(CliPathHelper.AspireHomeEnvironmentVariable, aspireHome.FullName); 315[CertificateConfiguration.NssDbPathsConfigPath] = $"firefox={configuredNssDbDirectory.FullName}" 320Assert.Equal($"firefox={configuredNssDbDirectory.FullName}", configuration[CertificateConfiguration.NssDbPathsConfigPath]); 332[CertificateConfiguration.NssDbPathsConfigPath] = $"firefox={nssDbDirectory.FullName}" 336var nssDb = Assert.Single(manager.GetNssDbs(workspace.WorkspaceRoot.FullName)); 338Assert.Equal(nssDbDirectory.FullName, nssDb.Path); 345var installPrefix = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire-pr-test"); 358var installPrefix = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire-pr-test"); 379Assert.Equal(Path.Combine(installPrefix, "hives"), context.HivesDirectory.FullName); 380Assert.Equal(Path.Combine(installPrefix, "cache"), context.CacheDirectory.FullName); 381Assert.Equal(Path.Combine(installPrefix, "sdks"), context.SdksDirectory.FullName); 382Assert.Equal(Path.Combine(installPrefix, "packages"), context.PackagesDirectory?.FullName); 383Assert.Equal(installPrefix, context.AspireHomeDirectory.FullName); 384Assert.Equal(logsDirectory, context.LogsDirectory.FullName); 408logsDirectory: Path.Combine(workspace.WorkspaceRoot.FullName, "logs"), 409logFilePath: Path.Combine(workspace.WorkspaceRoot.FullName, "logs", "aspire.log"), 430logsDirectory: Path.Combine(workspace.WorkspaceRoot.FullName, "logs"), 431logFilePath: Path.Combine(workspace.WorkspaceRoot.FullName, "logs", "aspire.log"),
CliExecutionContextTests.cs (6)
23var cacheDir = new DirectoryInfo(Path.Combine(workingDir.FullName, "cache")); 24var sdksDir = new DirectoryInfo(Path.Combine(workingDir.FullName, "sdks")); 25var logsDir = new DirectoryInfo(Path.Combine(workingDir.FullName, "logs")); 66var nonexistentHives = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "no-hives-here")); 109File.WriteAllText(Path.Combine(hivesDir.FullName, "README.md"), "stray"); 110File.WriteAllText(Path.Combine(hivesDir.FullName, ".DS_Store"), string.Empty);
CliSmokeTests.cs (1)
100var logFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "credential-source.log");
Commands\AddCommandTests.cs (121)
398var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 399File.WriteAllText(appHostFile.FullName, string.Empty); 400File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName), """ 442var result = command.Parse($"integration search redis --apphost \"{appHostFile.FullName}\" --format json"); 471var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 472File.WriteAllText(appHostFile.FullName, string.Empty); 473File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName), """ 514var result = command.Parse($"integration search redis --apphost \"{appHostFile.FullName}\" --format json"); 552var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 553File.WriteAllText(appHostFile.FullName, string.Empty); 554File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName), """ 601var result = command.Parse($"integration search foundry --apphost \"{appHostFile.FullName}\" --format json"); 651var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 652File.WriteAllText(appHostFile.FullName, string.Empty); 655File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName), $$""" 696var result = command.Parse($"integration search redis --apphost \"{appHostFile.FullName}\" --format json"); 738var appHostFile = new FileInfo(Path.Combine(projectDirectory.FullName, "apphost.ts")); 739File.WriteAllText(appHostFile.FullName, string.Empty); 740File.WriteAllText(Path.Combine(projectDirectory.FullName, AspireConfigFile.FileName), """ 745File.WriteAllText(Path.Combine(invocationDirectory.FullName, "nuget.config"), """ 750File.WriteAllText(Path.Combine(projectDirectory.FullName, "nuget.config"), """ 760Assert.Equal(projectDirectory.FullName, directory.FullName); 762NuGetTestHelper.GetEligiblePackageSources(configFile?.DirectoryName ?? directory.FullName, "Company.Dependency")); 778var result = command.Parse($"{commandText} --apphost \"{appHostFile.FullName}\" --format json"); 799var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 800File.WriteAllText(appHostFile.FullName, string.Empty); 827var result = command.Parse($"integration search redis --apphost \"{appHostFile.FullName}\" --format json"); 872var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 873File.WriteAllText(appHostFile.FullName, string.Empty); 874File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName), """ 910var result = command.Parse($"integration search foundry --apphost \"{appHostFile.FullName}\" --format json"); 942Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "hives", "test-hive")); 1447: File.ReadAllText(nugetConfigFile.FullName); 1461var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 1462File.WriteAllText(appHostFile.FullName, string.Empty); 1463File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName), """ 2124File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName), """ 2150Assert.True(File.Exists(Path.Combine(dir.FullName, "NuGet.Config"))); 2151var settings = NuGetTestHelper.LoadSettings(dir.FullName); 2648var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, isTypeScript ? "apphost.ts" : "AppHost.csproj")); 2649File.WriteAllText(appHostFile.FullName, isTypeScript ? string.Empty : "<Project />"); 2653File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName), $$""" 2662var hivesDirectory = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "hives")); 2673CanHandleCallback = file => string.Equals(file.FullName, appHostFile.FullName, StringComparison.Ordinal), 2727var result = command.Parse($"add {packageId} --apphost \"{appHostFile.FullName}\""); 2757var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 2758File.WriteAllText(appHostFile.FullName, string.Empty); 2759File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName), """ 2799var result = command.Parse($"add Aspire.Hosting.Azure.Storage --apphost \"{appHostFile.FullName}\""); 2872var hivesDir = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "hives")); 2943File.WriteAllText(Path.Combine(packagesDir.FullName, $"Aspire.Hosting.{cliVersion}.nupkg"), string.Empty); 2944File.WriteAllText(Path.Combine(packagesDir.FullName, $"Aspire.Hosting.Redis.{cliVersion}.nupkg"), string.Empty); 2959var localSource = workspace.CreateDirectory(Path.Combine(".aspire", "hives", "pr-12345", "packages")).FullName; 2960var parentConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"); 2994var config = XDocument.Load(Path.Combine(projectDirectory.FullName, "nuget.config")); 3008var higherPrecedenceConfigPath = Path.Combine(projectWithMappingDisabled.FullName, "nuget.config"); 3030Path.Combine(projectWithoutInheritedMapping.FullName, "nuget.config")); 3045var localPackagesDir = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "hives", PackageChannelNames.Local, "packages")); 3048File.WriteAllText(Path.Combine(localPackagesDir.FullName, $"Aspire.Hosting.{cliVersion}.nupkg"), string.Empty); 3049File.WriteAllText(Path.Combine(localPackagesDir.FullName, $"Aspire.Hosting.Redis.{cliVersion}.nupkg"), string.Empty); 3080var hivesRoot = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "hives")); 3081var localPackagesDir = new DirectoryInfo(Path.Combine(hivesRoot.FullName, PackageChannelNames.Local, "packages")); 3082var prPackagesDir = new DirectoryInfo(Path.Combine(hivesRoot.FullName, "pr-12345", "packages")); 3086File.WriteAllText(Path.Combine(localPackagesDir.FullName, $"Aspire.Hosting.{cliVersion}.nupkg"), string.Empty); 3087File.WriteAllText(Path.Combine(localPackagesDir.FullName, $"Aspire.Hosting.Redis.{cliVersion}.nupkg"), string.Empty); 3089File.WriteAllText(Path.Combine(prPackagesDir.FullName, $"Aspire.Hosting.{staleVersion}.nupkg"), string.Empty); 3090File.WriteAllText(Path.Combine(prPackagesDir.FullName, $"Aspire.Hosting.Redis.{staleVersion}.nupkg"), string.Empty); 3115var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 3116File.WriteAllText(appHostFile.FullName, "<Project />"); 3119File.WriteAllText(Path.Combine(identityPackagesDir.FullName, $"Aspire.Hosting.{cliVersion}.nupkg"), string.Empty); 3120File.WriteAllText(Path.Combine(identityPackagesDir.FullName, $"Aspire.Hosting.Redis.{cliVersion}.nupkg"), string.Empty); 3195var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 3196File.WriteAllText(appHostFile.FullName, "<Project />"); 3256var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 3257File.WriteAllText(appHostFile.FullName, string.Empty); 3291var result = command.Parse($"add Aspire.Hosting.Foo --apphost \"{appHostFile.FullName}\""); 3315var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 3316File.WriteAllText(appHostFile.FullName, string.Empty); 3351var result = command.Parse($"add {integrationName} --apphost \"{appHostFile.FullName}\"{sourceArgument}"); 3370var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "apphost.ts")); 3371File.WriteAllText(appHostFile.FullName, string.Empty); 3374Path.Combine(sourceDirectory.FullName, "Aspire.Hosting.Redis.1.0.0.nupkg"), 3401var result = command.Parse($"add redis --apphost \"{appHostFile.FullName}\" --source ./feed"); 3407Assert.Equal(sourceDirectory.FullName, addPackageContext.Source); 3414var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 3415File.WriteAllText(appHostFile.FullName, string.Empty); 3422Path.Combine(localSource.FullName, $"Aspire.Hosting.Redis.{packageVersion}.nupkg"), 3429new PackageMapping("Aspire*", localSource.FullName), 3462var result = command.Parse($"add Aspire.Hosting.Redis --apphost \"{appHostFile.FullName}\""); 3469Assert.False(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"))); 3479var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 3480File.WriteAllText(appHostFile.FullName, string.Empty); 3514var result = command.Parse($"add Aspire.Hosting.Foo --all --apphost \"{appHostFile.FullName}\""); 3533var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 3534File.WriteAllText(appHostFile.FullName, string.Empty); 3560var result = command.Parse($"integration list --apphost \"{appHostFile.FullName}\" --format json"); 3581var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 3582File.WriteAllText(appHostFile.FullName, string.Empty); 3608var result = command.Parse($"integration list --apphost \"{appHostFile.FullName}\""); 3629var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 3630File.WriteAllText(appHostFile.FullName, string.Empty); 3655var result = command.Parse($"integration list --apphost \"{appHostFile.FullName}\""); 3677var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 3678File.WriteAllText(appHostFile.FullName, string.Empty); 3704var result = command.Parse($"integration search zzznomatch --apphost \"{appHostFile.FullName}\""); 3729var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 3730File.WriteAllText(appHostFile.FullName, string.Empty); 3762var result = command.Parse($"add Aspire.Hosting.Foo --apphost \"{appHostFile.FullName}\""); 3780var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 3781File.WriteAllText(appHostFile.FullName, string.Empty); 3816var result = command.Parse($"add Aspire.Hosting.Redis --apphost \"{appHostFile.FullName}\""); 3838var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 3839File.WriteAllText(appHostFile.FullName, string.Empty); 3862var result = command.Parse($"integration list --apphost \"{appHostFile.FullName}\" --format json"); 3910var hivesDirectory = new DirectoryInfo(Path.Combine(aspireDirectory.FullName, "hives")); 3911var cacheDirectory = new DirectoryInfo(Path.Combine(aspireDirectory.FullName, "cache")); 3912var sdksDirectory = new DirectoryInfo(Path.Combine(aspireDirectory.FullName, "sdks")); 3913var logsDirectory = new DirectoryInfo(Path.Combine(aspireDirectory.FullName, "logs")); 3921Path.Combine(logsDirectory.FullName, "test.log"),
Commands\AgentInitClientSelectionTests.cs (45)
48var expected = Path.Combine(root.FullName, skillFolder, "skills"); 51Path.Combine(workspace.WorkspaceRoot.FullName, ".agents", "skills"), 52Path.Combine(workspace.WorkspaceRoot.FullName, ".claude", "skills"), 53Path.Combine(homeDirectory.FullName, ".agents", "skills"), 54Path.Combine(homeDirectory.FullName, ".claude", "skills"), 55Path.Combine(workspace.WorkspaceRoot.FullName, ".github", "skills"), 56Path.Combine(workspace.WorkspaceRoot.FullName, ".opencode", "skills"), 57Path.Combine(workspace.WorkspaceRoot.FullName, ".opencode", "skill"), 58Path.Combine(homeDirectory.FullName, ".github", "skills"), 59Path.Combine(homeDirectory.FullName, ".opencode", "skills"), 60Path.Combine(homeDirectory.FullName, ".opencode", "skill") 82var directory = Path.Combine(root.FullName, folder, "skills", "aspire"); 100Assert.True(File.Exists(Path.Combine(selectedRoot.FullName, ".agents", "skills", "aspire", "SKILL.md"))); 123Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, ".agents", "skills", "aspire", "SKILL.md"))); 124Assert.False(Directory.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, ".claude"))); 194Assert.False(Directory.Exists(Path.Combine(unselectedRoot.FullName, ".agents"))); 234var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, ".mcp.json"); 252Assert.Empty(Directory.GetFileSystemEntries(homeDirectory.FullName)); 352Assert.Equal(before.Append(Path.Combine(workspace.WorkspaceRoot.FullName, "opencode.jsonc")).Order(StringComparer.Ordinal), 495Assert.True(File.Exists(Path.Combine(homeDirectory.FullName, ".agents", "skills", "aspire", "SKILL.md"))); 496Assert.True(File.Exists(Path.Combine(homeDirectory.FullName, ".copilot", "mcp-config.json"))); 576contents.Add(Path.GetRelativePath(root.FullName, path).Replace('\\', '/'), JsonSerializer.Deserialize<JsonElement>(await File.ReadAllTextAsync(path))); 588var path = Path.Combine(workspace.WorkspaceRoot.FullName, ".mcp.json"); 606var configPath = Path.Combine(configDirectory.FullName, "mcp.json"); 637var configPath = Path.Combine(configDirectory.FullName, "mcp.json"); 666var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, configFileName); 694var expectedPath = Path.Combine(workspace.WorkspaceRoot.FullName, expectedRelativePath.Replace('/', Path.DirectorySeparatorChar)); 720await File.WriteAllTextAsync(Path.Combine(configDirectory.FullName, "opencode.json"), """{"model":"keep-json","mcp":{"other":{"command":["other"]}}}"""); 724await File.WriteAllTextAsync(Path.Combine(configDirectory.FullName, "opencode.jsonc"), """{"model":"keep-jsonc","mcp":{"other":{"command":["other"]}}}"""); 733var expectedPath = Path.Combine(configDirectory.FullName, expectedFileName); 743foreach (var path in Directory.EnumerateFiles(configDirectory.FullName, "opencode.json*")) 846var jsonPath = Path.Combine(workspace.WorkspaceRoot.FullName, "opencode.json"); 858var jsoncPath = Path.Combine(workspace.WorkspaceRoot.FullName, "opencode.jsonc"); 971var configPath = Path.Combine(configDirectory.FullName, "opencode.json"); 996["COPILOT_HOME"] = copilot.FullName, 997["CLAUDE_CONFIG_DIR"] = claude.FullName, 998["OPENCODE_CONFIG"] = Path.Combine(openCode.FullName, "custom.json") 1033var path = Path.Combine(homeDirectory.FullName, ".copilot", "mcp-config.json"); 1062var path = Path.Combine(homeDirectory.FullName, ".copilot", "mcp-config.json"); 1307Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, ".claude", "skills", "aspire", "SKILL.md"))); 1308Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, ".mcp.json"))); 1322? Path.Combine(context.Home.FullName, ".agents", "skills", "aspire", "SKILL.md") 1339var projectSkillPath = Path.Combine(context.Project.FullName, projectDirectory, "skills", "aspire-init", "SKILL.md"); 1397return [.. Directory.EnumerateFiles(workspaceRoot.FullName, "*", SearchOption.AllDirectories) 1398.Where(path => !Path.GetRelativePath(workspaceRoot.FullName, path).StartsWith(logDirectory, StringComparison.Ordinal))
Commands\AgentInitCommandTests.cs (52)
100await File.WriteAllTextAsync(Path.Combine(context.Project.FullName, "apphost.cs"), string.Empty); 132Assert.False(File.Exists(Path.Combine(context.Project.FullName, ".mcp.json"))); 202Assert.Equal(!remote, File.Exists(Path.Combine(context.Project.FullName, ".agents", "skills", "aspire", "SKILL.md"))); 210await File.WriteAllTextAsync(Path.Combine(context.Project.FullName, "apphost.cs"), string.Empty); 284interactionService.SetupStringPromptResponse(workspace.WorkspaceRoot.FullName); 326interactionService.SetupStringPromptResponse(workspace.WorkspaceRoot.FullName); 359var blockedSkillParentPath = Path.Combine(workspace.WorkspaceRoot.FullName, ".agents"); 363interactionService.SetupStringPromptResponse(workspace.WorkspaceRoot.FullName); 386var expectedSkillDirectoryPath = Path.Combine(workspace.WorkspaceRoot.FullName, ".agents", "skills", CommonAgentApplicators.AspireSkillName); 401var result = command.Parse($"agent init --workspace-root {workspace.WorkspaceRoot.FullName} --agents all --skills all --aspire-source embedded"); 467var result = command.Parse($"agent init --workspace-root \"{workspace.WorkspaceRoot.FullName}\" --agents all --scope project --aspire-source embedded{selection}"); 474Path.Combine(workspace.WorkspaceRoot.FullName, ".agents", "skills", skill.Name), 475Path.Combine(workspace.WorkspaceRoot.FullName, ".claude", "skills", skill.Name) 511var result = command.Parse($"agent init --workspace-root {workspace.WorkspaceRoot.FullName} --agents all --skills PLAYWRIGHT-CLI"); 528var result = command.Parse($"agent init --workspace-root {workspace.WorkspaceRoot.FullName} --agents none --skills all"); 535var agentsDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".agents"); 548var result = command.Parse($"agent init --workspace-root {workspace.WorkspaceRoot.FullName} --skills none"); 585Assert.False(Directory.Exists(Path.Combine(skillsRoot.FullName, ".agents", "skills"))); 586Assert.False(Directory.Exists(Path.Combine(skillsRoot.FullName, ".claude", "skills"))); 598var result = command.Parse($"agent init --workspace-root {workspace.WorkspaceRoot.FullName} --agents invalid --skills all"); 647var result = command.Parse($"agent init --workspace-root {workspace.WorkspaceRoot.FullName} --agents all --aspire-source embedded"); 772var result = command.Parse($"agent init --workspace-root {workspace.WorkspaceRoot.FullName} --agents all --skills none"); 779var aspireSkillPath = Path.Combine(workspace.WorkspaceRoot.FullName, ".agents", "skills", CommonAgentApplicators.AspireSkillName); 791var result = command.Parse($"agent init --workspace-root {workspace.WorkspaceRoot.FullName} --agents all"); 796Assert.False(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, ".mcp.json"))); 797var openCodeConfig = JsonNode.Parse(await File.ReadAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "opencode.jsonc"))); 810var result = command.Parse($"agent init --workspace-root {workspace.WorkspaceRoot.FullName} --agents all --mcp"); 815Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, ".mcp.json"))); 816Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "opencode.jsonc"))); 827var result = command.Parse($"agent init --workspace-root {workspace.WorkspaceRoot.FullName} --agents all --mcp=false"); 832Assert.False(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, ".mcp.json"))); 833var openCodeConfig = JsonNode.Parse(await File.ReadAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "opencode.jsonc"))); 847var result = command.Parse($"agent init --workspace-root {workspace.WorkspaceRoot.FullName} --agents none --skills all"); 854var agentsDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".agents", "skills"); 860var skillPath = Path.Combine(workspaceRoot.FullName, relativeSkillDirectory, skillName, "SKILL.md"); 879$"agent init --workspace-root \"{workspace.WorkspaceRoot.FullName}\" --agents all --skills aspire --aspire-source embedded"); 948"claude" => Path.Combine(context.Project.FullName, ".claude", "settings.json"), 972Assert.Equal([global], Directory.GetFiles(context.Home.FullName, "*", SearchOption.AllDirectories)); 977var bundleDirectory = new DirectoryInfo(Path.Combine(workspaceRoot.FullName, $".test-aspire-skills-bundle-{Guid.NewGuid():N}")); 978Directory.CreateDirectory(bundleDirectory.FullName); 983var skillDirectory = Path.Combine(bundleDirectory.FullName, "skills", name); 1022var manifestPath = Path.Combine(bundleDirectory.FullName, "skill-manifest.json"); 1053var result = command.Parse($"agent init --workspace-root {workspace.WorkspaceRoot.FullName} --agents copilot --scope global --skills aspire"); 1058var hookFile = Path.Combine(homeDirectory.FullName, ".copilot", "hooks", "aspire-telemetry.json"); 1087var result = command.Parse($"agent init --workspace-root {workspace.WorkspaceRoot.FullName} --agents copilot --scope global --skills aspire"); 1133var expectedPath = Path.Combine(root.FullName, relativePath.Replace('/', Path.DirectorySeparatorChar)); 1134Assert.Equal([expectedPath], Directory.EnumerateFiles(root.FullName, "*", SearchOption.AllDirectories)); 1177$"{client.DisplayName}: {prefix}{Path.GetRelativePath(scopeRoot.FullName, client.GetIntegrationConfigPath(scope, context.Project)).Replace(Path.DirectorySeparatorChar, '/')}").ToArray(); 1237var path = Path.Combine(context.Project.FullName, "opencode.json"); 1264Assert.Equal([path], context.Project.EnumerateFiles().Select(file => file.FullName)); 1274var configPath = Path.Combine(context.Project.FullName, ".opencode", "opencode.jsonc"); 1275var skillPath = Path.Combine(context.Project.FullName, "team-skills", "aspire", "SKILL.md");
Commands\AgentMcpCommandTests.cs (25)
232AppHostPath = Path.Combine(ctx.Workspace.WorkspaceRoot.FullName, "TestAppHost", "TestAppHost.csproj"), 296AppHostPath = Path.Combine(ctx.Workspace.WorkspaceRoot.FullName, "AnnotatedAppHost", "AnnotatedAppHost.csproj"), 373AppHostPath = Path.Combine(ctx.Workspace.WorkspaceRoot.FullName, "TestAppHost", "TestAppHost.csproj"), 437var appHostAPath = Path.Combine(ctx.Workspace.WorkspaceRoot.FullName, "AppHostA", "AppHostA.csproj"); 438var appHostBPath = Path.Combine(ctx.Workspace.WorkspaceRoot.FullName, "AppHostB", "AppHostB.csproj"); 506AppHostPath = Path.Combine(ctx.Workspace.WorkspaceRoot.FullName, "TestAppHost", "TestAppHost.csproj"), 654AppHostPath = Path.Combine(ctx.Workspace.WorkspaceRoot.FullName, "UnrelatedAppHost", "UnrelatedAppHost.csproj"), 993AppHostPath = Path.Combine(ctx.Workspace.WorkspaceRoot.FullName, "UnrelatedAppHost", "UnrelatedAppHost.csproj"), 1171AppHostPath = Path.Combine(ctx.Workspace.WorkspaceRoot.FullName, "TestAppHost", "TestAppHost.csproj"), 1199AppHostPath = Path.Combine(ctx.Workspace.WorkspaceRoot.FullName, "TestAppHost", "TestAppHost.csproj"), 1398AppHostPath = Path.Combine(ctx.Workspace.WorkspaceRoot.FullName, "TestAppHost", "TestAppHost.csproj"), 1504var appHostPath = Path.Combine(ctx.Workspace.WorkspaceRoot.FullName, "TestAppHost", "TestAppHost.csproj"); 1690var appHostProjectFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "PinnedAppHost.csproj")); 1691await File.WriteAllTextAsync(appHostProjectFile.FullName, "Not a real apphost", TestContext.Current.CancellationToken); 1707var parseResult = rootCommand.Parse($"agent mcp --apphost \"{appHostProjectFile.FullName}\""); 1714PathNormalizer.ResolveToFilesystemPath(PathNormalizer.ResolveSymlinks(appHostProjectFile.FullName)), 1723var appHostProjectFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "PinnedAppHost.csproj")); 1724await File.WriteAllTextAsync(appHostProjectFile.FullName, "Not a real apphost", TestContext.Current.CancellationToken); 1740var parseResult = rootCommand.Parse($"agent mcp --apphost \"{appHostDirectory.FullName}\""); 1747PathNormalizer.ResolveToFilesystemPath(PathNormalizer.ResolveSymlinks(appHostProjectFile.FullName)), 1755var missingPath = Path.Combine(workspace.WorkspaceRoot.FullName, "MissingAppHost"); 1784Path.Combine(appHostDirectory.FullName, "First.AppHost.csproj"), 1788Path.Combine(appHostDirectory.FullName, "Second.AppHost.csproj"), 1803var parseResult = rootCommand.Parse($"agent mcp --apphost \"{appHostDirectory.FullName}\""); 1830AppHostPath = appHostPath ?? Path.Combine(workspace.WorkspaceRoot.FullName, hash, $"{hash}.csproj"),
Commands\AppHostLauncherTests.cs (18)
281harness.LocatedAppHostFile.FullName, 282PathNormalizer.ResolveToFilesystemPath(harness.LocatedAppHostFile.FullName)); 1061var childLogFile = Path.Combine(workspace.WorkspaceRoot.FullName, "child.log"); 1089var childLogFile = Path.Combine(workspace.WorkspaceRoot.FullName, "child.log"); 1112var childLogFile = Path.Combine(workspace.WorkspaceRoot.FullName, "child.log"); 1174var childLogFile = Path.Combine(workspace.WorkspaceRoot.FullName, "child.log"); 1324var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 1325File.WriteAllText(appHostFile.FullName, "<Project />"); 1330var linkPath = Path.Combine(workspace.WorkspaceRoot.FullName, "link"); 1331Directory.CreateSymbolicLink(linkPath, appHostDirectory.FullName); 1341Path.Combine(logsDirectory.FullName, "parent.log"), 1397AppHostPath = AppHostFile.FullName, 1408_workspace.WorkspaceRoot.FullName, 1409Path.Combine(_workspace.WorkspaceRoot.FullName, "common", ".git")); 1414var backchannelsDir = Path.Combine(_homeDirectory.FullName, ".aspire", "cli", "bch"); 1417var resolvedAppHostPath = PathNormalizer.ResolveToFilesystemPath(AppHostFile.FullName); 1418var prefix = BackchannelConstants.ComputeSocketPrefix(resolvedAppHostPath, _homeDirectory.FullName); 1474CreatedExecution = new TestDetachedProcessExecution(this, fileName, args, workingDirectory.FullName, environment, options);
Commands\BaseCommandTests.cs (3)
305var cliLogPath = Path.Combine(workspace.WorkspaceRoot.FullName, "current-cli.log"); 306var appHostLogPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost-cli.log"); 352var cliLogPath = Path.Combine(workspace.WorkspaceRoot.FullName, "current-cli.log");
Commands\CacheCommandTests.cs (14)
47var packagesDir = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "packages")); 49File.WriteAllText(Path.Combine(restoreDir.FullName, "test.dll"), "fake"); 63Assert.False(File.Exists(Path.Combine(restoreDir.FullName, "test.dll"))); 70var appHostInfoCacheDir = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cache", "apphost-info")); 72var cacheEntry = Path.Combine(appHostInfoCacheDir.FullName, "entry.json"); 105await File.WriteAllTextAsync(Path.Combine(firstBuildCache.FullName, "Aspire.Hosting.dll"), "fake").DefaultTimeout(); 106await File.WriteAllTextAsync(Path.Combine(secondBuildCache.FullName, "Aspire.Hosting.dll"), "fake").DefaultTimeout(); 116Assert.False(Directory.Exists(Path.Combine(stagingCacheRoot.FullName, "deadbeef"))); 117Assert.False(Directory.Exists(Path.Combine(stagingCacheRoot.FullName, "cafef00d"))); 147var packagesDir = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "packages-nonexistent")); 171File.WriteAllText(Path.Combine(tempDir.FullName, "root.txt"), "root"); 172File.WriteAllText(Path.Combine(subDir.FullName, "nested.txt"), "nested"); 196var keepFile = Path.Combine(tempDir.FullName, "keep.txt"); 197var deleteFile = Path.Combine(tempDir.FullName, "delete.txt");
Commands\CompletionsCommandTests.cs (5)
255var legacyConfig = Path.Combine(home.FullName, "globalsettings.json"); 261"global" => Path.Combine(home.FullName, AspireConfigFile.FileName), 314}, home.FullName, request, extensionArguments, options)) 353}, home.FullName, request, options)) 358Assert.Empty(Directory.EnumerateFileSystemEntries(home.FullName));
Commands\CompletionScriptTests.cs (26)
24var completionPath = Path.Combine(workspace.WorkspaceRoot.FullName, "completion.ps1"); 66var completionPath = Path.Combine(workspace.WorkspaceRoot.FullName, "completion.ps1"); 68await File.WriteAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.ps1"), """ 84["PATH"] = workspace.WorkspaceRoot.FullName + Path.PathSeparator + Environment.GetEnvironmentVariable("PATH") 98var completionPath = Path.Combine(workspace.WorkspaceRoot.FullName, "completion.bash"); 100var binaryPath = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire"); 124["PATH"] = workspace.WorkspaceRoot.FullName + Path.PathSeparator + Environment.GetEnvironmentVariable("PATH") 151var completionPath = Path.Combine(workspace.WorkspaceRoot.FullName, "completion.bash"); 152var capturedPath = Path.Combine(workspace.WorkspaceRoot.FullName, "arguments.bin"); 153var binaryPath = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire"); 172["PATH"] = workspace.WorkspaceRoot.FullName + Path.PathSeparator + Environment.GetEnvironmentVariable("PATH") 178Assert.False(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "completion-executed"))); 187var completionPath = Path.Combine(workspace.WorkspaceRoot.FullName, "completion.bash"); 188var capturedPath = Path.Combine(workspace.WorkspaceRoot.FullName, "arguments.bin"); 189var binaryPath = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire"); 208["PATH"] = workspace.WorkspaceRoot.FullName + Path.PathSeparator + Environment.GetEnvironmentVariable("PATH") 221var completionPath = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.fish"); 245var completionPath = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.zsh"); 256["HOME"] = workspace.WorkspaceRoot.FullName, 257["ZDOTDIR"] = workspace.WorkspaceRoot.FullName 269var completionPath = Path.Combine(workspace.WorkspaceRoot.FullName, "_aspire"); 270var binaryPath = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire"); 271var capturedPath = Path.Combine(workspace.WorkspaceRoot.FullName, "arguments.bin"); 295["HOME"] = workspace.WorkspaceRoot.FullName, 296["ZDOTDIR"] = workspace.WorkspaceRoot.FullName, 298["PATH"] = workspace.WorkspaceRoot.FullName + Path.PathSeparator + Environment.GetEnvironmentVariable("PATH")
Commands\ConfigCommandTests.cs (18)
141var settingsPath = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "settings.json"); 247var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 295var settingsPath = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "settings.json"); 320var settingsPath = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "settings.json"); 354var settingsPath = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "settings.json"); 474var settingsPath = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "settings.json"); 803var settingsPath = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "settings.json"); 823var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 841var config = AspireConfigFile.Load(workspace.WorkspaceRoot.FullName); 884var settingsPath = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "settings.json"); 915var settingsPath = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "settings.json"); 946var settingsPath = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "settings.json"); 960var settingsDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire"); 993var settingsDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire"); 1035var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1052var legacySettingsPath = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "settings.json"); 1065var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1162var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName);
Commands\ConfigSourceCommandTests.cs (43)
99await File.WriteAllTextAsync(projectFile.FullName, "#:sdk Aspire.AppHost.Sdk"); 122Assert.Equal(projectFile.FullName, project?.FullName); 325await File.WriteAllTextAsync(projectFile.FullName, "#:sdk Aspire.AppHost.Sdk"); 337Assert.Equal(projectFile.FullName, project?.FullName); 401var projectFile = new FileInfo(Path.Combine(project.FullName, "apphost.cs")); 402await File.WriteAllTextAsync(projectFile.FullName, "#:sdk Aspire.AppHost.Sdk"); 418"directory" => new FileInfo(project.FullName), 424var argument = requested is null ? "" : $" --apphost \"{requested.FullName}\""; 433Assert.Equal(projectFile.FullName, selected?.FullName); 443Assert.False(File.Exists(Path.Combine(project.FullName, AspireConfigFile.FileName))); 465File.Move(Path.Combine(globalFile.Directory.FullName, AspireConfigFile.FileName), globalFile.FullName); 466var originalGlobalConfiguration = await File.ReadAllTextAsync(globalFile.FullName); 479Assert.Equal(originalGlobalConfiguration, await File.ReadAllTextAsync(globalFile.FullName)); 487await File.WriteAllTextAsync(Path.Combine(project.FullName, "apphost.cs"), "#:sdk Aspire.AppHost.Sdk"); 497var result = command.Parse($"update --config-source --apphost \"{Path.Combine(project.FullName, "apphost.cs")}\" --yes --non-interactive"); 503Assert.Equal("version-1", AspireConfigFile.Load(project.FullName)!.ConfigSource!.AppliedVersion); 542File.Move(Path.Combine(globalFile.Directory.FullName, AspireConfigFile.FileName), globalFile.FullName); 554var globalConfiguration = JsonNode.Parse(await File.ReadAllTextAsync(globalFile.FullName))!; 569var selectedFile = new FileInfo(Path.Combine(selected.FullName, "apphost.cs")); 577await File.WriteAllTextAsync(Path.Combine(selected.FullName, AspireConfigFile.FileName), "{}"); 606Assert.Equal(bound, AspireConfigFile.Load(selected.FullName)?.ConfigSource is not null); 626var projectFile = new FileInfo(Path.Combine(selected.FullName, "apphost.cs")); 627await File.WriteAllTextAsync(projectFile.FullName, "#:sdk Aspire.AppHost.Sdk"); 636Assert.Equal(projectFile.FullName, project?.FullName); 644Assert.False(File.Exists(Path.Combine(selected.FullName, AspireConfigFile.FileName))); 655var projectFile = new FileInfo(Path.Combine(selected.FullName, "apphost.cs")); 656await File.WriteAllTextAsync(projectFile.FullName, "#:sdk Aspire.AppHost.Sdk"); 673Assert.Equal(projectFile.FullName, project?.FullName); 693await File.WriteAllTextAsync(Path.Combine(projectDirectory.FullName, "apphost.cs"), "#:sdk Aspire.AppHost.Sdk"); 703var selectedPath = Path.Combine(projectDirectory.FullName, AspireConfigFile.FileName); 725$"update --config-source --apphost \"{requestedDirectory.FullName}\" --yes --non-interactive"); 736Assert.Equal("version-2", AspireConfigFile.Load(projectDirectory.FullName)!.ConfigSource!.AppliedVersion); 813await File.WriteAllTextAsync(Path.Combine(config.FullName, "template.json"), """ 919var configPath = Path.Combine(configDirectory.FullName, AspireConfigFile.FileName); 984var configuration = AspireConfigFile.Load(configDirectory.FullName)!; 1023var refreshed = AspireConfigFile.Load(configDirectory.FullName)!;
Commands\DashboardRunCommandTests.cs (3)
197var managedDir = Path.Combine(workspace.WorkspaceRoot.FullName, "layout", BundleDiscovery.ManagedDirectoryName); 657var logFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "cli [dashboard].log"); 687var layoutDir = Path.Combine(workspace.WorkspaceRoot.FullName, "layout");
Commands\DeployCommandTests.cs (15)
40var expectedAspireHome = Path.Combine(workspace.WorkspaceRoot.FullName, ".home", ".aspire"); 88var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 89await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 90var expectedAspireHome = Path.Combine(workspace.WorkspaceRoot.FullName, ".home", ".aspire"); 124var invocation = explicitAppHost ? $"{commandText} --apphost \"{appHostFile.FullName}\"" : commandText; 130Assert.Equal(workspace.WorkspaceRoot.FullName, workingDirectory); 131Assert.Equal(appHostFile.FullName, projectFile); 325var expectedAspireHome = Path.Combine(workspace.WorkspaceRoot.FullName, ".home", ".aspire"); 402var appHostFile = new FileInfo(Path.Combine(tempRepo.WorkspaceRoot.FullName, "AppHost.csproj")); 403await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 431var explicitPath = Path.Combine(tempRepo.WorkspaceRoot.FullName, "explicit.json"); 444var result = command.Parse($"deploy --apphost \"{appHostFile.FullName}\" --environment \"{environment}\""); 455var appHostFile = new FileInfo(Path.Combine(tempRepo.WorkspaceRoot.FullName, "AppHost.csproj")); 456await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 492var result = command.Parse($"deploy --apphost \"{appHostFile.FullName}\" --environment Production");
Commands\DescribeCommandTests.cs (2)
1208AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "TestAppHost", "TestAppHost.csproj"), 1232AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "TestAppHost", "TestAppHost.csproj"),
Commands\DoctorCommandTests.cs (29)
166var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 167await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 193var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 194await File.WriteAllTextAsync(appHostFile.FullName, "export {};"); 196Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.config.json"), 243await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 269var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Normal.csproj")); 270await File.WriteAllTextAsync(projectFile.FullName, "<Project />"); 297var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Normal.csproj")); 298await File.WriteAllTextAsync(projectFile.FullName, "<Project />"); 300var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 301await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 323await File.WriteAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"), "<Project />"); 324await File.WriteAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.fsproj"), "<Project />"); 350var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 351await File.WriteAllTextAsync(appHostFile.FullName, "export {};"); 405await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 407Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.config.json"), 411"path": "{{Path.GetRelativePath(workspace.WorkspaceRoot.FullName, appHostFile.FullName).Replace('\\', '/')}}" 495var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 496await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 498Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.config.json"), 526var appHostFile = new FileInfo(Path.Combine(nestedAppHostDir.FullName, "AppHost.csproj")); 527await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 529Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.config.json"), 560var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 561await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 1077return new FileInfo(Path.Combine(directory.FullName, "AppHost.csproj"));
Commands\DotNetSdkCheckTests.cs (2)
103var filePath = Path.Combine(workspace.WorkspaceRoot.FullName, relativePath.Replace('/', Path.DirectorySeparatorChar)); 145? new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, appHostFileName))
Commands\ExportCommandTests.cs (17)
27var outputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "export.zip"); 115var customDir = Path.Combine(workspace.WorkspaceRoot.FullName, "custom", "nested"); 149var outputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "export.zip"); 152var appHostDir = Path.Combine(workspace.WorkspaceRoot.FullName, "MyAppHost"); 182var outputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "export.zip"); 215AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "TargetAppHost", "TargetAppHost.csproj"), 301var outputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "export.zip"); 427var outputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "export.zip"); 485var outputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "export.zip"); 539var outputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "export.zip"); 604var outputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "export.zip"); 648var outputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "export.zip"); 692var outputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "export.zip"); 734var outputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "export.zip"); 762var outputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "export.zip"); 815var outputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "export.zip"); 882AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "TestAppHost", "TestAppHost.csproj"),
Commands\ExtensionInternalCommandTests.cs (11)
61var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "MyApp.AppHost.csproj")); 93Assert.Equal(projectFile.FullName, searchResult.SelectedProjectFile); 95Assert.Equal(projectFile.FullName, searchResult.AllProjectFileCandidates[0]); 102var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "MyApp.AppHost.csproj")); 103await File.WriteAllTextAsync(projectFile.FullName, """ 129Assert.Equal(projectFile.FullName, searchResult.SelectedProjectFile); 130Assert.Equal([projectFile.FullName], searchResult.AllProjectFileCandidates); 137var projectFile1 = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "App1.AppHost.csproj")); 138var projectFile2 = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "App2.AppHost.csproj")); 172Assert.Contains(projectFile1.FullName, searchResult.AllProjectFileCandidates); 173Assert.Contains(projectFile2.FullName, searchResult.AllProjectFileCandidates);
Commands\GoAppHostToolingCheckTests.cs (9)
59Assert.Equal(appHostFile.FullName, result.Metadata["appHostPath"]?.GetValue<string>()); 74Assert.Equal(appHostFile.FullName, result.Metadata["appHostPath"]?.GetValue<string>()); 92var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"); 109var configuredAppHost = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "..", "ts", "apphost.mts")); 137Assert.Equal(appHostFile.FullName, result.Metadata["appHostPath"]?.GetValue<string>()); 557var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.go"); 566File.WriteAllText(Path.Combine(serviceDirectory.FullName, "Api.csproj"), "<Project Sdk=\"Microsoft.NET.Sdk.Web\" />"); 679while (dir is not null && !File.Exists(Path.Combine(dir.FullName, "global.json"))) 684return dir.FullName;
Commands\InitCommandTests.cs (118)
116var solutionFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Test.sln")); 117File.WriteAllText(solutionFile.FullName, "Fake solution file"); 119var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, projectFileName)); 120File.WriteAllText(projectFile.FullName, "<Project />"); 159Assert.False(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.config.json"))); 202var solutionFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Test.sln")); 203File.WriteAllText(solutionFile.FullName, "Fake solution file"); 235Assert.False(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.config.json"))); 257var appHostContent = await File.ReadAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs")); 272var solutionFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, solutionPath)); 273Directory.CreateDirectory(solutionFile.Directory!.FullName); 275await File.WriteAllTextAsync(solutionFile.FullName, solutionContent); 276var projectPath = Path.Combine(solutionFile.Directory.FullName, "Test.csproj"); 279var otherSolutionPath = Path.Combine(workspace.WorkspaceRoot.FullName, "Other.slnx"); 305Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"))); 306Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.run.json"))); 307var config = JsonNode.Parse(await File.ReadAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName)))!.AsObject(); 309Assert.Equal(solutionContent, await File.ReadAllTextAsync(solutionFile.FullName)); 346Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"))); 347Assert.False(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, ".gitignore"))); 349var config = JsonNode.Parse(File.ReadAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.config.json")))!.AsObject(); 368LineEndingAssert.FileUsesOsLineBreaksAndSingleFinalNewline(Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.config.json")); 369LineEndingAssert.FileUsesOsLineBreaksAndSingleFinalNewline(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.run.json")); 391var runJsonPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.run.json"); 418var aspireConfig = JsonNode.Parse(File.ReadAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.config.json")))!.AsObject(); 461File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.config.json"), existingAspireConfig); 472var runJson = JsonNode.Parse(File.ReadAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.run.json")))!.AsObject(); 511var aspireConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.config.json"); 536Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.run.json"))); 560Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"))); 662Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts"))); 664var config = JsonNode.Parse(File.ReadAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.config.json")))!.AsObject(); 677var existingAppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts"); 680File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "package.json"), """{ "type": "commonjs" }"""); 695Assert.False(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts"))); 696Assert.Equal("""{ "type": "commonjs" }""", File.ReadAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "package.json"))); 705File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "package.json"), "{}"); 713Directory.CreateDirectory(scaffoldDirectory.FullName); 714File.WriteAllText(Path.Combine(scaffoldDirectory.FullName, context.Language.AppHostFileName!), string.Empty); 744Assert.False(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts"))); 745Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "aspire-apphost", "apphost.mts"))); 781Assert.Empty(Directory.GetFiles(workspace.WorkspaceRoot.FullName, "*mcp*.json*", SearchOption.AllDirectories)); 833Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"))); 835var aspireSkillPath = Path.Combine(workspace.WorkspaceRoot.FullName, ".agents", "skills", CommonAgentApplicators.AspireSkillName); 838var aspireifySkillPath = Path.Combine(workspace.WorkspaceRoot.FullName, ".agents", "skills", CommonAgentApplicators.AspireifySkillName); 855Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"))); 858var agentsDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".agents", "skills"); 877Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"))); 882var aspireSkillPath = Path.Combine(selectedRoot.FullName, ".agents", "skills", CommonAgentApplicators.AspireSkillName, "SKILL.md"); 884Assert.False(Directory.Exists(Path.Combine(unselectedRoot.FullName, ".agents", "skills"))); 885Assert.False(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, ".mcp.json"))); 887var aspireifySkillPath = Path.Combine(selectedRoot.FullName, ".agents", "skills", CommonAgentApplicators.AspireifySkillName, "SKILL.md"); 905var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"); 921var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 950var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 974var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 995var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"); 1015var solutionFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Test.sln")); 1016File.WriteAllText(solutionFile.FullName, "Fake solution file"); 1059File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config")), 1068var solutionFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Test.sln")); 1069File.WriteAllText(solutionFile.FullName, "Fake solution file"); 1072var hivesDir = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "hives")); 1073Directory.CreateDirectory(Path.Combine(hivesDir.FullName, "pr-12345", "packages")); 1103[new PackageMapping("Aspire*", hivesDir.FullName + "/pr-12345/packages")], 1145var solutionFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Test.sln")); 1146File.WriteAllText(solutionFile.FullName, "Fake solution file"); 1211var solutionFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Test.sln")); 1212File.WriteAllText(solutionFile.FullName, "Fake solution file"); 1260var solutionFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Test.sln")); 1261File.WriteAllText(solutionFile.FullName, "Fake solution file"); 1330Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"))); 1332var nugetConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"); 1365Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"))); 1367var nugetConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"); 1402var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1426var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1475var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1519var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1634var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1741var solutionFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Test.sln")); 1742File.WriteAllText(solutionFile.FullName, "Fake solution file"); 1820var solutionFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Test.sln")); 1821File.WriteAllText(solutionFile.FullName, "Fake solution file"); 1824var hivesDir = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "hives")); 1908var solutionFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Test.sln")); 1909File.WriteAllText(solutionFile.FullName, "Fake solution file"); 1911var nugetConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"); 1969var solutionFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Test.sln")); 1970File.WriteAllText(solutionFile.FullName, "Fake solution file"); 1998var nugetConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"); 2016var solutionFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Test.sln")); 2017File.WriteAllText(solutionFile.FullName, "Fake solution file"); 2020var appHostDir = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Test.AppHost")); 2022Assert.False(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"))); 2043var nugetConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"); 2061var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"); 2063Assert.False(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"))); 2080var nugetConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"); 2099var solutionFile = new FileInfo(Path.Combine(solutionDir.FullName, "Test.sln")); 2100File.WriteAllText(solutionFile.FullName, "Fake solution file"); 2129Assert.True(File.Exists(Path.Combine(solutionDir.FullName, "nuget.config")), 2131Assert.False(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config")), 2133AssertNuGetConfigHasChannelShape(Path.Combine(solutionDir.FullName, "nuget.config"), contextChannel); 2149var solutionFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Test.sln")); 2150File.WriteAllText(solutionFile.FullName, "Fake solution file"); 2161var nugetConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"); 2210var solutionFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Test.sln")); 2211File.WriteAllText(solutionFile.FullName, "Fake solution file"); 2242var nugetConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"); 2260var solutionFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Test.sln")); 2261File.WriteAllText(solutionFile.FullName, "Fake solution file"); 2305File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config")), 2321var solutionFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Test.slnx")); 2322File.WriteAllText(solutionFile.FullName, """<Solution />"""); 2351var nugetConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"); 2440File.WriteAllText(Path.Combine(context.TargetDirectory.FullName, appHostFileName), string.Empty); 2450File.WriteAllText(Path.Combine(context.TargetDirectory.FullName, AspireConfigFile.FileName), config.ToJsonString());
Commands\IntegrationAssemblyNameResolverTests.cs (1)
53Path = Directory.CreateTempSubdirectory().FullName;
Commands\LogsCommandTests.cs (5)
728AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "TestAppHost", "TestAppHost.csproj"), 818AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "TestAppHost", "TestAppHost.csproj"), 985AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "TestAppHost", "TestAppHost.csproj"), 1548AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "TestAppHost", "TestAppHost.csproj"), 1626AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "TestAppHost", "TestAppHost.csproj"),
Commands\LsCommandTests.cs (20)
93var appHostPath1 = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost.csproj"); 94var appHostPath2 = Path.Combine(workspace.WorkspaceRoot.FullName, "App2", "App2.AppHost.csproj"); 174var configuredAppHost = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "ConfiguredAppHost.csproj")); 175await File.WriteAllTextAsync(configuredAppHost.FullName, "Not a real apphost"); 176await File.WriteAllTextAsync(Path.Combine(workingDirectory.FullName, "aspire.config.json"), JsonSerializer.Serialize(new 203Assert.Equal(configuredAppHost.FullName, candidate.Path); 214var appHostPath1 = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost.csproj"); 215var appHostPath2 = Path.Combine(workspace.WorkspaceRoot.FullName, "App2", "App2.AppHost.csproj"); 289var appHostPath1 = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost.csproj"); 290var appHostPath2 = Path.Combine(workspace.WorkspaceRoot.FullName, "App2", "App2.AppHost.csproj"); 374var appHostPathZ = Path.Combine(workspace.WorkspaceRoot.FullName, "ZApp", "Z.AppHost.csproj"); 375var appHostPathA = Path.Combine(workspace.WorkspaceRoot.FullName, "AApp", "A.AppHost.csproj"); 376var appHostPathM = Path.Combine(workspace.WorkspaceRoot.FullName, "MApp", "M.AppHost.csproj"); 419var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App", "App.AppHost.csproj"); 520var appHostPath1 = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost.csproj"); 521var appHostPath2 = Path.Combine(workspace.WorkspaceRoot.FullName, "App2", "App2.AppHost.csproj"); 556var appHostPath1 = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost.csproj"); 557var appHostPath2 = Path.Combine(workspace.WorkspaceRoot.FullName, "App2", "App2.AppHost.csproj"); 609var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App", "App.AppHost.csproj"); 762var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App", "App.AppHost.csproj");
Commands\NewCommandChannelResolutionTests.cs (4)
574pathDeriverCallback: (ctx, projectName) => Path.Combine(ctx.WorkingDirectory.FullName, projectName), 581var outputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "captured"); 681File.WriteAllText(Path.Combine(packagesDirectory.FullName, $"Aspire.ProjectTemplates.{version}.nupkg"), string.Empty); 686new PackageMapping("Aspire*", packagesDirectory.FullName.Replace('\\', '/')),
Commands\NewCommandLocalTemplateTests.ConfiguredGitSourceObjects.cs (18)
85var root = Path.GetRelativePath(workspace.Path, destination.FullName); 184Directory.Move(link, Path.Combine(destination.FullName, "templates")); 206Path.Combine(provider.GetRequiredService<CliExecutionContext>().CacheDirectory.FullName, "git"))); 220Path.GetRelativePath(workspace.Path, Path.Combine(destination.FullName, "templates/sample")), 237var missingPath = Path.Combine(GetGitFetches(git)[0].Destination.FullName, "templates", "missing"); 245Path.Combine(provider.GetRequiredService<CliExecutionContext>().CacheDirectory.FullName, "git"))); 296await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "init", "--initial-branch=main"); 297await GitTestHelper.ConfigureGitIdentityAsync(repository.FullName, outputHelper); 298await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "config", "tag.gpgsign", "false"); 299await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "add", "."); 300await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "commit", "-m", "Pinned templates"); 301var pinnedSha = (await File.ReadAllTextAsync(Path.Combine(repository.FullName, ".git", "refs", "heads", "main"))).Trim(); 302await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "branch", "release/17.0"); 303await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "tag", "-a", "v17.0", "-m", "Pinned tag"); 304await File.WriteAllTextAsync(Path.Combine(repository.FullName, "templates", "sample", "TemplateApp.txt"), "Latest: GreetingValue"); 305await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "commit", "-am", "Latest templates"); 342var fixtureUrl = new Uri(repository.FullName).AbsoluteUri; 381Assert.Equal(2, Directory.GetDirectories(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cache", "git")).Length);
Commands\NewCommandLocalTemplateTests.ConfiguredGitSources.cs (10)
179await File.WriteAllTextAsync(Path.Combine(partial.FullName, "partial-object"), "partial download", token); 222Path.Combine(provider.GetRequiredService<CliExecutionContext>().CacheDirectory.FullName, "git"))); 238await File.WriteAllTextAsync(Path.Combine(partial.FullName, "partial-object"), "partial download", token); 269var cacheRoot = Path.Combine(provider.GetRequiredService<CliExecutionContext>().CacheDirectory.FullName, "git"); 323await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "init"); 324await GitTestHelper.ConfigureGitIdentityAsync(repository.FullName, outputHelper); 325await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "add", "."); 326await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "commit", "-m", "Add template"); 343var fixtureUrl = new Uri(repository.FullName).AbsoluteUri; 366Path.GetRelativePath(workspace.Path, destination.FullName), "sample", "Sample template", marker);
Commands\NewCommandLocalTemplateTests.ConfiguredSources.cs (2)
257["empty"] = empty.FullName, 651await File.WriteAllTextAsync(Path.Combine(config.FullName, "template.json"), JsonSerializer.Serialize(new
Commands\NewCommandLocalTemplateTests.cs (88)
36await File.WriteAllTextAsync(Path.Combine(config.FullName, "template.json"), """ 82await File.WriteAllTextAsync(Path.Combine(config.FullName, "template.json"), JsonSerializer.Serialize(new 250await File.WriteAllTextAsync(Path.Combine(config.FullName, "template.json"), """ 391await File.WriteAllTextAsync(Path.Combine(config.FullName, "template.json"), """ 440await File.WriteAllTextAsync(Path.Combine(config.FullName, "template.json"), """ 502await File.WriteAllTextAsync(Path.Combine(config.FullName, "template.json"), """ 543await File.WriteAllTextAsync(Path.Combine(gitDirectory.FullName, "config"), "Original repository configuration"); 550await File.WriteAllTextAsync(Path.Combine(nestedGitDirectory.FullName, "config"), "Nested repository configuration"); 552await File.WriteAllTextAsync(Path.Combine(nestedWorktree.FullName, ".git"), "gitdir: ../../git-storage"); 553await File.WriteAllTextAsync(Path.Combine(nestedWorktree.FullName, "content.txt"), "Keep worktree content"); 557await File.WriteAllTextAsync(Path.Combine(github.FullName, "content.txt"), "Keep GitHub content"); 569Assert.Equal("Original repository configuration", await File.ReadAllTextAsync(Path.Combine(gitDirectory.FullName, "config"))); 583await File.WriteAllTextAsync(Path.Combine(config.FullName, "template.json"), """ 593await File.WriteAllTextAsync(Path.Combine(git.FullName, "config"), "Original repository configuration"); 596await File.WriteAllTextAsync(Path.Combine(nestedGit.FullName, "config"), "Nested repository configuration"); 600await File.WriteAllTextAsync(Path.Combine(github.FullName, "content.txt"), "Keep GitHub content"); 607Assert.False(fileSystem.FileExists(Path.Combine(nestedGit.FullName, "config"))); 608Assert.Throws<FileNotFoundException>(() => fileSystem.ReadAllText(Path.Combine(nestedGit.FullName, "config"))); 704await File.WriteAllTextAsync(Path.Combine(config.FullName, "template.json"), $$""" 770Directory.CreateDirectory(Path.Combine(context.HivesDirectory.FullName, channel, "packages")); 785.Replace(PathNormalizer.NormalizePathForStorage(workspace.WorkspaceRoot.FullName), "{workspace}")) 826_ => Path.Combine(context.HivesDirectory.FullName, channel, "packages") 867new[] { localPackagesOverride ? packages.FullName : sourceOverride, PackageSources.NuGetOrg }.Order(StringComparer.Ordinal), 962_ => Path.Combine(context.HivesDirectory.FullName, channel, "packages") 991var target = Path.Combine(destination.FullName, Path.GetRelativePath(Path.Combine(workspace.Path, "template"), file)); 1059await File.WriteAllTextAsync(Path.Combine(conflictingDirectory.FullName, "keep.txt"), "Template content"); 1125localPackagesOverride ? PathNormalizer.NormalizePathForStorage(packages.FullName) : "https://nuget.example/v3/index.json?first=1&second=2", 1130.Replace(PathNormalizer.NormalizePathForStorage(workspace.WorkspaceRoot.FullName), "{workspace}")) 1389await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "init"); 1390await GitTestHelper.ConfigureGitIdentityAsync(repository.FullName, outputHelper); 1391await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "add", "."); 1392await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "commit", "-m", "Add template"); 1405var cacheRoot = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cache", "git"); 1408List<string> arguments = ["new", "--template-repository", new Uri(repository.FullName).AbsoluteUri, 1430Assert.True(Directory.Exists(repository.FullName)); 1472Assert.Empty(Directory.GetFileSystemEntries(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cache", "git"))); 1500Assert.False(Directory.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cache", "git"))); 1520Directory.CreateDirectory(Path.Combine(destination.FullName, ".git")); 1522Directory.Move(linkPath, Path.Combine(destination.FullName, "template")); 1539Assert.Empty(Directory.GetFileSystemEntries(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cache", "git"))); 1552var gitObject = Path.Combine(gitDirectory.FullName, "partial-object"); 1570Assert.Empty(Directory.GetFileSystemEntries(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cache", "git"))); 1583checkouts.Add(destination.FullName); 1584Directory.CreateDirectory(Path.Combine(destination.FullName, ".git")); 1585var readOnlyFile = Path.Combine(destination.FullName, ".git", "read-only-object"); 1588await CreateTemplateAsync(workspace, Path.GetRelativePath(workspace.Path, Path.Combine(destination.FullName, "template"))); 1596var cacheRoot = Path.Combine(provider.GetRequiredService<CliExecutionContext>().CacheDirectory.FullName, "git"); 1612Assert.All(checkouts, path => Assert.Equal(cacheRoot, Directory.GetParent(path)!.Parent!.FullName)); 1624Assert.False(File.Exists(TemporaryCacheDirectory.GetLeasePath(Directory.GetParent(path)!.FullName))); 1626Assert.Single(Directory.GetFileSystemEntries(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cache", "git"))); 1636var identityFile = Path.Combine(repository.FullName, "template", "identity.txt"); 1638await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "init", "--initial-branch=main"); 1639await GitTestHelper.ConfigureGitIdentityAsync(repository.FullName, outputHelper); 1640await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "config", "tag.gpgsign", "false"); 1641await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "add", "."); 1642await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "commit", "-m", "First template"); 1643var firstSha = (await File.ReadAllTextAsync(Path.Combine(repository.FullName, ".git", "refs", "heads", "main"))).Trim(); 1644await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "tag", "v1"); 1645await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "tag", "-a", "annotated", "-m", "Annotated version"); 1646await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "branch", "feature/templates"); 1648await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "commit", "-am", "Second template"); 1649var secondSha = (await File.ReadAllTextAsync(Path.Combine(repository.FullName, ".git", "refs", "heads", "main"))).Trim(); 1662var cacheRoot = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cache", "git"); 1678await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "commit", "-am", "Move branch"); 1692var repositoryPath = Path.GetRelativePath(provider.GetRequiredService<CliExecutionContext>().WorkingDirectory.FullName, repository.FullName); 1716Directory.CreateDirectory(Path.Combine(destination.FullName, ".git")); 1717await CreateTemplateAsync(workspace, Path.GetRelativePath(workspace.Path, Path.Combine(destination.FullName, "one"))); 1718await CreateTemplateAsync(workspace, Path.GetRelativePath(workspace.Path, Path.Combine(destination.FullName, "two"))); 1748var cacheRoot = Path.Combine(provider.GetRequiredService<CliExecutionContext>().CacheDirectory.FullName, "git"); 1774Directory.CreateDirectory(Path.Combine(destination.FullName, ".git")); 1775await CreateTemplateAsync(workspace, Path.GetRelativePath(workspace.Path, Path.Combine(destination.FullName, "template"))); 1791var cacheRoot = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cache", "git"); 1796command => Assert.False(Directory.Exists(command.WorkingDirectory.FullName))); 1835Assert.False(Directory.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cache", "git"))); 1857Assert.False(Directory.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cache", "git"))); 1896Assert.False(Directory.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cache", "git"))); 1929Assert.False(Directory.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cache", "git"))); 1935await File.WriteAllTextAsync(Path.Combine(config.FullName, "aspirecli.host.json"), 1937await File.WriteAllTextAsync(Path.Combine(config.FullName, "template.json"), $$""" 2022await File.WriteAllTextAsync(Path.Combine(config.FullName, "aspirecli.host.json"), 2024await File.WriteAllTextAsync(Path.Combine(config.FullName, "template.json"), """ 2056await File.WriteAllTextAsync(Path.Combine(config.FullName, "template.json"), $$""" 2108await File.WriteAllTextAsync(Path.Combine(config.FullName, "template.json"), JsonSerializer.Serialize(new 2124await File.WriteAllTextAsync(Path.Combine(config.FullName, "template.json"), $$""" 2166await File.WriteAllTextAsync(Path.Combine(root.FullName, "TemplateApp.cs"), """ 2179await File.WriteAllTextAsync(Path.Combine(root.FullName, "worker-only.txt"), "Worker content"); 2180await File.WriteAllTextAsync(Path.Combine(root.FullName, "identity.txt"), name);
Commands\NewCommandLocalTemplateTests.HostConfiguration.cs (4)
126await File.WriteAllTextAsync(Path.Combine(config.FullName, "template.json"), """ 148await File.WriteAllTextAsync(Path.Combine(config.FullName, hostFile), """ 405FileSystemHelper.CopyDirectory(source, template.FullName); 408var configurationPath = Path.Combine(template.FullName, ".template.config", "template.json");
Commands\NewCommandLocalTemplateTests.NuGetValues.cs (7)
103File.Copy(Path.Combine(feed.FullName, "Aspire.Hosting.Dotnet.13.6.1-preview.3.nupkg"), 104Path.Combine(embedded.FullName, "Aspire.Hosting.Dotnet.13.6.1-preview.3.nupkg")); 124[new PackageMapping("Aspire*", feed.FullName)], 138[policy == "embedded" ? Path.Combine(output, "feed") : feed.FullName], 454await File.WriteAllTextAsync(Path.Combine(output.FullName, "keep.txt"), "Concurrent user content", token); 518await File.WriteAllTextAsync(Path.Combine(config.FullName, "template.json"), """ 530await File.WriteAllTextAsync(Path.Combine(config.FullName, "aspirecli.host.json"), $$"""
Commands\NewCommandLocalTemplateTests.PromptDefaults.cs (2)
282await File.WriteAllTextAsync(Path.Combine(config.FullName, "template.json"), """ 318await File.WriteAllTextAsync(Path.Combine(config.FullName, "aspirecli.host.json"), """
Commands\NewCommandLocalTemplateTests.SourceManagement.cs (1)
420await File.WriteAllTextAsync(Path.Combine(cache.FullName, "workspace-config-locks"), "Blocks lock directory creation.");
Commands\NewCommandTemplateConfigPersistenceTests.cs (11)
281dotNetTemplateInstalls.Add(new DotNetTemplateInstall(packageName, version, nugetConfigFile?.FullName, nugetSource)); 326var outputDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, outputDirectoryName); 341Assert.Contains(packagesDirectory.FullName.Replace('\\', '/'), csharpNuGetConfig); 356Assert.Equal(packagesDirectory.FullName.Replace('\\', '/'), install.NuGetSource); 364Assert.Contains(packagesDirectory.FullName.Replace('\\', '/'), dotNetNuGetConfig); 450var outputDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, outputDirectoryName); 525hivesDirectory: new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "hives")), 561var installPrefix = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "custom-aspire-prefix")); 562var processPath = Path.Combine(installPrefix.FullName, "dogfood", PrChannelName, "bin", "aspire"); 566var packagesDirectory = Directory.CreateDirectory(Path.Combine(installPrefix.FullName, "hives", PrChannelName, "packages")); 567File.WriteAllText(Path.Combine(packagesDirectory.FullName, $"Aspire.ProjectTemplates.{s_prVersion}.nupkg"), string.Empty);
Commands\NewCommandTests.cs (108)
181var outputDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "TemplateOut"); 587var config = AspireConfigFile.Load(Path.Combine(workspace.WorkspaceRoot.FullName, "output")); 940File.WriteAllText(Path.Combine(context.TargetDirectory.FullName, "apphost.mts"), "// test apphost"); 957Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "output", "apphost.mts"))); 958Assert.False(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "output", "aspire.config.json"))); 1106File.WriteAllText(Path.Combine(context.TargetDirectory.FullName, "AppHost.java"), "package aspire;"); 1131File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.config.json"), """ 1169File.WriteAllText(Path.Combine(context.TargetDirectory.FullName, "AppHost.java"), "package aspire;"); 1197File.WriteAllText(Path.Combine(context.TargetDirectory.FullName, "apphost.mts"), "// test apphost"); 1209Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "output", "apphost.mts"))); 1228var document = XDocument.Load(nugetConfig.FullName); 1281AssertSourceOverrideNuGetConfig(Path.Combine(workspace.WorkspaceRoot.FullName, "output"), expectedSource); 1291var expectedSource = Path.Combine(workspace.WorkspaceRoot.FullName, "relative-feed"); 1293File.WriteAllText(Path.Combine(nestedDirectory.FullName, "Aspire.ProjectTemplates.9.2.0.nupkg"), string.Empty); 1324AssertSourceOverrideNuGetConfig(Path.Combine(workspace.WorkspaceRoot.FullName, "output"), expectedSource); 1336var sourceOverride = Path.Combine(workspace.WorkspaceRoot.FullName, "source-feed"); 1361File.WriteAllText(Path.Combine(context.TargetDirectory.FullName, scaffoldFileName), "// test apphost"); 1373AssertSourceOverrideNuGetConfig(Path.Combine(workspace.WorkspaceRoot.FullName, "output"), sourceOverride); 1384var sourceOverride = Path.Combine(workspace.WorkspaceRoot.FullName, "source-feed"); 1397AssertSourceOverrideNuGetConfig(Path.Combine(workspace.WorkspaceRoot.FullName, "output"), sourceOverride); 1420Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "output")); 1433Assert.False(Directory.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "output"))); 1465var expectedSource = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.org"); 1468Assert.False(Directory.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "output"))); 1488File.WriteAllText(Path.Combine(context.TargetDirectory.FullName, "apphost.mts"), "// test apphost"); 1527File.WriteAllText(Path.Combine(context.TargetDirectory.FullName, "AppHost.java"), "package aspire;"); 1539Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "output", "AppHost.java"))); 1563File.WriteAllText(Path.Combine(context.TargetDirectory.FullName, "apphost.py"), "# test apphost"); 1575Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "output", "apphost.py"))); 1591Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "output", "apphost.cs"))); 1621var appHostCreated = File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "output", "apphost.cs")); 1653var content = await File.ReadAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "output", "apphost.cs")); 1683var outputDir = Path.Combine(workspace.WorkspaceRoot.FullName, "output"); 1717var outputDir = Path.Combine(workspace.WorkspaceRoot.FullName, "output"); 1792var outputRoot = Path.Combine(workspace.WorkspaceRoot.FullName, "output"); 1908capturedTargetDirectory = context.TargetDirectory.FullName; 1926var expectedPath = Path.Combine(workspace.WorkspaceRoot.FullName, "TestApp"); 1971await File.WriteAllTextAsync(Path.Combine(context.TargetDirectory.FullName, "aspire.config.json"), """ 2001var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, "output", "aspire.config.json"); 2061var config = AspireConfigFile.Load(directory.FullName); 2065var modulesDir = Directory.CreateDirectory(Path.Combine(directory.FullName, LanguageInfo.GeneratedFolderName)); 2066File.WriteAllText(Path.Combine(modulesDir.FullName, "aspire.mts"), "// generated sdk"); 2081Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "output", LanguageInfo.GeneratedFolderName, "aspire.mts"))); 2151var sourceOverride = Path.Combine(workspace.WorkspaceRoot.FullName, "source-feed"); 2189var modulesDir = Directory.CreateDirectory(Path.Combine(directory.FullName, ".aspire", "modules")); 2190File.WriteAllText(Path.Combine(modulesDir.FullName, "aspire.ts"), "// generated sdk"); 2203AssertSourceOverrideNuGetConfig(Path.Combine(workspace.WorkspaceRoot.FullName, "output"), sourceOverride); 2230var document = XDocument.Load(nugetConfigFile.FullName); 2231var settings = NuGetTestHelper.LoadSettings(nugetConfigFile.Directory!.FullName); 2258AssertSourceOverrideNuGetConfig(Path.Combine(workspace.WorkspaceRoot.FullName, "output"), sourceOverride); 2268var sourceOverride = Path.Combine(workspace.WorkspaceRoot.FullName, "source-feed"); 2367var outputDir = Path.Combine(workspace.WorkspaceRoot.FullName, "output"); 2392var outputDir = Path.Combine(workspace.WorkspaceRoot.FullName, "output"); 2489Assert.Equal(Path.Combine(workspace.WorkspaceRoot.FullName, "aspire-starter"), capturedOutputPath); 2525var result = command.Parse($"new aspire-starter --name MyProject --output {Path.Combine(workspace.WorkspaceRoot.FullName, "my-project")} --use-redis-cache --test-framework None"); 2567var outputDir = Path.Combine(workspace.WorkspaceRoot.FullName, "output"); 2686Path.Combine(workspace.WorkspaceRoot.FullName, "source"); 2717var expectedPath = Path.Combine(workspace.WorkspaceRoot.FullName, "source", "MyFirstApp"); 2745Path.Combine(workspace.WorkspaceRoot.FullName, "source", "MyFirstApp"); 2776var expectedPath = Path.Combine(workspace.WorkspaceRoot.FullName, "source", "MyFirstApp"); 2802Path.Combine(workspace.WorkspaceRoot.FullName, "source"); 2833var expectedPath = Path.Combine(workspace.WorkspaceRoot.FullName, "source"); 2864selectedPathFactory(workspace.WorkspaceRoot.FullName); 2893Assert.Equal(expectedPathFactory(workspace.WorkspaceRoot.FullName), capturedOutputPath); 2930Path.Combine(workspace.WorkspaceRoot.FullName, "source"); 2941File.WriteAllText(Path.Combine(context.TargetDirectory.FullName, "apphost.ts"), "// test apphost"); 2955var expectedPath = Path.Combine(workspace.WorkspaceRoot.FullName, "source", projectName); 2956Assert.Equal(expectedPath, capturedTargetDirectory.FullName); 2967File.WriteAllText(Path.Combine(selectedParent.FullName, "existing.txt"), "existing content"); 2989var validationResult = validator(selectedParent.FullName); 2992return selectedParent.FullName; 3004File.WriteAllText(Path.Combine(context.TargetDirectory.FullName, "apphost.ts"), "// test apphost"); 3019var expectedPath = Path.Combine(selectedParent.FullName, projectName); 3020Assert.Equal(expectedPath, capturedTargetDirectory.FullName); 3031var collidingProject = Directory.CreateDirectory(Path.Combine(collidingParent.FullName, projectName)); 3032File.WriteAllText(Path.Combine(collidingProject.FullName, "existing.txt"), "existing content"); 3034var selectedParents = new Queue<string?>([collidingParent.FullName, validParent.FullName]); 3097Assert.Equal(Path.Combine(validParent.FullName, projectName), capturedOutputPath); 3101collidingProject.FullName); 3145return selectedParent.FullName; 3157File.WriteAllText(Path.Combine(context.TargetDirectory.FullName, "apphost.ts"), "// test apphost"); 3172var expectedPath = Path.Combine(selectedParent.FullName, projectName); 3173Assert.Equal(expectedPath, capturedTargetDirectory.FullName); 3215selectedOutputPath.FullName; 3226File.WriteAllText(Path.Combine(context.TargetDirectory.FullName, "apphost.ts"), "// test apphost"); 3241Assert.Equal(selectedOutputPath.FullName, capturedTargetDirectory.FullName); 3242Assert.True(File.Exists(Path.Combine(selectedOutputPath.FullName, "apphost.ts"))); 3243Assert.False(File.Exists(Path.Combine(selectedOutputPath.FullName, projectName, "apphost.ts"))); 3269Path.Combine(workspace.WorkspaceRoot.FullName, "source", projectName); 3280File.WriteAllText(Path.Combine(context.TargetDirectory.FullName, "apphost.ts"), "// test apphost"); 3294var expectedPath = Path.Combine(workspace.WorkspaceRoot.FullName, "source", projectName); 3295Assert.Equal(expectedPath, capturedTargetDirectory.FullName); 3334var outputDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "output"); 3362var skillPath = Path.Combine(workspace.WorkspaceRoot.FullName, "output", ".agents", "skills", CommonAgentApplicators.AspireSkillName, "SKILL.md"); 3388var outputDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "output"); 3416var outputDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "output"); 3443.Select(file => Path.Combine(homeDirectory.FullName, ".claude", "skills", skill.Name, file.RelativePath))); 3445Assert.Equal(expectedFiles.Order(), Directory.EnumerateFiles(homeDirectory.FullName, "*", SearchOption.AllDirectories).Order()); 3446var outputDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "output"); 3460File.WriteAllText(Path.Combine(existingDir.FullName, "file.txt"), "content"); 3474var result = command.Parse($"new aspire-starter --name TestApp --output {existingDir.FullName} --use-redis-cache --test-framework None"); 3479var expectedError = string.Format(CultureInfo.CurrentCulture, NewCommandStrings.OutputDirectoryNotEmptyNonInteractive, existingDir.FullName); 3496var result = command.Parse($"new aspire-starter --name TestApp --output {emptyDir.FullName} --use-redis-cache --test-framework None"); 3509File.WriteAllText(Path.Combine(existingDir.FullName, "file.txt"), "content"); 3606Assert.Equal(projectDir.FullName, capturedOutputPath); 3613var validator = OutputPathHelper.CreateOutputPathValidator(workspace.WorkspaceRoot.FullName);
Commands\ParseResultHelperTests.cs (3)
68[$"--capture-profile-output={new FileInfo("--").FullName}", "--", "--custom-arg"], 119Assert.Equal(["--capture-profile-output", new FileInfo(relativePath).FullName], forwardedArguments.Tokens); 143Assert.Equal([$"--capture-profile-output={new FileInfo("--").FullName}"], forwardedArguments.Tokens);
Commands\PsCommandTests.cs (18)
131AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost.csproj"), 146AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App2", "App2.AppHost.csproj"), 198var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost.csproj"); 237AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost.csproj"), 277AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost.csproj"), 283AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost.csproj"), 321AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost.csproj"), 365AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost.csproj"), 402var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost.csproj"); 435var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost.csproj"); 505AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost.csproj"), 544AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost.csproj"), 578var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost.csproj"); 677AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost.csproj"), 721AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost.csproj"), 761AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost.csproj"), 768AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost.csproj"), 808AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost.csproj"),
Commands\PublishCommandPromptingIntegrationTests.cs (8)
262var selectedFile = Path.Combine(workspace.WorkspaceRoot.FullName, "artifact.zip"); 265var missingFile = Path.Combine(workspace.WorkspaceRoot.FullName, "missing.zip"); 803var oversizedFile = Path.Combine(workspace.WorkspaceRoot.FullName, "large.bin"); 806var validFile = Path.Combine(workspace.WorkspaceRoot.FullName, "small.bin"); 849var wrongExtFile = Path.Combine(workspace.WorkspaceRoot.FullName, "cert.txt"); 852var correctFile = Path.Combine(workspace.WorkspaceRoot.FullName, "cert.pem"); 895var validFile = Path.Combine(workspace.WorkspaceRoot.FullName, "deploy.zip"); 941var validFile = Path.Combine(workspace.WorkspaceRoot.FullName, "archive.tar.gz");
Commands\ResourceCommandHelpParserTests.cs (2)
44Assert.EndsWith(Path.Combine("AppHost", "AppHost.csproj"), appHostProjectFile.FullName); 62Assert.EndsWith(Path.Combine("AppHost", "AppHost.csproj"), appHostProjectFile.FullName);
Commands\ResourceCommandTests.cs (12)
182var result = command.Parse($"""resource web --apphost "{appHostDirectory.FullName}" --help"""); 198var appHostProjectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 199File.WriteAllText(appHostProjectFile.FullName, "<Project />"); 211AppHostPath = appHostProjectFile.FullName, 216Path.Combine(workspace.WorkspaceRoot.FullName, "socket1"), 219Path.Combine(workspace.WorkspaceRoot.FullName, "socket2"), 229var result = command.Parse($"""resource web --apphost "{appHostProjectFile.FullName}" --help"""); 250var appHostProjectFile = new FileInfo(Path.Combine(realDirectory.FullName, "AppHost.csproj")); 251File.WriteAllText(appHostProjectFile.FullName, "<Project />"); 252var symlinkDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "link"); 253Directory.CreateSymbolicLink(symlinkDirectory, realDirectory.FullName); 259AppHostPath = appHostProjectFile.FullName,
Commands\RestoreCommandTests.cs (8)
19var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 20await File.WriteAllTextAsync(appHostFile.FullName, "<Project Sdk=\"Microsoft.NET.Sdk\" />"); 32capturedProjectFilePath = projectFilePath.FullName; 40var result = command.Parse($"restore --apphost {appHostFile.FullName}"); 48PathNormalizer.ResolveToFilesystemPath(appHostFile.FullName), 56var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 57await File.WriteAllTextAsync(appHostFile.FullName, "<Project Sdk=\"Microsoft.NET.Sdk\" />"); 78var result = command.Parse($"restore --apphost {appHostFile.FullName}");
Commands\RunCommandTests.cs (150)
65var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 66await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 91var pendingRun = command.Parse($"run --apphost \"{appHostFile.FullName}\" {arguments}") 99Assert.Equal(AspireSecretsPathHelper.ComputeSyntheticAppHostId(appHostFile.FullName), 146var result = command.Parse(["run", "--apphost", appHostFile.FullName, "--launch-profile", "E2E"]); 188var result = command.Parse(["run", "--detach", "--apphost", appHostFile.FullName, "--launch-profile", "E2E"]); 206File.WriteAllText(Path.Combine(propertiesDirectory.FullName, "launchSettings.json"), """ 239var result = command.Parse(["run", "--apphost", appHostFile.FullName, "--launch-profile", "missing"]); 255File.WriteAllText(Path.Combine(propertiesDirectory.FullName, "launchSettings.json"), $$""" 284var result = command.Parse(["run", "--apphost", appHostFile.FullName, "--launch-profile", "container"]); 320var result = command.Parse(["run", "--apphost", appHostFile.FullName, "--launch-profile", "E2E"]); 361var appHostFile = new FileInfo(Path.Combine(appHostDir.FullName, "AppHost.csproj")); 362await File.WriteAllTextAsync(appHostFile.FullName, "<Project />", TestContext.Current.CancellationToken); 387var result = command.Parse($"run --apphost {appHostFile.FullName}"); 402var appHostFile = new FileInfo(Path.Combine(appHostDir.FullName, "AppHost.csproj")); 403await File.WriteAllTextAsync(appHostFile.FullName, "<Project />", TestContext.Current.CancellationToken); 428var result = command.Parse($"run --apphost {appHostFile.FullName}"); 449var appHostFile = new FileInfo(Path.Combine(appHostDir.FullName, "AppHost.csproj")); 450await File.WriteAllTextAsync(appHostFile.FullName, "<Project />", TestContext.Current.CancellationToken); 476var result = command.Parse($"run --apphost {appHostFile.FullName}"); 494var appHostFile = new FileInfo(Path.Combine(appHostDir.FullName, "AppHost.csproj")); 495await File.WriteAllTextAsync(appHostFile.FullName, "<Project />", TestContext.Current.CancellationToken); 543var result = command.Parse($"run --apphost {appHostFile.FullName}"); 578var appHostFile = new FileInfo(Path.Combine(appHostDir.FullName, "AppHost.csproj")); 579await File.WriteAllTextAsync(appHostFile.FullName, "<Project />", TestContext.Current.CancellationToken); 635var result = command.Parse($"run --apphost {appHostFile.FullName}"); 674var appHostFile = new FileInfo(Path.Combine(appHostDir.FullName, "AppHost.csproj")); 675await File.WriteAllTextAsync(appHostFile.FullName, "<Project />", TestContext.Current.CancellationToken); 703var result = command.Parse($"run --apphost {appHostFile.FullName}"); 779var appHostFile = new FileInfo(Path.Combine(appHostDir.FullName, "AppHost.csproj")); 780await File.WriteAllTextAsync(appHostFile.FullName, "<Project />", TestContext.Current.CancellationToken); 839var pendingCommand = command.Parse($"run --apphost {appHostFile.FullName}") 881var appHostFile = new FileInfo(Path.Combine(appHostDir.FullName, "AppHost.csproj")); 882await File.WriteAllTextAsync(appHostFile.FullName, "<Project />", TestContext.Current.CancellationToken); 933var result = command.Parse($"run --apphost {appHostFile.FullName}"); 977var appHostFile = new FileInfo(Path.Combine(appHostDir.FullName, "AppHost.csproj")); 978await File.WriteAllTextAsync(appHostFile.FullName, "<Project />", TestContext.Current.CancellationToken); 1040var result = command.Parse($"run --apphost {appHostFile.FullName}"); 1082var appHostFile = new FileInfo(Path.Combine(appHostDir.FullName, "AppHost.csproj")); 1083await File.WriteAllTextAsync(appHostFile.FullName, "<Project />", TestContext.Current.CancellationToken); 1138var result = command.Parse($"run --apphost {appHostFile.FullName}"); 1258await File.WriteAllTextAsync(Path.Combine(appHost1Dir.FullName, "AppHost1.csproj"), "fake"); 1261await File.WriteAllTextAsync(Path.Combine(appHost2Dir.FullName, "AppHost2.csproj"), "fake"); 1326File.WriteAllText(projectFile.FullName, """ 1362var appHostProjectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost", "AppHost.csproj")); 1374var result = command.Parse($"run --apphost {appHostProjectFile.FullName}"); 1388var appHostProjectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost", "AppHost.csproj")); 1392Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName), 1421var appHostProjectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost", "AppHost.csproj")); 1455var appHostProjectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost", "AppHost.csproj")); 1466var result = command.Parse($"run --apphost {appHostProjectFile.FullName}"); 1484var appHostProjectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost", "AppHost.csproj")); 1526var result = command.Parse($"run --apphost {appHostProjectFile.FullName}"); 1561var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 1562await File.WriteAllTextAsync(appHostFile.FullName, "<Project />", TestContext.Current.CancellationToken); 1579var parentResult = parentCommand.Parse($"run --detach --apphost {appHostFile.FullName}"); 1635File.WriteAllText(Path.Combine(propertiesDirectory.FullName, "launchSettings.json"), """ 1667"--apphost", appHostFile.FullName, 1754var appHostFile = new FileInfo(Path.Combine(appHostDir.FullName, "AppHost.csproj")); 1755await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 1800var result = command.Parse($"run --apphost {appHostFile.FullName}"); 1830var appHostFile = new FileInfo(Path.Combine(appHostDir.FullName, "AppHost.csproj")); 1831await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 1870var result = command.Parse($"run --apphost {appHostFile.FullName}"); 1894var appHostFile = new FileInfo(Path.Combine(appHostDir.FullName, "AppHost.csproj")); 1895await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 1938var result = command.Parse($"run --apphost {appHostFile.FullName}"); 1956var appHostFile = new FileInfo(Path.Combine(appHostDir.FullName, "AppHost.csproj")); 1957await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 1995var result = command.Parse($"run --apphost {appHostFile.FullName}"); 2016var appHostFile = new FileInfo(Path.Combine(appHostDir.FullName, "AppHost.csproj")); 2017await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 2054var result = command.Parse($"run --apphost {appHostFile.FullName}"); 2084var appHostFile = new FileInfo(Path.Combine(appHostDir.FullName, "AppHost.csproj")); 2085await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 2125var result = command.Parse($"run --apphost {appHostFile.FullName}"); 2167var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 2168await File.WriteAllTextAsync(appHostFile.FullName, "<Project />", TestContext.Current.CancellationToken); 2235var pendingCommand = command.Parse($"run --apphost {appHostFile.FullName}") 2273var appHostFile = new FileInfo(Path.Combine(appHostDir.FullName, "AppHost.csproj")); 2274await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 2318var result = command.Parse($"run --apphost {appHostFile.FullName}"); 2336var appHostFile = new FileInfo(Path.Combine(appHostDir.FullName, "AppHost.csproj")); 2337await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 2379var result = command.Parse($"run --apphost {appHostFile.FullName}"); 2397var appHostFile = new FileInfo(Path.Combine(appHostDir.FullName, "AppHost.csproj")); 2398await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 2431var result = command.Parse($"run --apphost {appHostFile.FullName}"); 2459var appHostFile = new FileInfo(Path.Combine(appHostDir.FullName, "AppHost.csproj")); 2460await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 2503var result = command.Parse($"run --apphost {appHostFile.FullName}"); 3136var logFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "cli [run].log"); 3258var appHostDirectoryPath = Path.Combine(workspace.WorkspaceRoot.FullName, "src", "MyApp.AppHost"); 3260var appHostProjectPath = Path.Combine(appHostDirectory.FullName, "MyApp.AppHost.csproj"); 3262File.WriteAllText(appHostProjectFile.FullName, "<Project></Project>"); 3901var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 3902await File.WriteAllTextAsync(projectFile.FullName, "<Project></Project>"); 3949var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 3950await File.WriteAllTextAsync(projectFile.FullName, "<Project></Project>"); 3993var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 3994await File.WriteAllTextAsync(projectFile.FullName, "<Project></Project>"); 4041var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 4042await File.WriteAllTextAsync(projectFile.FullName, "<Project></Project>"); 4084var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 4085await File.WriteAllTextAsync(projectFile.FullName, "<Project></Project>"); 4128var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 4129await File.WriteAllTextAsync(projectFile.FullName, "<Project></Project>"); 4172var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 4173await File.WriteAllTextAsync(projectFile.FullName, "<Project></Project>"); 4466var logFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "test.log"); 4528var logFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "test.log"); 4570var logFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "test.log"); 4628var logFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "test.log"); 4672var logFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "test.log"); 4733Path.Combine(workspace.WorkspaceRoot.FullName, "test.log"), 4771Path.Combine(workspace.WorkspaceRoot.FullName, "test.log"), 4806var logFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "test.log"); 4855var logFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "test.log"); 4899var logFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "test.log"); 4955Path.Combine(workspace.WorkspaceRoot.FullName, "test.log"), 4997var logFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "test.log"); 5054var appHostFile = new FileInfo(Path.Combine(appHostDir.FullName, "AppHost.csproj")); 5055await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 5081var result = command.Parse(explicitAppHost ? $"run --apphost \"{appHostFile.FullName}\"" : "run"); 5086Assert.Equal(workspace.WorkspaceRoot.FullName, workingDirectory); 5087Assert.Equal(explicitAppHost ? appHostFile.FullName : null, projectFile); 5100workspace.WorkspaceRoot.FullName, 5101Path.Combine(workspace.WorkspaceRoot.FullName, "common", ".git")); 5103var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 5104File.WriteAllText(appHostFile.FullName, "<Project />"); 5119"--apphost", appHostFile.FullName, 5153"--capture-profile-output", new FileInfo(relativeCapturePath).FullName, 5167workspace.WorkspaceRoot.FullName, 5168Path.Combine(workspace.WorkspaceRoot.FullName, "common", ".git")); 5170var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 5171File.WriteAllText(appHostFile.FullName, "<Project />"); 5179var result = command.Parse(["run", "--apphost", appHostFile.FullName, "--debug", "--", "--custom-arg", "value"]); 5195workspace.WorkspaceRoot.FullName, 5196Path.Combine(workspace.WorkspaceRoot.FullName, "common", ".git")); 5198var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 5199File.WriteAllText(appHostFile.FullName, "<Project />"); 5207var result = command.Parse(["run", "--apphost", appHostFile.FullName, "--debug", "--secret", "value"]); 5450var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 5451File.WriteAllText(appHostFile.FullName, "<Project />"); 5466var args = new List<string> { commandName, "--apphost", appHostFile.FullName }; 5491var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 5492File.WriteAllText(appHostFile.FullName, "<Project />"); 5499var backchannelsDirectory = Path.Combine(homeDirectory.FullName, ".aspire", "cli", "bch"); 5502var resolvedAppHostPath = PathNormalizer.ResolveSymlinks(appHostFile.FullName); 5503var prefix = BackchannelConstants.ComputeSocketPrefix(resolvedAppHostPath, homeDirectory.FullName);
Commands\SdkDumpCommandTests.cs (2)
448if (File.Exists(Path.Combine(currentDirectory.FullName, "Aspire.slnx"))) 450return currentDirectory.FullName;
Commands\SdkInstallerTests.cs (3)
29await File.WriteAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"), projectContent); 116await File.WriteAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"), projectContent); 154await File.WriteAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"), projectContent);
Commands\SecretCommandTests.cs (39)
23var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 27await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 37var result = command.Parse($"secret path --apphost \"{appHostFile.FullName}\""); 49var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 50var userSecretsId = UserSecretsPathHelper.ComputeSyntheticUserSecretsId(appHostFile.FullName); 53await File.WriteAllTextAsync(appHostFile.FullName, "export {};"); 63var result = command.Parse($"secret path --apphost \"{appHostFile.FullName}\""); 75var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 80await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 90var setResult = command.Parse($"secret set --environment Production Parameters:api_key prod-secret --apphost \"{appHostFile.FullName}\""); 98var getResult = command.Parse($"secret get --environment Production Parameters:api_key --apphost \"{appHostFile.FullName}\""); 105var listResult = command.Parse($"secret list --environment Production --format json --apphost \"{appHostFile.FullName}\""); 111var defaultGetResult = command.Parse($"secret get Parameters:api_key --apphost \"{appHostFile.FullName}\""); 116var deleteResult = command.Parse($"secret delete --environment Production Parameters:api_key --apphost \"{appHostFile.FullName}\""); 121var deletedGetResult = command.Parse($"secret get --environment Production Parameters:api_key --apphost \"{appHostFile.FullName}\""); 132var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 135await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 138var projectOption = $"--apphost \"{appHostFile.FullName}\""; 140workspace.WorkspaceRoot, AspireSecretsPathHelper.ComputeSyntheticAppHostId(appHostFile.FullName), "Production"); 169var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 171await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 174var projectOption = $"--apphost \"{appHostFile.FullName}\""; 191var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 196await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 206var setDevelopmentResult = command.Parse($"secret set Parameters:api_key dev-secret --apphost \"{appHostFile.FullName}\""); 213var setProductionResult = command.Parse($"secret set --environment Production Azure:SubscriptionId prod-subscription --apphost \"{appHostFile.FullName}\""); 219var listAllResult = command.Parse($"secret list --all --format json --apphost \"{appHostFile.FullName}\""); 236var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 241await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 259var getLegacyResult = command.Parse($"secret get Legacy:Value --apphost \"{appHostFile.FullName}\""); 265var setResult = command.Parse($"secret set New:Value new --apphost \"{appHostFile.FullName}\""); 297var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 307Assert.False(Directory.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "secrets"))); 318var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 320await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 323var projectOption = $"--apphost \"{appHostFile.FullName}\""; 354var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 356await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 373var exitCode = await command.Parse($"secret {arguments} -e Production --apphost \"{appHostFile.FullName}\"")
Commands\StartCommandTests.cs (29)
154var result = command.Parse(["start", "--apphost", appHostFile.FullName, "--launch-profile", "E2E"]); 218File.WriteAllText(Path.Combine(propertiesDirectory.FullName, "launchSettings.json"), """ 249"--apphost", appHostFile.FullName, 269await File.WriteAllTextAsync(Path.Combine(appHost1Dir.FullName, "AppHost1.csproj"), "fake"); 272await File.WriteAllTextAsync(Path.Combine(appHost2Dir.FullName, "AppHost2.csproj"), "fake"); 300await File.WriteAllTextAsync(Path.Combine(appHost1Dir.FullName, "AppHost1.csproj"), "fake"); 303await File.WriteAllTextAsync(Path.Combine(appHost2Dir.FullName, "AppHost2.csproj"), "fake"); 331var appHostFile = new FileInfo(Path.Combine(appHostDir.FullName, "AppHost.csproj")); 332await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 361var result = command.Parse($"start --apphost {appHostFile.FullName}"); 384var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 385File.WriteAllText(appHostFile.FullName, "<Project />"); 405"--project", appHostFile.FullName, 425Assert.Equal(workspace.WorkspaceRoot.FullName, workingDirectory); 426Assert.Equal(appHostFile.FullName, projectFile); 506var result = command.Parse($"start --apphost {appHostFile.FullName} --start-debug-session"); 522workspace.WorkspaceRoot.FullName, 523Path.Combine(workspace.WorkspaceRoot.FullName, "common", ".git")); 531var result = provider.GetRequiredService<RootCommand>().Parse($"start --apphost {appHostFile.FullName}"); 569var result = command.Parse($"start --apphost {appHostFile.FullName}"); 605var result = command.Parse(string.Format(CultureInfo.InvariantCulture, commandTemplate, appHostFile.FullName)); 618workspace.WorkspaceRoot.FullName, 619Path.Combine(workspace.WorkspaceRoot.FullName, "common", ".git")); 651Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, ".git")); 668var appHostFile = new FileInfo(Path.Combine(appHostDir.FullName, "AppHost.csproj")); 669File.WriteAllText(appHostFile.FullName, "<Project />"); 676var backchannelsDirectory = Path.Combine(homeDirectory.FullName, ".aspire", "cli", "bch"); 679var resolvedAppHostPath = PathNormalizer.ResolveSymlinks(appHostFile.FullName); 680var prefix = BackchannelConstants.ComputeSocketPrefix(resolvedAppHostPath, homeDirectory.FullName);
Commands\StopCommandTests.cs (91)
68var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App Host", fileName); 120var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost", "AppHost.csproj"); 144"path" => Path.Combine(workspace.WorkspaceRoot.FullName, "Other", "AppHost.csproj"), 190var connection = CreateConnection(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.cs"), 1); 230var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"); 264var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.cs"); 303var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.cs"); 352var resolvedProjectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Resolved.AppHost", "Resolved.AppHost.csproj")); 369var result = command.Parse($"stop --apphost \"{appHostDirectory.FullName}\""); 390var appHostPath1 = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "AppHost.cs"); 391var appHostPath2 = Path.Combine(workspace.WorkspaceRoot.FullName, "App2", "AppHost.cs"); 425var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost", "App1.AppHost.csproj"); 462var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost", "App1.AppHost.csproj"); 490Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, ".git")); 491var worktreeRoot = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, ".worktrees", "feature")).FullName; 494Path.Combine(workspace.WorkspaceRoot.FullName, ".git")); 500var primaryAppHost = Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost", "AppHost.csproj"); 502Assert.True(AuxiliaryBackchannelMonitor.IsAppHostInScopeOfDirectory(primaryAppHost, workspace.WorkspaceRoot.FullName)); 503Assert.False(AuxiliaryBackchannelMonitor.IsAppHostInScopeOfDirectory(nestedAppHost, workspace.WorkspaceRoot.FullName)); 509isInScope: AuxiliaryBackchannelMonitor.IsAppHostInScopeOfDirectory(primaryAppHost, workspace.WorkspaceRoot.FullName)); 514isInScope: AuxiliaryBackchannelMonitor.IsAppHostInScopeOfDirectory(nestedAppHost, workspace.WorkspaceRoot.FullName)); 545var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 546await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 562var result = command.Parse($"stop --apphost \"{appHostFile.FullName}\""); 577var commonGitDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, ".git"); 579var worktreeRoot = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, ".worktrees", "feature")).FullName; 628var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost", "App1.AppHost.csproj"); 663var appHostPath1 = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost.csproj"); 664var appHostPath2 = Path.Combine(workspace.WorkspaceRoot.FullName, "App2", "App2.AppHost.csproj"); 741var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 742await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 760var result = command.Parse($"stop --force{volumesOption} --apphost \"{appHostFile.FullName}\""); 776var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 777await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 794var result = command.Parse($"stop --force --apphost \"{appHostFile.FullName}\""); 808var runningAppHostFile = new FileInfo(Path.Combine(runningAppHostDirectory.FullName, "Running.AppHost.csproj")); 809await File.WriteAllTextAsync(runningAppHostFile.FullName, "<Project />"); 811var discoveredAppHostFile = new FileInfo(Path.Combine(discoveredAppHostDirectory.FullName, "Discovered.AppHost.csproj")); 812await File.WriteAllTextAsync(discoveredAppHostFile.FullName, "<Project />"); 818var connection = CreateConnection(runningAppHostFile.FullName, int.MaxValue - 11); 819connection.SocketPath = CreateMatchingSocketFile(runningAppHostFile.FullName, workspace, 11); 860var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 861await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 878var result = command.Parse($"stop --force --apphost \"{appHostFile.FullName}\""); 892var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 893await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 927var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 928await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 933var outOfScopeAppHostFile = Path.Combine(workspace.WorkspaceRoot.FullName, "OtherWorkspace", "Other.AppHost.csproj"); 967var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 968await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 988var result = command.Parse($"stop --force --apphost \"{appHostFile.FullName}\""); 1007var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 1008await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 1031var result = command.Parse($"stop --force{volumesOption} --apphost \"{appHostFile.FullName}\""); 1048var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 1049await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 1071var result = command.Parse($"stop --force --apphost \"{appHostFile.FullName}\""); 1088var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 1089await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 1110var result = command.Parse($"stop --force --apphost \"{appHostFile.FullName}\""); 1127var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "apphost.ts")); 1128await File.WriteAllTextAsync(appHostFile.FullName, ""); 1154var result = command.Parse($"stop --force --apphost \"{appHostFile.FullName}\""); 1173var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 1174await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 1196var result = command.Parse($"stop --force --apphost \"{appHostFile.FullName}\""); 1210var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 1211await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 1238var result = command.Parse($"stop --force --apphost \"{appHostFile.FullName}\""); 1255var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 1256await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 1276var result = command.Parse($"stop --force --apphost \"{appHostFile.FullName}\""); 1293var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 1294await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 1314var result = command.Parse($"stop --force --apphost \"{appHostFile.FullName}\""); 1331var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 1332await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 1348var result = command.Parse($"stop --force --apphost \"{appHostFile.FullName}\""); 1399var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 1400await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 1405var connection = CreateConnection(appHostFile.FullName, int.MaxValue - 10); 1406connection.SocketPath = CreateMatchingSocketFile(appHostFile.FullName, workspace, 10); 1486var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "App1", "App1.AppHost.csproj"); 1524File.WriteAllText(BundleDiscovery.GetDcpExecutablePath(dcpDirectory.FullName), ""); 1529LayoutPath = layoutRoot.FullName, 1622var homeDirectory = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".home")); 1623var backchannelsDirectory = Path.Combine(homeDirectory.FullName, ".aspire", "cli", "bch"); 1627var prefix = BackchannelConstants.ComputeSocketPrefix(resolvedAppHostPath, homeDirectory.FullName);
Commands\TelemetryFollowTests.cs (1)
240AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "Test.AppHost.csproj"),
Commands\TelemetryTestHelper.cs (1)
78AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "TestAppHost", "TestAppHost.csproj"),
Commands\TelemetryTracesCommandTests.cs (1)
87AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "TestAppHost", "TestAppHost.csproj"),
Commands\TemplateSourceStartupTests.cs (35)
49var globalPath = Path.Combine(home.FullName, legacyGlobal ? "globalsettings.json" : AspireConfigFile.FileName); 56RunStartup(home.FullName, workspace.Path, arguments); 62Assert.False(File.Exists(Path.Combine(home.FullName, AspireConfigFile.FileName))); 75var globalPath = Path.Combine(home.FullName, legacyGlobal ? "globalsettings.json" : AspireConfigFile.FileName); 82RunStartup(home.FullName, workspace.Path, arguments, exitCode); 88Assert.False(File.Exists(Path.Combine(home.FullName, AspireConfigFile.FileName))); 99var globalPath = Path.Combine(home.FullName, AspireConfigFile.FileName); 116RunStartup(home.FullName, workspace.Path, arguments, CliExitCodes.Success); 127var legacyPath = Path.Combine(home.FullName, "globalsettings.json"); 128var migratedPath = Path.Combine(home.FullName, AspireConfigFile.FileName); 133RunStartup(home.FullName, workspace.Path, 138RunStartup(home.FullName, workspace.Path, "config info", CliExitCodes.Success); 139RunStartup(home.FullName, workspace.Path, 154var legacyPath = Path.Combine(home.FullName, "globalsettings.json"); 162File.WriteAllText(Path.Combine(cache.FullName, "workspace-config-locks"), "Blocks lock directory creation."); 164RunStartup(home.FullName, workspace.Path, "template source list", CliExitCodes.InvalidCommand); 166Assert.False(File.Exists(Path.Combine(home.FullName, AspireConfigFile.FileName))); 178var legacyPath = Path.Combine(home.FullName, "globalsettings.json"); 215}, home.FullName, arguments, options)) 229var legacyPath = Path.Combine(home.FullName, "globalsettings.json"); 265}, home.FullName, destinationPublished.ToString(CultureInfo.InvariantCulture), options)) 282var legacyPath = Path.Combine(home.FullName, "globalsettings.json"); 283var migratedPath = Path.Combine(home.FullName, AspireConfigFile.FileName); 288RunStartup(home.FullName, workspace.Path, $"config set {key} {value} --global", CliExitCodes.Success); 294RunStartup(home.FullName, workspace.Path, "new --help", CliExitCodes.Success); 304var legacyPath = Path.Combine(home.FullName, "globalsettings.json"); 305var migratedPath = Path.Combine(home.FullName, AspireConfigFile.FileName); 311RunStartup(home.FullName, workspace.Path, "config delete features.defaultWatchEnabled --global", CliExitCodes.Success); 324File.WriteAllText(Path.Combine(legacyDirectory.FullName, "settings.json"), 327RunStartup(home.FullName, workspace.Path, "config set appHost.path apphost.cs", CliExitCodes.Success); 341var legacyPath = Path.Combine(home.FullName, "globalsettings.json"); 342var migratedPath = Path.Combine(home.FullName, AspireConfigFile.FileName); 348RunStartup(home.FullName, workspace.Path, "--version", CliExitCodes.Success); 353RunStartup(home.FullName, workspace.Path, "config set channel stable --global", CliExitCodes.Success); 354RunStartup(home.FullName, workspace.Path, "config get channel", CliExitCodes.Success);
Commands\TerminalTapePlayCommandTests.cs (22)
57await File.WriteAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, path), contents); 100await File.WriteAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "probe.tape"), ""); 118await File.WriteAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "probe.tape"), ""); 163await File.WriteAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "probe.tape"), ""); 242await File.WriteAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "probe.tape"), 289await File.WriteAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "probe.tape"), ""); 342await File.WriteAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "wait.tape"), 371await File.WriteAllTextAsync(Path.Combine(directory.FullName, "probe.tape"), "# Inspect the current screen."); 392await File.WriteAllTextAsync(Path.Combine(directory.FullName, "play.tape"), """ 397await File.WriteAllTextAsync(Path.Combine(directory.FullName, "nested", "input.tape"), """ 423await File.WriteAllTextAsync(Path.Combine(directory.FullName, "play.tape"), 425await File.WriteAllTextAsync(Path.Combine(directory.FullName, "nested", "wait.tape"), 431Assert.Collection(Directory.EnumerateFiles(directory.FullName, "*.txt", SearchOption.AllDirectories), 432path => Assert.Equal(Path.Combine(directory.FullName, "screen.txt"), path)); 433var capture = await File.ReadAllTextAsync(Path.Combine(directory.FullName, "screen.txt")); 434await Verify(capture.Replace(workspace.WorkspaceRoot.FullName, "{workspace}"), "txt"); 448var file = Path.Combine(workspace.WorkspaceRoot.FullName, "play.tape"); 474await File.WriteAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "wait.tape"), 492await File.WriteAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "wait.tape"), 511await File.WriteAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "wait.tape"), 530await File.WriteAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "wait.tape"), 549await File.WriteAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "probe.tape"), "");
Commands\TrayCommandTests.cs (7)
65var packageBin = Path.Combine(workspace.WorkspaceRoot.FullName, store, "aspire", "1.0.0", "bin"); 98var installed = Path.Combine(workspace.WorkspaceRoot.FullName, "stable & installed aspire"); 158Assert.Equal(root, factory.LastWorkingDirectory!.FullName); 247"dotnet" => Path.Combine(workspace.WorkspaceRoot.FullName, "dotnet"), 248"missing" => Path.Combine(workspace.WorkspaceRoot.FullName, "missing-aspire"), 536var root = Path.Combine(workspace.WorkspaceRoot.FullName, "bundle versions", "version-1"); 541var binaryDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "installed aspire", "bin");
Commands\TrayProtocolCommandTests.cs (4)
141var path = Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.cs"); 187var requestedPath = scenario == "path_mismatch" ? Path.Combine(workspace.WorkspaceRoot.FullName, "Other.cs") : path; 239var path = absolutePath ? Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs") : "apphost.cs"; 262var path = Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.cs");
Commands\TypeScriptAppHostToolingCheckTests.cs (4)
158Path.Combine(workspace.WorkspaceRoot.FullName, "yarn.lock"), 200File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, markerFile), "{}"); 241var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts"); 243File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "package.json"), packageJsonContent);
Commands\UpdateCommandRepositoryToolsTests.cs (27)
31var appHost = new FileInfo(Path.Combine(directory.FullName, "AppHost.csproj")); 34await File.WriteAllTextAsync(appHost.FullName, "<Project Sdk=\"Microsoft.NET.Sdk\" />"); 116var appHost = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 117await File.WriteAllTextAsync(appHost.FullName, "// test apphost"); 230var appHost = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 231await File.WriteAllTextAsync(appHost.FullName, "// test apphost"); 292var selectedDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "selected")); 294var appHost = Path.Combine(selectedDirectory.FullName, "AppHost.csproj"); 356var appHost = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 359await File.WriteAllTextAsync(appHost.FullName, "<Project Sdk=\"Microsoft.NET.Sdk\" />"); 406var appHost = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 407await File.WriteAllTextAsync(appHost.FullName, $""" 414var packagesPath = Path.Combine(directory.FullName, "Directory.Packages.props"); 426var configPath = Path.Combine(directory.FullName, "aspire.config.json"); 434var nugetPath = Path.Combine(directory.FullName, "NuGet.config"); 449var lockPath = Path.Combine(directory.FullName, "package-lock.json"); 452foreach (var path in new[] { dotnetManifest, npmManifest, appHost.FullName, packagesPath, configPath, nugetPath, lockPath }) 520Assert.Equal(appHost.FullName, file.FullName); 552Assert.Equal([targetSource], NuGetTestHelper.GetEligiblePackageSources(directory.FullName, "Aspire.AppHost.Sdk")); 553Assert.Equal([targetSource], NuGetTestHelper.GetEligiblePackageSources(directory.FullName, "Aspire.Hosting.Redis")); 554Assert.Equal(["https://example.invalid/existing/v3/index.json"], NuGetTestHelper.GetEligiblePackageSources(directory.FullName, "Unrelated.Package")); 574Assert.Equal("Aspire.AppHost.Sdk/" + targetVersion, XDocument.Load(appHost.FullName).Root!.Attribute("Sdk")!.Value); 613Directory.CreateDirectory(Path.Combine(directory.FullName, ".git")); 614var config = Directory.CreateDirectory(Path.Combine(directory.FullName, ".config")); 615var dotnetManifest = Path.Combine(config.FullName, "dotnet-tools.json"); 625var npmManifest = Path.Combine(directory.FullName, "package.json");
Commands\UpdateCommandTests.cs (102)
89var appHostProjectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 90await File.WriteAllTextAsync(appHostProjectFile.FullName, """ 125var result = command.Parse($"update --apphost {appHostProjectFile.FullName}"); 132PathNormalizer.ResolveToFilesystemPath(appHostProjectFile.FullName), 133PathNormalizer.ResolveToFilesystemPath(updatedProjectFile.FullName)); 190var targetExePath = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.exe"); 191var oldBackup1 = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.exe.old.1234567890"); 192var oldBackup2 = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.exe.old.9876543210"); 193var otherFile = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.exe.something"); 201FileDeleteHelper.TryCleanupOldItems(workspace.WorkspaceRoot.FullName, "aspire.exe"); 214var oldBackup = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.exe.old.1234567890"); 221FileDeleteHelper.TryCleanupOldItems(workspace.WorkspaceRoot.FullName, "aspire.exe"); 249FileDeleteHelper.TryCleanupOldItems(workspace.WorkspaceRoot.FullName, "aspire.exe"); 311return Task.FromResult<FileInfo?>(new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"))); 380await File.WriteAllTextAsync(appHost.FullName, "// test apphost"); 386var message = string.Format(UpdateCommandStrings.FailedToRegenerateSdkAfterUpdateFormat, appHost.FullName); 432var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts"); 495var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts"); 550var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts"); 620return Task.FromResult<FileInfo?>(new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"))); 683var toolPath = Path.Combine(installDir.FullName, "custom tool path"); 699return Task.FromResult<FileInfo?>(new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"))); 776return Task.FromResult<FileInfo?>(new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"))); 849return Task.FromResult<FileInfo?>(new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"))); 892return Task.FromResult<FileInfo?>(new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"))); 933return Task.FromResult<FileInfo?>(new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"))); 1017return Task.FromResult<FileInfo?>(new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"))); 1070Assert.Equal(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"), pendingMigration.DetectedContext.AppHostFile.FullName); 1098Assert.Equal(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"), pendingMigration.DetectedContext.AppHostFile.FullName); 1100Assert.Equal(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"), pendingMigration.AppliedContext.AppHostFile.FullName); 1175return Task.FromResult<FileInfo?>(new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"))); 1277var processPath = CreateNixInstall(installDir.FullName); 1314var processPath = CreateNixInstall(installDir.FullName); 1315var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts"); 1358UseOrFindAppHostProjectFileAsyncCallback = (_, _, _) => Task.FromResult<FileInfo?>(new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"))) 1440var toolPath = Path.Combine(installDir.FullName, "custom tool path"); 1523var archivePath = Path.Combine(workspace.WorkspaceRoot.FullName, "test-cli.tar.gz"); 1549var processPath = Path.Combine(installDirectory.FullName, "aspire"); 1553var sidecarPath = Path.Combine(installDirectory.FullName, InstallSidecarReader.SidecarFileName); 1591var processPath = Path.Combine(installDirectory.FullName, "aspire"); 1596var sidecarPath = Path.Combine(installDirectory.FullName, InstallSidecarReader.SidecarFileName); 1648var archivePath = Path.Combine(workspace.WorkspaceRoot.FullName, "test-cli.tar.gz"); 1689var archivePath = Path.Combine(workspace.WorkspaceRoot.FullName, "test-cli.tar.gz"); 1723return Task.FromResult<FileInfo?>(new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"))); 1788return Task.FromResult<FileInfo?>(new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"))); 1852return Task.FromResult<FileInfo?>(new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"))); 1910return Task.FromResult<FileInfo?>(new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"))); 1987return Task.FromResult<FileInfo?>(new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"))); 2036return Task.FromResult<FileInfo?>(new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"))); 2092var localConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 2111var globalDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire"); 2131var localConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 2149var globalDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire"); 2153var localConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 2173var globalDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire"); 2194var localConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 2203return Task.FromResult<FileInfo?>(new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"))); 2260Task.FromResult<FileInfo?>(new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"))) 2313var projectDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "elsewhere")); 2314var projectConfigPath = Path.Combine(projectDirectory.FullName, AspireConfigFile.FileName); 2319updateArgs: $"update --apphost {Path.Combine(projectDirectory.FullName, "AppHost.csproj")}", 2333Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName), 2336var globalDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire"); 2340var projectDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "elsewhere")); 2344updateArgs: $"update --apphost {Path.Combine(projectDirectory.FullName, "AppHost.csproj")}", 2361Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName), 2364var projectDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "elsewhere")); 2366Path.Combine(projectDirectory.FullName, AspireConfigFile.FileName), 2371updateArgs: $"update --apphost {Path.Combine(projectDirectory.FullName, "AppHost.csproj")}", 2387Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName), 2390var globalDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire"); 2394var projectDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "elsewhere")); 2396Path.Combine(projectDirectory.FullName, AspireConfigFile.FileName), 2401updateArgs: $"update --apphost {Path.Combine(projectDirectory.FullName, "AppHost.csproj")}", 2444Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName), 2481return Task.FromResult<FileInfo?>(new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"))); 2572var resolved = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 2657return Task.FromResult<FileInfo?>(new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"))); 2699var projectDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "elsewhere")); 2700var appHostFile = new FileInfo(Path.Combine(projectDirectory.FullName, "AppHost.csproj")); 2701File.WriteAllText(appHostFile.FullName, string.Empty); 2703Path.Combine(projectDirectory.FullName, AspireConfigFile.FileName), 2739var result = command.Parse($"update --apphost \"{appHostFile.FullName}\""); 2847Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName), 2913$"update --apphost {Path.Combine(projectDirectory.FullName, "AppHost.csproj")} --channel {selectedChannel}", 2942workspace, $"update --apphost {Path.Combine(projectDirectory.FullName, fileName)}", projectDirectory, identityChannel, 3007return Task.FromResult<FileInfo?>(new FileInfo(Path.Combine(projectDirectory.FullName, appHostFileName))); 3052var hivesDirectory = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "hives")); 3146var archivePath = Path.Combine(workspace.WorkspaceRoot.FullName, "test-cli.tar.gz"); 3191var archivePath = Path.Combine(workspace.WorkspaceRoot.FullName, "test-cli.tar.gz"); 3236var archivePath = Path.Combine(workspace.WorkspaceRoot.FullName, "test-cli.tar.gz"); 3269var archivePath = Path.Combine(workspace.WorkspaceRoot.FullName, "test-cli.tar.gz"); 3302return Task.FromResult<FileInfo?>(new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"))); 3456var archivePath = Path.Combine(workspace.WorkspaceRoot.FullName, "test-cli.tar.gz"); 3478var executablePath = Path.Combine(contentDirectory.FullName, "aspire"); 3496var tarPath = Path.Combine(archiveDirectory.FullName, "aspire.tar"); 3497TarFile.CreateFromDirectory(contentDirectory.FullName, tarPath, includeBaseDirectory: false); 3499var archivePath = Path.Combine(archiveDirectory.FullName, "aspire.tar.gz"); 3622var archivePath = Path.Combine(workspace.WorkspaceRoot.FullName, "test-cli.tar.gz");
Commands\VsCodeExtensionCheckTests.cs (15)
37["VSCODE_EXTENSIONS"] = extensions.FullName 63Directory.CreateDirectory(Path.Combine(extensions.FullName, "microsoft-aspire.aspire-vscode-1.2.3")); 67["VSCODE_EXTENSIONS"] = extensions.FullName 91Directory.CreateDirectory(Path.Combine(extensions.FullName, "microsoft-aspire.aspire-vscode-1.2.3")); 96["VSCODE_EXTENSIONS"] = extensions.FullName 116Directory.CreateDirectory(Path.Combine(home.FullName, rootFolder, "extensions", "microsoft-aspire.aspire-vscode-1.2.3")); 137Directory.CreateDirectory(Path.Combine(home.FullName, ".vscode", "extensions", "microsoft-aspire.aspire-vscode-1.2.3")); 142["VSCODE_EXTENSIONS"] = overrideDirectory.FullName 188Directory.CreateDirectory(Path.Combine(extensions.FullName, "Microsoft-Aspire.Aspire-VSCode-9.9.9")); 193["VSCODE_EXTENSIONS"] = extensions.FullName 207Directory.CreateDirectory(Path.Combine(extensions.FullName, "ms-dotnettools.csharp-2.0.0")); 212["VSCODE_EXTENSIONS"] = extensions.FullName 229Directory.CreateDirectory(Path.Combine(extensions.FullName, "microsoft-aspire.aspire-vscode-extras-1.0.0")); 234["VSCODE_EXTENSIONS"] = extensions.FullName 250var missingExtensionsDirectory = Path.Combine(home.FullName, "does-not-exist");
Configuration\AppHostPathConfigurationPolicyTests.cs (5)
40var path = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 54var path = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 64var path = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 76var path = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 86var path = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName);
Configuration\AspireConfigFileTests.cs (61)
17var result = AspireConfigFile.Load(workspace.WorkspaceRoot.FullName); 27var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 35var result = AspireConfigFile.Load(workspace.WorkspaceRoot.FullName); 79var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 91var result = AspireConfigFile.Load(workspace.WorkspaceRoot.FullName); 128var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 140var result = AspireConfigFile.Load(workspace.WorkspaceRoot.FullName); 152var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 163var result = AspireConfigFile.Load(workspace.WorkspaceRoot.FullName); 175var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 183var result = AspireConfigFile.Load(workspace.WorkspaceRoot.FullName); 194var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 197var ex = Assert.Throws<JsonException>(() => AspireConfigFile.Load(workspace.WorkspaceRoot.FullName)); 208var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 211var ex = Assert.Throws<JsonException>(() => AspireConfigFile.Load(workspace.WorkspaceRoot.FullName)); 221var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 224var result = AspireConfigFile.Load(workspace.WorkspaceRoot.FullName); 242config.Save(workspace.WorkspaceRoot.FullName); 244var filePath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 257var subDir = Path.Combine(workspace.WorkspaceRoot.FullName, "nested", "dir"); 276config.Save(workspace.WorkspaceRoot.FullName); 278LineEndingAssert.FileUsesOsLineBreaksAndSingleFinalNewline(Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName)); 286Assert.False(AspireConfigFile.Exists(workspace.WorkspaceRoot.FullName)); 294File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName), "{}"); 296Assert.True(AspireConfigFile.Exists(workspace.WorkspaceRoot.FullName)); 437var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 450var config = AspireConfigFile.Load(workspace.WorkspaceRoot.FullName); 458var projectRef = config.GetIntegrationReferences("13.2.0", workspace.WorkspaceRoot.FullName) 462Path.GetFullPath(Path.Combine(workspace.WorkspaceRoot.FullName, "DeadlockExtension/DeadlockExtension.csproj")), 471var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 481var config = AspireConfigFile.Load(workspace.WorkspaceRoot.FullName); 504var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 513var config = AspireConfigFile.Load(workspace.WorkspaceRoot.FullName); 517config.GetIntegrationReferences("13.2.0", workspace.WorkspaceRoot.FullName), 522config.Save(workspace.WorkspaceRoot.FullName); 523var reloaded = AspireConfigFile.Load(workspace.WorkspaceRoot.FullName); 550var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 559var ex = Assert.Throws<JsonException>(() => AspireConfigFile.Load(workspace.WorkspaceRoot.FullName)); 570var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 583var config = AspireConfigFile.Load(workspace.WorkspaceRoot.FullName); 598var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 605var result = AspireConfigFile.Load(workspace.WorkspaceRoot.FullName); 619var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 626var result = AspireConfigFile.Load(workspace.WorkspaceRoot.FullName); 648config.Save(workspace.WorkspaceRoot.FullName); 649var loaded = AspireConfigFile.Load(workspace.WorkspaceRoot.FullName); 677config.Save(workspace.WorkspaceRoot.FullName); 678var loaded = AspireConfigFile.Load(workspace.WorkspaceRoot.FullName); 691var root = workspace.WorkspaceRoot.FullName; 713var root = workspace.WorkspaceRoot.FullName; 733var root = workspace.WorkspaceRoot.FullName; 755var root = workspace.WorkspaceRoot.FullName; 781var root = workspace.WorkspaceRoot.FullName; 801var root = workspace.WorkspaceRoot.FullName; 823var root = workspace.WorkspaceRoot.FullName; 843var root = workspace.WorkspaceRoot.FullName; 863var root = workspace.WorkspaceRoot.FullName; 882var root = workspace.WorkspaceRoot.FullName; 902var root = workspace.WorkspaceRoot.FullName; 922var root = workspace.WorkspaceRoot.FullName; 942var root = workspace.WorkspaceRoot.FullName;
Configuration\ConfigSourceServiceGitTests.cs (23)
387source, cache.FullName, TestContext.Current.CancellationToken); 397Assert.False(File.Exists(Path.Combine(cache.FullName, path))); 407await RunGitOutputAsync(workspace.Path, ["clone", "--", workspace.Path, repository.FullName]); 408var source = new ConfigSource { Repository = repository.FullName, Path = path }; 415var config = AspireConfigFile.Load(project.FullName)!; 417Assert.Equal(repository.FullName, config.ConfigSource!.Repository); 419Assert.Equal((await RunGitOutputAsync(repository.FullName, ["rev-parse", $"HEAD:{path}"])).Trim(), 443var config = AspireConfigFile.Load(project.FullName)!; 469workspace.CreateDirectory("cache").FullName, TestContext.Current.CancellationToken); 499new() { Repository = workspace.Path, Path = AspireConfigFile.FileName }, workspace.CreateDirectory("cache").FullName, TestContext.Current.CancellationToken)); 509new() { Repository = workspace.Path, Path = AspireConfigFile.FileName }, workspace.CreateDirectory("cache").FullName, TestContext.Current.CancellationToken)); 527var (_, _, configuration) = await client.AcquireAsync(source, cache.FullName, TestContext.Current.CancellationToken); 533client.AcquireAsync(source, cache.FullName, TestContext.Current.CancellationToken)); 555workspace.CreateDirectory("cache").FullName, TestContext.Current.CancellationToken); 573workspace.CreateDirectory("cache").FullName, TestContext.Current.CancellationToken); 591var original = await client.CheckAsync(source, workspace.CreateDirectory("first-check").FullName, TestContext.Current.CancellationToken); 596var unchanged = await client.CheckAsync(source, workspace.CreateDirectory("unchanged-check").FullName, TestContext.Current.CancellationToken); 603var changed = await client.CheckAsync(source, directory.FullName, TestContext.Current.CancellationToken); 605workspace.CreateDirectory("pinned-check").FullName, TestContext.Current.CancellationToken); 631workspace.CreateDirectory("cache").FullName, TestContext.Current.CancellationToken)); 651new() { Repository = workspace.Path, Path = AspireConfigFile.FileName }, workspace.CreateDirectory("cache").FullName, TestContext.Current.CancellationToken)); 696var checkedVersion = await client.CheckAsync(source, workspace.CreateDirectory("first-check").FullName, token); 710var updatedCheck = await client.CheckAsync(source, workspace.CreateDirectory("updated-check").FullName, token);
Configuration\ConfigSourceServiceTests.cs (27)
36var globalFile = new FileInfo(Path.Combine(global.FullName, "custom-global.json")); 37File.Move(Path.Combine(global.FullName, AspireConfigFile.FileName), globalFile.FullName); 38var originalGlobal = await File.ReadAllTextAsync(globalFile.FullName); 39var localPath = Path.Combine(project.FullName, AspireConfigFile.FileName); 73var actualGlobal = await File.ReadAllTextAsync(globalFile.FullName); 82Assert.False(File.Exists(Path.Combine(global.FullName, AspireConfigFile.FileName))); 136var globalFile = new FileInfo(Path.Combine(global.FullName, AspireConfigFile.FileName)); 150var siblingPath = Path.Combine(sibling.FullName, AspireConfigFile.FileName); 155var path = Path.Combine(directory.FullName, AspireConfigFile.FileName); 218var path = Path.Combine(directory.FullName, AspireConfigFile.FileName); 236Assert.False(File.Exists(Path.Combine(gap.FullName, AspireConfigFile.FileName))); 251var globalFile = new FileInfo(Path.Combine(global.FullName, AspireConfigFile.FileName)); 261var originalGlobal = await File.ReadAllTextAsync(globalFile.FullName); 262var parentPath = Path.Combine(parent.FullName, AspireConfigFile.FileName); 315Assert.Equal(force ? "version-2" : "version-1", AspireConfigFile.Load(project.FullName)!.ConfigSource!.AppliedVersion); 316Assert.Equal(originalGlobal, await File.ReadAllTextAsync(globalFile.FullName)); 330var globalFile = new FileInfo(Path.Combine(global.FullName, AspireConfigFile.FileName)); 499Assert.False(File.Exists(Path.Combine(other.FullName, AspireConfigFile.FileName))); 605new ConfigSource { Repository = repository.FullName, Path = s_source.Path }.Validate(); 810var path = Path.Combine(project.FullName, AspireConfigFile.FileName); 824Assert.Equivalent(s_appliedSource, AspireConfigFile.Load(project.FullName)!.ConfigSource, strict: true); 1413var modernPath = Path.Combine(project.FullName, AspireConfigFile.FileName); 1473await File.WriteAllTextAsync(Path.Combine(stale.FullName, "stale.txt"), "obsolete snapshot"); 1474File.SetAttributes(Path.Combine(stale.FullName, "stale.txt"), FileAttributes.ReadOnly); 1517Assert.Equal("version-1", AspireConfigFile.Load(other.FullName)!.ConfigSource!.AppliedVersion); 1582Assert.StartsWith(Path.Combine(home.FullName, "configsources"), service.GetCacheDirectory(s_source), StringComparison.Ordinal);
Configuration\ConfigurationHelperTests.cs (40)
98var targetPath = Path.Combine(shared.FullName, AspireConfigFile.FileName); 100var targetDirectory = shared.FullName; 104TestSymlinkHelper.TryCreateSymlink(targetDirectory, shared.FullName); 106var path = Path.Combine(project.FullName, AspireConfigFile.FileName); 110linkTarget = Path.GetRelativePath(project.FullName, linkTarget); 119Assert.Equal(path, Assert.Single(Directory.GetFiles(project.FullName))); 120Assert.Equal(targetPath, Assert.Single(Directory.GetFiles(shared.FullName))); 123Assert.Equal(shared.FullName, new DirectoryInfo(targetDirectory).LinkTarget); 198await File.WriteAllTextAsync(file.FullName, "{}"); 206await ConfigurationHelper.WriteSettingsFileAtomicallyAsync(file.FullName, new JsonObject { ["custom"] = "updated" }, CancellationToken.None); 209Assert.Equal("updated", JsonNode.Parse(await File.ReadAllTextAsync(file.FullName))!["custom"]!.GetValue<string>()); 210Assert.Equal(file.FullName, Assert.Single(Directory.GetFiles(workspace.Path))); 216var settingsPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 220var globalSettingsFile = new FileInfo(Path.Combine(globalDir.FullName, AspireConfigFile.FileName)); 320var globalSettingsFile = new FileInfo(Path.Combine(globalDirectory.FullName, AspireConfigFile.FileName)); 321File.WriteAllText(globalSettingsFile.FullName, """ 329"global" => globalSettingsFile.FullName, 403var settingsPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 423var config = AspireConfigFile.Load(workspace.WorkspaceRoot.FullName); 490var settingsPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nested", AspireConfigFile.FileName); 508var settingsPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nested", AspireConfigFile.FileName); 528var settingsPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 550var settingsPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 833Directory.CreateDirectory(Path.Combine(configRoot.FullName, "nested", "apphost")); 834File.WriteAllText(Path.Combine(configRoot.FullName, AspireConfigFile.FileName), "{}"); 837new DirectoryInfo(Path.Combine(configRoot.FullName, "nested", "apphost"))); 839Assert.Equal(configRoot.FullName, resolvedRoot.FullName); 847var appHostDirectory = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "nested", "apphost")); 853Path.Combine(workspace.WorkspaceRoot.FullName, AspireJsonConfiguration.SettingsFolder), 854aspireDirectory.FullName); 874var legacySettingsPath = Path.Combine(legacyDir.FullName, AspireJsonConfiguration.FileName); 882var aspireConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 886var globalSettingsFile = new FileInfo(Path.Combine(globalDir.FullName, AspireConfigFile.FileName)); 912var aspireConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 922var legacySettingsPath = Path.Combine(legacyDir.FullName, AspireJsonConfiguration.FileName); 928var globalSettingsFile = new FileInfo(Path.Combine(globalDir.FullName, AspireConfigFile.FileName)); 946var legacySettingsPath = Path.Combine(legacyDir.FullName, AspireJsonConfiguration.FileName); 950var globalSettingsFile = new FileInfo(Path.Combine(globalDir.FullName, AspireConfigFile.FileName)); 959var migratedPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName);
Configuration\ConfigurationServiceTests.cs (8)
24var globalSettingsFile = new FileInfo(Path.Combine(globalSettingsDir.FullName, AspireConfigFile.FileName)); 26var settingsFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 145await File.WriteAllTextAsync(Path.Combine(cache.FullName, "workspace-config-locks"), "Blocks lock directory creation."); 275var legacySettingsPath = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "settings.json"); 410Path.Combine(srcDirectory.FullName, AspireConfigFile.FileName), 439Path.Combine(srcDirectory.FullName, AspireConfigFile.FileName), 529var config = AspireConfigFile.Load(workspace.WorkspaceRoot.FullName); 552var config = AspireConfigFile.Load(workspace.WorkspaceRoot.FullName);
Configuration\DotNetBasedAppHostServerChannelResolutionTests.cs (4)
29var appPath = workspace.WorkspaceRoot.FullName; 46var appPath = workspace.WorkspaceRoot.FullName; 67var appPath = workspace.WorkspaceRoot.FullName; 88var appPath = workspace.WorkspaceRoot.FullName;
Configuration\PrebuiltAppHostServerChannelResolutionTests.cs (11)
28var server = CreateServer(appHostDirectory.FullName); 39var config = AspireConfigFile.LoadOrCreate(appHostDirectory.FullName); 41config.Save(appHostDirectory.FullName); 43var server = CreateServer(appHostDirectory.FullName); 60legacy.Save(appHostDirectory.FullName); 64Assert.False(File.Exists(Path.Combine(appHostDirectory.FullName, AspireConfigFile.FileName))); 66var server = CreateServer(appHostDirectory.FullName); 81legacy.Save(appHostDirectory.FullName); 83var config = AspireConfigFile.LoadOrCreate(appHostDirectory.FullName); 85config.Save(appHostDirectory.FullName); 87var server = CreateServer(appHostDirectory.FullName);
Diagnostics\FileLoggerProviderTests.cs (7)
16var path = workspace.CreateDirectory("not-a-log-file").FullName; 39var path = Path.Combine(workspace.WorkspaceRoot.FullName, "test.log"); 73var logsDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "logs"); 97var path = Path.Combine(workspace.WorkspaceRoot.FullName, "test.log"); 123var logsDirectory = workspace.CreateDirectory("logs").FullName; 152var parentDirectory = workspace.CreateDirectory(customDirectory ? "custom" : "logs").FullName; 179var logFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "test.log");
DotNet\DotNetAppHostNuGetConfigMergerSnapshotTests.cs (18)
32var path = Path.Combine(dir.FullName, "nuget.config"); 71var updated = XDocument.Load(Path.Combine(root.FullName, "nuget.config")); 78var hivePath = Path.Combine(hivesDir.FullName, channelName).Replace('\\', '/'); 134var original = await File.ReadAllBytesAsync(Path.Combine(root.FullName, "nuget.config")); 137Assert.Equal(original, await File.ReadAllBytesAsync(Path.Combine(root.FullName, "nuget.config"))); 144var updated = XDocument.Load(Path.Combine(root.FullName, "nuget.config")); 152var hivePath = Path.Combine(hivesDir.FullName, channelName).Replace('\\', '/'); 204var original = await File.ReadAllBytesAsync(Path.Combine(root.FullName, "nuget.config")); 208Assert.Equal(original, await File.ReadAllBytesAsync(Path.Combine(root.FullName, "nuget.config"))); 211var updated = XDocument.Load(Path.Combine(root.FullName, "nuget.config")); 218var hivePath = Path.Combine(hivesDir.FullName, channelName).Replace('\\', '/'); 268var configPath = Path.Combine(root.FullName, "nuget.config"); 276var updated = XDocument.Load(Path.Combine(root.FullName, "nuget.config")); 283var hivePath = Path.Combine(hivesDir.FullName, channelName).Replace('\\', '/'); 341var original = await File.ReadAllBytesAsync(Path.Combine(root.FullName, "nuget.config")); 344Assert.Equal(original, await File.ReadAllBytesAsync(Path.Combine(root.FullName, "nuget.config"))); 351var updated = XDocument.Load(Path.Combine(root.FullName, "nuget.config")); 359var hivePath = Path.Combine(hivesDir.FullName, channelName).Replace('\\', '/');
DotNet\DotNetAppHostNuGetConfigMergerTests.cs (125)
28var path = Path.Combine(dir.FullName, "nuget.config"); 48var original = await File.ReadAllBytesAsync(parent.FullName); 58Assert.Equal([source], NuGetTestHelper.GetEligiblePackageSources(directory.FullName, "Other.Dependency")); 59Assert.Empty(XDocument.Load(candidate.TargetFile.FullName).Descendants("packageSource")); 69Assert.Equal(original, await File.ReadAllBytesAsync(parent.FullName)); 101var original = await File.ReadAllBytesAsync(existingFile.FullName); 111Path.Combine(target.FullName, "nuget.config"), sourceKey), error.Message); 112Assert.Equal(original, await File.ReadAllBytesAsync(existingFile.FullName)); 141Assert.Single(XDocument.Load(target.FullName).Root!.Element("packageSources")!.Elements("add")); 142Assert.Single(XDocument.Load(target.FullName).Root!.Element("packageSourceMapping")!.Elements("clear")); 163var originalParent = await File.ReadAllBytesAsync(parent.FullName); 178var original = await File.ReadAllBytesAsync(target.FullName); 179var originalDisabled = XDocument.Load(target.FullName).Root!.Element("disabledPackageSources")!.ToString(); 192UpdateCommandStrings.ChannelFeedAlreadyConfiguredFormat, target.FullName, "aspire-test"), error.Message); 208Assert.Equal(original, await File.ReadAllBytesAsync(target.FullName)); 209Assert.Equal(originalParent, await File.ReadAllBytesAsync(parent.FullName)); 229var originalParent = await File.ReadAllBytesAsync(parent.FullName); 243var original = await File.ReadAllBytesAsync(target.FullName); 248Assert.Equal([source], NuGetTestHelper.GetEligiblePackageSources(directory.FullName, "Private.Library")); 252Assert.Equal(original, await File.ReadAllBytesAsync(target.FullName)); 253Assert.Equal([source], NuGetTestHelper.GetEligiblePackageSources(directory.FullName, "Private.Library")); 264Assert.Equal([source], NuGetTestHelper.GetEligiblePackageSources(directory.FullName, "Aspire.Hosting")); 265Assert.Equal([source], NuGetTestHelper.GetEligiblePackageSources(directory.FullName, "Local.Library")); 268Assert.Equal(originalParent, await File.ReadAllBytesAsync(parent.FullName)); 286var targetConfigPath = Path.Combine(root.FullName, "nuget.config"); 307var targetConfigPath = Path.Combine(root.FullName, "nuget.config"); 350var xml = XDocument.Load(Path.Combine(root.FullName, "nuget.config")); 389var xml = XDocument.Load(Path.Combine(root.FullName, "nuget.config")); 394NuGetTestHelper.GetEligiblePackageSources(root.FullName, "Lib.Example")); 429var xml = XDocument.Load(Path.Combine(root.FullName, "nuget.config")); 430var sources = NuGetTestHelper.CreateClient().GetSettings(root.FullName, new byte[NuGetSourceIdentity.KeySizeInBytes]).Sources; 434Assert.Equal([stableSource], NuGetTestHelper.GetEligiblePackageSources(root.FullName, "Aspire.Hosting")); 435Assert.Equal([stableSource], NuGetTestHelper.GetEligiblePackageSources(root.FullName, "Example.Dependency")); 457var target = Path.Combine(root.FullName, "nuget.config"); 473NuGetTestHelper.GetEligiblePackageSources(root.FullName, "Other.Dependency")); 495var parentBytes = await File.ReadAllBytesAsync(parent.FullName); 506var document = XDocument.Load(target.FullName); 514NuGetTestHelper.GetEligiblePackageSources(directory.FullName, "Aspire.Hosting.Redis")); 516NuGetTestHelper.GetEligiblePackageSources(directory.FullName, "Other.Dependency")); 517Assert.Equal(parentBytes, await File.ReadAllBytesAsync(parent.FullName)); 623var configPath = Path.Combine(root.FullName, "nuget.config"); 627var document = XDocument.Load(Path.Combine(root.FullName, "nuget.config")); 663var generated = await File.ReadAllBytesAsync(Path.Combine(output.FullName, "nuget.config")); 664await File.WriteAllBytesAsync(Path.Combine(destination.FullName, "nuget.config"), generated); 666Assert.Equal([channelSource], NuGetTestHelper.GetEligiblePackageSources(destination.FullName, "Aspire.Hosting")); 667Assert.Equal([PackageSources.NuGetOrg], NuGetTestHelper.GetEligiblePackageSources(destination.FullName, "Microsoft.Extensions.Options")); 668Assert.Equal(generatorConfig, await File.ReadAllTextAsync(generatorParent.FullName)); 669Assert.Equal(consumerConfig, await File.ReadAllTextAsync(consumerParent.FullName)); 670await Verify(XDocument.Load(Path.Combine(output.FullName, "nuget.config")).ToString(), "xml"); 703var configPath = Path.Combine(root.FullName, "nuget.config"); 740var xml = XDocument.Load(Path.Combine(root.FullName, "nuget.config")); 781var xml = XDocument.Load(Path.Combine(root.FullName, "nuget.config")); 794NuGetTestHelper.GetEligiblePackageSources(root.FullName, "Other.Dependency")); 833var xml = XDocument.Load(Path.Combine(root.FullName, "nuget.config")); 899var xml = XDocument.Load(Path.Combine(root.FullName, "nuget.config")); 956var xml = XDocument.Load(Path.Combine(root.FullName, "nuget.config")); 967var sources = NuGetTestHelper.CreateClient().GetSettings(root.FullName, new byte[NuGetSourceIdentity.KeySizeInBytes]).Sources; 1008var oldHive = workspace.CreateDirectory(".aspire/hives/pr-17182/packages").FullName; 1009var newHive = workspace.CreateDirectory(".aspire/hives/pr-17192/packages").FullName; 1039var xml = XDocument.Load(Path.Combine(root.FullName, "nuget.config")); 1089var xml = XDocument.Load(Path.Combine(root.FullName, "nuget.config")); 1130var targetConfigPath = Path.Combine(root.FullName, "nuget.config"); 1132Assert.Equal(targetConfigPath, callbackTargetFile.FullName); 1160var targetConfigPath = Path.Combine(root.FullName, "nuget.config"); 1210var targetConfigPath = Path.Combine(root.FullName, "nuget.config"); 1212Assert.Equal(targetConfigPath, callbackTargetFile.FullName); 1232var originalContent = await File.ReadAllTextAsync(Path.Combine(root.FullName, "nuget.config")).DefaultTimeout(); 1253var targetConfigPath = Path.Combine(root.FullName, "nuget.config"); 1275var targetConfigPath = Path.Combine(root.FullName, "nuget.config"); 1303Assert.Equal(target.FullName, update.TargetFile.FullName); 1304Assert.Equal(original, await File.ReadAllTextAsync(target.FullName)); 1313var directory = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "new-config")); 1321Assert.False(Directory.Exists(directory.FullName)); 1323Assert.Equal(XDocument.Parse(update.GetProposedDocument().OuterXml).ToString(), XDocument.Load(update.TargetFile.FullName).ToString()); 1330var directory = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "new-config")); 1337Assert.False(Directory.Exists(directory.FullName)); 1360var original = await File.ReadAllBytesAsync(target.FullName); 1367Assert.Equal(original, await File.ReadAllBytesAsync(target.FullName)); 1428var originalParent = await File.ReadAllBytesAsync(parent.FullName); 1447var document = XDocument.Load(target.FullName); 1468NuGetTestHelper.GetEligiblePackageSources(directory.FullName, "Aspire.Hosting.Redis")); 1470Assert.Equal(originalParent, await File.ReadAllBytesAsync(parent.FullName)); 1496var parentBytes = await File.ReadAllBytesAsync(parent.FullName); 1508var originalDisabled = XDocument.Load(target.FullName).Root!.Element("disabledPackageSources")!.ToString(); 1512var original = await File.ReadAllBytesAsync(target.FullName); 1528Assert.Equal(parentBytes, await File.ReadAllBytesAsync(parent.FullName)); 1529Assert.Equal(original, await File.ReadAllBytesAsync(target.FullName)); 1551var originalParent = await File.ReadAllBytesAsync(parent.FullName); 1552var original = await File.ReadAllBytesAsync(target.FullName); 1559Assert.Equal(original, await File.ReadAllBytesAsync(target.FullName)); 1560Assert.Equal(originalParent, await File.ReadAllBytesAsync(parent.FullName)); 1578var originalParent = await File.ReadAllBytesAsync(parent.FullName); 1589Assert.Equal([source], NuGetTestHelper.GetEligiblePackageSources(directory.FullName, "Aspire.Hosting.Redis")); 1591directory.FullName, new byte[NuGetSourceIdentity.KeySizeInBytes]).DisabledPackageSourceKeys); 1592Assert.Equal(originalParent, await File.ReadAllBytesAsync(parent.FullName)); 1616var original = await File.ReadAllBytesAsync(target.FullName); 1637Assert.Equal(original, await File.ReadAllBytesAsync(target.FullName)); 1668var original = await File.ReadAllBytesAsync(target.FullName); 1675Assert.Equal(original, await File.ReadAllBytesAsync(target.FullName)); 1699var originalParent = await File.ReadAllBytesAsync(parent.FullName); 1723var originalDisabled = XDocument.Load(target.FullName).Root!.Element("disabledPackageSources")?.ToString(); 1732var proposed = XDocument.Load(target.FullName); 1735directory.FullName, new byte[NuGetSourceIdentity.KeySizeInBytes]); 1737Assert.Equal([source], NuGetTestHelper.GetEligiblePackageSources(directory.FullName, "Aspire.Hosting.Redis")); 1738Assert.Equal(originalParent, await File.ReadAllBytesAsync(parent.FullName)); 1762var parentBytes = await File.ReadAllBytesAsync(parent.FullName); 1789appHostDirectory.FullName, new byte[NuGetSourceIdentity.KeySizeInBytes]); 1794NuGetTestHelper.GetEligiblePackageSources(appHostDirectory.FullName, "Aspire.Hosting.Redis")); 1795Assert.Equal(parentBytes, await File.ReadAllBytesAsync(parent.FullName)); 1796await Verify(XDocument.Load(target.FullName).ToString(), "xml") 1820NuGetTestHelper.GetEligiblePackageSources(projection.EffectiveWorkingDirectory.FullName, "Aspire.Hosting.Redis")); 1831await Verify(XDocument.Load(target.FullName).ToString(), "xml"); 1852var original = await File.ReadAllBytesAsync(parentFile.FullName); 1860appHostDirectory.FullName, new byte[NuGetSourceIdentity.KeySizeInBytes]); 1862Assert.Empty(NuGetTestHelper.GetEligiblePackageSources(appHostDirectory.FullName, "Aspire.Hosting.Redis")); 1864Assert.Equal(original, await File.ReadAllBytesAsync(parentFile.FullName)); 1893var original = await File.ReadAllBytesAsync(target.FullName); 1905Assert.Equal(original, await File.ReadAllBytesAsync(target.FullName)); 1918await File.WriteAllTextAsync(target.FullName, changedContent); 1923Assert.Contains(target.FullName, exception.Message); 1924Assert.Equal(changedContent, await File.ReadAllTextAsync(target.FullName)); 1936await File.WriteAllTextAsync(update.TargetFile.FullName, createdContent); 1941Assert.Equal(createdContent, await File.ReadAllTextAsync(update.TargetFile.FullName)); 1973XDocument.Load(Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config")).ToString());
DotNet\DotNetAppHostRestorePreviewTests.cs (3)
18var project = new FileInfo(Path.Combine(appHost.FullName, "AppHost.csproj")); 20new FileInfo(Path.Combine(unrelated.FullName, "NuGet.Config")), null, 22var settings = new DotNetRestoreSettings(project.FullName, "NuGet.targets", []);
DotNet\DotNetAppHostUpdateTransactionTests.cs (21)
18var file = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config")); 22await File.WriteAllBytesAsync(file.FullName, original); 28[PathNormalizer.ResolveToFilesystemPath(file.FullName)] = original 35await File.WriteAllTextAsync(file.FullName, "<configuration><external /></configuration>"); 41Assert.Equal("<configuration><external /></configuration>", await File.ReadAllTextAsync(file.FullName)); 50var file = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config")); 52await File.WriteAllBytesAsync(file.FullName, original); 56[PathNormalizer.ResolveToFilesystemPath(file.FullName)] = original 62await File.WriteAllBytesAsync(file.FullName, succeeds ? proposed : proposed[..10]); 80Assert.Equal(original, await File.ReadAllBytesAsync(file.FullName)); 87var file = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs")); 89await File.WriteAllBytesAsync(file.FullName, original); 92[PathNormalizer.ResolveToFilesystemPath(file.FullName)] = original 95() => File.WriteAllTextAsync(file.FullName, "#:sdk Aspire.AppHost.Sdk@9.4.2"), 97await File.WriteAllTextAsync(file.FullName, "// External edit."); 102Assert.Equal("// External edit.", await File.ReadAllTextAsync(file.FullName)); 110var file = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs")); 112await File.WriteAllBytesAsync(file.FullName, original); 115[PathNormalizer.ResolveToFilesystemPath(file.FullName)] = original 117await File.WriteAllTextAsync(file.FullName, "// External edit."); 127Assert.Equal("// External edit.", await File.ReadAllTextAsync(file.FullName));
DotNet\DotNetCliRunnerTests.cs (238)
71var validationTargets = Path.Combine(root.FullName, "LegacySdk.targets"); 81var projectFile = new FileInfo(Path.Combine(root.FullName, fileBased ? "apphost.cs" : "AppHost.csproj")); 83await File.WriteAllTextAsync(projectFile.FullName, fileBased 114Assert.Equal(fileBased ? projectFile.FullName + ".csproj" : projectFile.FullName, settings.ProjectIdentity); 141var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, fileBased ? "apphost.cs" : "AppHost.csproj")); 145await File.WriteAllTextAsync(projectFile.FullName, fileBased 147#:property _WorkloadLibraryPacksFolder={{MSBuildEscaping.Escape(libraryPacks.FullName)}} 161<_WorkloadLibraryPacksFolder>{{MSBuildEscaping.Escape(libraryPacks.FullName)}}</_WorkloadLibraryPacksFolder> 187Assert.Equal($"{sources};{libraryPacks.FullName}", 207Assert.Equal($"{sources};{libraryPacks.FullName}", 242var configFile = new FileInfo(Path.Combine(root.FullName, "NuGet.Config")); 243await File.WriteAllTextAsync(configFile.FullName, $$""" 245<packageSources><clear /><add key="old" value="{{oldFeed.FullName}}" /></packageSources> 247<config><add key="globalPackagesFolder" value="{{rootCache.FullName}}" /></config> 250var originalConfig = await File.ReadAllBytesAsync(configFile.FullName); 254var childDirectory = Directory.CreateDirectory(Path.Combine(root.FullName, "child")); 255var childFile = new FileInfo(Path.Combine(childDirectory.FullName, "Child.csproj")); 256var childTargets = customChildTargets ? Path.Combine(childDirectory.FullName, "Custom;NuGet.targets") : string.Empty; 268await File.WriteAllTextAsync(childFile.FullName, $$""" 270<PropertyGroup><TargetFramework>net{{Environment.Version.Major}}.0</TargetFramework><RestorePackagesPath>{{childCache.FullName}}</RestorePackagesPath><DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences><NuGetRestoreTargets>{{MSBuildEscaping.Escape(childTargets)}}</NuGetRestoreTargets></PropertyGroup> 276await File.WriteAllTextAsync(Path.Combine(childDirectory.FullName, "NuGet.Config"), $$""" 278<packageSources><clear /><add key="child" value="{{childFeed.FullName}}" /></packageSources> 283var projectFile = new FileInfo(Path.Combine(root.FullName, fileBased ? "apphost.cs" : "Root.csproj")); 284await File.WriteAllTextAsync(projectFile.FullName, fileBased 288#:property RestorePackagesPath={{MSBuildEscaping.Escape(rootCache.FullName)}} 298<PropertyGroup><TargetFramework>net{{Environment.Version.Major}}.0</TargetFramework><RestorePackagesPath>{{MSBuildEscaping.Escape(rootCache.FullName)}}</RestorePackagesPath><DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences></PropertyGroup> 309"daily", PackageChannelQuality.Both, [new("Aspire*", newFeed.FullName)], 317fileBased ? projectFile.FullName + ".csproj" : projectFile.FullName, 326["msbuild", childFile.FullName, "-getProperty:NuGetRestoreTargets", "-property:ExcludeRestorePackageImports=true"]); 335fileBased ? new Dictionary<string, string>() : new Dictionary<string, string> { [childFile.FullName] = childRestoreTargets }, 350["restore", projectFile.FullName, $"-property:NuGetRestoreTargets={MSBuildEscaping.Escape(preview.TargetsFile.FullName)}"]); 352Assert.Equal(originalConfig, await File.ReadAllBytesAsync(configFile.FullName)); 355using var graph = JsonDocument.Parse(await File.ReadAllTextAsync(Path.Combine(root.FullName, "obj", "Root.csproj.nuget.dgspec.json"))); 357Assert.Equal([newFeed.FullName, oldFeed.FullName], projects.GetProperty(projectFile.FullName).GetProperty("restore").GetProperty("sources") 360Path.Combine(childDirectory.FullName, "obj", "Child.csproj.nuget.dgspec.json"))); 362string[] expectedChildSources = childOwnPolicy ? [childFeed.FullName] : [newFeed.FullName, oldFeed.FullName]; 365Assert.Equal(childCache.FullName, childProject.GetProperty("restore").GetProperty("packagesPath").GetString()?.TrimEnd(Path.DirectorySeparatorChar)); 369await File.ReadAllTextAsync(Path.Combine(childDirectory.FullName, "custom-targets-ran"))); 376File.Delete(Path.Combine(childDirectory.FullName, "custom-targets-ran")); 378var (nativeExitCode, nativeOutput, nativeError) = await RunNativeDotNetAsync(root, sdkCache, ["restore", projectFile.FullName]); 383await File.ReadAllTextAsync(Path.Combine(childDirectory.FullName, "custom-targets-ran"))); 411<packageSources><clear /><add key="company" value="{{ambientFeed.FullName}}" /></packageSources> 415await File.WriteAllTextAsync(project.FullName, $$""" 429"daily", PackageChannelQuality.Both, [new("Aspire*", selectedFeed.FullName)], 438workspace.WorkspaceRoot, cache.FullName, ["restore", project.FullName]); 451WorkingDirectory = workingDirectory.FullName, 478var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 479await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 497["run", "--no-launch-profile", "--project", projectFile.FullName, "--", "--operation", "inspect"], 527var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, appHostFileName)); 528await File.WriteAllTextAsync(appHostFile.FullName, "Not a real AppHost."); 540? ["run", "--launch-profile=--no-build", $"/p:{KnownConfigNames.SuppressCliRunHook}=true", "--file", appHostFile.FullName, "--"] 542? ["watch", "--non-interactive", "--launch-profile=--no-build", "--project", appHostFile.FullName, "--"] 543: ["run", "--launch-profile=--no-build", "--project", appHostFile.FullName, "--"]; 566var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 567await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 578["run", "--project", projectFile.FullName, "--", .. appHostArguments], 600var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 601var appHostCommand = Path.Combine(workspace.WorkspaceRoot.FullName, "bin", "Debug", "net10.0", "AppHost"); 602var runWorkingDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "run-cwd")); 603await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 619Assert.Equal(runWorkingDirectory.FullName, workingDirectory.FullName); 642var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 643var appHostAssembly = Path.Combine(workspace.WorkspaceRoot.FullName, "bin", "Debug", "net10.0", "AppHost.dll"); 644var runWorkingDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "run-cwd")); 645await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 662Assert.Equal(runWorkingDirectory.FullName, workingDirectory.FullName); 683var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 684await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 711var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 712await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 743var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 744await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 776var cliDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "artifacts", "bin", "Aspire.Cli", "Debug", "net10.0")); 777var cliPath = Path.Combine(cliDirectory.FullName, OperatingSystem.IsWindows() ? "aspire.exe" : "aspire"); 779File.WriteAllText(Path.Combine(cliDirectory.FullName, "aspire.dll"), string.Empty); 789var cliDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "artifacts", "bin", "Aspire.Cli", "Debug", "net10.0")); 790var cliPath = Path.Combine(cliDirectory.FullName, "aspire"); 792File.WriteAllText(Path.Combine(cliDirectory.FullName, "aspire.dll"), string.Empty); 794var linkDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "bin")); 795var linkPath = Path.Combine(linkDirectory.FullName, "aspire"); 805var dotnetDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "dotnet")); 806var dotnetPath = Path.Combine(dotnetDirectory.FullName, OperatingSystem.IsWindows() ? "dotnet.exe" : "dotnet"); 816var cliDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "bin")); 817var cliPath = Path.Combine(cliDirectory.FullName, OperatingSystem.IsWindows() ? "aspire.exe" : "aspire"); 819File.WriteAllText(Path.Combine(cliDirectory.FullName, "aspire.dll"), string.Empty); 820File.WriteAllText(Path.Combine(cliDirectory.FullName, ".aspire-install.json"), """{"source":"script"}"""); 829var cliDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "bin")); 830var cliPath = Path.Combine(cliDirectory.FullName, OperatingSystem.IsWindows() ? "aspire.exe" : "aspire"); 832File.WriteAllText(Path.Combine(cliDirectory.FullName, "aspire.dll"), string.Empty); 833Directory.CreateDirectory(Path.Combine(cliDirectory.FullName, "dcp")); 834Directory.CreateDirectory(Path.Combine(cliDirectory.FullName, "managed")); 835File.WriteAllText(Path.Combine(cliDirectory.FullName, "dcp", OperatingSystem.IsWindows() ? "dcp.exe" : "dcp"), string.Empty); 836File.WriteAllText(Path.Combine(cliDirectory.FullName, "managed", OperatingSystem.IsWindows() ? "aspire-managed.exe" : "aspire-managed"), string.Empty); 847var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 848await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 853var targets = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "candidate;targets%('literal')@$?.targets")); 866? ["restore", projectFile.FullName, $"-property:NuGetRestoreTargets={MSBuildEscaping.Escape(targets.FullName)}"] 867: ["restore", projectFile.FullName], args); 880var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 881await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 917var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 918await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 946var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 947await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 975var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 976await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 982[KnownConfigNames.CliDotnetBinlogDirectory] = binlogDirectory.FullName 999Assert.Equal(binlogDirectory.FullName, Path.GetDirectoryName(binlogPath)); 1019[KnownConfigNames.CliDotnetBinlogDirectory] = workspace.WorkspaceRoot.CreateSubdirectory("binlogs").FullName 1048var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 1049await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 1085var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 1086await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 1126var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 1127await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 1171var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 1172await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 1226var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 1227await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 1323var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 1324await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 1363var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 1364await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 1405var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 1406await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 1452var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 1453await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 1500[KnownConfigNames.UnixSocketPath] = Path.Combine(workspace.WorkspaceRoot.FullName, "cli.sock") 1533var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 1534await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 1567[KnownConfigNames.UnixSocketPath] = Path.Combine(workspace.WorkspaceRoot.FullName, "cli.sock") 1579var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 1580await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 1605[KnownConfigNames.UnixSocketPath] = Path.Combine(workspace.WorkspaceRoot.FullName, "cli.sock") 1621var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 1622await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 1647[KnownConfigNames.UnixSocketPath] = Path.Combine(workspace.WorkspaceRoot.FullName, "cli.sock") 1663var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs")); 1664await File.WriteAllTextAsync(appHostFile.FullName, "// Single-file AppHost"); 1681Assert.Contains(appHostFile.FullName, args); 1689var filePathIndex = Array.IndexOf(args, appHostFile.FullName); 1716var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 1717await File.WriteAllTextAsync(projectFile.FullName, "<Project></Project>"); 1733Assert.Contains(projectFile.FullName, args); 1744var projectValueIndex = Array.IndexOf(args, projectFile.FullName); 1783var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 1784await File.WriteAllTextAsync(projectFile.FullName, "<Project></Project>"); 1804Assert.Contains(projectFile.FullName, args); 1814var projectValueIndex = Array.IndexOf(args, projectFile.FullName); 1849var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 1850await File.WriteAllTextAsync(projectFile.FullName, "<Project></Project>"); 1870Assert.Contains(projectFile.FullName, args); 1882var projectValueIndex = Array.IndexOf(args, projectFile.FullName); 1922var solutionFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Test.sln")); 1923await File.WriteAllTextAsync(solutionFile.FullName, "Not a real solution file."); 1927var project1File = new FileInfo(Path.Combine(project1Dir.FullName, "Project1.csproj")); 1928await File.WriteAllTextAsync(project1File.FullName, "Not a real project file."); 1931var project2File = new FileInfo(Path.Combine(project2Dir.FullName, "Project2.csproj")); 1932await File.WriteAllTextAsync(project2File.FullName, "Not a real project file."); 1969var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 1970await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 1972var referencedProject = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Service.csproj")); 1973await File.WriteAllTextAsync(referencedProject.FullName, "Not a real project file."); 1987Assert.Contains(projectFile.FullName, args); 1989Assert.Contains(referencedProject.FullName, args); 2002var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs")); 2003await File.WriteAllTextAsync(appHostFile.FullName, "// Single-file AppHost"); 2025arg => Assert.Equal(appHostFile.FullName, arg), 2049var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs")); 2050await File.WriteAllTextAsync(appHostFile.FullName, "// Single-file AppHost"); 2071arg => Assert.Equal(appHostFile.FullName, arg), 2095var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 2096await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 2132var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs")); 2133await File.WriteAllTextAsync(appHostFile.FullName, "// Single-file AppHost"); 2169var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs")); 2170await File.WriteAllTextAsync(appHostFile.FullName, "// Single-file AppHost"); 2185arg => Assert.Equal(appHostFile.FullName, arg), 2209var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 2210await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 2254var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs")); 2255await File.WriteAllTextAsync(appHostFile.FullName, "// Single-file AppHost"); 2282arg => Assert.Equal(appHostFile.FullName, arg), 2306var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 2307await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 2331arg => Assert.Equal(projectFile.FullName, arg), 2355var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 2356await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 2379arg => Assert.Equal(projectFile.FullName, arg), 2403var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs")); 2404await File.WriteAllTextAsync(appHostFile.FullName, "// Single-file AppHost"); 2442var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, fileName)); 2451? ["build", "--no-restore", "-property:ExcludeRestorePackageImports=true", "-getProperty:MSBuildVersion,RestoreSources", projectFile.FullName] 2452: ["msbuild", "-property:ExcludeRestorePackageImports=true", "-getProperty:MSBuildVersion,RestoreSources", projectFile.FullName], args); 2509var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 2510await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 2547var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 2548await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 2590var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 2591await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 2632var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 2633await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 2672var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 2673await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 2711var projectDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "RunPropertiesApp")); 2712var projectFile = new FileInfo(Path.Combine(projectDirectory.FullName, "RunPropertiesApp.csproj")); 2713await File.WriteAllTextAsync(projectFile.FullName, """ 2723await File.WriteAllTextAsync(Path.Combine(projectDirectory.FullName, "Program.cs"), "Console.WriteLine(\"Hello\");"); 2727WorkingDirectory = projectDirectory.FullName, 2733processStartInfo.ArgumentList.Add(projectFile.FullName); 2749Assert.Equal(Path.Combine(projectDirectory.FullName, "relative-working-directory"), properties.GetProperty("RunWorkingDirectory").GetString()); 2757var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 2758await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 2978var packagePath = Path.Combine(packagesDirectory.FullName, $"Aspire.ProjectTemplates.{packageVersion}.nupkg"); 2991Assert.Equal(workspace.WorkspaceRoot.FullName, workingDirectory.FullName); 3048var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 3049await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 3086var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 3087await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 3124var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 3125await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 3164var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 3165await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 3203var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 3204await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file.");
DotNet\DotNetRestoreConfigurationTests.cs (11)
20var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, fileName)); 22? projectFile.FullName + ".csproj" 23: projectFile.FullName; 24var toolsPath = Path.Combine(workspace.WorkspaceRoot.FullName, "sdk"); 29Assert.Equal(projectFile.FullName, file.FullName); 60var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 66values["MSBuildToolsPath"] = workspace.WorkspaceRoot.FullName; 67values[propertyName] = Path.Combine(workspace.WorkspaceRoot.FullName, "custom"); 82var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 91Assert.Contains(projectFile.FullName, exception.Message);
DotNet\ProcessExecutionDetachedTests.cs (3)
80var capturePath = Path.Combine(workspace.WorkspaceRoot.FullName, "capture.txt"); 96workspace.WorkspaceRoot.FullName, 110$"cwd={PathNormalizer.ResolveSymlinks(workspace.WorkspaceRoot.FullName)}",
DotNet\ProcessExecutionFactoryEnvironmentTests.cs (4)
29WorkingDirectory = WorkingDirectory.FullName 73await File.WriteAllTextAsync(Path.Combine(directory.FullName, "argv.cjs"), 86var startInfo = new ProcessStartInfo { WorkingDirectory = directory.FullName }; 133WorkingDirectory = WorkingDirectory.FullName
DotNet\ProcessExecutionTests.cs (9)
296var scriptFile = new FileInfo(Path.Combine(workspaceRoot.FullName, "long-running.cmd")); 300await File.WriteAllTextAsync(scriptFile.FullName, content); 305var scriptFile = new FileInfo(Path.Combine(workspaceRoot.FullName, "long-running.sh")); 309await File.WriteAllTextAsync(scriptFile.FullName, content); 312scriptFile.FullName, 332WorkingDirectory = scriptFile.Directory!.FullName, 333ArgumentList = { "/d", "/c", scriptFile.FullName } 344WorkingDirectory = scriptFile.Directory!.FullName, 345ArgumentList = { scriptFile.FullName }
DotNetSdkInstallerTests.cs (4)
55var parentPidFile = Path.Combine(tempDirectory.FullName, "dotnet-parent.pid"); 56var childPidFile = Path.Combine(tempDirectory.FullName, "dotnet-child.pid"); 329var scriptFile = Path.Combine(directory.FullName, "dotnet-shim.ps1"); 352var shellFile = Path.Combine(directory.FullName, "dotnet");
Git\GitClientTests.cs (7)
40Assert.Equal(workspace.Path, command.WorkingDirectory.FullName); 124Assert.Equal(["init", "--bare", "--", repository.Directory.FullName], command.Arguments); 125Assert.Equal(workspace.Path, command.WorkingDirectory.FullName); 130Assert.Equal([$"--git-dir={repository.Directory.FullName}", "fetch", "--depth", "1", "--no-tags", "--", "repository with spaces", "refs/heads/main"], command.Arguments); 131Assert.Equal(repository.Directory.FullName, command.WorkingDirectory.FullName); 136Assert.Equal([$"--git-dir={repository.Directory.FullName}", "rev-parse", "FETCH_HEAD^{commit}"], command.Arguments);
Git\GitRepositoryTests.cs (16)
37await GitTestHelper.ConfigureGitIdentityAsync(workspace.WorkspaceRoot.FullName, outputHelper); 41var trackedFile = Path.Combine(appDir.FullName, "AppHost.csproj"); 46var untrackedFile = Path.Combine(samplesDir.FullName, "Sample.csproj"); 50var gitignorePath = Path.Combine(workspace.WorkspaceRoot.FullName, ".gitignore"); 55var ignoredFile = Path.Combine(binDir.FullName, "Stale.csproj"); 59await GitTestHelper.RunGitAsync(workspace.WorkspaceRoot.FullName, outputHelper, "add", "App/AppHost.csproj", ".gitignore"); 60await GitTestHelper.RunGitAsync(workspace.WorkspaceRoot.FullName, outputHelper, "commit", "-m", "init"); 80await GitTestHelper.ConfigureGitIdentityAsync(workspace.WorkspaceRoot.FullName, outputHelper); 82var trackedFile = Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"); 84await GitTestHelper.RunGitAsync(workspace.WorkspaceRoot.FullName, outputHelper, "add", "AppHost.csproj"); 85await GitTestHelper.RunGitAsync(workspace.WorkspaceRoot.FullName, outputHelper, "commit", "-m", "init"); 107await GitTestHelper.ConfigureGitIdentityAsync(workspace.WorkspaceRoot.FullName, outputHelper); 109var trackedFile = Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"); 111await GitTestHelper.RunGitAsync(workspace.WorkspaceRoot.FullName, outputHelper, "add", "AppHost.csproj"); 112await GitTestHelper.RunGitAsync(workspace.WorkspaceRoot.FullName, outputHelper, "commit", "-m", "init"); 135Assert.Equal(workspace.WorkspaceRoot.FullName, startedActivity.GetTagItem(ProfilingTelemetry.Tags.GitWorkingDirectory));
Git\GitWorktreeTests.cs (52)
17Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, ".git")); 18var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost", "AppHost.csproj"); 21Assert.Null(GitWorktree.TryGetLinkedWorktreeRoot(workspace.WorkspaceRoot.FullName)); 28var fixtureRoot = workspace.WorkspaceRoot.FullName; 29var worktreeRoot = Directory.CreateDirectory(Path.Combine(fixtureRoot, "worktree")).FullName; 47var fixtureRoot = workspace.WorkspaceRoot.FullName; 48var worktreeRoot = Directory.CreateDirectory(Path.Combine(fixtureRoot, "worktree")).FullName; 63var worktreeRoot = workspace.WorkspaceRoot.FullName; 79var fixtureRoot = workspace.WorkspaceRoot.FullName; 81Path.Combine(fixtureRoot, "physical", "checkouts", "feature")).FullName; 119var fixtureRoot = workspace.WorkspaceRoot.FullName; 120var worktreeRoot = Directory.CreateDirectory(Path.Combine(fixtureRoot, "worktree")).FullName; 139var fixtureRoot = workspace.WorkspaceRoot.FullName; 140var worktreeRoot = Directory.CreateDirectory(Path.Combine(fixtureRoot, "checkout")).FullName; 142Path.Combine(fixtureRoot, "physical", "primary", ".git", "worktrees", "feature")).FullName; 181var worktreeRoot = workspace.WorkspaceRoot.FullName; 199var fixtureRoot = workspace.WorkspaceRoot.FullName; 200var worktreeRoot = Directory.CreateDirectory(Path.Combine(fixtureRoot, "worktree")).FullName; 219var worktreeRoot = workspace.WorkspaceRoot.FullName; 240var fixtureRoot = workspace.WorkspaceRoot.FullName; 241var worktreeRoot = Directory.CreateDirectory(Path.Combine(fixtureRoot, "worktree")).FullName; 281var fixtureRoot = workspace.WorkspaceRoot.FullName; 282var worktreeRoot = Directory.CreateDirectory(Path.Combine(fixtureRoot, "worktree")).FullName; 286var submoduleRoot = Directory.CreateDirectory(Path.Combine(worktreeRoot, "extern", "dep")).FullName; 298var fixtureRoot = workspace.WorkspaceRoot.FullName; 299var worktreeRoot = Directory.CreateDirectory(Path.Combine(fixtureRoot, "worktree")).FullName; 313var fixtureRoot = workspace.WorkspaceRoot.FullName; 315var worktreeRoot = Directory.CreateDirectory(Path.Combine(fixtureRoot, "worktree")).FullName; 317var otherWorktreeRoot = Directory.CreateDirectory(Path.Combine(fixtureRoot, "other-worktree")).FullName; 332var fixtureRoot = workspace.WorkspaceRoot.FullName; 333var worktreeRoot = Directory.CreateDirectory(Path.Combine(fixtureRoot, "worktree")).FullName; 345Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, ".git")); 346var submoduleRoot = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "extern", "dep")).FullName; 349Path.Combine(workspace.WorkspaceRoot.FullName, ".git", "modules", "dep")); 360Assert.Null(GitWorktree.TryGetLinkedWorktreeRoot(workspace.WorkspaceRoot.FullName)); 369var primaryRoot = workspace.WorkspaceRoot.FullName; 371var worktreeRoot = Directory.CreateDirectory(Path.Combine(primaryRoot, ".worktrees", "feature")).FullName; 386var primaryRoot = workspace.WorkspaceRoot.FullName; 388var worktreeRoot = Directory.CreateDirectory(Path.Combine(primaryRoot, ".worktrees", "feature")).FullName; 390var submoduleRoot = Directory.CreateDirectory(Path.Combine(worktreeRoot, "extern", "dep")).FullName; 403var primaryRoot = workspace.WorkspaceRoot.FullName; 405var submoduleRoot = Directory.CreateDirectory(Path.Combine(primaryRoot, "extern", "dep")).FullName; 442var repoBSubmoduleRoot = Directory.CreateDirectory(Path.Combine(repoBRoot, "extern", "dep")).FullName; 457var worktreeRoot = Directory.CreateDirectory(Path.Combine(primaryRoot, ".worktrees", "feature")).FullName; 468var workingDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "plain")).FullName; 469var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "other", "App.csproj"); 479var unmanagedDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "outside")).FullName; 493var root = Directory.CreateDirectory(Path.Combine(parent.FullName, name)).FullName;
HeldFileLeaseTests.cs (7)
17var leaseDirectory = workspace.CreateDirectory("leases").FullName; 43var leaseDirectory = workspace.CreateDirectory("leases").FullName; 66var leaseDirectory = workspace.CreateDirectory("leases").FullName; 78var leaseDirectory = workspace.CreateDirectory("leases").FullName; 112var leaseDirectory = workspace.CreateDirectory("leases").FullName; 134var leaseDirectory = workspace.CreateDirectory("leases").FullName; 177var leaseDirectory = workspace.CreateDirectory("leases").FullName;
Interaction\ConsoleInteractionServiceTests.cs (2)
755var logFilePath = Path.Combine(s_logsDirectory.FullName, "cli [dev team].log"); 783var logFilePath = Path.Combine(s_logsDirectory.FullName, "cli [dev team].log");
Interaction\ExtensionInteractionServiceTests.cs (10)
35var logFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "cli [extension].log"); 68var logFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.cli.log"); 108var cliLogFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.cli.log"); 109var appHostLogFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cli.log"); 158var logFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.cli.log"); 221Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.cli.log"), 351var invalidPath = Path.Combine(workspace.WorkspaceRoot.FullName, "invalid"); 352var validPath = Path.Combine(workspace.WorkspaceRoot.FullName, "valid"); 393var invalidPath = Path.Combine(workspace.WorkspaceRoot.FullName, "invalid"); 461var logFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "cli [extension].log");
Layout\LayoutConfigurationTests.cs (3)
37var layout = new LayoutConfiguration { LayoutPath = workspace.WorkspaceRoot.FullName }; 54var layout = new LayoutConfiguration { LayoutPath = workspace.WorkspaceRoot.FullName }; 89var layout = new LayoutConfiguration { LayoutPath = workspace.WorkspaceRoot.FullName };
Layout\LayoutDiscoveryReparsePointTests.cs (17)
37workspace.WorkspaceRoot.FullName, 46var linksDir = Path.Combine(workspace.WorkspaceRoot.FullName, "WinGet", "Links"); 69var rawLayoutRoot = Path.Combine(workspace.WorkspaceRoot.FullName, "custom-layout"); 72var realBinaryDir = Path.Combine(workspace.WorkspaceRoot.FullName, "real-binary"); 95var layoutRoot = workspace.WorkspaceRoot.FullName; 147var binaryDir = Path.Combine(workspace.WorkspaceRoot.FullName, "opt", "aspire", "bin"); 152var aspireHome = Path.Combine(workspace.WorkspaceRoot.FullName, "home", ".aspire"); 190var relativeLayoutRoot = Path.Combine(workspace.WorkspaceRoot.FullName, "colocated"); 198var aspireHome = Path.Combine(workspace.WorkspaceRoot.FullName, "home", ".aspire"); 229var layoutRoot = workspace.WorkspaceRoot.FullName; 237Path.Combine(managedDir.FullName, BundleDiscovery.GetExecutableFileName(BundleDiscovery.ManagedExecutableName)), 241Path.Combine(dashboardDir.FullName, BundleDiscovery.GetExecutableFileName(BundleDiscovery.DashboardExecutableName)), 264var layoutRoot = workspace.WorkspaceRoot.FullName; 272Path.Combine(managedDir.FullName, BundleDiscovery.GetExecutableFileName(BundleDiscovery.ManagedExecutableName)), 274File.WriteAllText(BundleDiscovery.GetDcpExecutablePath(dcpDir.FullName), "stub"); 278Path.Combine(managedDir.FullName, BundleDiscovery.GetExecutableFileName(BundleDiscovery.DashboardExecutableName)), 294var dashboardPath = Path.Combine(dashboardDir.FullName, BundleDiscovery.GetExecutableFileName(BundleDiscovery.DashboardExecutableName));
Mcp\ApiDocs\ApiDocsCacheTests.cs (3)
112new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "hives")), 113new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cache")), 120=> Directory.GetFiles(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cache", subdirectory))
Mcp\AppHostConnectionSelectionLogicTests.cs (10)
77var firstDirectory = Directory.CreateDirectory(Path.Combine(tempRoot.FullName, "AppHost")); 78var secondDirectoryPath = Path.Combine(tempRoot.FullName, "apphost"); 83var firstPath = Path.Combine(firstDirectory.FullName, "AppHost.csproj"); 84var secondPath = Path.Combine(secondDirectory.FullName, "AppHost.csproj"); 130var appHostPath = Path.Combine(appHostDirectory.FullName, "RootCase.AppHost.csproj"); 142var realAppHostPath = Path.Combine(realDirectory.FullName, "Symlinked.AppHost.csproj"); 144var symlinkDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "link"); 148Directory.CreateSymbolicLink(symlinkDirectory, realDirectory.FullName); 203var actualAppHostPath = Path.Combine(directory.FullName, "CaseSensitive.AppHost.csproj"); 206workspace.WorkspaceRoot.FullName,
Mcp\Docs\DocsCacheTests.cs (4)
37var cacheFiles = Directory.GetFiles(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cache", "docs")) 87var cacheFiles = Directory.GetFiles(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cache", "docs")) 125new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "hives")), 126new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "cache")),
Mcp\E2E\McpDocsE2ETests.cs (2)
289while (dir is not null && !File.Exists(Path.Combine(dir.FullName, "Aspire.slnx"))) 300var cliProjectPath = Path.Combine(dir.FullName, "src", "Aspire.Cli", "Aspire.Cli.csproj");
Mcp\ListAppHostsToolTests.cs (3)
34Assert.Contains($"App hosts within scope of working directory: {workspace.WorkspaceRoot.FullName}", text); 47var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "TestAppHost"); 111var inScopeAppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "InScopeAppHost");
Mcp\ListResourcesToolTests.cs (3)
276var realAppHostPath = Path.Combine(realDirectory.FullName, "Symlinked.AppHost.csproj"); 278var symlinkDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "link"); 282Directory.CreateSymbolicLink(symlinkDirectory, realDirectory.FullName);
Mcp\SelectAppHostToolTests.cs (14)
28var appHostFile = new FileInfo(Path.Combine(realDirectory.FullName, "AppHost.csproj")); 29File.WriteAllText(appHostFile.FullName, "<Project />"); 31var symlinkDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "link"); 32TestSymlinkHelper.TryCreateSymlink(symlinkDirectory, realDirectory.FullName); 34var displayPath = Path.GetFullPath(Path.Combine(workspace.WorkspaceRoot.FullName, suppliedPath)); 41var connection = CreateConnection(appHostFile.FullName, processId: Environment.ProcessId); 75var realAppHostPath = Path.Combine(realDirectory.FullName, "Symlinked.AppHost.csproj"); 77var symlinkDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "link"); 81Directory.CreateSymbolicLink(symlinkDirectory, realDirectory.FullName); 111var actualAppHostPath = Path.Combine(directory.FullName, "CaseSensitive.AppHost.csproj"); 113var selectedAppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "casesensitiveapphost", "casesensitive.apphost.csproj"); 150var firstAppHostPath = Path.Combine(firstDirectory.FullName, "First.AppHost.csproj"); 151var secondAppHostPath = Path.Combine(secondDirectory.FullName, "Second.AppHost.csproj"); 152var requestedAppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "Missing", "Missing.AppHost.csproj");
Migrations\TypeScriptAppHostMigrationTests.cs (29)
54var appHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts"); 71Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts"), 83await File.WriteAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts"), "// legacy"); 84await File.WriteAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts"), "// modern"); 95await File.WriteAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"), "// csharp"); 106var appHostDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "external-apphost")); 108var appHostPath = Path.Combine(appHostDirectory.FullName, "apphost.ts"); 152await File.WriteAllTextAsync(Path.Combine(root.FullName, "apphost.ts"), LegacyAppHostContent); 154Path.Combine(root.FullName, "aspire.config.json"), 163Path.Combine(root.FullName, "tsconfig.apphost.json"), 171Path.Combine(root.FullName, "package.json"), 181await File.WriteAllTextAsync(Path.Combine(root.FullName, "eslint.config.mjs"), LegacyEslintConfigContent); 183var modulesDir = Directory.CreateDirectory(Path.Combine(root.FullName, ".modules")); 184await File.WriteAllTextAsync(Path.Combine(modulesDir.FullName, "aspire.ts"), "// generated"); 189var config = JsonNode.Parse(await File.ReadAllTextAsync(Path.Combine(root.FullName, "aspire.config.json")))!; 192var tsconfig = JsonNode.Parse(await File.ReadAllTextAsync(Path.Combine(root.FullName, "tsconfig.apphost.json")))!; 196var packageJson = JsonNode.Parse(await File.ReadAllTextAsync(Path.Combine(root.FullName, "package.json")))!; 201var eslintConfig = await File.ReadAllTextAsync(Path.Combine(root.FullName, "eslint.config.mjs")); 214Assert.False(File.Exists(Path.Combine(root.FullName, "apphost.ts"))); 215Assert.False(Directory.Exists(Path.Combine(root.FullName, ".modules"))); 217var modernContent = await File.ReadAllTextAsync(Path.Combine(root.FullName, "apphost.mts")); 234LineEndingAssert.FileUsesOsLineBreaksAndSingleFinalNewline(Path.Combine(root.FullName, "aspire.config.json")); 241var appHostDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "external-apphost")); 244await CreateMigration(workspace).ApplyAsync(new MigrationContext(new FileInfo(Path.Combine(appHostDirectory.FullName, "apphost.ts"))), CancellationToken.None); 246Assert.False(File.Exists(Path.Combine(appHostDirectory.FullName, "apphost.ts"))); 247Assert.False(Directory.Exists(Path.Combine(appHostDirectory.FullName, ".modules"))); 248Assert.Equal(ExpectedModernAppHostContent, await File.ReadAllTextAsync(Path.Combine(appHostDirectory.FullName, "apphost.mts"))); 290var migratedContent = await File.ReadAllTextAsync(Path.Combine(root.FullName, "apphost.mts")); 294Assert.Equal(migratedContent, await File.ReadAllTextAsync(Path.Combine(root.FullName, "apphost.mts")));
Npm\AspireJsLauncherTests.cs (1)
410current = Directory.GetParent(current)?.FullName;
Npm\NpmRunnerTests.cs (5)
168var argumentsPath = Path.Combine(tempDirectory.FullName, "arguments.txt"); 170using var pathOverride = new EnvVarOverride("PATH", $"{tempDirectory.FullName}{Path.PathSeparator}{existingPath}"); 175var tarballPath = Path.Combine(tempDirectory.FullName, "playwright-%PATH%! cli.tgz"); 261Path.Combine(directory.FullName, "npm.cmd"), 274var npmPath = Path.Combine(directory.FullName, "npm");
NuGet\BundleNuGetServiceTests.cs (32)
21var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"); 57Assert.StartsWith(Path.Combine(appHostDirectory.FullName, ".aspire") + Path.DirectorySeparatorChar, preview.EffectiveWorkingDirectory.FullName); 59var previewSettings = NuGetTestHelper.LoadSettings(preview.EffectiveWorkingDirectory.FullName); 61Assert.Equal(Path.Combine(workspace.WorkspaceRoot.FullName, "private-feed"), privateSource.Source); 66var previewSnapshot = client.GetSettings(preview.EffectiveWorkingDirectory.FullName, key); 81var ambientSettings = NuGetTestHelper.LoadSettings(appHostDirectory.FullName); 97Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"), 124var previewSnapshot = client.GetSettings(preview.EffectiveWorkingDirectory.FullName, new byte[NuGetSourceIdentity.KeySizeInBytes]); 127var persistedSnapshot = client.GetSettings(appHostDirectory.FullName, new byte[NuGetSourceIdentity.KeySizeInBytes]); 138var nugetConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"); 157var globalPackagesFolder = Path.Combine(workspace.WorkspaceRoot.FullName, "packages"); 161workingDirectory: appHostDirectory.FullName, 167workspace.WorkspaceRoot.FullName, 192workingDirectory: appHostDirectory.FullName); 196workingDirectory: appHostDirectory.FullName); 219workingDirectory: appHostDirectory.FullName, 225workingDirectory: appHostDirectory.FullName, 281var toolPath = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.dll"); 321workingDirectory: appHostDirectory.FullName, 344workingDirectory: appHostDirectory.FullName)); 366workingDirectory: appHostDirectory.FullName); 390workingDirectory: appHostDirectory.FullName); 406var restoreRoot = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "integrations", "package-restore"); 410workingDirectory: firstAppHost.FullName); 413workingDirectory: secondAppHost.FullName); 421workingDirectory: secondAppHost.FullName); 439var lockedFilePath = Path.Combine(legacyLibsDirectory.FullName, "Microsoft.Extensions.DependencyInjection.xml"); 448workingDirectory: appHostDirectory.FullName); 478workingDirectory: appHostDirectory.FullName); 483workingDirectory: appHostDirectory.FullName); 511workspace.WorkspaceRoot.FullName,
NuGet\NuGetClientTests.cs (203)
101CreatePackage(feedDirectory.FullName, packageId); 103? $"""<add key="local" value="{feedDirectory.FullName}" />""" 108var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"); 119? Settings.LoadSpecificSettings(workspace.WorkspaceRoot.FullName, "NuGet.Config") 120: NuGetTestHelper.LoadSettings(workspace.WorkspaceRoot.FullName); 121string[] explicitSources = hasExplicitSource ? [feedDirectory.FullName] : []; 133workspace.WorkspaceRoot.FullName, 141Assert.Equal(feedDirectory.FullName, package.Source); 154CreatePackage(feedDirectory.FullName, "Aspire.Test.Package.One"); 155CreatePackage(feedDirectory.FullName, "Aspire.Test.Package.Two"); 167[feedDirectory.FullName], 169workspace.WorkspaceRoot.FullName, 181CreatePackage(firstFeedDirectory.FullName, "Aspire.Test.Package"); 182CreatePackage(secondFeedDirectory.FullName, "Aspire.Test.Package", version: "2.0.0"); 193[firstFeedDirectory.FullName, secondFeedDirectory.FullName], 195workspace.WorkspaceRoot.FullName, 202Assert.Equal(secondFeedDirectory.FullName, package.Source); 216CreatePackage(selectedFeed.FullName, packageId); 217CreatePackage(ambientFeed.FullName, packageId, version: "2.0.0"); 218CreatePackage(ambientFeed.FullName, communityPackageId, version: "2.0.0"); 220Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"), 225<add key="selected" value="{selectedFeed.FullName}" /> 226<add key="ambient" value="{ambientFeed.FullName}" /> 240useChannelOverlay ? [new PackageMapping("Aspire*", selectedFeed.FullName)] : null, 250configuration.ExplicitConfigFile?.FullName, 251configuration.EffectiveWorkingDirectory.FullName, 261Assert.Equal(selectedFeed.FullName, package.Source); 267Assert.Equal(ambientFeed.FullName, package.Source); 281CreatePackage(selectedFeed.FullName, packageId, baseAssemblyContents: "selected"); 282CreatePackage(ambientFeed.FullName, packageId, version: "9.0.0"); 284Path.Combine(machineDirectory.FullName, "NuGet.Config"), 295Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"), 299<add key="globalPackagesFolder" value="{packageDirectory.FullName}" /> 303<add key="selected" value="{selectedFeed.FullName}" /> 304<add key="ambient" value="{ambientFeed.FullName}" /> 313var machineSettings = new Settings(machineDirectory.FullName, "NuGet.Config", isMachineWide: true); 316var snapshot = client.GetSettings(workspace.WorkspaceRoot.FullName, new byte[NuGetSourceIdentity.KeySizeInBytes]); 318GetEffectiveGlobalPackagesFolder(nugetConfigPath: null, workspace.WorkspaceRoot.FullName), 324new() { Id = packageId, Version = "1.0.0", Source = selectedFeed.FullName }, 326new() { Id = packageId, Version = "9.0.0", Source = ambientFeed.FullName } 329workspace.WorkspaceRoot.FullName); 330Assert.Equal(["selected", selectedFeed.FullName], sdkResults.Select(package => package.Source)); 338workspace.WorkspaceRoot.FullName, 342Assert.Equal(selectedFeed.FullName, result.Source); 348restoreDirectory.FullName, 351workspace.WorkspaceRoot.FullName, 356restoreDirectory.FullName, nugetConfigPath: null, workspace.WorkspaceRoot.FullName)); 372CreatePackage(firstFeedDirectory.FullName, "Aspire.Test.Package", version: "9.0.0"); 373CreatePackage(secondFeedDirectory.FullName, "Aspire.Test.Package", version: "10.0.0"); 384[firstFeedDirectory.FullName, secondFeedDirectory.FullName], 386workspace.WorkspaceRoot.FullName, 393Assert.Equal(firstFeedDirectory.FullName, package.Source); 401CreatePackage(feedDirectory.FullName, "Aspire.Test.Package"); 403Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"), 408<add key="local" value="{feedDirectory.FullName}" /> 423nugetConfigPath: Path.Combine(workspace.WorkspaceRoot.FullName, "missing", "nuget.config"), 424workspace.WorkspaceRoot.FullName, 429Assert.Equal(feedDirectory.FullName, package.Source); 437CreatePackage(feedDirectory.FullName, "Aspire.Test.Package"); 448["https://127.0.0.1:1/v3/index.json", feedDirectory.FullName], 450workspace.WorkspaceRoot.FullName, 465var nugetConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"); 488workspace.WorkspaceRoot.FullName, 506var nugetConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"); 512<add key="globalPackagesFolder" value="{packagesDirectory.FullName}" /> 516<add key="local" value="{feedDirectory.FullName}" /> 530restoreDirectory.FullName, 533workspace.WorkspaceRoot.FullName, 559restoreDirectory.FullName, 562workspace.WorkspaceRoot.FullName, 583CreatePackage(feedDirectory.FullName, packageId); 586GetEffectiveGlobalPackagesFolder(nugetConfigPath, workspace.WorkspaceRoot.FullName), 609workspace.CreateDirectory("restore").FullName, 610workspace.WorkspaceRoot.FullName).Dispose(); 638workspace.CreateDirectory("restore").FullName, 639workspace.WorkspaceRoot.FullName).Dispose(); 648CreatePackage(feedDirectory.FullName, packageId); 673workspace.CreateDirectory("restore").FullName, 674workspace.WorkspaceRoot.FullName).Dispose(); 764CreatePackage(feedDirectory.FullName, "Aspire.Test.Package"); 783feedDirectory.FullName, 784workspace.WorkspaceRoot.FullName).Dispose(); 795CreatePackage(feedDirectory.FullName, packageId); 797var nugetConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"); 803<add key="globalPackagesFolder" value="{packagesDirectory.FullName}" /> 807<add key="local" value="{feedDirectory.FullName}" /> 823restoreDirectory.FullName, 826workspace.WorkspaceRoot.FullName, 828var restoredPackages = ReadRestoredPackages(restoreDirectory.FullName, 829nugetConfigPath, workspace.WorkspaceRoot.FullName); 831var manifestPath = Path.Combine(restoreDirectory.FullName, IntegrationPackageProbeManifest.FileName); 833Path.Combine(restoreDirectory.FullName, LockFileFormat.AssetsFileName), 841Assert.False(Directory.Exists(Path.Combine(restoreDirectory.FullName, "libs"))); 887CreatePackage(feedDirectory.FullName, packageId); 891var nugetConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"); 898<add key="local" value="{feedDirectory.FullName}" /> 909options.StartInfo.Environment["NUGET_PACKAGES"] = environmentPackagesDirectory.FullName; 933restoreDirectory.FullName, 934workspace.WorkspaceRoot.FullName, 935environmentPackagesDirectory.FullName, 940var assets = new LockFileFormat().Read(Path.Combine(restoreDirectory.FullName, LockFileFormat.AssetsFileName)); 945Path.TrimEndingDirectorySeparator(environmentPackagesDirectory.FullName), 950Directory.Exists(Path.Combine(environmentPackagesDirectory.FullName, packageId.ToLowerInvariant(), "1.0.0")), 962CreatePackage(feedDirectory.FullName, packageId); 993restoreDirectory.FullName, 994workspace.WorkspaceRoot.FullName, 997var assets = new LockFileFormat().Read(Path.Combine(restoreDirectory.FullName, LockFileFormat.AssetsFileName)); 1002Path.TrimEndingDirectorySeparator(configPackagesDirectory.FullName), 1005Directory.Exists(Path.Combine(configPackagesDirectory.FullName, packageId.ToLowerInvariant(), "1.0.0")), 1017feedDirectory.FullName, 1029GetEffectiveGlobalPackagesFolder(nugetConfigPath: null, workspace.WorkspaceRoot.FullName), 1036restoreDirectory.FullName, 1037[feedDirectory.FullName], 1039workspace.WorkspaceRoot.FullName, 1041var restoredPackages = ReadRestoredPackages(restoreDirectory.FullName, 1042nugetConfigPath: null, workspace.WorkspaceRoot.FullName); 1044var manifestPath = Path.Combine(restoreDirectory.FullName, IntegrationPackageProbeManifest.FileName); 1046Path.Combine(restoreDirectory.FullName, LockFileFormat.AssetsFileName), 1068feedDirectory.FullName, 1076GetEffectiveGlobalPackagesFolder(nugetConfigPath, workspace.WorkspaceRoot.FullName), 1090restoreDirectory.FullName, 1093workspace.WorkspaceRoot.FullName, 1095var restoredPackage = Assert.Single(ReadRestoredPackages(restoreDirectory.FullName, 1096nugetConfigPath, workspace.WorkspaceRoot.FullName)); 1097var manifestPath = Path.Combine(restoreDirectory.FullName, IntegrationPackageProbeManifest.FileName); 1099Path.Combine(restoreDirectory.FullName, LockFileFormat.AssetsFileName), 1127CreatePackage(configuredFeed.FullName, configuredPackageId); 1128CreatePackage(explicitFeed.FullName, explicitPackageId); 1131GetEffectiveGlobalPackagesFolder(nugetConfigPath, workspace.WorkspaceRoot.FullName), 1146restoreDirectory.FullName, 1147[explicitFeed.FullName], 1149workspace.WorkspaceRoot.FullName, 1151var restoredPackages = ReadRestoredPackages(restoreDirectory.FullName, 1152nugetConfigPath, workspace.WorkspaceRoot.FullName); 1168CreatePackage(firstFeed.FullName, packageId, "wrong-source"); 1169CreatePackage(mappedFeed.FullName, packageId, "mapped-source"); 1171var nugetConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"); 1177<add key="globalPackagesFolder" value="{packagesDirectory.FullName}" /> 1181<add key="first" value="{firstFeed.FullName}" /> 1182<add key="mapped" value="{mappedFeed.FullName}" /> 1195GetEffectiveGlobalPackagesFolder(nugetConfigPath, workspace.WorkspaceRoot.FullName), 1207restoreDirectory.FullName, 1210workspace.WorkspaceRoot.FullName, 1212var restoredPackages = ReadRestoredPackages(restoreDirectory.FullName, 1213nugetConfigPath, workspace.WorkspaceRoot.FullName); 1232CreatePackage(mappedFeed.FullName, packageId, "mapped-source"); 1233CreatePackage(explicitFeed.FullName, packageId, "explicit-source"); 1235var nugetConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"); 1241<add key="globalPackagesFolder" value="{packagesDirectory.FullName}" /> 1245<add key="mapped" value="{mappedFeed.FullName}" /> 1258GetEffectiveGlobalPackagesFolder(nugetConfigPath, workspace.WorkspaceRoot.FullName), 1270restoreDirectory.FullName, 1271[explicitFeed.FullName], 1273workspace.WorkspaceRoot.FullName, 1275var restoredPackages = ReadRestoredPackages(restoreDirectory.FullName, 1276nugetConfigPath, workspace.WorkspaceRoot.FullName); 1294CreatePackage(explicitFeed.FullName, packageId); 1296var nugetConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"); 1302<add key="globalPackagesFolder" value="{packagesDirectory.FullName}" /> 1323restoreDirectory.FullName, 1324[explicitFeed.FullName], 1326workspace.WorkspaceRoot.FullName, 1345feedDirectory.FullName, 1348CreatePackage(feedDirectory.FullName, dependencyPackage, version: "1.0.0"); 1355feedDirectory.FullName, 1360feedDirectory.FullName, 1366GetEffectiveGlobalPackagesFolder(nugetConfigPath, workspace.WorkspaceRoot.FullName), 1379restoreDirectory.FullName, 1380[feedDirectory.FullName], 1382workspace.WorkspaceRoot.FullName, 1384var restoredPackages = ReadRestoredPackages(restoreDirectory.FullName, 1385nugetConfigPath, workspace.WorkspaceRoot.FullName); 1409CreatePackage(feedDirectory.FullName, packageId); 1411var nugetConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"); 1417<add key="globalPackagesFolder" value="{packagesDirectory.FullName}" /> 1421<add key="local" value="{feedDirectory.FullName}" /> 1444restoreDirectory.FullName, 1447workspace.WorkspaceRoot.FullName, 1449var package = Assert.Single(ReadRestoredPackages(restoreDirectory.FullName, nugetConfigPath, workspace.WorkspaceRoot.FullName)); 1466var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"); 1498projectDirectory.FullName, 1521var source = useFileUri ? new Uri(hive.FullName).AbsoluteUri : hive.FullName; 1523Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"), 1534workspace.WorkspaceRoot.FullName, 1545var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"); 1564projectDirectory.FullName, 1577var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"); 1585var firstSettings = client.GetSettings(workspace.WorkspaceRoot.FullName, sourceIdentityKey); 1588var secondSettings = client.GetSettings(workspace.WorkspaceRoot.FullName, sourceIdentityKey); 1597var outputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "policy", "NuGet.Config"); 1632var originalPath = Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"); 1647var overlayPath = Path.Combine(overlayDirectory.FullName, "NuGet.Config"); 1653var settings = client.GetSettings(overlayDirectory.FullName, new byte[NuGetSourceIdentity.KeySizeInBytes]); 1666var nugetConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"); 1672<add key="globalPackagesFolder" value="{packagesDirectory.FullName}" /> 1686var nugetConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"); 1692<add key="globalPackagesFolder" value="{packagesDirectory.FullName}" /> 1696<add key="local" value="{feedDirectory.FullName}" />
NuGet\NuGetConfigurationQueryTests.cs (21)
26var oldHive = workspace.CreateDirectory(".aspire/hives/pr-old/packages").FullName; 32var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"); 72service.GetNuGetSettings(appHostDirectory.FullName, TestContext.Current.CancellationToken), 86var previewDirectory = preview.EffectiveWorkingDirectory.FullName; 109NuGetTestHelper.GetEligiblePackageSources(appHostDirectory.FullName, "Contoso.Package")); 111NuGetTestHelper.GetEligiblePackageSources(appHostDirectory.FullName, "Aspire.Hosting")); 121var oldHive = workspace.CreateDirectory(".aspire/hives/pr-old/packages").FullName; 122var newHive = workspace.CreateDirectory(".aspire/hives/pr-new/packages").FullName; 123var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"); 146var previewDirectory = preview.EffectiveWorkingDirectory.FullName; 162NuGetTestHelper.GetEligiblePackageSources(appHostDirectory.FullName, "Aspire.Hosting")); 164NuGetTestHelper.GetEligiblePackageSources(appHostDirectory.FullName, "Example.Dependency")); 166global::NuGet.Configuration.Settings.LoadDefaultSettings(appHostDirectory.FullName)).LoadPackageSources(); 178Path.Combine(directory.FullName, "NuGet.Config"), 202var previewSettings = global::NuGet.Configuration.Settings.LoadDefaultSettings(preview.EffectiveWorkingDirectory.FullName); 208Assert.Equal(["https://new.example/v3/index.json"], NuGetTestHelper.GetEligiblePackageSources(preview.EffectiveWorkingDirectory.FullName, "Aspire.Hosting")); 212Assert.Equal(["https://new.example/v3/index.json"], NuGetTestHelper.GetEligiblePackageSources(directory.FullName, "Aspire.Hosting")); 220var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"); 250Path.Combine(nonCanonicalDirectory.FullName, "NuGet.Config"), 264Path.Combine(mappingThenClearDirectory.FullName, "NuGet.Config"), 276Path.Combine(clearThenMappingDirectory.FullName, "NuGet.Config"),
NuGet\NuGetPackageCacheTests.cs (1)
39Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"),
NuGet\NuGetPackageOperationConfigurationTests.cs (16)
31Assert.Equal(workspace.WorkspaceRoot.FullName, configuration.EffectiveWorkingDirectory.FullName); 56Assert.Equal(workspace.WorkspaceRoot.FullName, configuration.EffectiveWorkingDirectory.Parent!.FullName); 58overlayDirectory = configuration.EffectiveWorkingDirectory.FullName; 59var document = XDocument.Load(configuration.ConfigurationFile.FullName); 97var ambientPath = Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"); 143Assert.Equal(workspace.WorkspaceRoot.FullName, configuration.EffectiveWorkingDirectory.Parent!.FullName); 144var settings = Settings.LoadDefaultSettings(configuration.EffectiveWorkingDirectory.FullName); 163var overlay = XDocument.Load(configuration.ConfigurationFile!.FullName); 182var settings = Settings.LoadDefaultSettings(configuration.EffectiveWorkingDirectory.FullName); 213var persistentPath = Path.Combine(workspace.CreateDirectory("persistent").FullName, "NuGet.Config"); 221Assert.Equal(XDocument.Load(persistentPath).ToString(), XDocument.Load(temporary.ConfigFile.FullName).ToString()); 225Assert.Equal(XDocument.Load(persistentPath).ToString(), XDocument.Load(temporary.ConfigFile.FullName).ToString()); 246Path.Combine(directory.FullName, "NuGet.Config"),
NuGet\NuGetTestHelperTests.cs (6)
51var machineConfigPath = Path.Combine(machineDirectory.FullName, "NuGet.Config"); 62var machineSettings = new TestMachineWideSettings(new Settings(machineDirectory.FullName, "NuGet.Config", isMachineWide: true)); 65var snapshot = client.GetSettings(appHostDirectory.FullName, new byte[NuGetSourceIdentity.KeySizeInBytes]); 66var settings = NuGetTestHelper.LoadSettings(appHostDirectory.FullName, machineSettings); 72NuGetTestHelper.GetEligiblePackageSources(appHostDirectory.FullName, "Aspire.Hosting", machineSettings)); 74NuGetTestHelper.GetEligiblePackageSources(appHostDirectory.FullName, "Example.Dependency", machineSettings));
NuGet\TemporaryNuGetConfigFileTests.cs (14)
19var target = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config")); 21await File.WriteAllTextAsync(target.FullName, original); 26Assert.Equal(content, await File.ReadAllBytesAsync(draft.ConfigFile.FullName)); 29Assert.Equal(UnixFileMode.UserRead | UnixFileMode.UserWrite, File.GetUnixFileMode(draft.ConfigFile.FullName)); 33Assert.Equal(original, await File.ReadAllTextAsync(target.FullName)); 35Assert.False(File.Exists(draft.ConfigFile.FullName)); 42var target = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config")); 43await File.WriteAllTextAsync(target.FullName, "<configuration />"); 61var document = XDocument.Load(config.ConfigFile.FullName); 89var document = XDocument.Load(config.ConfigFile.FullName); 108var document = XDocument.Load(config.ConfigFile.FullName); 148var document = XDocument.Load(config.ConfigFile.FullName); 173XDocument.Load(config.ConfigFile.FullName) 185var directory = config.ConfigFile.Directory!.FullName;
Packaging\PackageChannelTests.cs (64)
142packagesDirectory.FullName, 147Path.Combine(nestedDirectory.FullName, "Aspire.ProjectTemplates.13.6.0.nupkg"), 150var packageSource = packagesDirectory.FullName.Replace('\\', '/'); 189[new PackageMapping("Aspire*", channelPackagesDirectory.FullName)], 195overridePackagesDirectory.FullName); 214Assert.Equal(overridePackagesDirectory.FullName, package.Source); 227var packageSource = packagesDirectory.FullName.Replace('\\', '/'); 229File.WriteAllText(Path.Combine(packagesDirectory.FullName, "Aspire.ProjectTemplates.13.5.0.nupkg"), string.Empty); 233File.WriteAllText(Path.Combine(packagesDirectory.FullName, $"Aspire.ProjectTemplates.{pinnedVersion}.nupkg"), string.Empty); 274var packageSource = packagesDirectory.FullName.Replace('\\', '/'); 276File.WriteAllText(Path.Combine(packagesDirectory.FullName, "Aspire.ProjectTemplates.13.5.0.nupkg"), string.Empty); 279File.WriteAllText(Path.Combine(packagesDirectory.FullName, $"Aspire.ProjectTemplates.{pinnedVersion}.nupkg"), string.Empty); 317File.WriteAllText(Path.Combine(channelPackagesDirectory.FullName, "Aspire.ProjectTemplates.13.4.0-preview.1.nupkg"), string.Empty); 320var nestedDirectory = Directory.CreateDirectory(Path.Combine(overridePackagesDirectory.FullName, "aspire.projecttemplates", "13.5.0-preview.2")); 321File.WriteAllText(Path.Combine(nestedDirectory.FullName, "Aspire.ProjectTemplates.13.5.0-preview.2.nupkg"), string.Empty); 327var channelSource = channelPackagesDirectory.FullName.Replace('\\', '/'); 328var overrideSource = overridePackagesDirectory.FullName.Replace('\\', '/'); 355var nestedDirectory = Directory.CreateDirectory(Path.Combine(packagesDirectory.FullName, "aspire.projecttemplates", "13.5.0-preview.2")); 356File.WriteAllText(Path.Combine(nestedDirectory.FullName, "Aspire.ProjectTemplates.13.5.0-preview.2.nupkg"), string.Empty); 363var source = packagesDirectory.FullName.Replace('\\', '/'); 383File.WriteAllText(Path.Combine(packagesDirectory.FullName, $"Aspire.Hosting.Redis.{pinnedVersion}.nupkg"), string.Empty); 384File.WriteAllText(Path.Combine(packagesDirectory.FullName, $"Aspire.Hosting.PostgreSQL.{pinnedVersion}.nupkg"), string.Empty); 385File.WriteAllText(Path.Combine(packagesDirectory.FullName, $"CommunityToolkit.Aspire.Hosting.NodeJS.{pinnedVersion}.nupkg"), string.Empty); 388File.WriteAllText(Path.Combine(packagesDirectory.FullName, "Aspire.Hosting.SqlServer.13.3.0.nupkg"), string.Empty); 391File.WriteAllText(Path.Combine(packagesDirectory.FullName, $"Aspire.ProjectTemplates.{pinnedVersion}.nupkg"), string.Empty); 398File.WriteAllText(Path.Combine(packagesDirectory.FullName, $"Aspire.Hosting.AppHost.{pinnedVersion}.nupkg"), string.Empty); 399File.WriteAllText(Path.Combine(packagesDirectory.FullName, $"Aspire.Hosting.Sdk.{pinnedVersion}.nupkg"), string.Empty); 400File.WriteAllText(Path.Combine(packagesDirectory.FullName, $"Aspire.Hosting.Orchestration.linux-arm64.{pinnedVersion}.nupkg"), string.Empty); 401File.WriteAllText(Path.Combine(packagesDirectory.FullName, $"Aspire.Hosting.Testing.{pinnedVersion}.nupkg"), string.Empty); 402File.WriteAllText(Path.Combine(packagesDirectory.FullName, $"Aspire.Hosting.Msi.{pinnedVersion}.nupkg"), string.Empty); 403File.WriteAllText(Path.Combine(packagesDirectory.FullName, $"Aspire.Hosting.Integration.Analyzers.{pinnedVersion}.nupkg"), string.Empty); 406File.WriteAllText(Path.Combine(packagesDirectory.FullName, $"Aspire.Hosting.Dapr.{pinnedVersion}.nupkg"), string.Empty); 407File.WriteAllText(Path.Combine(packagesDirectory.FullName, $"Aspire.Hosting.GitHub.Models.{pinnedVersion}.nupkg"), string.Empty); 408File.WriteAllText(Path.Combine(packagesDirectory.FullName, $"Aspire.Hosting.NodeJs.{pinnedVersion}.nupkg"), string.Empty); 414var packageSource = packagesDirectory.FullName.Replace('\\', '/'); 462var packageSource = packagesDirectory.FullName.Replace('\\', '/'); 485var config = AspireConfigFile.LoadOrCreate(workspace.WorkspaceRoot.FullName); 488config.Save(workspace.WorkspaceRoot.FullName); 490var packageSource = packagesDirectory.FullName.Replace('\\', '/'); 520var packageSource = packagesDirectory.FullName.Replace('\\', '/'); 691File.WriteAllText(Path.Combine(packagesDirectory.FullName, "Aspire.Hosting.Redis.13.4.0.nupkg"), string.Empty); 692File.WriteAllText(Path.Combine(packagesDirectory.FullName, "Aspire.Hosting.Redis.13.5.0-preview.1.nupkg"), string.Empty); 693File.WriteAllText(Path.Combine(packagesDirectory.FullName, "Aspire.Hosting.PostgreSQL.13.4.0-preview.1.nupkg"), string.Empty); 710File.WriteAllText(Path.Combine(packagesDirectory.FullName, "Aspire.Hosting.Redis.13.4.0.nupkg"), string.Empty); 711File.WriteAllText(Path.Combine(packagesDirectory.FullName, "Aspire.Hosting.Redis.13.5.0-preview.1.nupkg"), string.Empty); 712File.WriteAllText(Path.Combine(packagesDirectory.FullName, "Aspire.Hosting.PostgreSQL.13.4.0.nupkg"), string.Empty); 729File.WriteAllText(Path.Combine(packagesDirectory.FullName, "Aspire.Hosting.Redis.13.5.0.nupkg"), string.Empty); 730File.WriteAllText(Path.Combine(packagesDirectory.FullName, "Aspire.Hosting.Redis.13.6.0-preview.1.nupkg"), string.Empty); 731File.WriteAllText(Path.Combine(packagesDirectory.FullName, "Aspire.Hosting.Azure.Kubernetes.13.6.0-pr.19404.gf51e8e1d.nupkg"), string.Empty); 760File.WriteAllText(Path.Combine(packagesDirectory.FullName, "Aspire.Hosting.Dapr.13.4.0.nupkg"), string.Empty); 761File.WriteAllText(Path.Combine(packagesDirectory.FullName, "Aspire.Hosting.Sql.13.4.0.nupkg"), string.Empty); 780File.WriteAllText(Path.Combine(packagesDirectory.FullName, "Aspire.Hosting.Dapr.13.4.0.nupkg"), string.Empty); 781File.WriteAllText(Path.Combine(packagesDirectory.FullName, "Aspire.Hosting.Sql.13.4.0.nupkg"), string.Empty); 800var config = AspireConfigFile.LoadOrCreate(workspace.WorkspaceRoot.FullName); 803config.Save(workspace.WorkspaceRoot.FullName); 805var packageSource = packagesDirectory.FullName.Replace('\\', '/'); 831var config = AspireConfigFile.LoadOrCreate(workspace.WorkspaceRoot.FullName); 834config.Save(workspace.WorkspaceRoot.FullName); 836var packageSource = packagesDirectory.FullName.Replace('\\', '/'); 975new PackageMapping("Aspire*", packagesDirectory.FullName.Replace('\\', '/')), 992new PackageMapping("Aspire*", new Uri(packagesDirectory.FullName).AbsoluteUri), 1067var packageSource = packagesDirectory.FullName.Replace('\\', '/'); 1079CreatePackageWithTags(Path.Combine(packagesDirectory.FullName, $"{packageId}.{version}.nupkg"), packageId, version, tags); 1084var packagePath = Path.Combine(packagesDirectory.FullName, packageId.ToLowerInvariant(), version, $"{packageId}.{version}.nupkg");
Packaging\PackageSourceIdentityTests.cs (12)
21var fileUri = new Uri(feed.FullName).AbsoluteUri; 24: Path.GetRelativePath(workspace.WorkspaceRoot.FullName, feed.FullName); 27var nativeSettings = Settings.LoadSpecificSettings(workspace.WorkspaceRoot.FullName, "NuGet.Config"); 30PackageSourceIdentity.Normalize(feed.FullName), 34workspace.WorkspaceRoot.FullName, 36foreach (var selectedSource in new[] { feed.FullName, fileUri }) 56var caseVariant = Path.Combine(feed.Parent!.FullName, "feed with spaces"); 57WriteSource(workspace.WorkspaceRoot, feed.FullName); 59workspace.WorkspaceRoot.FullName, 70Assert.Equal(OperatingSystem.IsWindows(), PackageSourceIdentity.Comparer.Equals(feed.FullName, caseVariant)); 83.Save(Path.Combine(directory.FullName, "NuGet.Config"));
Packaging\PackageSourceOverrideMappingsTests.cs (3)
147var source = workspace.CreateDirectory("Feed With Spaces").FullName; 182Assert.Equal(Path.Combine(workspace.WorkspaceRoot.FullName, "relative:feed"), result); 195Assert.Equal(Path.Combine(workspace.WorkspaceRoot.FullName, source), result);
Packaging\PackagingServiceTests.cs (137)
27var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 60var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 96var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 200var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 237var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 270var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 304var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 360var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 425var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 457var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 487var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 512var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 540var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 567var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 593var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 613var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 634var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 664var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 696var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 718var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 746var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 771var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 807var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 896var settings = nugetService.GetNuGetSettings(preview.EffectiveWorkingDirectory.FullName, TestContext.Current.CancellationToken); 899NuGetTestHelper.GetEligiblePackageSources(preview.EffectiveWorkingDirectory.FullName, "Example.Dependency")); 909var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 948var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 980var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 1012var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 1043var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 1073var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 1103var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 1133var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 1187var nugetConfigPath = Path.Combine(tempDir.FullName, "nuget.config"); 1212var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 1216Directory.CreateDirectory(Path.Combine(hivesDir.FullName, "pr-10167")); 1217Directory.CreateDirectory(Path.Combine(hivesDir.FullName, "pr-11832")); 1268var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 1272Directory.CreateDirectory(Path.Combine(hivesDir.FullName, "pr-12345")); 1308var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 1343var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 1378var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 1442var nugetConfigPath = Path.Combine(tempDir.FullName, "nuget.config"); 1459var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 1491var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 1521var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 1552var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 1554var localPackagesDir = new DirectoryInfo(Path.Combine(hivesDir.FullName, "local", "packages")); 1558File.WriteAllText(Path.Combine(localPackagesDir.FullName, $"Aspire.ProjectTemplates.{localVersion}.nupkg"), string.Empty); 1559File.WriteAllText(Path.Combine(localPackagesDir.FullName, $"Aspire.Hosting.{localVersion}.nupkg"), string.Empty); 1579var installPrefix = Directory.CreateDirectory(Path.Combine(tempDir.FullName, "custom-aspire-prefix")); 1580var processPath = Path.Combine(installPrefix.FullName, "dogfood", prChannelName, "bin", "aspire"); 1584var packagesDirectory = Directory.CreateDirectory(Path.Combine(installPrefix.FullName, "hives", prChannelName, "packages")); 1585File.WriteAllText(Path.Combine(packagesDirectory.FullName, $"Aspire.ProjectTemplates.{prVersion}.nupkg"), string.Empty); 1590var defaultHivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 1609mapping.Source == packagesDirectory.FullName.Replace('\\', '/')); 1622var defaultHivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 1623var defaultPackagesDirectory = Directory.CreateDirectory(Path.Combine(defaultHivesDir.FullName, prChannelName, "packages")); 1624File.WriteAllText(Path.Combine(defaultPackagesDirectory.FullName, $"Aspire.ProjectTemplates.{defaultHiveVersion}.nupkg"), string.Empty); 1626var installPrefix = Directory.CreateDirectory(Path.Combine(tempDir.FullName, "custom-aspire-prefix")); 1627var processPath = Path.Combine(installPrefix.FullName, "dogfood", prChannelName, "bin", "aspire"); 1631var dogfoodPackagesDirectory = Directory.CreateDirectory(Path.Combine(installPrefix.FullName, "hives", prChannelName, "packages")); 1632File.WriteAllText(Path.Combine(dogfoodPackagesDirectory.FullName, $"Aspire.ProjectTemplates.{dogfoodHiveVersion}.nupkg"), string.Empty); 1652mapping.Source == dogfoodPackagesDirectory.FullName.Replace('\\', '/')); 1662var installPrefix = Directory.CreateDirectory(Path.Combine(tempDir.FullName, "custom-aspire-prefix")); 1663var processPath = Path.Combine(installPrefix.FullName, "dogfood", prChannelName, "bin", "aspire"); 1667var packagesDirectory = Directory.CreateDirectory(Path.Combine(installPrefix.FullName, "hives", prChannelName, "packages")); 1668File.WriteAllText(Path.Combine(packagesDirectory.FullName, "Aspire.ProjectTemplates.not-a-semver.nupkg"), string.Empty); 1672hivesDirectory: new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")), 1688mapping.Source == packagesDirectory.FullName.Replace('\\', '/')); 1698var installPrefix = Directory.CreateDirectory(Path.Combine(tempDir.FullName, "custom-aspire-prefix")); 1699var processPath = Path.Combine(installPrefix.FullName, "dogfood", prChannelName, "bin", "aspire"); 1705hivesDirectory: new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")), 1728var installPrefix = Directory.CreateDirectory(Path.Combine(tempDir.FullName, "custom-aspire-prefix")); 1729var processPath = Path.Combine(installPrefix.FullName, "dogfood", installedPrChannelName, "bin", "aspire"); 1732Directory.CreateDirectory(Path.Combine(installPrefix.FullName, "hives", identityPrChannelName, "packages")); 1736hivesDirectory: new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")), 1760hivesDirectory: new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")), 1784var installPrefix = Directory.CreateDirectory(Path.Combine(tempDir.FullName, "custom-aspire-prefix")); 1785var processPath = Path.Combine(installPrefix.FullName, "dogfood", prChannelName, "bin", "aspire"); 1788Directory.CreateDirectory(Path.Combine(installPrefix.FullName, "hives", prChannelName, "packages")); 1792hivesDirectory: new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")), 1820var installPrefix = Directory.CreateDirectory(Path.Combine(tempDir.FullName, "custom-aspire-prefix")); 1821var processPath = Path.Combine(installPrefix.FullName, "bin", "aspire"); 1824Directory.CreateDirectory(Path.Combine(installPrefix.FullName, "hives", prChannelName, "packages")); 1840var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 1842var localPackagesDir = new DirectoryInfo(Path.Combine(hivesDir.FullName, "local", "packages")); 1846File.WriteAllText(Path.Combine(localPackagesDir.FullName, $"Aspire.ProjectTemplates.{localVersion}.nupkg"), string.Empty); 1859Assert.Equal(localPackagesDir.FullName.Replace('\\', '/'), package.Source); 1881var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 1933var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 1984var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 2030var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 2034var localPackagesDir = new DirectoryInfo(Path.Combine(hivesDir.FullName, localHiveName, "packages")); 2038File.WriteAllText(Path.Combine(localPackagesDir.FullName, $"Aspire.ProjectTemplates.{pinnedVersion}.nupkg"), string.Empty); 2064var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 2067var runPackagesDir = new DirectoryInfo(Path.Combine(hivesDir.FullName, runHiveName, "packages")); 2071File.WriteAllText(Path.Combine(runPackagesDir.FullName, $"Aspire.ProjectTemplates.{pinnedVersion}.nupkg"), string.Empty); 2098var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 2101var localPackagesDir = new DirectoryInfo(Path.Combine(hivesDir.FullName, "local", "packages")); 2106File.WriteAllText(Path.Combine(localPackagesDir.FullName, $"Aspire.Hosting.{localVersion}.nupkg"), string.Empty); 2108File.WriteAllText(Path.Combine(localPackagesDir.FullName, $"Aspire.Hosting.Redis.{localVersion}.nupkg"), string.Empty); 2109File.WriteAllText(Path.Combine(localPackagesDir.FullName, $"Aspire.Hosting.JavaScript.{localVersion}.nupkg"), string.Empty); 2111File.WriteAllText(Path.Combine(localPackagesDir.FullName, $"Aspire.ProjectTemplates.{localVersion}.nupkg"), string.Empty); 2112File.WriteAllText(Path.Combine(localPackagesDir.FullName, $"Aspire.AppHost.Sdk.{localVersion}.nupkg"), string.Empty); 2138var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 2141var localPackagesDir = new DirectoryInfo(Path.Combine(hivesDir.FullName, PackageChannelNames.Local, "packages")); 2143File.WriteAllText(Path.Combine(localPackagesDir.FullName, "Aspire.Hosting.13.4.0-pr.16820.g1a99aa46.nupkg"), string.Empty); 2153var expectedLocalPath = localPackagesDir.FullName.Replace('\\', '/'); 2175var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 2179var localHiveDir = new DirectoryInfo(Path.Combine(hivesDir.FullName, PackageChannelNames.Local)); 2194var expectedLocalPackagesPath = Path.Combine(localHiveDir.FullName, "packages").Replace('\\', '/'); 2205var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 2208var localPackagesDir = new DirectoryInfo(Path.Combine(hivesDir.FullName, PackageChannelNames.Local, "packages")); 2228var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 2230var packagesOverrideDir = Directory.CreateDirectory(Path.Combine(tempDir.FullName, "shipping")); 2232File.WriteAllText(Path.Combine(packagesOverrideDir.FullName, $"Aspire.ProjectTemplates.{overrideVersion}.nupkg"), string.Empty); 2233File.WriteAllText(Path.Combine(packagesOverrideDir.FullName, $"Aspire.Hosting.{overrideVersion}.nupkg"), string.Empty); 2247Assert.Equal(packagesOverrideDir.FullName.Replace('\\', '/'), aspireMapping.Source); 2257var hivesDir = new DirectoryInfo(Path.Combine(tempDir.FullName, ".aspire", "hives")); 2259var staleHiveDir = Directory.CreateDirectory(Path.Combine(hivesDir.FullName, PackageChannelNames.Daily, "packages")); 2260File.WriteAllText(Path.Combine(staleHiveDir.FullName, "Aspire.Hosting.13.4.0.nupkg"), string.Empty); 2262var packagesOverrideDir = Directory.CreateDirectory(Path.Combine(tempDir.FullName, "shipping")); 2264File.WriteAllText(Path.Combine(packagesOverrideDir.FullName, $"Aspire.Hosting.{overrideVersion}.nupkg"), string.Empty); 2277Assert.Equal(packagesOverrideDir.FullName.Replace('\\', '/'), aspireMapping.Source); 2289var packagesOverrideDir = Directory.CreateDirectory(Path.Combine(tempDir.FullName, "shipping")); 2290File.WriteAllText(Path.Combine(packagesOverrideDir.FullName, "Aspire.Hosting.13.4.1.nupkg"), string.Empty); 2291File.WriteAllText(Path.Combine(packagesOverrideDir.FullName, "Aspire.Hosting.13.4.2.nupkg"), string.Empty); 2293File.WriteAllText(Path.Combine(packagesOverrideDir.FullName, "Aspire.ProjectTemplates.13.4.2.nupkg"), string.Empty); 2317var packagesOverrideDir = Directory.CreateDirectory(Path.Combine(tempDir.FullName, "shipping")); 2318File.WriteAllText(Path.Combine(packagesOverrideDir.FullName, "Aspire.Hosting.13.4.1.nupkg"), string.Empty); 2319var nestedDir = Directory.CreateDirectory(Path.Combine(packagesOverrideDir.FullName, "nested")); 2320File.WriteAllText(Path.Combine(nestedDir.FullName, "Aspire.Hosting.13.4.2.nupkg"), string.Empty); 2322File.WriteAllText(Path.Combine(nestedDir.FullName, "Aspire.ProjectTemplates.13.4.2.nupkg"), string.Empty); 2323File.WriteAllText(Path.Combine(packagesOverrideDir.FullName, "Aspire.ProjectTemplates.13.4.2.nupkg"), string.Empty); 2344var missingDir = new DirectoryInfo(Path.Combine(tempDir.FullName, "does-not-exist")); 2352Assert.Contains(missingDir.FullName, ex.Message);
Processes\ProcessTreeGracefulShutdownServiceTests.cs (27)
28var signaler = CreateService(workspace, workspace.WorkspaceRoot.FullName, executionFactory); 36AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"), 66var signaler = CreateService(workspace, workspace.WorkspaceRoot.FullName, executionFactory, timeProvider: timeProvider); 74AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"), 100File.WriteAllText(BundleDiscovery.GetDcpExecutablePath(dcpDirectory.FullName), string.Empty); 113var signaler = CreateService(workspace, dcpDirectory.FullName, executionFactory); 121Assert.Equal(workspace.WorkspaceRoot.FullName, capturedWorkingDirectory.FullName); 137File.WriteAllText(BundleDiscovery.GetDcpExecutablePath(dcpDirectory.FullName), string.Empty); 144var signaler = CreateService(workspace, dcpDirectory.FullName, executionFactory); 162File.WriteAllText(BundleDiscovery.GetDcpExecutablePath(mutableDcpDirectory.FullName), string.Empty); 166var leasedDcpPath = BundleDiscovery.GetDcpExecutablePath(leasedDcpDirectory.FullName); 172Layout = new LayoutConfiguration { LayoutPath = versionRoot.FullName } 174var signaler = CreateService(workspace, mutableDcpDirectory.FullName, executionFactory, bundleService); 225File.WriteAllText(BundleDiscovery.GetDcpExecutablePath(dcpDirectory.FullName), string.Empty); 243dcpDirectory.FullName, 250AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"), 281File.WriteAllText(BundleDiscovery.GetDcpExecutablePath(dcpDirectory.FullName), string.Empty); 288dcpDirectory.FullName, 295AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"), 320File.WriteAllText(BundleDiscovery.GetDcpExecutablePath(dcpDirectory.FullName), string.Empty); 327dcpDirectory.FullName, 334AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"), 359File.WriteAllText(BundleDiscovery.GetDcpExecutablePath(dcpDirectory.FullName), string.Empty); 366dcpDirectory.FullName, 372AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"), 405Path.Combine(workspace.WorkspaceRoot.FullName, "test.log"),
ProfileCaptureOptionsTests.cs (11)
39var outputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "profiles", "startup.zip"); 64Assert.StartsWith(workspace.WorkspaceRoot.FullName, options.OutputPath, StringComparison.Ordinal); 74var outputDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "profiles")); 77["--capture-profile", "--capture-profile-output", outputDirectory.FullName], 83Assert.Equal(outputDirectory.FullName, Path.GetDirectoryName(options.OutputPath)); 92var outputDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "profiles") + Path.DirectorySeparatorChar; 111workspace.WorkspaceRoot.FullName, 118dashboardBaseDirectory.FullName, 132workspace.WorkspaceRoot.FullName, 139dashboardBaseDirectory.FullName, 143var resolvedPath = ProfileCaptureService.ResolveRepoLocalDashboardPath(workspace.WorkspaceRoot.FullName);
ProfileCaptureServiceTests.cs (13)
94var overridePath = useDirectory ? workspace.WorkspaceRoot.FullName : managedPath; 117var managedPath = Path.Combine(managedDirectory.FullName, BundleDiscovery.GetExecutableFileName(BundleDiscovery.ManagedExecutableName)); 122Path.Combine(managedDirectory.FullName, BundleDiscovery.GetExecutableFileName(BundleDiscovery.DashboardExecutableName)), 128Layout = new LayoutConfiguration { LayoutPath = layoutRoot.FullName } 153Path.Combine(managedDirectory.FullName, BundleDiscovery.GetExecutableFileName(BundleDiscovery.ManagedExecutableName)), 156var dashboardPath = Path.Combine(dashboardDirectory.FullName, BundleDiscovery.GetExecutableFileName(BundleDiscovery.DashboardExecutableName)); 161Layout = new LayoutConfiguration { LayoutPath = layoutRoot.FullName } 385var outputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nested", "profile.zip"); 527workspace.WorkspaceRoot.FullName, 541var missingPath = Path.Combine(workspace.WorkspaceRoot.FullName, "missing"); 551var logPath = Path.Combine(workspace.WorkspaceRoot.FullName, "profile-service.log"); 738var path = Path.Combine(workspace.WorkspaceRoot.FullName, fileName); 749outputPath ?? Path.Combine(workspace.WorkspaceRoot.FullName, "profile.zip"),
ProgramTests.cs (5)
159}, versionDirectory.FullName); 162Assert.False(BundleVersionLease.HasActiveLease(versionDirectory.FullName)); 169var settingsPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 186var settingsPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 203var settingsPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName);
Projects\AppHostCandidateFinderTests.cs (99)
49var gitRepository = CreateGitRepository(gitListedAppHost.FullName); 54var path = Assert.Single(result.Files).FullName; 55Assert.Equal(gitListedAppHost.FullName, path); 56Assert.DoesNotContain(result.Files, file => file.FullName == diskOnlyAppHost.FullName); 74appHost.FullName 82var path = Assert.Single(result.Files).FullName; 83Assert.Equal(appHost.FullName, path); 84Assert.Equal(searchDirectory.FullName, capturedSearchRoot?.FullName); 93var missingAppHost = Path.Combine(workspace.WorkspaceRoot.FullName, "Removed", "AppHost.csproj"); 94var gitRepository = CreateGitRepository(appHost.FullName, skipListedAppHost.FullName, missingAppHost); 99var path = Assert.Single(result.Files).FullName; 100Assert.Equal(appHost.FullName, path); 112var gitRepository = CreateGitRepository(agentSkillSnippetAppHost.FullName, claudeSkillSnippetAppHost.FullName); 130var gitRepository = CreateGitRepository(gitHubSkillSnippetAppHost.FullName, openCodeSkillSnippetAppHost.FullName, gitHubNonSkillAppHost.FullName); 135var path = Assert.Single(result.Files).FullName; 136Assert.Equal(gitHubNonSkillAppHost.FullName, path); 157var paths = result.Files.Select(file => file.FullName).ToHashSet(); 159Assert.Equal(nonSkillAppHost.FullName, path); 169var searchRoot = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "obj")); 171var gitRepository = CreateGitRepository(appHost.FullName); 176var path = Assert.Single(result.Files).FullName; 177Assert.Equal(appHost.FullName, path); 187var gitRepository = CreateGitRepository(appHostNamedLikeExcludedDirectory.FullName, appHostInExcludedDirectory.FullName); 192var path = Assert.Single(result.Files).FullName; 193Assert.Equal(appHostNamedLikeExcludedDirectory.FullName, path); 194Assert.DoesNotContain(result.Files, file => file.FullName == appHostInExcludedDirectory.FullName); 204var gitRepository = CreateGitRepository(appHost.FullName, cachedAppHost.FullName); 206var nugetCachePath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget-cache"); 210var path = Assert.Single(result.Files).FullName; 211Assert.Equal(appHost.FullName, path); 226var gitRepository = CreateGitRepository(appHost.FullName); 265var path = Assert.Single(result.Files).FullName; 266Assert.Equal(appHost.FullName, path); 292Assert.Equal(appHost.FullName, file.FullName); 316var nugetCachePath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget-cache"); 320var paths = result.Files.Select(file => file.FullName).ToHashSet(); 322Assert.Contains(appHost.FullName, paths); 323Assert.Contains(siblingAppHost.FullName, paths); 324Assert.DoesNotContain(cachedAppHost.FullName, paths); 340var differentlyCasedNuGetCachePath = Path.Combine(workspace.WorkspaceRoot.FullName, "NUGET-CACHE"); 344var path = Assert.Single(result.Files).FullName; 345Assert.Equal(appHost.FullName, path); 346Assert.DoesNotContain(result.Files, file => file.FullName == cachedAppHost.FullName); 369var paths = result.Files.Select(file => file.FullName).ToHashSet(); 371Assert.Contains(appHost.FullName, paths); 372Assert.Contains(skipListedAppHost.FullName, paths); 384var nugetCachePath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget-cache"); 388var paths = result.Files.Select(file => file.FullName).ToHashSet(); 390Assert.Contains(appHost.FullName, paths); 391Assert.DoesNotContain(cachedAppHost.FullName, paths); 414var path = Assert.Single(result.Files).FullName; 415Assert.Equal(appHost.FullName, path); 430var path = Assert.Single(result.Files).FullName; 431Assert.Equal(directAppHost.FullName, path); 432Assert.DoesNotContain(result.Files, file => file.FullName == nestedAppHost.FullName); 446Assert.DoesNotContain(result.Files, file => file.FullName == nestedAppHost.FullName); 456var gitRepository = CreateGitRepository(directAppHost.FullName, nestedAppHost.FullName); 461var path = Assert.Single(result.Files).FullName; 462Assert.Equal(directAppHost.FullName, path); 463Assert.DoesNotContain(result.Files, file => file.FullName == nestedAppHost.FullName); 478var paths = result.Files.Select(file => file.FullName).ToHashSet(); 480Assert.Contains(csAppHost.FullName, paths); 481Assert.Contains(tsAppHost.FullName, paths); 493var gitRepository = CreateGitRepository(appHost.FullName); 525var path = Assert.Single(result.Files).FullName; 526Assert.Equal(appHost.FullName, path); 536await GitTestHelper.ConfigureGitIdentityAsync(workspace.WorkspaceRoot.FullName, outputHelper); 542await File.WriteAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, ".gitignore"), "legacy/\n"); 544await GitTestHelper.RunGitAsync(workspace.WorkspaceRoot.FullName, outputHelper, "add", "App/AppHost.csproj", ".gitignore"); 545await GitTestHelper.RunGitAsync(workspace.WorkspaceRoot.FullName, outputHelper, "commit", "-m", "init"); 552var paths = result.Files.Select(file => file.FullName).ToHashSet(); 554Assert.Contains(trackedAppHost.FullName, paths); 555Assert.Contains(untrackedTypeScriptAppHost.FullName, paths); 556Assert.DoesNotContain(ignoredAppHost.FullName, paths); 557Assert.DoesNotContain(skipListedAppHost.FullName, paths); 568await GitTestHelper.ConfigureGitIdentityAsync(workspace.WorkspaceRoot.FullName, outputHelper); 572await GitTestHelper.RunGitAsync(workspace.WorkspaceRoot.FullName, outputHelper, "add", "src/App/AppHost.csproj", "Other/AppHost.csproj"); 573await GitTestHelper.RunGitAsync(workspace.WorkspaceRoot.FullName, outputHelper, "commit", "-m", "init"); 575var searchDirectory = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "src")); 581var path = Assert.Single(result.Files).FullName; 582Assert.Equal(scopedAppHost.FullName, path); 583Assert.DoesNotContain(result.Files, file => file.FullName == outsideAppHost.FullName); 610var fullPath = Path.Combine(root.FullName, relativePath.Replace('/', Path.DirectorySeparatorChar));
Projects\AppHostInfoResolverTests.cs (1)
241var path = Path.Combine(workspace.WorkspaceRoot.FullName, "Test.AppHost.csproj");
Projects\AppHostServerProjectTests.cs (30)
35appPath ??= _workspace.WorkspaceRoot.FullName; 44var repoRoot = _workspace.WorkspaceRoot.FullName; 52var path = _workspace.CreateDirectory("App Path With Spaces").FullName; 81var repoConfigPath = Path.Combine(repoRoot.FullName, "NuGet.Config"); 94await File.WriteAllTextAsync(Path.Combine(repoRoot.FullName, "Directory.Packages.props"), "<Project />"); 95await File.WriteAllTextAsync(Path.Combine(appPath.FullName, "NuGet.Config"), """ 108appPath.FullName, "test.sock", repoRoot.FullName, 112projectModelPath: projectModelPath.FullName, 113restoreRootConfigDirectory: repoRoot.FullName); 117Assert.Equal(repoRoot.FullName, XDocument.Load(projectFilePath).Descendants("RestoreRootConfigDirectory").Single().Value); 124WorkingDirectory = projectModelPath.FullName, 150Assert.Equal(new[] { parentFeed.FullName, feed.FullName }.Order(StringComparer.Ordinal), sources.Order(StringComparer.Ordinal)); 303var integrationProjectPath = Path.Combine(integrationDirectory.FullName, "Aspire.Hosting.PostgreSQL.csproj"); 338var integrationProjectPath = Path.Combine(integrationDirectory.FullName, "Aspire.Hosting.Redis.csproj"); 364var firstProjectPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "Integration", "Integration.csproj"); 365var secondProjectPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "integration", "Integration.csproj"); 389var appPath = _workspace.WorkspaceRoot.FullName; 435var appPath = _workspace.WorkspaceRoot.FullName; 462var appPath = _workspace.WorkspaceRoot.FullName; 471var aspireConfigPath = Path.Combine(_workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 482var prOldHivePath = prOldHive.FullName; 483var prNewHivePath = prNewHive.FullName; 560Assert.Contains(prNewHive.FullName, restoreSources); 561Assert.DoesNotContain(prOldHive.FullName, restoreSources); 573var appPath = _workspace.WorkspaceRoot.FullName; 625var appPath = _workspace.WorkspaceRoot.FullName; 664var appPath = _workspace.WorkspaceRoot.FullName; 720DumpDirectoryTree(dir.FullName, output, indent + " ");
Projects\AppHostServerSessionTests.cs (7)
210var project = new FakeSucceedingAppHostServerProject(workspace.WorkspaceRoot.FullName) 216Path.Combine(workspace.WorkspaceRoot.FullName, "absent.sock"), output, execution); 522var appPath = workspace.CreateDirectory("apphost").FullName; 523var integrationCachePathBlockedByFile = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "integrations"); 527var versionLease = BundleVersionLease.Acquire(versionDirectory.FullName, "test", "apphost-server"); 533Assert.True(BundleVersionLease.HasActiveLease(versionDirectory.FullName)); 543Assert.False(BundleVersionLease.HasActiveLease(versionDirectory.FullName));
Projects\AppHostWorkloadIdTests.cs (18)
14var target = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 15File.WriteAllText(target.FullName, "<Project />"); 17var linkPath = Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.Link.csproj"); 18TryCreateSymlink(linkPath, target.FullName, isDirectory: false); 31var target = new FileInfo(Path.Combine(nestedDirectory.FullName, "AppHost.csproj")); 32File.WriteAllText(target.FullName, "<Project />"); 34var linkDirectoryPath = Path.Combine(workspace.WorkspaceRoot.FullName, "link"); 35TryCreateSymlink(linkDirectoryPath, realDirectory.FullName, isDirectory: true); 49var target = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 50File.WriteAllText(target.FullName, "<Project />"); 53AppHostWorkloadId.Create(target.FullName), 54AppHostWorkloadId.Create(Path.Combine(nestedDirectory.FullName, "..", "AppHost.csproj"))); 61var target = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 62File.WriteAllText(target.FullName, "<Project />"); 64var actual = AppHostWorkloadId.Create(target.FullName); 65var differentCasing = AppHostWorkloadId.Create(target.FullName.ToUpperInvariant()); 81var target = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 82File.WriteAllText(target.FullName, "<Project />");
Projects\CSharpProjectFileTests.cs (1)
21var repoRoot = useRepositoryRoot ? workspace.WorkspaceRoot.FullName : null;
Projects\DotNetAppHostProjectTests.cs (152)
325Assert.Equal(appHostFile.FullName, projectFile.FullName); 334Assert.Equal(appHostFile.FullName, projectFile.FullName); 368Assert.Equal(appHostFile.FullName, projectFile.FullName); 377Assert.Equal(appHostFile.FullName, projectFile.FullName); 407var socketPath = CreateMatchingSocketFile(appHostFile.FullName, int.MaxValue - 1); 424var socketPath = CreateMatchingSocketFile(appHostFile.FullName, Environment.ProcessId); 457Assert.Equal(bundleRoot.FullName, env["AspireCliBundlePath"]); 482Assert.Equal(appHostFile.FullName, projectFile.FullName); 486Assert.Equal(bundleRoot.FullName, env!["AspireCliBundlePath"]); 487Assert.Equal(Path.Combine(bundleRoot.FullName, BundleDiscovery.DcpDirectoryName), env![BundleDiscovery.DcpPathEnvVar]); 516var customDcpDirectory = Directory.CreateDirectory(Path.Combine(_workspace.WorkspaceRoot.FullName, "custom-dcp")); 517File.WriteAllText(BundleDiscovery.GetDcpExecutablePath(customDcpDirectory.FullName), ""); 519_workspace.WorkspaceRoot.FullName, 542Assert.Equal(customDcpDirectory.FullName, env![BundleDiscovery.DcpPathEnvVar]); 555[BundleDiscovery.DcpPathEnvVar] = customDcpDirectory.FullName, 569var inheritedDcpDirectory = Directory.CreateDirectory(Path.Combine(_workspace.WorkspaceRoot.FullName, "inherited-dcp")).FullName; 571var inheritedDashboardPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "inherited-dashboard"); 602Assert.Equal(bundleRoot.FullName, env["AspireCliBundlePath"]); 632: Path.Combine(_workspace.WorkspaceRoot.FullName, "missing-dcp"); 635: Path.Combine(_workspace.WorkspaceRoot.FullName, "missing-dashboard"); 868Assert.Equal(appHostFile.FullName, projectFile.FullName); 902var repoLocalTerminalHost = Path.Combine(_workspace.WorkspaceRoot.FullName, "repo-local-terminalhost"); 931Path.Combine(bundleRoot.FullName, BundleDiscovery.ManagedDirectoryName, BundleDiscovery.GetExecutableFileName(BundleDiscovery.ManagedExecutableName)), 962var customTerminalHost = Path.Combine(_workspace.WorkspaceRoot.FullName, "my-custom-terminal-host"); 1030var runWorkingDirectory = Directory.CreateDirectory(Path.Combine(_workspace.WorkspaceRoot.FullName, "run-cwd")); 1031var appHostCommandJson = JsonSerializer.Serialize(appHostCommand.FullName); 1032var targetPathJson = JsonSerializer.Serialize(targetPath.FullName); 1033var runWorkingDirectoryJson = JsonSerializer.Serialize(runWorkingDirectory.FullName); 1094Assert.Equal(appHostFile.FullName, projectFile.FullName); 1095Assert.Equal(appHostCommand.FullName, command); 1096Assert.Equal(runWorkingDirectory.FullName, workingDirectory.FullName); 1170GetProjectItemsAndPropertiesAsyncCallback = (_, _, _, _, _) => (0, CreateAppHostInfoJson(runCommand: appHostCommand.FullName)), 1181"--apphost", appHostFile.FullName, 1182"--log-file", Path.Combine(_workspace.WorkspaceRoot.FullName, "child.log"), 1191Assert.Equal(appHostCommand.FullName, command); 1250GetProjectItemsAndPropertiesAsyncCallback = (_, _, _, _, _) => (0, CreateAppHostInfoJson(runCommand: appHostCommand.FullName)), 1254Assert.Equal(appHostCommand.FullName, command); 1313GetProjectItemsAndPropertiesAsyncCallback = (_, _, _, _, _) => (0, CreateAppHostInfoJson(runCommand: appHostCommand.FullName)), 1356GetProjectItemsAndPropertiesAsyncCallback = (_, _, _, _, _) => (0, CreateAppHostInfoJson(runCommand: appHostCommand.FullName)), 1399GetProjectItemsAndPropertiesAsyncCallback = (_, _, _, _, _) => (0, CreateAppHostInfoJson(runCommand: appHostCommand.FullName)), 1440GetProjectItemsAndPropertiesAsyncCallback = (_, _, _, _, _) => (0, CreateAppHostInfoJson(runCommand: appHostCommand.FullName)), 1488GetProjectItemsAndPropertiesAsyncCallback = (_, _, _, _, _) => (0, CreateAppHostInfoJson(runCommand: appHostCommand.FullName)), 1532GetProjectItemsAndPropertiesAsyncCallback = (_, _, _, _, _) => (0, CreateAppHostInfoJson(runCommand: appHostCommand.FullName)), 1583GetProjectItemsAndPropertiesAsyncCallback = (_, _, _, _, _) => (0, CreateAppHostInfoJson(runCommand: appHostCommand.FullName)), 1590Assert.Equal(appHostCommand.FullName, command); 1617var appHostCommandJson = JsonSerializer.Serialize(appHostCommand.FullName); 1648Assert.Equal(appHostFile.FullName, projectFile.FullName); 1672var missingTargetPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "bin", "missing", "AppHost.dll"); 1683var outputDirectory = Directory.CreateDirectory(Path.Combine(_workspace.WorkspaceRoot.FullName, "bin", Guid.NewGuid().ToString("N"))); 1684var targetPath = Path.Combine(outputDirectory.FullName, "AppHost.dll"); 1696var missingRunCommand = Path.Combine(_workspace.WorkspaceRoot.FullName, "bin", "missing", "AppHost"); 1710() => CreateAppHostInfoJson(runCommand: appHostCommand.FullName, targetFrameworks: "net10.0;net9.0")); 1739() => CreateAppHostInfoJson(runCommand: appHostCommand.FullName), 1752() => CreateAppHostInfoJson(runCommand: appHostCommand.FullName), 1767var appHostCommandJson = JsonSerializer.Serialize(appHostCommand.FullName); 1804Assert.Equal(appHostCommand.FullName, command); 1853GetProjectItemsAndPropertiesAsyncCallback = (_, _, _, _, _) => (0, CreateAppHostInfoJson(runCommand: appHostCommand.FullName)), 1888var escapedTargetPath = targetPath.FullName.Replace("\\", "\\\\", StringComparison.Ordinal).Replace("\"", "\\\"", StringComparison.Ordinal); 1916Assert.Equal(["exec", targetPath.FullName, "--from-msbuild", "--explicit", "1"], args); 1938var appHostCommandJson = JsonSerializer.Serialize(appHostCommand.FullName); 1977Assert.Equal(appHostCommand.FullName, command); 2003var appHostCommandJson = JsonSerializer.Serialize(appHostCommand.FullName); 2040Assert.Equal(appHostCommand.FullName, command); 2064var appHostCommandJson = JsonSerializer.Serialize(appHostCommand.FullName); 2101Assert.Equal(appHostFile.FullName, projectFile.FullName); 2129var appHostCommandJson = JsonSerializer.Serialize(appHostCommand.FullName); 2161Assert.Equal(appHostFile.FullName, projectFile.FullName); 2186var appHostCommandJson = JsonSerializer.Serialize(appHostCommand.FullName); 2227Assert.Equal(appHostCommand.FullName, command); 2265Assert.Equal(appHostFile.FullName, projectFile.FullName); 2267Assert.Equal(bundleRoot.FullName, env["AspireCliBundlePath"]); 2274Assert.Equal(appHostFile.FullName, projectFile.FullName); 2293Assert.Equal(appHostFile.FullName, projectFile.FullName); 2298Assert.Equal(Path.Combine(bundleRoot.FullName, BundleDiscovery.DcpDirectoryName), env![BundleDiscovery.DcpPathEnvVar]); 2347Assert.Equal(appHostFile.FullName, projectFile.FullName); 2350Assert.Equal(bundleRoot.FullName, env["AspireCliBundlePath"]); 2357Assert.Equal(appHostFile.FullName, projectFile.FullName); 2446Assert.Equal(appHostFile.FullName, projectFile.FullName); 2503Assert.Equal(appHostFile.FullName, projectFile.FullName); 2511Assert.Equal(appHostFile.FullName, projectFile.FullName); 2545Assert.Equal(appHostFile.FullName, projectFile.FullName); 2553Assert.Equal(appHostFile.FullName, projectFile.FullName); 2594Assert.Equal(appHostFile.FullName, projectFile.FullName); 2605Assert.Equal(appHostFile.FullName, projectFile.FullName); 2640Assert.Equal(appHostFile.FullName, projectFile.FullName); 2651Assert.Equal(appHostFile.FullName, projectFile.FullName); 2715TestSymlinkHelper.TryCreateSymlink(appHostSymlink, appHostFile.FullName, isDirectory: false); 2743var targetAppHostFile = new FileInfo(Path.Combine(realDirectory.FullName, "apphost.cs")); 2744File.WriteAllText(targetAppHostFile.FullName, "// target AppHost"); 2747var selectedAppHostPath = Path.Combine(selectedDirectory.FullName, "apphost.cs"); 2748TestSymlinkHelper.TryCreateSymlink(selectedAppHostPath, targetAppHostFile.FullName, isDirectory: false); 2750WriteAspireConfigJson(selectedDirectory.FullName, """ 2780File.WriteAllText(selectedAppHostFile.FullName, "// distinct AppHost"); 2994var appHostPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.cs"); 3009var backchannelsDir = Path.Combine(_workspace.WorkspaceRoot.FullName, ".aspire", "cli", "bch"); 3013var prefix = BackchannelConstants.ComputeSocketPrefix(resolvedAppHostPath, _workspace.WorkspaceRoot.FullName); 3024var outputDirectory = Directory.CreateDirectory(Path.Combine(_workspace.WorkspaceRoot.FullName, "bin", Guid.NewGuid().ToString("N"))); 3025var targetPath = Path.Combine(outputDirectory.FullName, fileName); 3033var outputDirectory = Directory.CreateDirectory(Path.Combine(_workspace.WorkspaceRoot.FullName, "bin", Guid.NewGuid().ToString("N"))); 3034var commandPath = Path.Combine(outputDirectory.FullName, fileName); 3056Assert.Equal(appHostFile.FullName, projectFile.FullName); 3135var appHost = new FileInfo(Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.cs")); 3136File.WriteAllText(appHost.FullName, content); 3151var appHost = new FileInfo(Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.cs")); 3152File.WriteAllText(appHost.FullName, content); 3164var appHost = new FileInfo(Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.cs")); 3165File.WriteAllText(appHost.FullName, $"#:package {packageId}@17.0.0"); 3788Directory.CreateDirectory(Path.Combine(_workspace.WorkspaceRoot.FullName, "outer", "inner-repo", ".git")); 4272var externalAnchor = Path.Combine(_workspace.WorkspaceRoot.FullName, "external", "anchor"); 4702while (dir is not null && !File.Exists(Path.Combine(dir.FullName, "Aspire.slnx"))) 4706return dir?.FullName; 4718Directory.CreateDirectory(Path.Combine(_workspace.WorkspaceRoot.FullName, ".git")); 4720var path = Path.Combine(_workspace.WorkspaceRoot.FullName, fileName); 4755var appHostPath = Path.Combine(_workspace.WorkspaceRoot.FullName, fileName); 4772var projectPath = Path.Combine(_workspace.WorkspaceRoot.FullName, fileName); 4786var bundleRoot = Directory.CreateDirectory(Path.Combine(_workspace.WorkspaceRoot.FullName, Guid.NewGuid().ToString())); 4787var dcpDirectory = Directory.CreateDirectory(Path.Combine(bundleRoot.FullName, BundleDiscovery.DcpDirectoryName)); 4788var managedDirectory = Directory.CreateDirectory(Path.Combine(bundleRoot.FullName, BundleDiscovery.ManagedDirectoryName)); 4789var dashboardDirectory = Directory.CreateDirectory(Path.Combine(bundleRoot.FullName, BundleDiscovery.DashboardDirectoryName)); 4790var terminalHostDirectory = Directory.CreateDirectory(Path.Combine(bundleRoot.FullName, BundleDiscovery.TerminalHostDirectoryName)); 4791File.WriteAllText(BundleDiscovery.GetDcpExecutablePath(dcpDirectory.FullName), ""); 4793Path.Combine(managedDirectory.FullName, BundleDiscovery.GetExecutableFileName(BundleDiscovery.ManagedExecutableName)), 4796Path.Combine(dashboardDirectory.FullName, BundleDiscovery.GetExecutableFileName(BundleDiscovery.DashboardExecutableName)), 4799Path.Combine(terminalHostDirectory.FullName, BundleDiscovery.GetExecutableFileName(BundleDiscovery.TerminalHostExecutableName)), 4804LayoutPath = bundleRoot.FullName,
Projects\DotNetBasedAppHostServerScaffoldCacheTests.cs (6)
26var appPath = workspace.WorkspaceRoot.FullName; 44var appPath = workspace.WorkspaceRoot.FullName; 72var appPath = workspace.WorkspaceRoot.FullName; 94var appPath = workspace.WorkspaceRoot.FullName; 121var appPath = workspace.WorkspaceRoot.FullName; 146var appPath = workspace.WorkspaceRoot.FullName;
Projects\ExtensionGuestLauncherTests.cs (4)
64new FileInfo(Path.Combine(root.FullName, "AppHost.java")), 102Assert.Equal(appHostFile.FullName, capturedProjectFile); 179var binDirectory = Directory.CreateDirectory(Path.Combine(root.FullName, runtimeDirectory, "bin")); 180var executable = Path.Combine(binDirectory.FullName, OperatingSystem.IsWindows() ? $"{command}.exe" : command);
Projects\FallbackProjectParserTests.cs (24)
24var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs")); 25File.WriteAllText(projectFile.FullName, content); 46var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs")); 47File.WriteAllText(projectFile.FullName, content); 62var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, $"AppHost{extension}")); 63File.WriteAllText(projectFile.FullName, """ 92var projectFile = Path.Combine(workspace.WorkspaceRoot.FullName, "Test.csproj"); 114var projectFile = Path.Combine(workspace.WorkspaceRoot.FullName, "Test.csproj"); 139var projectFile = Path.Combine(workspace.WorkspaceRoot.FullName, "Test.csproj"); 164var projectFile = Path.Combine(workspace.WorkspaceRoot.FullName, "Test.csproj"); 189var projectFile = Path.Combine(workspace.WorkspaceRoot.FullName, "Test.csproj"); 215var projectFile = Path.Combine(workspace.WorkspaceRoot.FullName, "Test.csproj"); 254var projectFile = Path.Combine(workspace.WorkspaceRoot.FullName, "Test.csproj"); 281var referencedPath = Path.Combine(webDirectory.FullName, "Web.csproj"); 282var include = absolute ? referencedPath : Path.GetRelativePath(appHostDirectory.FullName, referencedPath); 284var projectFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 285await File.WriteAllTextAsync(projectFile.FullName, $$""" 306var projectFile = Path.Combine(workspace.WorkspaceRoot.FullName, "Test.cs"); 330var projectFile = Path.Combine(workspace.WorkspaceRoot.FullName, "Test.cs"); 360var projectFile = Path.Combine(workspace.WorkspaceRoot.FullName, "Test.cs"); 383var projectFile = Path.Combine(workspace.WorkspaceRoot.FullName, "Test.cs"); 407var projectFile = Path.Combine(workspace.WorkspaceRoot.FullName, "Test.cs"); 430var projectFile = Path.Combine(workspace.WorkspaceRoot.FullName, "Test.cs"); 452var projectFile = Path.Combine(workspace.WorkspaceRoot.FullName, "Test.txt");
Projects\GuestAppHostProjectTests.cs (125)
69var executable = Path.Combine(root.FullName, "server"); 74}.Save(root.FullName); 95await File.WriteAllTextAsync(Path.Combine(root.FullName, "apphost.mts"), "// test apphost"); 102}.Save(root.FullName); 123await File.WriteAllTextAsync(Path.Combine(root.FullName, "apphost.mts"), "// test apphost"); 134}.Save(root.FullName); 163var appHostFile = new FileInfo(Path.Combine(appDirectory.FullName, "apphost.mts")); 164await File.WriteAllTextAsync(appHostFile.FullName, "// test apphost"); 171}.Save(root.FullName); 199using var pathOverride = new EnvVarOverride("PATH", binDirectory.FullName + Path.PathSeparator + Environment.GetEnvironmentVariable("PATH")); 235hostRestoredBeforeBootstrap = File.Exists(Path.Combine(integrationDirectory.FullName, "installed.txt")); 243&& File.Exists(Path.Combine(appDirectory.FullName, "app-installed.txt")) 244&& File.Exists(Path.Combine(integrationDirectory.FullName, "installed.txt")); 299Assert.Equal(guestInstallExitCode == 0, File.Exists(Path.Combine(integrationDirectory.FullName, "installed.txt"))); 316Assert.Equal("combined", await File.ReadAllTextAsync(Path.Combine(appDirectory.FullName, ".aspire", "modules", "aspire.mts"))); 350"@test/integration", npmPath, directory.FullName, TestContext.Current.CancellationToken).DefaultTimeout(); 353Assert.Equal(["install"], await File.ReadAllLinesAsync(Path.Combine(directory.FullName, "arguments.txt"))); 375"@test/integration", npmPath, directory.FullName, installCts.Token); 381parentPid = await ProcessTestHelpers.WaitForProcessIdAsync(Path.Combine(directory.FullName, "parent.pid"), readinessCts.Token); 382childPid = await ProcessTestHelpers.WaitForProcessIdAsync(Path.Combine(directory.FullName, "child.pid"), readinessCts.Token); 407var outputPath = Path.Combine(_workspace.WorkspaceRoot.FullName, ".aspire", "modules"); 435var outputPath = Path.Combine(_workspace.WorkspaceRoot.FullName, ".aspire", "modules"); 451var filePath = Path.Combine(_workspace.WorkspaceRoot.FullName, "Generated.java"); 467var filePath = Path.Combine(_workspace.WorkspaceRoot.FullName, "Generated.java"); 481var filePath = Path.Combine(_workspace.WorkspaceRoot.FullName, "New.java"); 492var filePath = Path.Combine(_workspace.WorkspaceRoot.FullName, "aspire_app.py"); 520var directory = _workspace.WorkspaceRoot.FullName; 534var settingsPath = Path.Combine(settingsDir.FullName, "settings.json"); 543var config = AspireJsonConfiguration.LoadOrCreate(_workspace.WorkspaceRoot.FullName, "13.1.0"); 554var settingsPath = Path.Combine(settingsDir.FullName, "settings.json"); 566var config = AspireJsonConfiguration.Load(_workspace.WorkspaceRoot.FullName); 569config.Save(_workspace.WorkspaceRoot.FullName); 572var reloaded = AspireJsonConfiguration.Load(_workspace.WorkspaceRoot.FullName); 740var settingsPath = Path.Combine(settingsDir.FullName, "settings.json"); 753var config = AspireJsonConfiguration.Load(_workspace.WorkspaceRoot.FullName); 756config.Save(_workspace.WorkspaceRoot.FullName); 784config.Save(_workspace.WorkspaceRoot.FullName); 787var settingsPath = AspireJsonConfiguration.GetFilePath(_workspace.WorkspaceRoot.FullName); 800var launchSettingsPath = Path.Combine(propertiesDir.FullName, "launchSettings.json"); 889var aspireConfigPath = Path.Combine(_workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1070var legacyAppHostPath = Path.Combine(_workspace.WorkspaceRoot.FullName, LegacyTypeScriptAppHost.LegacyAppHostFileName); 1073Path.Combine(_workspace.WorkspaceRoot.FullName, LegacyTypeScriptAppHost.ModernAppHostFileName), 1092Assert.Equal(legacyAppHostPath, projectFactory.AppHostFile?.FullName); 1094_workspace.WorkspaceRoot.FullName, 1097_workspace.WorkspaceRoot.FullName, 1118var configPath = Path.Combine(_workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1126var appHostPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.ts"); 1170var reloaded = AspireConfigFile.Load(_workspace.WorkspaceRoot.FullName); 1183var configPath = Path.Combine(_workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1191var appHostPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.ts"); 1194Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.mts"), 1196var installScriptPath = Path.Combine(_workspace.WorkspaceRoot.FullName, OperatingSystem.IsWindows() ? "install.cmd" : "install.sh"); 1200var installMarkerPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "install.marker"); 1225var manifestPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "package.json"); 1229await File.WriteAllTextAsync(Path.Combine(_workspace.WorkspaceRoot.FullName, "package.after-install.json"), installedManifest); 1271var savedConfig = AspireConfigFile.Load(_workspace.WorkspaceRoot.FullName); 1287Assert.Equal(appHostPath, factory.AppHostFile?.FullName); 1302var configPath = Path.Combine(_workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1310var appHostPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.ts"); 1350var configPath = Path.Combine(_workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1358var appHostPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.ts"); 1396var configPath = Path.Combine(_workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1404var appHostPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.ts"); 1448var configPath = Path.Combine(_workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1456var appHostPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.ts"); 1478var reloaded = AspireConfigFile.Load(_workspace.WorkspaceRoot.FullName); 1490var configPath = Path.Combine(_workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1499var appHostPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.ts"); 1502var serverProject = new FakeSucceedingAppHostServerProject(_workspace.WorkspaceRoot.FullName); 1531var reloaded = AspireConfigFile.Load(_workspace.WorkspaceRoot.FullName); 1540var configPath = Path.Combine(_workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1549var appHostPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.ts"); 1552var serverProject = new FakeSucceedingAppHostServerProject(_workspace.WorkspaceRoot.FullName); 1583var appHostPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.ts"); 1593var socketPath = CreateMatchingSocketFile(_workspace.WorkspaceRoot.FullName, int.MaxValue - 1); 1607var appHostPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.mts"); 1609var identity = Path.Combine(_workspace.WorkspaceRoot.FullName, "server", "AppHostServer.csproj"); 1629var configPath = Path.Combine(_workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1638var appHostPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.ts"); 1662var serverProject = new FakeFailingAppHostServerProject(_workspace.WorkspaceRoot.FullName); 1685var reloaded = AspireConfigFile.Load(_workspace.WorkspaceRoot.FullName); 1696var configPath = Path.Combine(_workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1704var appHostPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.ts"); 1742var reloaded = AspireConfigFile.Load(_workspace.WorkspaceRoot.FullName); 1753var configPath = Path.Combine(_workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1762var appHostPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.ts"); 1781var serverProject = new FakeSucceedingAppHostServerProject(_workspace.WorkspaceRoot.FullName); 1803var reloaded = AspireConfigFile.Load(_workspace.WorkspaceRoot.FullName); 1813var configPath = Path.Combine(_workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1822var appHostPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.ts"); 1840var serverProject = new FakeFailingAppHostServerProject(_workspace.WorkspaceRoot.FullName); 1860var reloaded = AspireConfigFile.Load(_workspace.WorkspaceRoot.FullName); 1870var configPath = Path.Combine(_workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1879var appHostPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.ts"); 1907var reloaded = AspireConfigFile.Load(_workspace.WorkspaceRoot.FullName); 1937var configPath = Path.Combine(_workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1954var appHostPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.ts"); 1979var reloaded = AspireConfigFile.Load(_workspace.WorkspaceRoot.FullName); 2053var appHostPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.ts"); 2102var appHostPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.ts"); 2193var appHostFile = new FileInfo(Path.Combine(root.FullName, "apphost.mts")); 2194var executable = Path.Combine(root.FullName, "server"); 2195await File.WriteAllTextAsync(appHostFile.FullName, "// test apphost"); 2200}.Save(root.FullName); 2250var appHostPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.ts"); 2277var secretsFilePath = secretsFileName is null ? null : Path.Combine(_workspace.WorkspaceRoot.FullName, secretsFileName); 2312var appHostPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.ts"); 2327new FileInfo(Path.Combine(_workspace.WorkspaceRoot.FullName, "package.json"))); 2364var configPath = Path.Combine(_workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 2372var appHostPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.ts"); 2454var configPath = Path.Combine(_workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 2462var appHostPath = Path.Combine(_workspace.WorkspaceRoot.FullName, "apphost.ts"); 2544var backchannelsDir = Path.Combine(_workspace.WorkspaceRoot.FullName, ".aspire", "cli", "bch"); 2548var prefix = BackchannelConstants.ComputeSocketPrefix(resolvedAppHostPath, _workspace.WorkspaceRoot.FullName); 2581var logFilePath = Path.Combine(_workspace.WorkspaceRoot.FullName, $"test-guest-{Guid.NewGuid()}.log"); 2657var devCertificatePath = Path.Combine(_workspace.WorkspaceRoot.FullName, "aspire-dev-cert.pem"); 2673Assert.False(Directory.Exists(Path.Combine(_workspace.WorkspaceRoot.FullName, "bundles"))); 2679var devCertificatePath = Path.Combine(_workspace.WorkspaceRoot.FullName, "aspire-dev-cert.pem"); 2700var lowerCaseDirectory = Path.Combine(_workspace.WorkspaceRoot.FullName, "certificates"); 2701var upperCaseDirectory = Path.Combine(_workspace.WorkspaceRoot.FullName, "CERTIFICATES"); 2754var existingBundlePath = Path.Combine(_workspace.WorkspaceRoot.FullName, "existing-ca-certs.pem"); 2755var inheritedBundlePath = Path.Combine(_workspace.WorkspaceRoot.FullName, "inherited-ca-certs.pem"); 2756var devCertificateDirectory = Path.Combine(homeDirectory.FullName, ".aspire", "dev-certs"); 2779homeDirectory.FullName, 2829var devCertificatePath = Path.Combine(_workspace.WorkspaceRoot.FullName, "aspire-dev-cert.pem");
Projects\GuestRuntimeTests.cs (37)
134Assert.Contains(appHostFile.FullName, launcher.LastArgs); 195Assert.Equal(["--project", directory.FullName], launcher.Calls[0].Args); 220Assert.Equal(["--no-install", "tsx", "--tsconfig", "tsconfig.apphost.json", appHostFile.FullName], call.Args); 285var appHostFile = new FileInfo(Path.Combine(directory.FullName, "apphost.ts")); 312Assert.Equal(new[] { "tsx", "--tsconfig", "tsconfig.apphost.json", appHostFile.FullName }, Assert.IsType<string[]>(executeActivity.GetTagItem(ProfilingTelemetry.Tags.ProcessCommandArgs))); 491Assert.Equal(["--no-install", "tsx", "--tsconfig", "tsconfig.apphost.json", appHostFile.FullName, "--operation", "publish"], call.Args); 605var appHostFile = new FileInfo(Path.Combine(root.FullName, "AppHost.java")); 649Assert.Equal(new[] { "tsx", appHostFile.FullName }, launcher.LastArgs); 667Assert.Equal(new[] { "--dir", directory.FullName }, launcher.LastArgs); 685Assert.Equal(appHostFile.FullName, launcher.LastArgs[0]); 778temporaryDirectory.FullName, 1251Assert.True(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "classes", ".aspire-compile-stamp"))); 1296var input = Path.Combine(workspace.WorkspaceRoot.FullName, relativeInput.Replace('/', Path.DirectorySeparatorChar)); 1317var classFile = Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.class"); 1345File.Delete(Path.Combine(workspace.WorkspaceRoot.FullName, relativeInput.Replace('/', Path.DirectorySeparatorChar))); 1360var pom = Path.Combine(workspace.WorkspaceRoot.FullName, "pom.xml"); 1382var dependencies = Path.Combine(workspace.WorkspaceRoot.FullName, "target", "dependency"); 1411var dependencies = Path.Combine(workspace.WorkspaceRoot.FullName, "target", "dependency"); 1440var unrelated = Path.Combine(workspace.WorkspaceRoot.FullName, "vendor", "nested", "Vendored.java"); 1482var nested = Path.Combine(workspace.WorkspaceRoot.FullName, "config", "Resources.java"); 1506Path.Combine(workspace.WorkspaceRoot.FullName, "classes", "config", "Resources.class"), 1507Path.Combine(workspace.WorkspaceRoot.FullName, "node_modules", "vendor", "Vendored.java"), 1508Path.Combine(workspace.WorkspaceRoot.FullName, ".gradle", "caches", "Cached.java") 1553var unreadable = Path.Combine(workspace.WorkspaceRoot.FullName, "src", "main", "java", "locked"); 1596Assert.False(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "classes", ".aspire-compile-stamp"))); 1622var appHostFile = new FileInfo(Path.Combine(root.FullName, "AppHost.java")); 1623File.WriteAllText(appHostFile.FullName, "class AppHost { }"); 1624File.WriteAllText(Path.Combine(root.FullName, "Helper.java"), "class Helper { }"); 1626var generated = Path.Combine(root.FullName, ".aspire", "modules", "com", "example"); 1630var sources = Path.Combine(root.FullName, "src", "main", "java", "com", "example"); 1634Directory.CreateDirectory(Path.Combine(root.FullName, "classes")); 1645foreach (var file in Directory.EnumerateFiles(root.FullName, "*", SearchOption.AllDirectories)) 1651foreach (var directory in Directory.EnumerateDirectories(root.FullName, "*", SearchOption.AllDirectories)) 1656Directory.SetLastWriteTimeUtc(root.FullName, timestampUtc); 1661var stamp = Path.Combine(root.FullName, "classes", ".aspire-compile-stamp"); 1669var binDirectory = Directory.CreateDirectory(Path.Combine(root.FullName, runtimeDirectory, "bin")); 1670var executable = Path.Combine(binDirectory.FullName, OperatingSystem.IsWindows() ? $"{command}.exe" : command);
Projects\JavaAppHostToolchainResolverTests.cs (29)
357File.WriteAllText(Path.Combine(moduleDirectory.FullName, useMaven ? "pom.xml" : "build.gradle"), ""); 388appHostDirectory.FullName, 401appHostDirectory.FullName, 404["MAVEN_OPTS"] = $"-Dmaven.repo.local={localRepository.FullName}" 412appHostDirectory.FullName, 425appHostDirectory.FullName, 428["MAVEN_OPTS"] = $"-Dmaven.repo.local={localRepository.FullName}" 433File.Exists(Path.Combine(resolution.ProjectDirectory.FullName, "target", "aspire-deps", "library-1.0-SNAPSHOT.jar")), 454appHostDirectory.FullName, 467appHostDirectory.FullName, 470["MAVEN_OPTS"] = $"-Dmaven.repo.local={localRepository.FullName}" 486File.WriteAllText(Path.Combine(appHostDirectory.FullName, "pom.xml"), "<project />"); 493appHostDirectory.FullName, 523File.WriteAllText(Path.Combine(libraryDirectory.FullName, "pom.xml"), """ 535var librarySources = Directory.CreateDirectory(Path.Combine(libraryDirectory.FullName, "src", "main", "java", "com", "example")); 537Path.Combine(librarySources.FullName, "Library.java"), 541File.WriteAllText(Path.Combine(appHostProjectDirectory.FullName, "pom.xml"), """ 561Path.Combine(appHostProjectDirectory.FullName, "src", "main", "java")); 563Path.Combine(appHostDirectory.FullName, "AppHost.java"), 577Path.Combine(wrapperDirectory.FullName, "maven-wrapper.properties")); 598File.WriteAllText(Path.Combine(appHostProjectDirectory.FullName, "pom.xml"), """ 607Path.Combine(appHostProjectDirectory.FullName, "src", "main", "java")); 609Path.Combine(appHostDirectory.FullName, "AppHost.java"), 623Path.Combine(wrapperDirectory.FullName, "maven-wrapper.properties")); 697Directory.CreateDirectory(Path.Combine(innerCheckout.FullName, ".git")); 698File.WriteAllText(Path.Combine(innerCheckout.FullName, useMaven ? "pom.xml" : "build.gradle"), ""); 703Assert.Contains(innerCheckout.FullName, ex.Message); 832Assert.Equal(workspace.Path, resolution.ProjectDirectory.FullName); 905Assert.Equal(scriptPath, Path.GetFullPath(Path.Combine(appHostDirectory.FullName, initScriptArgument)));
Projects\LanguageInfoTests.cs (9)
65File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts"), ""); 67var result = s_typescript.FindInDirectory(workspace.WorkspaceRoot.FullName); 76File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "MyApp.csproj"), ""); 78var result = s_csharp.FindInDirectory(workspace.WorkspaceRoot.FullName); 87var nested = Path.Combine(workspace.WorkspaceRoot.FullName, "src", "AppHost"); 91var result = s_csharp.FindInDirectory(workspace.WorkspaceRoot.FullName); 101var deep = Path.Combine(workspace.WorkspaceRoot.FullName, "a", "b", "c", "d", "e", "f"); 105var result = s_csharp.FindInDirectory(workspace.WorkspaceRoot.FullName); 114var result = s_csharp.FindInDirectory(workspace.WorkspaceRoot.FullName);
Projects\LegacyTypeScriptAppHostHelperTests.cs (6)
14File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts"), "// legacy"); 16Assert.True(LegacyTypeScriptAppHost.IsLegacyLayout(workspace.WorkspaceRoot.FullName)); 23File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts"), "// legacy"); 24File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts"), "// modern"); 26Assert.False(LegacyTypeScriptAppHost.IsLegacyLayout(workspace.WorkspaceRoot.FullName)); 34Assert.False(LegacyTypeScriptAppHost.IsLegacyLayout(workspace.WorkspaceRoot.FullName));
Projects\NativeAppHostServerProjectTests.cs (17)
32new AspireConfigFile { Features = new() { [KnownFeatures.AppHostServerV2] = true } }.Save(enabled.FullName); 33new AspireConfigFile { Features = new() { [KnownFeatures.AppHostServerV2] = false } }.Save(disabled.FullName); 39using var project = Assert.IsType<NativeAppHostServerProject>(await factory.CreateAsync(nested.FullName)); 40Assert.Equal(nested.FullName, project.AppDirectoryPath); 41var managed = await factory.CreateAsync(disabled.FullName); 64var executable = Path.Combine(serverDirectory.FullName, "server"); 65var contract = Path.Combine(serverDirectory.FullName, "ats-contract.json"); 69var managed = Path.Combine(managedDirectory.FullName, BundleDiscovery.GetExecutableFileName("aspire-managed")); 72var entryPoint = Path.Combine(providerDirectory.FullName, "host.mjs"); 74await File.WriteAllTextAsync(Path.Combine(providerDirectory.FullName, "metadata.json"), "{}"); 75await File.WriteAllTextAsync(Path.Combine(providerDirectory.FullName, "aspire.apphost-server.json"), 428var entryPoint = Path.Combine(root.FullName, "host.mjs"); 430await File.WriteAllTextAsync(Path.Combine(root.FullName, "aspire.apphost-server.json"), new JsonObject 455await File.WriteAllTextAsync(Path.Combine(managedDirectory.FullName, BundleDiscovery.GetExecutableFileName("aspire-managed")), ""); 458var entryPoint = Path.Combine(providerDirectory.FullName, "host.mjs"); 460await File.WriteAllTextAsync(Path.Combine(providerDirectory.FullName, "metadata.json"), "{}"); 461await File.WriteAllTextAsync(Path.Combine(providerDirectory.FullName, "aspire.apphost-server.json"),
Projects\PrebuiltAppHostServerTests.cs (178)
38var path = Path.Combine(workspace.WorkspaceRoot.FullName, "IntegrationRestore.csproj"); 55var path = Path.Combine(workspace.WorkspaceRoot.FullName, "IntegrationRestore.csproj"); 68var path = Path.Combine(workspace.WorkspaceRoot.FullName, "IntegrationRestore.csproj"); 138var projectPath = Path.Combine(projectDirectory.FullName, "PackageDowngrade.csproj"); 153var nuGetConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"); 161<add key="test" value="{{feedDirectory.FullName}}" /> 168WorkingDirectory = projectDirectory.FullName, 179startInfo.ArgumentList.Add(packagesDirectory.FullName); 232Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"), 251mappings: [new PackageMapping("Aspire*", identityPackageSource.FullName)], 277workspace.WorkspaceRoot.FullName, 281packageSourceOverride: explicitPackageSource.FullName, 289workspace.WorkspaceRoot.FullName, 295globalPackagesFolderOverride: packagesDirectory.FullName, 300packagesDirectory.FullName, 307packagesDirectory.FullName, 315var overlay = XDocument.Load(overlayFile.FullName); 318GetPackagePatternsForSource(overlay, explicitPackageSource.FullName)); 321GetPackagePatternsForSource(overlay, identityPackageSource.FullName)); 450var integrationProjectPath = Path.Combine(integrationDirectory.FullName, "MyIntegration.csproj"); 461var projectPath = Path.Combine(projectDirectory.FullName, "GeneratedClosure.csproj"); 462var nuGetConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"); 471restoreDirectory.FullName, 480Path.Combine(projectDirectory.FullName, "Directory.Build.props"), 482restoreDirectory.FullName, 483Path.Combine(restoreDirectory.FullName, "obj"), 484workspace.WorkspaceRoot.FullName, 489WorkingDirectory = projectDirectory.FullName, 508Assert.True(File.Exists(Path.Combine(restoreDirectory.FullName, "obj", IntegrationClosureBuilder.ProjectAssetsFileName))); 509Assert.True(File.Exists(Path.Combine(restoreDirectory.FullName, "bin", "Debug", "net10.0", "GeneratedClosure.dll"))); 510Assert.False(Directory.Exists(Path.Combine(projectDirectory.FullName, "obj"))); 511Assert.False(Directory.Exists(Path.Combine(projectDirectory.FullName, "bin"))); 514Path.Combine(restoreDirectory.FullName, IntegrationClosureBuilder.ClosureSourcesFileName)); 519await File.ReadAllLinesAsync(Path.Combine(restoreDirectory.FullName, IntegrationClosureBuilder.ClosureMetadataFileName))); 522await File.ReadAllLinesAsync(Path.Combine(restoreDirectory.FullName, IntegrationClosureBuilder.ClosureTargetsFileName))); 525await File.ReadAllLinesAsync(Path.Combine(restoreDirectory.FullName, IntegrationClosureBuilder.ProjectRefAssemblyNamesFileName))); 555var projectIntegrationPath = Path.Combine(projectIntegrationDirectory.FullName, "ProjectIntegration.csproj"); 646.Save(Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config")); 651packageSourceOverride: feedDirectory.FullName, 661var generatedProjectPath = Path.Combine(generatedProjectDirectory.FullName, "IntegrationRestore.csproj"); 665restoreDirectory.FullName, 669Path.Combine(generatedProjectDirectory.FullName, "Directory.Build.props"), 671restoreDirectory.FullName, 672Path.Combine(restoreDirectory.FullName, "obj"), 674Path.Combine(workspace.WorkspaceRoot.FullName, "packages")).ToString()); 676Path.Combine(generatedProjectDirectory.FullName, "Directory.Packages.props"), 692Assert.Equal([feedDirectory.FullName], configuredSources); 696GetPackagePatternsForSource(restoreConfig, feedDirectory.FullName)); 700WorkingDirectory = generatedProjectDirectory.FullName, 708startInfo.Environment["NUGET_PACKAGES"] = workspace.CreateDirectory("project-packages").FullName; 726projectIntegrationDirectory.FullName, 733Assert.Equal(feedDirectory.FullName, projectSource.Attribute("value")?.Value); 739Path.Combine(restoreDirectory.FullName, "obj", IntegrationClosureBuilder.ProjectAssetsFileName))); 745Path.Combine(restoreDirectory.FullName, IntegrationClosureBuilder.ClosureSourcesFileName)); 747Path.Combine(restoreDirectory.FullName, IntegrationClosureBuilder.ClosureMetadataFileName)); 885var server = CreatePrebuiltAppHostServer(workspace, appPath: appHostDirectory.FullName); 892var normalizedWorkspaceRoot = PathNormalizer.ResolveToFilesystemPath(workspace.WorkspaceRoot.FullName); 923mappings: [new PackageMapping("Aspire*", packageSource.FullName)], 947Assert.Equal([packageSource.FullName], GetConfiguredPackageSources(nuGetClient)); 968mappings: [new PackageMapping("Aspire*", identityPackageSource.FullName)], 992packageSourceOverride: packageSourceOverride.FullName, 997[packageSourceOverride.FullName, identityPackageSource.FullName], 1019mappings: [new PackageMapping("Aspire*", packageSource.FullName)], 1069mappings: [new PackageMapping("Aspire*", packageSource.FullName)], 1096Assert.DoesNotContain(packageSource.FullName, GetConfiguredPackageSources(nuGetClient)); 1114var firstServer = CreateServer(firstAppHost.FullName); 1115var secondServer = CreateServer(secondAppHost.FullName); 1122var normalizedWorkspaceRoot = PathNormalizer.ResolveToFilesystemPath(workspace.WorkspaceRoot.FullName); 1150var linkDirectoryPath = Path.Combine(workspace.WorkspaceRoot.FullName, "linked-apphost"); 1151TestSymlinkHelper.TryCreateSymlink(linkDirectoryPath, realDirectory.FullName); 1156Assert.Equal(realCacheDirectory.FullName, linkCacheDirectory.FullName); 1166await File.WriteAllTextAsync(Path.Combine(lexicalWorkspace.FullName, AspireConfigFile.FileName), "{}"); 1168var linkedAppHostPath = Path.Combine(lexicalWorkspace.FullName, "apphost"); 1169TestSymlinkHelper.TryCreateSymlink(linkedAppHostPath, externalAppHost.FullName); 1176Path.Combine(lexicalWorkspace.FullName, ".aspire", "integrations", "apphosts")) + Path.DirectorySeparatorChar, 1177linkedCacheDirectory.FullName, 1295var doc = XDocument.Load(overlayFile.FullName); 1305var overlayDirectory = overlayFile.Directory!.FullName; 1355var doc = XDocument.Load(overlayFile.FullName); 1363var overlayDirectory = overlayFile.Directory!.FullName; 1767var packageSourceOverride = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire-packages"); 1780var doc = XDocument.Load(overlayFile.FullName); 1789var packageSourceOverride = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire-packages"); 1813var doc = XDocument.Load(overlayFile.FullName); 1823var packageSourceOverride = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire-packages"); 1842var doc = XDocument.Load(overlayFile.FullName); 1855var overlayDirectory = overlayFile.Directory!.FullName; 1882var packageSourceOverride = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire-packages"); 1898var doc = XDocument.Load(overlayFile.FullName); 1911var packageSourceOverride = Path.Combine(workspace.WorkspaceRoot.FullName, "integration-packages"); 1936var doc = XDocument.Load(overlayFile.FullName); 1956mappings: [new PackageMapping("Aspire*", identityPackageSource.FullName)], 1968packageSourceOverride: packageSourceOverride.FullName, 1972var doc = XDocument.Load(overlayFile.FullName); 1975GetPackagePatternsForSource(doc, packageSourceOverride.FullName)); 1978GetPackagePatternsForSource(doc, identityPackageSource.FullName)); 2006var packageSourceOverride = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire-packages"); 2022var doc = XDocument.Load(overlayFile.FullName); 2032var packageSourceOverride = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire-packages"); 2045var doc = XDocument.Load(overlayFile.FullName); 2075var packageSourceOverride = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire-packages"); 2097var packageSourceOverride = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire-packages"); 2119var packageSourceOverride = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire-packages"); 2285appPath ?? workspace.WorkspaceRoot.FullName, 2385var aspireConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 2453Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "integrations", "package-restore")), 2498Path.Combine("aspire-pr-hive", "packages")).FullName; 2529var packageSourceOverride = workspace.CreateDirectory("integration-packages").FullName; 2560Path.Combine("aspire-pr-hive", "packages")).FullName; 2592var aspireConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 2602mappings: [new PackageMapping("Aspire*", packageSource.FullName)], 2624Assert.Equal([packageSource.FullName], GetConfiguredPackageSources(nuGetClient)); 2640var packageSourceUri = new Uri(packageSource.FullName).AbsoluteUri; 2641var aspireConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 2691var aspireConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 2703new PackageMapping("Aspire*", hivePackageSource.FullName), 2722packageSourceOverride: explicitPackageSource.FullName); 2725Assert.Equal([explicitPackageSource.FullName], GetConfiguredPackageSources(nuGetClient)); 2726Assert.DoesNotContain(hivePackageSource.FullName, GetConfiguredPackageSources(nuGetClient)); 2741var aspireConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 2788var aspireConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 2830var missingPackageSource = Path.Combine(workspace.WorkspaceRoot.FullName, "this-hive-was-deleted"); 2832var aspireConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 2884workspace.WorkspaceRoot.FullName, 2889var aspireConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 2955var aspireConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 3039workspace.WorkspaceRoot.FullName, 3049generatedProject = XDocument.Load(projectFilePath.FullName); 3113var aspireConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 3119var ambientConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"); 3151generatedProject = XDocument.Load(projectFilePath.FullName); 3241workspace.WorkspaceRoot.FullName, 3250workspace.WorkspaceRoot.FullName, 3258Path.Combine(workspace.WorkspaceRoot.FullName, AspireJsonConfiguration.SettingsFolder), 3305Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName), 3387WriteDependencyGraphSpec(projectFilePath, (projectFilePath.FullName, credentialBearingSource)); 3394Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"), 3448WriteDependencyGraphSpec(projectFilePath, (projectFilePath.FullName, source)); 3455Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"), 3520var ambientConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"); 3570var ambientConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"); 3650var ambientConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"); 3727var ambientConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "NuGet.Config"); 3808WriteDependencyGraphSpec(projectFilePath, (projectFilePath.FullName, channelSource)); 3872(projectFilePath.FullName, PackageSources.NuGetOrg), 3938[generatedProjectFile.FullName] = new 4072var localHive = workspace.CreateDirectory("local-aspire-hive").FullName; 4074var aspireConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 4136workspace.WorkspaceRoot.FullName, 4151generatedProject = XDocument.Load(projectFilePath.FullName); 4231var config = AspireConfigFile.LoadOrCreate(projectDirectory.FullName); 4233config.Save(projectDirectory.FullName); 4270appPath: projectDirectory.FullName, 4288Assert.Equal(projectDirectory.FullName, restoreWorkingDirectory); 4699var firstSourcePath = Path.Combine(firstPackageRoot.FullName, "Aspire.Hosting.Redis.dll"); 4700var secondSourcePath = Path.Combine(secondPackageRoot.FullName, "Aspire.Hosting.Redis.dll"); 4744var firstPackagePath = Path.Combine(firstPackageRoot.FullName, "Aspire.Hosting.Redis.dll"); 4745var secondPackagePath = Path.Combine(secondPackageRoot.FullName, "Aspire.Hosting.Redis.dll"); 4746var projectPath = Path.Combine(projectRoot.FullName, "MyIntegration.dll"); 4793var sourcePath = Path.Combine(restoreDirectory.FullName, "MyIntegration.dll "); 4797Path.Combine(restoreDirectory.FullName, IntegrationClosureBuilder.ClosureSourcesFileName), 4800Path.Combine(restoreDirectory.FullName, IntegrationClosureBuilder.ClosureMetadataFileName), 4803Path.Combine(restoreDirectory.FullName, IntegrationClosureBuilder.ClosureTargetsFileName), 4805var intermediateOutputPath = Path.Combine(restoreDirectory.FullName, "obj"); 4809restoreDirectory.FullName, 4915File.WriteAllText(Path.Combine(terminalDirectory.FullName, BundleDiscovery.GetExecutableFileName(BundleDiscovery.TerminalHostExecutableName)), "native"); 4918managedDirectory.FullName, 4922return new LayoutConfiguration { LayoutPath = layoutRoot.FullName }; 4966var sourcePath = Path.Combine(sourceRoot.FullName, relativePath.Replace('/', Path.DirectorySeparatorChar)); 4986File.WriteAllLines(Path.Combine(restoreDirectory.FullName, IntegrationClosureBuilder.ClosureMetadataFileName), metadataLines); 4987File.WriteAllLines(Path.Combine(restoreDirectory.FullName, IntegrationClosureBuilder.ClosureSourcesFileName), sourcePaths); 4988File.WriteAllLines(Path.Combine(restoreDirectory.FullName, IntegrationClosureBuilder.ClosureTargetsFileName), targetPaths); 4989File.WriteAllLines(Path.Combine(restoreDirectory.FullName, IntegrationClosureBuilder.ProjectRefAssemblyNamesFileName), projectReferenceAssemblyNames); 5008var packagePath = Path.Combine(feedDirectory.FullName, $"{packageId}.{packageVersion}.nupkg"); 5048var document = XDocument.Load(Path.Combine(restoreDirectory.FullName, "Directory.Build.props")); 5122File.WriteAllText(Path.Combine(objDirectory.FullName, "project.assets.json"), projectAssetsContent);
Projects\ProcessGuestLauncherTests.cs (12)
219var descendantPidFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "descendant.pid")); 353var scriptFile = new FileInfo(Path.Combine(workspaceRoot.FullName, "spawn-descendant.ps1")); 360$"Set-Content -Path '{descendantPidFile.FullName}' -Value $child.Id" + Environment.NewLine + 362await File.WriteAllTextAsync(scriptFile.FullName, content); 364return ("powershell.exe", ["-NoProfile", "-ExecutionPolicy", "Bypass", "-File", scriptFile.FullName]); 367var shellFile = new FileInfo(Path.Combine(workspaceRoot.FullName, "spawn-descendant.sh")); 371$"echo $! > \"{descendantPidFile.FullName}\"" + Environment.NewLine + 373await File.WriteAllTextAsync(shellFile.FullName, shellContent); 375shellFile.FullName, 380return ("/bin/bash", [shellFile.FullName]); 397using var stream = new FileStream(pidFile.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); 415throw new TimeoutException($"Timed out waiting for descendant pid file '{pidFile.FullName}'.");
Projects\ProjectLocatorTests.cs (750)
39var appHostFile = new FileInfo(Path.Combine(directory.FullName, "apphost.cs")); 51appHostFile.FullName, 71var firstAppHostProjectFile = new FileInfo(Path.Combine(firstAppHostDirectory.FullName, "FirstAppHost.csproj")); 72await File.WriteAllTextAsync(firstAppHostProjectFile.FullName, "Not a real apphost"); 75var secondAppHostProjectFile = new FileInfo(Path.Combine(secondAppHostDirectory.FullName, "SecondAppHost.csproj")); 76await File.WriteAllTextAsync(secondAppHostProjectFile.FullName, "Not a real apphost"); 78var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 92AssertSameFileSystemPath(secondAppHostProjectFile.FullName, result.SelectedProjectFile?.FullName); 102var firstAppHostProjectFile = new FileInfo(Path.Combine(firstAppHostDirectory.FullName, "FirstAppHost.csproj")); 103await File.WriteAllTextAsync(firstAppHostProjectFile.FullName, "Not a real apphost"); 106var secondAppHostProjectFile = new FileInfo(Path.Combine(secondAppHostDirectory.FullName, "SecondAppHost.csproj")); 107await File.WriteAllTextAsync(secondAppHostProjectFile.FullName, "Not a real apphost"); 109var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 121AssertSameFileSystemPath(secondAppHostProjectFile.FullName, result.SelectedProjectFile?.FullName); 131var firstAppHostProjectFile = new FileInfo(Path.Combine(firstAppHostDirectory.FullName, "FirstAppHost.csproj")); 132await File.WriteAllTextAsync(firstAppHostProjectFile.FullName, "Not a real apphost"); 135var secondAppHostProjectFile = new FileInfo(Path.Combine(secondAppHostDirectory.FullName, "SecondAppHost.csproj")); 136await File.WriteAllTextAsync(secondAppHostProjectFile.FullName, "Not a real apphost"); 138var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 152AssertSameFileSystemPath(secondAppHostProjectFile.FullName, result.SelectedProjectFile?.FullName); 164var firstAppHostProjectFile = new FileInfo(Path.Combine(firstAppHostDirectory.FullName, "FirstAppHost.csproj")); 165await File.WriteAllTextAsync(firstAppHostProjectFile.FullName, "Not a real apphost"); 168var secondAppHostProjectFile = new FileInfo(Path.Combine(secondAppHostDirectory.FullName, "SecondAppHost.csproj")); 169await File.WriteAllTextAsync(secondAppHostProjectFile.FullName, "Not a real apphost"); 171var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 184AssertSameFileSystemPath(secondAppHostProjectFile.FullName, result.SelectedProjectFile?.FullName); 197var firstAppHostProjectFile = new FileInfo(Path.Combine(firstAppHostDirectory.FullName, "FirstAppHost.csproj")); 198await File.WriteAllTextAsync(firstAppHostProjectFile.FullName, "Not a real apphost"); 201var firstAlternative = new FileInfo(Path.Combine(alternativesDirectory.FullName, "FirstAlternative.csproj")); 202await File.WriteAllTextAsync(firstAlternative.FullName, "Not a real apphost"); 203var secondAlternative = new FileInfo(Path.Combine(alternativesDirectory.FullName, "SecondAlternative.csproj")); 204await File.WriteAllTextAsync(secondAlternative.FullName, "Not a real apphost"); 206var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 214new FileInfo(alternativesDirectory.FullName), 219AssertSameFileSystemPath(firstAlternative.FullName, result.SelectedProjectFile?.FullName); 230var firstAppHostProjectFile = new FileInfo(Path.Combine(firstAppHostDirectory.FullName, "FirstAppHost.csproj")); 231await File.WriteAllTextAsync(firstAppHostProjectFile.FullName, "Not a real apphost"); 234var alternativeAppHost = new FileInfo(Path.Combine(alternativeDirectory.FullName, "Alternative.csproj")); 235await File.WriteAllTextAsync(alternativeAppHost.FullName, "Not a real apphost"); 237var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 244new FileInfo(alternativeDirectory.FullName), 249AssertSameFileSystemPath(alternativeAppHost.FullName, result.SelectedProjectFile?.FullName); 259var appHostProjectFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 260await File.WriteAllTextAsync(appHostProjectFile.FullName, "Not a real apphost"); 262var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 273AssertSameFileSystemPath(appHostProjectFile.FullName, result.SelectedProjectFile?.FullName); 283var appHostProjectFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 284await File.WriteAllTextAsync(appHostProjectFile.FullName, "Not a real apphost"); 286var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 295AssertSameFileSystemPath(appHostProjectFile.FullName, result.SelectedProjectFile?.FullName); 308var appHostProjectFile = new FileInfo(Path.Combine(appHostDirectory.FullName, $"AppHost{index}.csproj")); 309await File.WriteAllTextAsync(appHostProjectFile.FullName, "Not a real apphost"); 313var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 340appHostProjectFiles.Select(appHostProjectFile => PathNormalizer.ResolveToFilesystemPath(appHostProjectFile.FullName)), 341results.Select(result => PathNormalizer.ResolveToFilesystemPath(result.SelectedProjectFile!.FullName))); 363var configuredPath = Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"); 365var differentlyCasedPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.csproj"); 380var configuredPath = Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj"); 382var differentlyCasedPath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.csproj"); 398var firstAppHostProjectFile = new FileInfo(Path.Combine(firstAppHostDirectory.FullName, "FirstAppHost.csproj")); 399await File.WriteAllTextAsync(firstAppHostProjectFile.FullName, "Not a real apphost"); 402var secondAppHostProjectFile = new FileInfo(Path.Combine(secondAppHostDirectory.FullName, "SecondAppHost.csproj")); 403await File.WriteAllTextAsync(secondAppHostProjectFile.FullName, "Not a real apphost"); 405var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 419AssertSameFileSystemPath(secondAppHostProjectFile.FullName, result.SelectedProjectFile?.FullName); 429var firstAppHostProjectFile = new FileInfo(Path.Combine(firstAppHostDirectory.FullName, "FirstAppHost.csproj")); 430await File.WriteAllTextAsync(firstAppHostProjectFile.FullName, "Not a real apphost"); 433var secondAppHostProjectFile = new FileInfo(Path.Combine(secondAppHostDirectory.FullName, "SecondAppHost.csproj")); 434await File.WriteAllTextAsync(secondAppHostProjectFile.FullName, "Not a real apphost"); 436var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 442ValidateAppHostCallback = file => new AppHostValidationResult(IsValid: file.FullName == secondAppHostProjectFile.FullName) 455AssertSameFileSystemPath(secondAppHostProjectFile.FullName, result.SelectedProjectFile?.FullName); 465var firstAppHostProjectFile = new FileInfo(Path.Combine(firstAppHostDirectory.FullName, "FirstAppHost.csproj")); 466await File.WriteAllTextAsync(firstAppHostProjectFile.FullName, "Not a real apphost"); 469var secondAppHostProjectFile = new FileInfo(Path.Combine(secondAppHostDirectory.FullName, "SecondAppHost.csproj")); 470await File.WriteAllTextAsync(secondAppHostProjectFile.FullName, "Not a real apphost"); 472var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 484AssertSameFileSystemPath(secondAppHostProjectFile.FullName, result.SelectedProjectFile?.FullName); 514var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 536var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 537await File.WriteAllTextAsync(projectFile.FullName, "<Project Sdk=\"Aspire.AppHost.Sdk\"></Project>"); 552AssertSameFileSystemPath(projectFile.FullName, result.SelectedProjectFile?.FullName); 553AssertSameFileSystemPath(projectFile.FullName, Assert.Single(result.AllProjectFileCandidates).FullName); 557Assert.False(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName))); 568var brokenAppHost = new FileInfo(Path.Combine(brokenDirectory.FullName, "BrokenAppHost.csproj")); 569await File.WriteAllTextAsync(brokenAppHost.FullName, "<Project Sdk=\"Aspire.AppHost.Sdk\"></Project>"); 572var decoyAppHost = new FileInfo(Path.Combine(decoyDirectory.FullName, "HealthyAppHost.csproj")); 573await File.WriteAllTextAsync(decoyAppHost.FullName, "<Project Sdk=\"Aspire.AppHost.Sdk\"></Project>"); 575var aspireSettingsDir = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire")); 577var aspireSettingsFile = new FileInfo(Path.Combine(aspireSettingsDir.FullName, "settings.json")); 578await File.WriteAllTextAsync(aspireSettingsFile.FullName, JsonSerializer.Serialize(new 580appHostPath = Path.GetRelativePath(aspireSettingsDir.FullName, brokenAppHost.FullName).Replace(Path.DirectorySeparatorChar, '/') 585ValidateAppHostCallback = file => file.FullName == brokenAppHost.FullName 593var globalSettingsFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "settings.global.json")); 603AssertSameFileSystemPath(brokenAppHost.FullName, result.SelectedProjectFile?.FullName); 607Assert.False(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName))); 618var outsideAppHost = new FileInfo(Path.Combine(outsideDirectory.FullName, "OutsideAppHost.csproj")); 619await File.WriteAllTextAsync(outsideAppHost.FullName, "<Project Sdk=\"Aspire.AppHost.Sdk\"></Project>"); 622var configPath = Path.Combine(workingDirectory.FullName, AspireConfigFile.FileName); 627path = Path.GetRelativePath(workingDirectory.FullName, outsideAppHost.FullName).Replace(Path.DirectorySeparatorChar, '/') 644AssertSameFileSystemPath(outsideAppHost.FullName, result.SelectedProjectFile?.FullName); 656var appHostFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 657await File.WriteAllTextAsync(appHostFile.FullName, "<Project Sdk=\"Aspire.AppHost.Sdk\"></Project>"); 688var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Missing.csproj")); 719var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "WebApp.csproj")); 720await File.WriteAllTextAsync(projectFile.FullName, "<Project Sdk=\"Microsoft.NET.Sdk.Web\"></Project>"); 748var targetAppHostProjectFile = new FileInfo(Path.Combine(targetAppHostDirectory.FullName, "TargetAppHost.csproj")); 749await File.WriteAllTextAsync(targetAppHostProjectFile.FullName, "Not a real apphost"); 752var otherAppHostProjectFile = new FileInfo(Path.Combine(otherAppHostDirectory.FullName, "OtherAppHost.csproj")); 753await File.WriteAllTextAsync(otherAppHostProjectFile.FullName, "Not a real apphost"); 756var aspireSettingsFile = new FileInfo(Path.Combine(workspaceSettingsDirectory.FullName, "settings.json")); 761appHostPath = Path.GetRelativePath(aspireSettingsFile.Directory!.FullName, targetAppHostProjectFile.FullName) 772AssertSameFileSystemPath(targetAppHostProjectFile.FullName, foundAppHost?.FullName); 781var targetAppHostProjectFile = new FileInfo(Path.Combine(targetAppHostDirectory.FullName, "TargetAppHost.csproj")); 782await File.WriteAllTextAsync(targetAppHostProjectFile.FullName, "Not a real apphost"); 785var aspireSettingsFile = new FileInfo(Path.Combine(workspaceSettingsDirectory.FullName, "settings.json")); 790appHostPath = Path.GetRelativePath(aspireSettingsFile.Directory!.FullName, targetAppHostProjectFile.FullName) 800AssertSameFileSystemPath(targetAppHostProjectFile.FullName, foundAppHost?.FullName); 812var targetAppHostProjectFile = new FileInfo(Path.Combine(targetAppHostDirectory.FullName, "TargetAppHost.csproj")); 813await File.WriteAllTextAsync(targetAppHostProjectFile.FullName, "Not a real apphost"); 816var aspireSettingsFile = new FileInfo(Path.Combine(workspaceSettingsDirectory.FullName, "settings.json")); 821appHostPath = Path.GetRelativePath(aspireSettingsFile.Directory!.FullName, targetAppHostProjectFile.FullName) 830AssertSameFileSystemPath(targetAppHostProjectFile.FullName, foundAppHost?.FullName); 839var realAppHostProjectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "RealAppHost.csproj")); 840await File.WriteAllTextAsync(realAppHostProjectFile.FullName, "Not a real apphost project"); 844var aspireSettingsFile = new FileInfo(Path.Combine(workspaceSettingsDirectory.FullName, "settings.json")); 857if (projectFile.FullName == realAppHostProjectFile.FullName) 871AssertSameFileSystemPath(realAppHostProjectFile.FullName, foundAppHost?.FullName); 880var staleProjectFile = new FileInfo(Path.Combine(staleProjectDirectory.FullName, "StaleProject.csproj")); 881await File.WriteAllTextAsync(staleProjectFile.FullName, "Not a real apphost project"); 883var realAppHostProjectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "RealAppHost.csproj")); 884await File.WriteAllTextAsync(realAppHostProjectFile.FullName, "Not a real apphost project"); 887var aspireSettingsFile = new FileInfo(Path.Combine(workspaceSettingsDirectory.FullName, "settings.json")); 892appHostPath = Path.GetRelativePath(aspireSettingsFile.Directory!.FullName, staleProjectFile.FullName) 900if (projectFile.FullName == realAppHostProjectFile.FullName) 914AssertSameFileSystemPath(realAppHostProjectFile.FullName, foundAppHost?.FullName); 933var aspireSettingsFile = new FileInfo(Path.Combine(workspaceSettingsDirectory.FullName, "settings.json")); 934await File.WriteAllTextAsync(aspireSettingsFile.FullName, JsonSerializer.Serialize(new 944AssertSameFileSystemPath(appHostFile.FullName, foundAppHost?.FullName); 956var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 967AssertSameFileSystemPath(appHostFile.FullName, foundAppHost?.FullName); 991var targetAppHostProjectFile = new FileInfo(Path.Combine(targetAppHostDirectory.FullName, "TargetAppHost.csproj")); 992await File.WriteAllTextAsync(targetAppHostProjectFile.FullName, "Not a real apphost"); 995var decoyAppHostProjectFile = new FileInfo(Path.Combine(decoyAppHostDirectory.FullName, "DecoyAppHost.csproj")); 996await File.WriteAllTextAsync(decoyAppHostProjectFile.FullName, "Not a real apphost"); 998var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1003path = Path.GetRelativePath(workspace.WorkspaceRoot.FullName, targetAppHostProjectFile.FullName).Replace(Path.DirectorySeparatorChar, '/') 1018AssertSameFileSystemPath(targetAppHostProjectFile.FullName, result.SelectedProjectFile?.FullName); 1020Assert.Equal(targetAppHostProjectFile.FullName, candidate.FullName); 1029var targetAppHostProjectFile = new FileInfo(Path.Combine(targetAppHostDirectory.FullName, "TargetAppHost.csproj")); 1030await File.WriteAllTextAsync(targetAppHostProjectFile.FullName, "Not a real apphost"); 1033var decoyAppHostProjectFile = new FileInfo(Path.Combine(decoyAppHostDirectory.FullName, "DecoyAppHost.csproj")); 1034await File.WriteAllTextAsync(decoyAppHostProjectFile.FullName, "Not a real apphost"); 1036var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1041path = Path.GetRelativePath(workspace.WorkspaceRoot.FullName, targetAppHostProjectFile.FullName).Replace(Path.DirectorySeparatorChar, '/') 1056AssertSameFileSystemPath(targetAppHostProjectFile.FullName, result.SelectedProjectFile?.FullName); 1058Assert.Equal(targetAppHostProjectFile.FullName, candidate.FullName); 1066var guestAppHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 1067await File.WriteAllTextAsync(guestAppHostFile.FullName, "// guest apphost"); 1069var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1092AssertSameFileSystemPath(guestAppHostFile.FullName, result.SelectedProjectFile?.FullName); 1094Assert.Equal(guestAppHostFile.FullName, candidate.FullName); 1103var configuredAppHostProjectFile = new FileInfo(Path.Combine(configuredAppHostDirectory.FullName, "ConfiguredAppHost.csproj")); 1104await File.WriteAllTextAsync(configuredAppHostProjectFile.FullName, "Not a real apphost"); 1106var realAppHostProjectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "RealAppHost.csproj")); 1107await File.WriteAllTextAsync(realAppHostProjectFile.FullName, "Not a real apphost"); 1109var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1114path = Path.GetRelativePath(workspace.WorkspaceRoot.FullName, configuredAppHostProjectFile.FullName).Replace(Path.DirectorySeparatorChar, '/') 1122if (projectFile.FullName == realAppHostProjectFile.FullName) 1126if (projectFile.FullName == configuredAppHostProjectFile.FullName) 1143AssertSameFileSystemPath(realAppHostProjectFile.FullName, result.SelectedProjectFile?.FullName); 1156var configuredAppHostProjectFile = new FileInfo(Path.Combine(configuredAppHostDirectory.FullName, "ConfiguredAppHost.csproj")); 1157await File.WriteAllTextAsync(configuredAppHostProjectFile.FullName, "Not a real apphost"); 1159var realAppHostProjectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "RealAppHost.csproj")); 1160await File.WriteAllTextAsync(realAppHostProjectFile.FullName, "Not a real apphost"); 1162var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1167path = Path.GetRelativePath(workspace.WorkspaceRoot.FullName, configuredAppHostProjectFile.FullName).Replace(Path.DirectorySeparatorChar, '/') 1175if (projectFile.FullName == realAppHostProjectFile.FullName) 1179if (projectFile.FullName == configuredAppHostProjectFile.FullName) 1196AssertSameFileSystemPath(configuredAppHostProjectFile.FullName, result.SelectedProjectFile?.FullName); 1198[realAppHostProjectFile.FullName, configuredAppHostProjectFile.FullName], 1199result.AllProjectFileCandidates.Select(f => f.FullName)); 1208var targetAppHostProjectFile = new FileInfo(Path.Combine(targetAppHostDirectory.FullName, "TargetAppHost.csproj")); 1209await File.WriteAllTextAsync(targetAppHostProjectFile.FullName, "Not a real apphost"); 1212var otherAppHostProjectFile = new FileInfo(Path.Combine(otherAppHostDirectory.FullName, "OtherAppHost.csproj")); 1213await File.WriteAllTextAsync(otherAppHostProjectFile.FullName, "Not a real apphost"); 1215var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1220path = Path.GetRelativePath(workspace.WorkspaceRoot.FullName, targetAppHostProjectFile.FullName).Replace(Path.DirectorySeparatorChar, '/') 1233AssertSameFileSystemPath(targetAppHostProjectFile.FullName, result.SelectedProjectFile?.FullName); 1235Assert.Contains(result.AllProjectFileCandidates, file => file.FullName == targetAppHostProjectFile.FullName); 1236Assert.Contains(result.AllProjectFileCandidates, file => file.FullName == otherAppHostProjectFile.FullName); 1245var settingsAppHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "SettingsAppHost.csproj")); 1246await File.WriteAllTextAsync(settingsAppHostFile.FullName, "Not a real apphost"); 1251var configPath = Path.Combine(workingDirectory.FullName, AspireConfigFile.FileName); 1274AssertSameFileSystemPath(settingsAppHostFile.FullName, result.SelectedProjectFile?.FullName); 1275Assert.Contains(result.AllProjectFileCandidates, file => file.FullName == settingsAppHostFile.FullName); 1284var settingsAppHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.custom")); 1285await File.WriteAllTextAsync(settingsAppHostFile.FullName, "Not a supported apphost type"); 1287var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1319var targetAppHostProjectFile = new FileInfo(Path.Combine(targetAppHostDirectory.FullName, "TargetAppHost.csproj")); 1320await File.WriteAllTextAsync(targetAppHostProjectFile.FullName, "Not a real apphost"); 1323var aspireSettingsFile = new FileInfo(Path.Combine(workspaceSettingsDirectory.FullName, "settings.json")); 1326var relativePath = Path.GetRelativePath(aspireSettingsFile.Directory!.FullName, targetAppHostProjectFile.FullName); 1342AssertSameFileSystemPath(targetAppHostProjectFile.FullName, foundAppHost?.FullName); 1349var projectFile1 = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost1.csproj")); 1350await File.WriteAllTextAsync(projectFile1.FullName, "Not a real project file."); 1352var projectFile2 = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost2.csproj")); 1353await File.WriteAllTextAsync(projectFile2.FullName, "Not a real project file."); 1360AssertSameFileSystemPath(projectFile1.FullName, selectedProjectFile!.FullName); 1367var appHostProject = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 1368await File.WriteAllTextAsync(appHostProject.FullName, "Not a real apphost project."); 1370var webProject = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "WebProject.csproj")); 1371await File.WriteAllTextAsync(webProject.FullName, "Not a real web project."); 1377if (projectFile.FullName == appHostProject.FullName) 1388AssertSameFileSystemPath(appHostProject.FullName, foundAppHost?.FullName); 1414var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, $"AppHost{projectFileExtension}")); 1415await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 1422AssertSameFileSystemPath(projectFile.FullName, returnedProjectFile!.FullName); 1432var onDiskProjectFile = new FileInfo(Path.Combine(projectDirectory.FullName, "MyAppHost.csproj")); 1433await File.WriteAllTextAsync(onDiskProjectFile.FullName, "Not a real project file."); 1440var mismatchedCasePath = ToggleCase(onDiskProjectFile.FullName); 1441Assert.False(string.Equals(onDiskProjectFile.FullName, mismatchedCasePath, StringComparison.Ordinal)); 1454Assert.Equal(onDiskProjectFile.FullName, result.SelectedProjectFile!.FullName); 1465var onDiskProjectFile = new FileInfo(Path.Combine(realDirectory.FullName, "RealAppHost.csproj")); 1466await File.WriteAllTextAsync(onDiskProjectFile.FullName, "Not a real project file."); 1468var linkDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "LinkedAppHost"); 1469TestSymlinkHelper.TryCreateSymlink(linkDirectory, realDirectory.FullName); 1485PathNormalizer.ResolvePathCasing(linkedProjectFile.FullName), 1486result.SelectedProjectFile!.FullName); 1488PathNormalizer.ResolveToFilesystemPath(linkedProjectFile.FullName), 1489result.SelectedProjectFile.FullName); 1496var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 1497await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 1503AssertSameFileSystemPath(projectFile.FullName, returnedProjectFile!.FullName); 1511var legacyAppHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.ts")); 1512var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts")); 1513await File.WriteAllTextAsync(appHostFile.FullName, "// TypeScript AppHost"); 1515await File.WriteAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName), JsonSerializer.Serialize(new 1524var globalSettingsFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "settings.global.json"); 1536AssertSameFileSystemPath(appHostFile.FullName, returnedProjectFile!.FullName); 1538var updatedConfig = AspireConfigFile.Load(workspace.WorkspaceRoot.FullName); 1550var appHostProjectFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 1551await File.WriteAllTextAsync(appHostProjectFile.FullName, "Not a real project file."); 1559var globalSettingsFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "settings.global.json"); 1570var settingsFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName)); 1573var settingsJson = await File.ReadAllTextAsync(settingsFile.FullName); 1587var appHostFile = new FileInfo(Path.Combine(srcDirectory.FullName, "apphost.ts")); 1588await File.WriteAllTextAsync(appHostFile.FullName, "// TypeScript apphost"); 1590var adjacentConfigPath = Path.Combine(srcDirectory.FullName, AspireConfigFile.FileName); 1614var globalSettingsFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "settings.global.json")); 1634AssertSameFileSystemPath(appHostFile.FullName, result.SelectedProjectFile?.FullName); 1635Assert.False(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName))); 1654var appHost1File = new FileInfo(Path.Combine(appHost1Directory.FullName, "apphost.ts")); 1655await File.WriteAllTextAsync(appHost1File.FullName, "// TypeScript apphost"); 1656var appHost1ConfigPath = Path.Combine(appHost1Directory.FullName, AspireConfigFile.FileName); 1666var appHost2File = new FileInfo(Path.Combine(appHost2Directory.FullName, "apphost.ts")); 1667await File.WriteAllTextAsync(appHost2File.FullName, "// TypeScript apphost"); 1668var appHost2ConfigPath = Path.Combine(appHost2Directory.FullName, AspireConfigFile.FileName); 1683var globalSettingsFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "settings.global.json")); 1704AssertSameFileSystemPath(appHost2File.FullName, result.SelectedProjectFile?.FullName); 1705Assert.False(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName))); 1724var appHostFile = new FileInfo(Path.Combine(srcDirectory.FullName, "apphost.ts")); 1725await File.WriteAllTextAsync(appHostFile.FullName, "// TypeScript apphost"); 1735staleConfig.Save(srcDirectory.FullName); 1738var globalSettingsFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "settings.global.json")); 1758AssertSameFileSystemPath(appHostFile.FullName, result.SelectedProjectFile?.FullName); 1759Assert.False(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName))); 1761var healedConfig = AspireConfigFile.Load(srcDirectory.FullName); 1773var appHostProjectFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "MyAppHost.csproj")); 1774await File.WriteAllTextAsync(appHostProjectFile.FullName, "Not a real apphost"); 1780var aspireSettingsDir = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire")); 1781var aspireSettingsFile = new FileInfo(Path.Combine(aspireSettingsDir.FullName, "settings.json")); 1783.GetRelativePath(aspireSettingsDir.FullName, appHostProjectFile.FullName) 1785await File.WriteAllTextAsync(aspireSettingsFile.FullName, JsonSerializer.Serialize(new { appHostPath = relativeAppHostPath })); 1788var globalSettingsFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "settings.global.json"); 1800Assert.Equal(appHostProjectFile.FullName, foundAppHost.FullName); 1803var aspireConfigFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 1817var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs")); 1819appHostFile.FullName, 1830var foundFiles = await projectLocator.FindAppHostProjectFilesAsync(workspace.WorkspaceRoot.FullName, CancellationToken.None).DefaultTimeout(); 1833Assert.Equal(appHostFile.FullName, foundFiles[0].FullName); 1842var appHostFile = new FileInfo(Path.Combine(subDir.FullName, "apphost.cs")); 1844appHostFile.FullName, 1855var foundFiles = await projectLocator.FindAppHostProjectFilesAsync(workspace.WorkspaceRoot.FullName, CancellationToken.None).DefaultTimeout(); 1858Assert.Equal(appHostFile.FullName, foundFiles[0].FullName); 1868var appHostFile = new FileInfo(Path.Combine(dirWithBoth.FullName, "apphost.cs")); 1870appHostFile.FullName, 1878var csprojFile = new FileInfo(Path.Combine(dirWithBoth.FullName, "RegularProject.csproj")); 1879await File.WriteAllTextAsync(csprojFile.FullName, "<Project Sdk=\"Microsoft.NET.Sdk\"></Project>"); 1883var validAppHostFile = new FileInfo(Path.Combine(dirWithOnlyAppHost.FullName, "apphost.cs")); 1885validAppHostFile.FullName, 1897if (projectFile.FullName == csprojFile.FullName) 1904var foundFiles = await projectLocator.FindAppHostProjectFilesAsync(workspace.WorkspaceRoot.FullName, CancellationToken.None).DefaultTimeout(); 1911var foundPaths = foundFiles.Select(f => f.FullName).ToHashSet(); 1912Assert.Contains(validAppHostFile.FullName, foundPaths); 1913Assert.Contains(csprojFile.FullName, foundPaths); 1914Assert.DoesNotContain(appHostFile.FullName, foundPaths); 1923var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs")); 1924await File.WriteAllTextAsync(appHostFile.FullName, @"using Aspire.Hosting 1931var foundFiles = await projectLocator.FindAppHostProjectFilesAsync(workspace.WorkspaceRoot.FullName, CancellationToken.None).DefaultTimeout(); 1943var csprojFile = new FileInfo(Path.Combine(subDir1.FullName, "AppHost.csproj")); 1944await File.WriteAllTextAsync(csprojFile.FullName, "<Project Sdk=\"Microsoft.NET.Sdk\"></Project>"); 1948var appHostFile = new FileInfo(Path.Combine(subDir2.FullName, "apphost.cs")); 1950appHostFile.FullName, 1961if (projectFile.FullName == csprojFile.FullName) 1968var foundFiles = await projectLocator.FindAppHostProjectFilesAsync(workspace.WorkspaceRoot.FullName, CancellationToken.None).DefaultTimeout(); 1972Assert.True(foundFiles[0].FullName.CompareTo(foundFiles[1].FullName) < 0); 1974var foundPaths = foundFiles.Select(f => f.FullName).ToHashSet(); 1975Assert.Contains(csprojFile.FullName, foundPaths); 1976Assert.Contains(appHostFile.FullName, foundPaths); 1984var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 1985await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 2000var foundFiles = await projectLocator.FindAppHostProjectFilesAsync(workspace.WorkspaceRoot.FullName, CancellationToken.None).DefaultTimeout(); 2003Assert.Equal(projectFile.FullName, foundFile.FullName); 2011var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs")); 2013appHostFile.FullName, 2026Assert.Equal(PathNormalizer.ResolvePathCasing(appHostFile.FullName), result!.FullName); 2035var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs")); 2036await File.WriteAllTextAsync(appHostFile.FullName, @"using Aspire.Hosting; 2056var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs")); 2057await File.WriteAllTextAsync(appHostFile.FullName, "using Aspire.Hosting;"); 2059var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 2060await File.WriteAllTextAsync(projectFile.FullName, "<Project Sdk=\"Aspire.AppHost.Sdk\"></Project>"); 2073AssertSameFileSystemPath(projectFile.FullName, result.SelectedProjectFile?.FullName); 2082var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs")); 2084appHostFile.FullName, 2093var csprojFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "SomeProject.csproj")); 2094await File.WriteAllTextAsync(csprojFile.FullName, "<Project Sdk=\"Microsoft.NET.Sdk\"></Project>"); 2108var txtFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "readme.txt")); 2109await File.WriteAllTextAsync(txtFile.FullName, "Some text file"); 2128var csprojFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 2129await File.WriteAllTextAsync(csprojFile.FullName, "<Project Sdk=\"Microsoft.NET.Sdk\"></Project>"); 2133var appHostFile = new FileInfo(Path.Combine(subDir.FullName, "apphost.cs")); 2135appHostFile.FullName, 2146if (projectFile.FullName == csprojFile.FullName) 2159Assert.True(result.FullName == csprojFile.FullName || result.FullName == appHostFile.FullName); 2205? Path.Combine(executionContext.HomeDirectory.FullName, ".aspire", AspireConfigFile.FileName) 2206: Path.Combine(executionContext.WorkingDirectory.FullName, AspireConfigFile.FileName); 2320var projectFile = new FileInfo(Path.Combine(projectDirectory.FullName, "MyAppHost.csproj")); 2321await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 2327if (file.FullName == projectFile.FullName) 2339var directoryAsFileInfo = new FileInfo(projectDirectory.FullName); 2342AssertSameFileSystemPath(projectFile.FullName, returnedProjectFile!.FullName); 2357var directoryAsFileInfo = new FileInfo(projectDirectory.FullName); 2375var projectFile = new FileInfo(Path.Combine(projectDirectory.FullName, "UnbuildableAppHost.csproj")); 2376await File.WriteAllTextAsync(projectFile.FullName, "<Project Sdk=\"Aspire.AppHost.Sdk\"></Project>"); 2384var directoryAsFileInfo = new FileInfo(projectDirectory.FullName); 2392AssertSameFileSystemPath(projectFile.FullName, result.SelectedProjectFile?.FullName); 2393Assert.False(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName))); 2405var first = new FileInfo(Path.Combine(firstProjectDirectory.FullName, "FirstAppHost.csproj")); 2406await File.WriteAllTextAsync(first.FullName, "<Project Sdk=\"Aspire.AppHost.Sdk\"></Project>"); 2408var second = new FileInfo(Path.Combine(secondProjectDirectory.FullName, "SecondAppHost.csproj")); 2409await File.WriteAllTextAsync(second.FullName, "<Project Sdk=\"Aspire.AppHost.Sdk\"></Project>"); 2417var directoryAsFileInfo = new FileInfo(projectDirectory.FullName); 2445var brokenAppHost = new FileInfo(Path.Combine(brokenDirectory.FullName, "BrokenAppHost.csproj")); 2446await File.WriteAllTextAsync(brokenAppHost.FullName, "<Project Sdk=\"Aspire.AppHost.Sdk\"></Project>"); 2450var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 2455path = Path.GetRelativePath(workspace.WorkspaceRoot.FullName, brokenAppHost.FullName).Replace(Path.DirectorySeparatorChar, '/') 2469new FileInfo(emptyDirectory.FullName), 2487var healthyAppHost = new FileInfo(Path.Combine(healthyDirectory.FullName, "HealthyAppHost.csproj")); 2488await File.WriteAllTextAsync(healthyAppHost.FullName, "<Project Sdk=\"Aspire.AppHost.Sdk\"></Project>"); 2492var brokenAppHost = new FileInfo(Path.Combine(brokenDirectory.FullName, "BrokenAppHost.csproj")); 2493await File.WriteAllTextAsync(brokenAppHost.FullName, "<Project Sdk=\"Aspire.AppHost.Sdk\"></Project>"); 2495var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 2500path = Path.GetRelativePath(workspace.WorkspaceRoot.FullName, healthyAppHost.FullName).Replace(Path.DirectorySeparatorChar, '/') 2506ValidateAppHostCallback = file => file.FullName == healthyAppHost.FullName 2514new FileInfo(servicesDirectory.FullName), 2519AssertSameFileSystemPath(brokenAppHost.FullName, result.SelectedProjectFile?.FullName); 2528var configuredAppHost = new FileInfo(Path.Combine(configuredDirectory.FullName, "ConfiguredAppHost.csproj")); 2529await File.WriteAllTextAsync(configuredAppHost.FullName, "<Project Sdk=\"Aspire.AppHost.Sdk\"></Project>"); 2533var firstAppHost = new FileInfo(Path.Combine(firstDirectory.FullName, "FirstAppHost.csproj")); 2534await File.WriteAllTextAsync(firstAppHost.FullName, "<Project Sdk=\"Aspire.AppHost.Sdk\"></Project>"); 2536var secondAppHost = new FileInfo(Path.Combine(secondDirectory.FullName, "SecondAppHost.csproj")); 2537await File.WriteAllTextAsync(secondAppHost.FullName, "<Project Sdk=\"Aspire.AppHost.Sdk\"></Project>"); 2539var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 2544path = Path.GetRelativePath(workspace.WorkspaceRoot.FullName, configuredAppHost.FullName).Replace(Path.DirectorySeparatorChar, '/') 2556new FileInfo(servicesDirectory.FullName), 2563[firstAppHost.FullName, secondAppHost.FullName], 2564result.AllProjectFileCandidates.Select(file => file.FullName)); 2573var unsupportedAppHost = new FileInfo(Path.Combine(unsupportedDirectory.FullName, "UnsupportedAppHost.csproj")); 2574await File.WriteAllTextAsync(unsupportedAppHost.FullName, "<Project Sdk=\"Aspire.AppHost.Sdk\"></Project>"); 2578var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 2583path = Path.GetRelativePath(workspace.WorkspaceRoot.FullName, unsupportedAppHost.FullName).Replace(Path.DirectorySeparatorChar, '/') 2597new FileInfo(emptyDirectory.FullName), 2629var appHostFile = new FileInfo(Path.Combine(realDirectory.FullName, "AppHost.csproj")); 2630File.WriteAllText(appHostFile.FullName, "<Project />"); 2632var symlinkDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "link"); 2633TestSymlinkHelper.TryCreateSymlink(symlinkDirectory, realDirectory.FullName); 2647var brokenAppHost = new FileInfo(Path.Combine(brokenDirectory.FullName, "BrokenAppHost.csproj")); 2648await File.WriteAllTextAsync(brokenAppHost.FullName, "<Project Sdk=\"Aspire.AppHost.Sdk\"></Project>"); 2651var firstHealthy = new FileInfo(Path.Combine(firstHealthyDirectory.FullName, "FirstHealthyAppHost.csproj")); 2652await File.WriteAllTextAsync(firstHealthy.FullName, "<Project Sdk=\"Aspire.AppHost.Sdk\"></Project>"); 2655var secondHealthy = new FileInfo(Path.Combine(secondHealthyDirectory.FullName, "SecondHealthyAppHost.csproj")); 2656await File.WriteAllTextAsync(secondHealthy.FullName, "<Project Sdk=\"Aspire.AppHost.Sdk\"></Project>"); 2658var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 2663path = Path.GetRelativePath(workspace.WorkspaceRoot.FullName, brokenAppHost.FullName).Replace(Path.DirectorySeparatorChar, '/') 2669ValidateAppHostCallback = file => file.FullName == brokenAppHost.FullName 2684AssertSameFileSystemPath(brokenAppHost.FullName, result.SelectedProjectFile?.FullName); 2686new[] { firstHealthy.FullName, secondHealthy.FullName, brokenAppHost.FullName }, 2687result.AllProjectFileCandidates.Select(f => f.FullName).ToArray()); 2697var projectFile1 = new FileInfo(Path.Combine(projectDirectory.FullName, "Project1.csproj")); 2698await File.WriteAllTextAsync(projectFile1.FullName, "Not a real project file."); 2699var projectFile2 = new FileInfo(Path.Combine(projectDirectory.FullName, "Project2.csproj")); 2700await File.WriteAllTextAsync(projectFile2.FullName, "Not a real project file."); 2707if (file.FullName == projectFile1.FullName || file.FullName == projectFile2.FullName) 2719var directoryAsFileInfo = new FileInfo(projectDirectory.FullName); 2724AssertSameFileSystemPath(projectFile1.FullName, returnedProjectFile!.FullName); 2734var appHostFile = new FileInfo(Path.Combine(projectDirectory.FullName, "apphost.cs")); 2736appHostFile.FullName, 2748var directoryAsFileInfo = new FileInfo(projectDirectory.FullName); 2751AssertSameFileSystemPath(appHostFile.FullName, returnedProjectFile!.FullName); 2762var projectFile = new FileInfo(Path.Combine(subDirectory.FullName, "Mongo.AppHost.csproj")); 2763await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 2769if (file.FullName == projectFile.FullName) 2781var directoryAsFileInfo = new FileInfo(topDirectory.FullName); 2784AssertSameFileSystemPath(projectFile.FullName, returnedProjectFile!.FullName); 2801var csprojFile = new FileInfo(Path.Combine(appHostDir.FullName, "MyApp.AppHost.csproj")); 2802await File.WriteAllTextAsync(csprojFile.FullName, "<Project Sdk=\"Microsoft.NET.Sdk\"></Project>"); 2806var appHostCsFile = new FileInfo(Path.Combine(appHostDir.FullName, "AppHost.cs")); 2807await File.WriteAllTextAsync(appHostCsFile.FullName, """ 2824var foundFiles = await projectLocator.FindAppHostProjectFilesAsync(workspace.WorkspaceRoot.FullName, CancellationToken.None).DefaultTimeout(); 2828Assert.Equal(csprojFile.FullName, foundFiles[0].FullName); 2844var csprojFile = new FileInfo(Path.Combine(appHostDir.FullName, "MyApp.AppHost.csproj")); 2845await File.WriteAllTextAsync(csprojFile.FullName, "<Project Sdk=\"Microsoft.NET.Sdk\"></Project>"); 2848var appHostCsFile = new FileInfo(Path.Combine(appHostDir.FullName, "apphost.cs")); 2849await File.WriteAllTextAsync(appHostCsFile.FullName, """ 2868var foundFiles = await projectLocator.FindAppHostProjectFilesAsync(workspace.WorkspaceRoot.FullName, CancellationToken.None).DefaultTimeout(); 2872Assert.Equal(csprojFile.FullName, foundFiles[0].FullName); 2886var appHostCsFile = new FileInfo(Path.Combine(appHostDir.FullName, "apphost.cs")); 2887await File.WriteAllTextAsync(appHostCsFile.FullName, """ 2897var foundFiles = await projectLocator.FindAppHostProjectFilesAsync(workspace.WorkspaceRoot.FullName, CancellationToken.None).DefaultTimeout(); 2901Assert.Equal(appHostCsFile.FullName, foundFiles[0].FullName); 2909var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 2910await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 2920var foundFiles = await projectLocator.FindAppHostProjectFilesAsync(workspace.WorkspaceRoot.FullName, CancellationToken.None).DefaultTimeout(); 2930var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 2931await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 2941var foundFiles = await projectLocator.FindAppHostProjectFilesAsync(workspace.WorkspaceRoot.FullName, CancellationToken.None).DefaultTimeout(); 2944Assert.Equal(projectFile.FullName, foundFiles[0].FullName); 2952var projectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 2953await File.WriteAllTextAsync(projectFile.FullName, "Not a real project file."); 2992var foundFiles = await projectLocator.FindAppHostProjectFilesAsync(workspace.WorkspaceRoot.FullName, CancellationToken.None).DefaultTimeout(); 3004var normalProject = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "MyApp", "AppHost.csproj")); 3006await File.WriteAllTextAsync(normalProject.FullName, "Not a real project file."); 3009var nugetCacheDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".nuget", "packages", 3013await File.WriteAllTextAsync(cachedProject.FullName, "Not a real project file."); 3022["NUGET_PACKAGES"] = Path.Combine(workspace.WorkspaceRoot.FullName, ".nuget", "packages") 3028workspace.WorkspaceRoot.FullName, CancellationToken.None).DefaultTimeout(); 3032Assert.Equal(normalProject.FullName, foundFiles[0].FullName); 3041var project1 = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "src", "App1", "AppHost.csproj")); 3043await File.WriteAllTextAsync(project1.FullName, "Not a real project file."); 3045var project2 = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "samples", "App2", "AppHost.csproj")); 3047await File.WriteAllTextAsync(project2.FullName, "Not a real project file."); 3058workspace.WorkspaceRoot.FullName, CancellationToken.None).DefaultTimeout(); 3061var foundPaths = foundFiles.Select(f => f.FullName).ToHashSet(); 3062Assert.Contains(project1.FullName, foundPaths); 3063Assert.Contains(project2.FullName, foundPaths); 3072var normalProject = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "MyApp", "AppHost.csproj")); 3074await File.WriteAllTextAsync(normalProject.FullName, "Not a real project file."); 3077var customCacheDir = Path.Combine(workspace.WorkspaceRoot.FullName, "custom-nuget-cache"); 3081await File.WriteAllTextAsync(cachedProject.FullName, "Not a real project file."); 3096workspace.WorkspaceRoot.FullName, CancellationToken.None).DefaultTimeout(); 3100Assert.Equal(normalProject.FullName, foundFiles[0].FullName); 3109var customCacheDir = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget-cache"); 3112var siblingDir = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget-cache-extra", "MyApp"); 3115await File.WriteAllTextAsync(siblingProject.FullName, "Not a real project file."); 3121await File.WriteAllTextAsync(cachedProject.FullName, "Not a real project file."); 3136workspace.WorkspaceRoot.FullName, CancellationToken.None).DefaultTimeout(); 3140Assert.Equal(siblingProject.FullName, foundFiles[0].FullName); 3150var appHostFile = new FileInfo(Path.Combine(appHostDir.FullName, "MyAppHost.csproj")); 3151await File.WriteAllTextAsync(appHostFile.FullName, "Not a real apphost"); 3155config.Save(workspace.WorkspaceRoot.FullName); 3163Assert.Equal(appHostFile.FullName, result.SelectedProjectFile!.FullName); 3173var appHost1File = new FileInfo(Path.Combine(appHost1Dir.FullName, "AppHost1.csproj")); 3174await File.WriteAllTextAsync(appHost1File.FullName, "Not a real apphost"); 3176config1.Save(appHost1Dir.FullName); 3179var appHost2File = new FileInfo(Path.Combine(appHost2Dir.FullName, "AppHost2.csproj")); 3180await File.WriteAllTextAsync(appHost2File.FullName, "Not a real apphost"); 3182config2.Save(appHost2Dir.FullName); 3203var appHostFile = new FileInfo(Path.Combine(appHostDir.FullName, "RealAppHost.csproj")); 3204await File.WriteAllTextAsync(appHostFile.FullName, "Not a real apphost"); 3208config.Save(workspace.WorkspaceRoot.FullName); 3217Assert.Equal(appHostFile.FullName, result.SelectedProjectFile!.FullName); 3227await File.WriteAllTextAsync(Path.Combine(appHost1Dir.FullName, "AppHost1.csproj"), "Not a real apphost"); 3230await File.WriteAllTextAsync(Path.Combine(appHost2Dir.FullName, "AppHost2.csproj"), "Not a real apphost"); 3248var appHost1File = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost1.csproj")); 3249await File.WriteAllTextAsync(appHost1File.FullName, "Not a real apphost"); 3251var appHost2File = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost2.csproj")); 3252await File.WriteAllTextAsync(appHost2File.FullName, "Not a real apphost"); 3254var slowValidationFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "SlowValidation.csproj")); 3255await File.WriteAllTextAsync(slowValidationFile.FullName, "Not a real apphost"); 3264if (string.Equals(projectFile.FullName, slowValidationFile.FullName, StringComparison.Ordinal)) 3279if (string.Equals(projectFile.FullName, appHost2File.FullName, StringComparison.Ordinal)) 3307var appHost1File = new FileInfo(Path.Combine(appHost1Dir.FullName, "AppHost1.csproj")); 3308await File.WriteAllTextAsync(appHost1File.FullName, "Not a real apphost"); 3311var appHost2File = new FileInfo(Path.Combine(appHost2Dir.FullName, "AppHost2.csproj")); 3312await File.WriteAllTextAsync(appHost2File.FullName, "Not a real apphost"); 3315var aspireSettingsDir = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire")); 3317var aspireSettingsFile = new FileInfo(Path.Combine(aspireSettingsDir.FullName, "settings.json")); 3319.GetRelativePath(aspireSettingsDir.FullName, appHost1File.FullName) 3321await File.WriteAllTextAsync(aspireSettingsFile.FullName, JsonSerializer.Serialize(new { appHostPath = relativeAppHostPath })); 3330Assert.Equal(appHost1File.FullName, result.SelectedProjectFile!.FullName); 3340var appHost1File = new FileInfo(Path.Combine(appHost1Dir.FullName, "AppHost1.csproj")); 3341await File.WriteAllTextAsync(appHost1File.FullName, "Not a real apphost"); 3344var appHost2File = new FileInfo(Path.Combine(appHost2Dir.FullName, "AppHost2.csproj")); 3345await File.WriteAllTextAsync(appHost2File.FullName, "Not a real apphost"); 3348var aspireSettingsDir = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire")); 3350var aspireSettingsFile = new FileInfo(Path.Combine(aspireSettingsDir.FullName, "settings.json")); 3352.GetRelativePath(aspireSettingsDir.FullName, appHost1File.FullName) 3354await File.WriteAllTextAsync(aspireSettingsFile.FullName, JsonSerializer.Serialize(new { appHostPath = relativeAppHostPath })); 3363Assert.Equal(appHost1File.FullName, result.SelectedProjectFile!.FullName); 3365Assert.Equal(appHost1File.FullName, candidate.FullName); 3374var realAppHost = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "App", "AppHost.csproj")); 3376await File.WriteAllTextAsync(realAppHost.FullName, "Not a real project file."); 3379var staleAppHost = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "node_modules", "foo", "AppHost.csproj")); 3381await File.WriteAllTextAsync(staleAppHost.FullName, "Not a real project file."); 3394Assert.Equal(realAppHost.FullName, found[0].AppHostFile.FullName); 3402var realAppHost = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "App", "AppHost.csproj")); 3404await File.WriteAllTextAsync(realAppHost.FullName, "Not a real project file."); 3406var staleAppHost = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "node_modules", "foo", "AppHost.csproj")); 3408await File.WriteAllTextAsync(staleAppHost.FullName, "Not a real project file."); 3421var paths = found.Select(c => c.AppHostFile.FullName).ToHashSet(); 3422Assert.Contains(realAppHost.FullName, paths); 3423Assert.Contains(staleAppHost.FullName, paths); 3431var realAppHost = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "App", "AppHost.csproj")); 3433await File.WriteAllTextAsync(realAppHost.FullName, "Not a real project file."); 3435var skipListedAppHost = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "node_modules", "foo", "AppHost.csproj")); 3437await File.WriteAllTextAsync(skipListedAppHost.FullName, "Not a real project file."); 3447var found = await projectLocator.FindAppHostProjectFilesAsync(workspace.WorkspaceRoot.FullName, CancellationToken.None).DefaultTimeout(); 3449var paths = found.Select(file => file.FullName).ToHashSet(); 3451Assert.Contains(realAppHost.FullName, paths); 3452Assert.Contains(skipListedAppHost.FullName, paths); 3460var buildableAppHost = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Buildable", "AppHost.csproj")); 3462await File.WriteAllTextAsync(buildableAppHost.FullName, "Not a real project file."); 3464var unbuildableAppHost = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Unbuildable", "AppHost.csproj")); 3466await File.WriteAllTextAsync(unbuildableAppHost.FullName, "Not a real project file."); 3470ValidateAppHostCallback = projectFile => projectFile.FullName == buildableAppHost.FullName 3480Assert.Collection(found.OrderBy(candidate => candidate.AppHostFile.FullName), 3483Assert.Equal(buildableAppHost.FullName, candidate.AppHostFile.FullName); 3488Assert.Equal(unbuildableAppHost.FullName, candidate.AppHostFile.FullName); 3499var realAppHost = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "App", "AppHost.csproj")); 3501await File.WriteAllTextAsync(realAppHost.FullName, "Not a real project file."); 3504var staleAppHost = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "node_modules", "foo", "AppHost.csproj")); 3506await File.WriteAllTextAsync(staleAppHost.FullName, "Not a real project file."); 3519realAppHost.FullName, 3520staleAppHost.FullName 3530Assert.Equal(realAppHost.FullName, found[0].AppHostFile.FullName); 3539var configuredAppHost = new FileInfo(Path.Combine(configuredDirectory.FullName, "ConfiguredAppHost.csproj")); 3540await File.WriteAllTextAsync(configuredAppHost.FullName, "<Project Sdk=\"Aspire.AppHost.Sdk\"></Project>"); 3543var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 3548path = Path.GetRelativePath(workspace.WorkspaceRoot.FullName, configuredAppHost.FullName).Replace(Path.DirectorySeparatorChar, '/') 3574var trackedAppHost = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "App", "AppHost.csproj")); 3576await File.WriteAllTextAsync(trackedAppHost.FullName, "Not a real project file."); 3578var ignoredAppHost = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "legacy", "Stale.csproj")); 3580await File.WriteAllTextAsync(ignoredAppHost.FullName, "Not a real project file."); 3591trackedAppHost.FullName 3601Assert.Equal(trackedAppHost.FullName, found[0].AppHostFile.FullName); 3609var realAppHost = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "App", "AppHost.csproj")); 3611await File.WriteAllTextAsync(realAppHost.FullName, "Not a real project file."); 3614var nodeModulesAppHost = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "node_modules", "foo", "AppHost.csproj")); 3616await File.WriteAllTextAsync(nodeModulesAppHost.FullName, "Not a real project file."); 3627realAppHost.FullName, 3628nodeModulesAppHost.FullName 3638Assert.Equal(realAppHost.FullName, found[0].AppHostFile.FullName); 3646var realAppHost = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "App", "AppHost.csproj")); 3648await File.WriteAllTextAsync(realAppHost.FullName, "Not a real project file."); 3651var phantomAppHost = Path.Combine(workspace.WorkspaceRoot.FullName, "Removed", "AppHost.csproj"); 3662realAppHost.FullName, 3673Assert.Equal(realAppHost.FullName, found[0].AppHostFile.FullName); 3703var appHostProjectFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 3704await File.WriteAllTextAsync(appHostProjectFile.FullName, "Not a real apphost"); 3707var aspireSettingsFile = new FileInfo(Path.Combine(workspaceSettingsDirectory.FullName, "settings.json")); 3713appHostPath = Path.GetRelativePath(aspireSettingsFile.Directory!.FullName, appHostProjectFile.FullName) 3732Assert.Equal(appHostProjectFile.FullName, foundAppHost!.FullName); 3741var aspireSettingsFile = new FileInfo(Path.Combine(workspaceSettingsDirectory.FullName, "settings.json")); 3770var appHostProjectFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.unknown")); 3771await File.WriteAllTextAsync(appHostProjectFile.FullName, "Not a real apphost"); 3774var aspireSettingsFile = new FileInfo(Path.Combine(workspaceSettingsDirectory.FullName, "settings.json")); 3780appHostPath = Path.GetRelativePath(aspireSettingsFile.Directory!.FullName, appHostProjectFile.FullName) 3803var appHostProjectFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 3804await File.WriteAllTextAsync(appHostProjectFile.FullName, "Not a real apphost"); 3807var aspireSettingsFile = new FileInfo(Path.Combine(workspaceSettingsDirectory.FullName, "settings.json")); 3813appHostPath = Path.GetRelativePath(aspireSettingsFile.Directory!.FullName, appHostProjectFile.FullName) 3851var aspireSettingsFile = new FileInfo(Path.Combine(workspaceSettingsDirectory.FullName, "settings.json")); 3869Assert.Contains(aspireSettingsFile.FullName, warning.Message); 3886var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 3917var aspireSettingsFile = new FileInfo(Path.Combine(workspaceSettingsDirectory.FullName, "settings.json")); 3918await File.WriteAllTextAsync(aspireSettingsFile.FullName, """ 3929Assert.Contains(aspireSettingsFile.FullName, error); 3944var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 3969var aspireSettingsFile = new FileInfo(Path.Combine(workspaceSettingsDirectory.FullName, "settings.json")); 3970await File.WriteAllTextAsync(aspireSettingsFile.FullName, """ 3981Assert.Contains(aspireSettingsFile.FullName, error); 3994var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 4024var settingsPath = Path.Combine(workspaceSettingsDirectory.FullName, "settings.json"); 4051var settingsPath = Path.Combine(workspaceSettingsDirectory.FullName, "settings.json"); 4078var settingsPath = Path.Combine(workspaceSettingsDirectory.FullName, "settings.json"); 4116var realAppHost = new FileInfo(Path.Combine(realAppDirectory.FullName, "AppHost.csproj")); 4117await File.WriteAllTextAsync(realAppHost.FullName, "Not a real project file."); 4123var linkDirectory = Path.Combine(nodeModulesDir.FullName, "link"); 4126Directory.CreateSymbolicLink(linkDirectory, realAppDirectory.FullName); 4142Assert.NotEqual(realAppHost.FullName, pathThroughLink); 4145var aspireSettingsFile = new FileInfo(Path.Combine(workspaceSettingsDirectory.FullName, "settings.json")); 4175Assert.Equal(pathThroughLink, result.SelectedProjectFile.FullName); 4176Assert.Equal(result.SelectedProjectFile.FullName, Assert.Single(result.AllProjectFileCandidates).FullName); 4188var appHostProjectFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 4189await File.WriteAllTextAsync(appHostProjectFile.FullName, "Not a real project file."); 4191var differentlyCasedPath = Path.Combine(workspace.WorkspaceRoot.FullName, "APPHOST.csproj"); 4197Assert.NotEqual(appHostProjectFile.FullName, differentlyCasedPath); 4199var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 4222var configuredAppHost = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "node_modules", "Configured", "AppHost.csproj")); 4224await File.WriteAllTextAsync(configuredAppHost.FullName, "Not a real project file."); 4226var configPath = Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName); 4231path = Path.GetRelativePath(workspace.WorkspaceRoot.FullName, configuredAppHost.FullName).Replace(Path.DirectorySeparatorChar, '/') 4248Assert.Equal(configuredAppHost.FullName, candidate.AppHostFile.FullName);
Projects\ProjectUpdaterNuGetConfigurationTests.cs (167)
56await File.WriteAllTextAsync(configFile.FullName, """ 63var originalProject = await File.ReadAllBytesAsync(projectFile.FullName); 64var originalConfig = await File.ReadAllBytesAsync(configFile.FullName); 69Assert.Equal(projectFile.FullName, file.FullName); 82json["Properties"]![overriddenProperty] = Path.Combine(workspace.WorkspaceRoot.FullName, "custom-policy"); 94Assert.Equal(originalProject, await File.ReadAllBytesAsync(projectFile.FullName)); 106Assert.Equal(originalConfig, await File.ReadAllBytesAsync(configFile.FullName)); 123var originalProject = await File.ReadAllBytesAsync(projectFile.FullName); 141Assert.Equal(originalProject, await File.ReadAllBytesAsync(projectFile.FullName)); 150Assert.False(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"))); 170projectFile.MoveTo(Path.Combine(workspace.CreateDirectory("AppHost").FullName, fileName)); 171var originalProject = await File.ReadAllBytesAsync(projectFile.FullName); 181Assert.Equal(projectFile.DirectoryName, directory.FullName); 187File.WriteAllText(file.FullName, File.ReadAllText(file.FullName).Replace("9.4.1", version, StringComparison.Ordinal)); 224Assert.Equal(originalProject, await File.ReadAllBytesAsync(projectFile.FullName)); 246var originalProject = await File.ReadAllBytesAsync(projectFile.FullName); 248var originalConfig = await File.ReadAllBytesAsync(configFile.FullName); 276Assert.Equal(originalConfig, File.ReadAllBytes(configFile.FullName)); 295Assert.Equal([newSource], NuGetTestHelper.GetEligiblePackageSources(directory.FullName, query)); 298runner.GetNuGetConfigPathsAsyncCallback = (_, _, _) => (0, [configFile.FullName]); 304File.WriteAllText(file.FullName, File.ReadAllText(file.FullName).Replace("9.4.1", version, StringComparison.Ordinal)); 324Assert.Equal(originalProject, File.ReadAllBytes(projectFile.FullName)); 325Assert.Equal(originalConfig, File.ReadAllBytes(configFile.FullName)); 355Assert.Equal(originalProject, await File.ReadAllBytesAsync(projectFile.FullName)); 356Assert.Equal(originalConfig, await File.ReadAllBytesAsync(configFile.FullName)); 379var originalProject = await File.ReadAllBytesAsync(projectFile.FullName); 393Assert.Equal(originalProject, await File.ReadAllBytesAsync(projectFile.FullName)); 424await File.WriteAllTextAsync(configFile.FullName, $$""" 426<packageSources><clear /><add key="aspire-daily" value="{{oldFeed.FullName}}" /></packageSources> 428<config><add key="globalPackagesFolder" value="{{packageCache.FullName}}" /></config> 431var projectFile = new FileInfo(Path.Combine(appHostDirectory.FullName, "AppHost.csproj")); 432await File.WriteAllTextAsync(projectFile.FullName, $$""" 438var webProject = new FileInfo(Path.Combine(webDirectory.FullName, "Web.csproj")); 439await File.WriteAllTextAsync(webProject.FullName, $$""" 465(0, [new NuGetPackageCli { Id = query, Version = newVersion, Source = newFeed.FullName }]), 466GetNuGetConfigPathsAsyncCallback = (_, _, _) => (0, [configFile.FullName]), 469Assert.Equal(webProject.FullName, file.FullName); 473File.WriteAllText(file.FullName, File.ReadAllText(file.FullName).Replace(oldVersion, version, StringComparison.Ordinal)); 480Assert.Equal([newFeed.FullName], NuGetTestHelper.GetEligiblePackageSources( 491"daily", PackageChannelQuality.Both, [new("Aspire*", newFeed.FullName)], 507Assert.Equal([newFeed.FullName], NuGetTestHelper.GetEligiblePackageSources(appHostDirectory.FullName, packageId)); 527await File.WriteAllTextAsync(configFile.FullName, $$""" 529<packageSources><clear /><add key="fixture" value="{{feed.FullName}}" /></packageSources> 530<config><add key="globalPackagesFolder" value="{{workspace.CreateDirectory("packages").FullName}}" /></config> 533var originalConfig = await File.ReadAllBytesAsync(configFile.FullName); 535await File.WriteAllTextAsync(projectFile.FullName, $$""" 543var originalProject = await File.ReadAllBytesAsync(projectFile.FullName); 565Assert.Equal(projectFile.FullName + ".csproj", evaluatedPath); 572(0, [new NuGetPackageCli { Id = query, Version = newVersion, Source = feed.FullName }]); 575Assert.Equal(projectFile.FullName, file.FullName); 597await File.ReadAllTextAsync(projectFile.FullName)); 603Assert.Equal(originalProject, await File.ReadAllBytesAsync(projectFile.FullName)); 608Assert.Equal(originalConfig, await File.ReadAllBytesAsync(configFile.FullName)); 627await File.WriteAllTextAsync(file.FullName, content); 653var originalConfig = await File.ReadAllBytesAsync(configFile.FullName); 679Assert.Equal(projectFile.DirectoryName, directory.FullName); 681Assert.Equal([currentSource], NuGetTestHelper.GetEligiblePackageSources(directory.FullName, query)); 699Assert.Equal(originalConfig, await File.ReadAllBytesAsync(configFile.FullName)); 739await File.WriteAllTextAsync(configFile.FullName, $$""" 751var originalConfig = await File.ReadAllBytesAsync(configFile.FullName); 757runner.GetNuGetConfigPathsAsyncCallback = (_, _, _) => (0, [configFile.FullName]); 761Assert.Equal(expectedSources.Order(), NuGetTestHelper.GetEligiblePackageSources(directory.FullName, query).Order()); 767Assert.Equal(originalConfig, File.ReadAllBytes(configFile.FullName)); 819await File.WriteAllTextAsync(configFile.FullName, $$""" 833var originalConfig = await File.ReadAllBytesAsync(configFile.FullName); 839runner.GetNuGetConfigPathsAsyncCallback = (_, _, _) => (0, [configFile.FullName]); 844NuGetTestHelper.GetEligiblePackageSources(directory.FullName, query).Order()); 850Assert.Equal(originalConfig, File.ReadAllBytes(configFile.FullName)); 867var originalProject = await File.ReadAllBytesAsync(projectFile.FullName); 872Assert.Equal(originalConfig, await File.ReadAllBytesAsync(configFile.FullName)); 873Assert.Equal(originalProject, await File.ReadAllBytesAsync(projectFile.FullName)); 900Assert.Equal(originalConfig, await File.ReadAllBytesAsync(configFile.FullName)); 911var originalProject = await File.ReadAllBytesAsync(projectFile.FullName); 919Assert.Equal([newSource], NuGetTestHelper.GetEligiblePackageSources(directory.FullName, query)); 923[configFile.FullName, Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".nuget", "NuGet.Config")]); 925var originalConfig = await File.ReadAllBytesAsync(configFile.FullName); 928Assert.Equal(projectFile.FullName, file.FullName); 930Assert.Equal(originalConfig, File.ReadAllBytes(configFile.FullName)); 952Assert.Equal(originalProject, await File.ReadAllBytesAsync(projectFile.FullName)); 963var originalProject = await File.ReadAllBytesAsync(projectFile.FullName); 965var originalConfig = await File.ReadAllBytesAsync(configFile.FullName); 979[configFile.FullName, Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".nuget", "NuGet.Config")]); 1013Assert.Equal(originalProject, await File.ReadAllBytesAsync(projectFile.FullName)); 1014Assert.Equal(originalConfig, await File.ReadAllBytesAsync(configFile.FullName)); 1031projectFile.MoveTo(Path.Combine(workspace.CreateDirectory("AppHost").FullName, projectFile.Name)); 1032var originalProject = await File.ReadAllBytesAsync(projectFile.FullName); 1035var oldHive = workspace.CreateDirectory(".aspire/hives/pr-old/packages").FullName; 1037await File.WriteAllTextAsync(parentConfig.FullName, $$""" 1047var originalParent = await File.ReadAllBytesAsync(parentConfig.FullName); 1052await File.WriteAllTextAsync(configFile.FullName, $$""" 1062var originalConfig = await File.ReadAllBytesAsync(configFile.FullName); 1075runner.GetNuGetConfigPathsAsyncCallback = (_, _, _) => (0, [configFile.FullName, parentConfig.FullName]); 1078Assert.Equal(expectedAspireSources, NuGetTestHelper.GetEligiblePackageSources(directory.FullName, query)); 1079Assert.Equal(expectedDependencies, NuGetTestHelper.GetEligiblePackageSources(directory.FullName, "Example.Dependency")); 1085File.WriteAllText(file.FullName, File.ReadAllText(file.FullName).Replace("9.4.1", version, StringComparison.Ordinal)); 1091Assert.Equal(originalConfig, File.ReadAllBytes(configFile.FullName)); 1131Assert.Equal(originalParent, await File.ReadAllBytesAsync(parentConfig.FullName)); 1132Assert.Equal(originalConfig, await File.ReadAllBytesAsync(configFile.FullName)); 1133Assert.Equal(originalProject, await File.ReadAllBytesAsync(projectFile.FullName)); 1142Assert.Equal(originalParent, await File.ReadAllBytesAsync(parentConfig.FullName)); 1149Assert.Equal(originalProject, await File.ReadAllBytesAsync(projectFile.FullName)); 1160document.Load(configFile.FullName); 1167Assert.Equal(originalProject, await File.ReadAllBytesAsync(projectFile.FullName)); 1168Assert.Equal(originalConfig, await File.ReadAllBytesAsync(configFile.FullName)); 1193var originalProject = await File.ReadAllBytesAsync(projectFile.FullName); 1195var originalConfig = await File.ReadAllBytesAsync(configFile.FullName); 1209Assert.Equal(originalProject, File.ReadAllBytes(projectFile.FullName)); 1210Assert.Equal(originalConfig, File.ReadAllBytes(configFile.FullName)); 1226Assert.Equal(originalProject, File.ReadAllBytes(projectFile.FullName)); 1227Assert.Equal(originalConfig, File.ReadAllBytes(configFile.FullName)); 1228Assert.Equal([newSource], NuGetTestHelper.GetEligiblePackageSources(directory.FullName, query)); 1237[configFile.FullName, Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".nuget", "NuGet.Config")]); 1243Assert.Contains("Aspire.AppHost.Sdk", File.ReadAllText(file.FullName)); 1244var content = File.ReadAllText(file.FullName).Replace("9.4.1", version, StringComparison.Ordinal); 1245File.WriteAllText(file.FullName, content); 1251Assert.Equal(projectFile.FullName, file.FullName); 1258Assert.Equal(originalConfig, File.ReadAllBytes(configFile.FullName)); 1268File.WriteAllText(configFile.FullName, "<configuration><external /></configuration>"); 1272File.WriteAllText(projectFile.FullName, "// External edit."); 1326await File.ReadAllBytesAsync(projectFile.FullName)); 1328await File.ReadAllBytesAsync(configFile.FullName)); 1352project.MoveTo(Path.Combine(appHostDirectory.FullName, fileName)); 1353var original = await File.ReadAllBytesAsync(project.FullName); 1356useAncestorConfig ? repositoryDirectory.FullName : appHostDirectory.FullName, "nuget.config"); 1364Assert.StartsWith(Path.Combine(appHostDirectory.FullName, ".aspire") + Path.DirectorySeparatorChar, directory.FullName); 1366NuGetTestHelper.GetEligiblePackageSources(directory.FullName, query)); 1374Assert.Equal(appHostDirectory.FullName, directory.FullName); 1382File.WriteAllText(file.FullName, File.ReadAllText(file.FullName).Replace("9.4.1", version, StringComparison.Ordinal)); 1397Assert.StartsWith(Path.Combine(appHostDirectory.FullName, ".aspire") + Path.DirectorySeparatorChar, 1398options.NuGetRestoreTargetsFile.FullName); 1399Assert.Contains("9.4.2", File.ReadAllText(project.FullName)); 1428Assert.Equal(original, await File.ReadAllBytesAsync(project.FullName)); 1451await File.WriteAllTextAsync(projectFile.FullName, """ 1461await File.WriteAllTextAsync(propsFile.FullName, """ 1470var originalProject = await File.ReadAllBytesAsync(projectFile.FullName); 1471var originalProps = await File.ReadAllBytesAsync(propsFile.FullName); 1476var props = System.Xml.Linq.XDocument.Load(propsFile.FullName); 1488Assert.Equal(originalProject, await File.ReadAllBytesAsync(projectFile.FullName)); 1489Assert.Equal(originalProps, await File.ReadAllBytesAsync(propsFile.FullName)); 1498await File.WriteAllTextAsync(configFile.FullName, $$""" 1523var originalProject = await File.ReadAllBytesAsync(projectFile.FullName); 1560Assert.Equal(originalProject, await File.ReadAllBytesAsync(projectFile.FullName)); 1595Assert.Equal([source], NuGetTestHelper.GetEligiblePackageSources(directory.FullName, query)); 1601File.WriteAllText(file.FullName, File.ReadAllText(file.FullName).Replace("9.4.1", version, StringComparison.Ordinal)); 1641projectFile.MoveTo(Path.Combine(directory.FullName, projectFile.Name)); 1657var configPath = Path.Combine(directory.FullName, "NuGet.Config"); 1673Assert.Equal([source], NuGetTestHelper.GetEligiblePackageSources(workingDirectory.FullName, query)); 1679File.WriteAllText(file.FullName, File.ReadAllText(file.FullName).Replace("9.4.1", version, StringComparison.Ordinal)); 1710NuGetTestHelper.GetEligiblePackageSources(directory.FullName, "Aspire.Hosting.Redis")); 1718Assert.Equal(projectFile.DirectoryName, directory.FullName);
Projects\ProjectUpdaterTests.cs (262)
33var file = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs")); 37await File.WriteAllTextAsync(file.FullName, example + $"/* keep */ #:sdk Aspire.AppHost.Sdk{version}\n#:package Aspire.Hosting.AppHost@17.0.0\n" + invalidDirective + code); 43Assert.Equal(example + "/* keep */ #:sdk Aspire.AppHost.Sdk@17.0.1\n" + invalidDirective + code, await File.ReadAllTextAsync(file.FullName)); 68var appHost = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, $"AppHost{extension}")); 70await File.WriteAllTextAsync(appHost.FullName, original); 71var importedFile = Path.Combine(workspace.WorkspaceRoot.FullName, "Directory.Build.props"); 145Assert.Equal(original, await File.ReadAllTextAsync(appHost.FullName)); 192var appHost = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, fileBased ? "apphost.cs" : $"AppHost{extension}")); 204await File.WriteAllTextAsync(appHost.FullName, original); 207await File.WriteAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "Directory.Build.props"), 217? await File.ReadAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "Directory.Build.props")) 219var configFile = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.config.json"); 221var cpmFile = Path.Combine(workspace.WorkspaceRoot.FullName, "Directory.Packages.props"); 262document.WithProperty("DirectoryBuildPropsPath", Path.Combine(workspace.WorkspaceRoot.FullName, "Directory.Build.props")); 264Path.Combine(workspace.WorkspaceRoot.FullName, "Directory.Build.props"); 270Assert.Equal(appHost.FullName, project.FullName); 301Assert.Equal(importedContent, await File.ReadAllTextAsync(Path.Combine(workspace.WorkspaceRoot.FullName, "Directory.Build.props"))); 302Assert.Equal(original, await File.ReadAllTextAsync(appHost.FullName)); 320var props = System.Xml.Linq.XDocument.Load(Path.Combine(workspace.WorkspaceRoot.FullName, "Directory.Build.props")); 336Assert.Equal(original, await File.ReadAllTextAsync(appHost.FullName)); 348var appHost = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 350await File.WriteAllTextAsync(appHost.FullName, original); 388Assert.Equal(original, await File.ReadAllTextAsync(appHost.FullName)); 399var appHostProject = new FileInfo(Path.Combine(realDirectory.FullName, "AppHost.csproj")); 400File.WriteAllText(appHostProject.FullName, "<Project />"); 402var symlinkDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "link"); 403TestSymlinkHelper.TryCreateSymlink(symlinkDirectory, realDirectory.FullName); 416var lowerCaseProject = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.csproj")); 417File.WriteAllText(lowerCaseProject.FullName, "<Project />"); 418var upperCaseProject = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 421File.WriteAllText(upperCaseProject.FullName, "<Project />"); 435var serviceDefaultsProjectFile = new FileInfo(Path.Combine(serviceDefaultsFolder.FullName, "UpdateTester.ServiceDefaults.csproj")); 438var webAppProjectFile = new FileInfo(Path.Combine(webAppFolder.FullName, "UpdateTester.WebApp.csproj")); 441var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 444appHostProjectFile.FullName, 478if (projectFile.FullName == appHostProjectFile.FullName) 483itemsAndProperties.WithProjectReference(webAppProjectFile.FullName); 485else if (projectFile.FullName == webAppProjectFile.FullName) 488itemsAndProperties.WithProjectReference(serviceDefaultsProjectFile.FullName); 490else if (projectFile.FullName == serviceDefaultsProjectFile.FullName) 545var serviceDefaultsProjectFile = new FileInfo(Path.Combine(serviceDefaultsFolder.FullName, "UpdateTester.ServiceDefaults.csproj")); 548var webAppProjectFile = new FileInfo(Path.Combine(webAppFolder.FullName, "UpdateTester.WebApp.csproj")); 551var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 554appHostProjectFile.FullName, 564var aspireConfigFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "aspire.config.json")); 566aspireConfigFile.FullName, 603if (projectFile.FullName == appHostProjectFile.FullName) 608itemsAndProperties.WithProjectReference(webAppProjectFile.FullName); 610else if (projectFile.FullName == webAppProjectFile.FullName) 613itemsAndProperties.WithProjectReference(serviceDefaultsProjectFile.FullName); 615else if (projectFile.FullName == serviceDefaultsProjectFile.FullName) 674Assert.Equal(appHostProjectFile.FullName, item.ProjectFile.FullName); 685Assert.Equal(webAppProjectFile.FullName, item.ProjectFile.FullName); 692var updatedConfig = await File.ReadAllTextAsync(aspireConfigFile.FullName); 709var serviceDefaultsProjectFile = new FileInfo(Path.Combine(serviceDefaultsFolder.FullName, "UpdateTester.ServiceDefaults.csproj")); 712var webAppProjectFile = new FileInfo(Path.Combine(webAppFolder.FullName, "UpdateTester.WebApp.csproj")); 715var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 718appHostProjectFile.FullName, 727var aspireConfigFile = new FileInfo(Path.Combine(appHostFolder.FullName, "aspire.config.json")); 758if (projectFile.FullName == appHostProjectFile.FullName) 763itemsAndProperties.WithProjectReference(webAppProjectFile.FullName); 765else if (projectFile.FullName == webAppProjectFile.FullName) 768itemsAndProperties.WithProjectReference(serviceDefaultsProjectFile.FullName); 770else if (projectFile.FullName == serviceDefaultsProjectFile.FullName) 816var serviceDefaultsProjectFile = new FileInfo(Path.Combine(serviceDefaultsFolder.FullName, "UpdateTester.ServiceDefaults.csproj")); 819var webAppProjectFile = new FileInfo(Path.Combine(webAppFolder.FullName, "UpdateTester.WebApp.csproj")); 822var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 825appHostProjectFile.FullName, 832var aspireConfigFile = new FileInfo(Path.Combine(appHostFolder.FullName, "aspire.config.json")); 834aspireConfigFile.FullName, 881if (projectFile.FullName == appHostProjectFile.FullName) 887itemsAndProperties.WithProjectReference(webAppProjectFile.FullName); 889else if (projectFile.FullName == webAppProjectFile.FullName) 892itemsAndProperties.WithProjectReference(serviceDefaultsProjectFile.FullName); 894else if (projectFile.FullName == serviceDefaultsProjectFile.FullName) 953Assert.Equal(appHostProjectFile.FullName, item.ProjectFile.FullName); 964Assert.Equal(appHostProjectFile.FullName, item.ProjectFile.FullName); 975Assert.Equal(webAppProjectFile.FullName, item.ProjectFile.FullName); 979var updatedConfig = AspireConfigFile.Load(appHostFolder.FullName); 991var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 994appHostProjectFile.FullName, 1035if (projectFile.FullName == appHostProjectFile.FullName) 1086Assert.Equal(appHostProjectFile.FullName, item.ProjectFile.FullName); 1111var sharedProjectFile = new FileInfo(Path.Combine(sharedProjectFolder.FullName, "SharedProject.csproj")); 1114var projectAFile = new FileInfo(Path.Combine(projectAFolder.FullName, "ProjectA.csproj")); 1117var projectBFile = new FileInfo(Path.Combine(projectBFolder.FullName, "ProjectB.csproj")); 1120var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "DiamondTest.AppHost.csproj")); 1123appHostProjectFile.FullName, 1155if (projectFile.FullName == appHostProjectFile.FullName) 1160itemsAndProperties.WithProjectReference(projectAFile.FullName); 1161itemsAndProperties.WithProjectReference(projectBFile.FullName); 1163else if (projectFile.FullName == projectAFile.FullName) 1168itemsAndProperties.WithProjectReference(sharedProjectFile.FullName); 1170else if (projectFile.FullName == projectBFile.FullName) 1175itemsAndProperties.WithProjectReference(sharedProjectFile.FullName); 1177else if (projectFile.FullName == sharedProjectFile.FullName) 1184throw new InvalidOperationException($"Unexpected project file: {projectFile.FullName}"); 1224var sharedProjectUpdates = packagesAddsExecuted.Where(p => p.ProjectFile.FullName == sharedProjectFile.FullName).ToList(); 1232var appHostUpdates = packagesAddsExecuted.Where(p => p.ProjectFile.FullName == appHostProjectFile.FullName).ToList(); 1244var serviceDefaultsProjectFile = new FileInfo(Path.Combine(serviceDefaultsFolder.FullName, "UpdateTester.ServiceDefaults.csproj")); 1247var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 1249var directoryPackagesPropsFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Directory.Packages.props")); 1253appHostProjectFile.FullName, 1262serviceDefaultsProjectFile.FullName, 1276directoryPackagesPropsFile.FullName, 1316if (projectFile.FullName == appHostProjectFile.FullName) 1319itemsAndProperties.WithProjectReference(serviceDefaultsProjectFile.FullName); 1321else if (projectFile.FullName == serviceDefaultsProjectFile.FullName) 1367var updatedContent = await File.ReadAllTextAsync(directoryPackagesPropsFile.FullName); 1380var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 1382var directoryPackagesPropsFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Directory.Packages.props")); 1386appHostProjectFile.FullName, 1398directoryPackagesPropsFile.FullName, 1472var updatedContent = await File.ReadAllTextAsync(directoryPackagesPropsFile.FullName); 1483var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 1485var directoryPackagesPropsFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Directory.Packages.props")); 1489appHostProjectFile.FullName, 1501directoryPackagesPropsFile.FullName, 1576var content = await File.ReadAllTextAsync(directoryPackagesPropsFile.FullName); 1605var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 1607var directoryPackagesPropsFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Directory.Packages.props")); 1612appHostProjectFile.FullName, 1627directoryPackagesPropsFile.FullName, 1663if (projectFile.FullName == appHostProjectFile.FullName) 1701var updatedContent = await File.ReadAllTextAsync(directoryPackagesPropsFile.FullName); 1716var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 1719appHostProjectFile.FullName, 1781var updatedContent = await File.ReadAllTextAsync(appHostProjectFile.FullName); 1795var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 1806await File.WriteAllTextAsync(appHostProjectFile.FullName, ProjectContent); 1855var unchangedContent = await File.ReadAllTextAsync(appHostProjectFile.FullName); 1872var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 1873var directoryPackagesPropsFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Directory.Packages.props")); 1876appHostProjectFile.FullName, 1891directoryPackagesPropsFile.FullName, 1950var updatedProject = await File.ReadAllTextAsync(appHostProjectFile.FullName); 1951var updatedProps = await File.ReadAllTextAsync(directoryPackagesPropsFile.FullName); 1972Assert.False(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"))); 1987var nugetConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"); 2014Assert.StartsWith(Path.Combine(appHostProjectFile.DirectoryName!, ".aspire") + Path.DirectorySeparatorChar, workingDirectory.FullName); 2016Assert.Equal([PackageSources.NuGetOrg], NuGetTestHelper.GetEligiblePackageSources(workingDirectory.FullName, query)); 2037Assert.False(Directory.Exists(previewDirectory.FullName)); 2061var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 2064appHostProjectFile.FullName, 2221var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 2223var directoryPackagesPropsFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Directory.Packages.props")); 2227appHostProjectFile.FullName, 2239directoryPackagesPropsFile.FullName, 2324var content = await File.ReadAllTextAsync(directoryPackagesPropsFile.FullName); 2334var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 2336var directoryPackagesPropsFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Directory.Packages.props")); 2340appHostProjectFile.FullName, 2353directoryPackagesPropsFile.FullName, 2447var content = await File.ReadAllTextAsync(directoryPackagesPropsFile.FullName); 2458var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 2460var directoryPackagesPropsFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Directory.Packages.props")); 2464appHostProjectFile.FullName, 2476directoryPackagesPropsFile.FullName, 2572var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 2574var directoryPackagesPropsFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Directory.Packages.props")); 2578appHostProjectFile.FullName, 2590directoryPackagesPropsFile.FullName, 2683var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 2687appHostProjectFile.FullName, 2721if (projectFile.FullName == appHostProjectFile.FullName) 2777var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 2779var directoryPackagesPropsFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Directory.Packages.props")); 2783appHostProjectFile.FullName, 2795directoryPackagesPropsFile.FullName, 2829if (projectFile.FullName == appHostProjectFile.FullName) 2879var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 2883appHostProjectFile.FullName, 2913if (projectFile.FullName == appHostProjectFile.FullName) 2959var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 2962appHostProjectFile.FullName, 2993if (projectFile.FullName == appHostProjectFile.FullName) 3041var appHostFile = new FileInfo(Path.Combine(appHostFolder.FullName, "apphost.cs")); 3045appHostFile.FullName, 3113var updatedContent = await File.ReadAllTextAsync(appHostFile.FullName); 3134var appHostFile = new FileInfo(Path.Combine(appHostFolder.FullName, "apphost.cs")); 3137appHostFile.FullName, 3208var updatedContent = await File.ReadAllTextAsync(appHostFile.FullName); 3228var appHostFile = new FileInfo(Path.Combine(appHostFolder.FullName, "apphost.cs")); 3231appHostFile.FullName, 3293var updatedContent = await File.ReadAllTextAsync(appHostFile.FullName); 3304var appHostFile = new FileInfo(Path.Combine(appHostFolder.FullName, "apphost.cs")); 3308appHostFile.FullName, 3376var updatedContent = await File.ReadAllTextAsync(appHostFile.FullName); 3386var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 3389appHostProjectFile.FullName, 3472var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 3476appHostProjectFile.FullName, 3539var updatedContent = await File.ReadAllTextAsync(appHostProjectFile.FullName); 3550var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 3554appHostProjectFile.FullName, 3618var updatedContent = await File.ReadAllTextAsync(appHostProjectFile.FullName); 3628var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 3631appHostProjectFile.FullName, 3761var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 3763var directoryPackagesPropsFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "Directory.Packages.props")); 3767appHostProjectFile.FullName, 3784directoryPackagesPropsFile.FullName, 3873Assert.Equal(appHostProjectFile.FullName, packageUpdate.ProjectFile.FullName); 3876var directoryPackagesContent = await File.ReadAllTextAsync(directoryPackagesPropsFile.FullName); 3888var projectFile = Path.Combine(workspace.WorkspaceRoot.FullName, $"AppHost{projectExtension}"); 3921var projectFile = Path.Combine(workspace.WorkspaceRoot.FullName, $"AppHost{projectExtension}"); 3953var projectFile = Path.Combine(workspace.WorkspaceRoot.FullName, $"AppHost{projectExtension}"); 3990var projectFile = Path.Combine(workspace.WorkspaceRoot.FullName, $"AppHost{projectExtension}"); 4026var projectFile = Path.Combine(workspace.WorkspaceRoot.FullName, $"AppHost{projectExtension}"); 4059var projectFile = Path.Combine(workspace.WorkspaceRoot.FullName, $"AppHost{projectExtension}"); 4096var projectFile = Path.Combine(workspace.WorkspaceRoot.FullName, $"AppHost{projectExtension}"); 4114var directoryPackagesPropsFile = Path.Combine(workspace.WorkspaceRoot.FullName, "Directory.Packages.props"); 4167var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "Issue15891.AppHost.csproj")); 4170appHostProjectFile.FullName, 4206if (projectFile.FullName == appHostProjectFile.FullName) 4221throw new InvalidOperationException($"Unexpected project file: {projectFile.FullName}"); 4281var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 4284appHostProjectFile.FullName, 4358var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 4361appHostProjectFile.FullName, 4412var existingConfigFile = new FileInfo(Path.Combine(executionContext.WorkingDirectory.FullName, "nuget.config")); 4414existingConfigFile.FullName, 4423var originalConfig = await File.ReadAllBytesAsync(existingConfigFile.FullName); 4435Assert.Equal(originalConfig, await File.ReadAllBytesAsync(existingConfigFile.FullName)); 4444var appHostProjectFile = new FileInfo(Path.Combine(appHostFolder.FullName, "UpdateTester.AppHost.csproj")); 4447appHostProjectFile.FullName, 4510var document = System.Xml.Linq.XDocument.Load(createdConfig.FullName);
Projects\RepositoryToolUpdaterTests.cs (35)
34Assert.Equal(manifestPath, manifest.File.FullName); 51Assert.Equal(configPath, Assert.Single(manifests).File.FullName); 60var unrelatedPath = Path.Combine(child.CreateSubdirectory(".config").FullName, "dotnet-tools.json"); 68Assert.Equal(manifestPath, Assert.Single(manifests).File.FullName); 80var rootManifestPath = Path.Combine(child.CreateSubdirectory(".config").FullName, "dotnet-tools.json"); 90Assert.Equal(npmPath, manifest.File.FullName); 105var gitPath = Path.Combine(root.FullName, ".git"); 130Assert.Equal(expectedPaths, manifests.Select(manifest => manifest.File.FullName)); 142var unrelatedPath = Path.Combine(child.FullName, "package.json"); 149Assert.Equal(nearestPath, Assert.Single(manifests).File.FullName); 167var link = Path.Combine(root.FullName, directoryLink ? ".config" : "package.json"); 168TestSymlinkHelper.TryCreateSymlink(link, directoryLink ? targetDirectory.FullName : target, directoryLink); 169var alias = Path.Combine(workspace.WorkspaceRoot.FullName, "alias"); 170TestSymlinkHelper.TryCreateSymlink(alias, root.FullName); 183Assert.Equal(await File.ReadAllTextAsync(target), await File.ReadAllTextAsync(updated.File.FullName)); 193var manifestPath = Path.Combine(configDirectory.FullName, "dotnet-tools.json"); 212var unrelatedPath = Path.Combine(root.FullName, "package.json"); 216var localManifestPath = Path.Combine(workingDirectory.CreateSubdirectory(".config").FullName, "dotnet-tools.json"); 223Assert.Equal(configDirectory.FullName, directory.FullName); 240Assert.Equal(manifestPath, Assert.Single(manifests).File.FullName); 253var manifestPath = Path.Combine(root.FullName, "package.json"); 317var lockPath = Path.Combine(root.FullName, "package-lock.json"); 385Assert.False(File.Exists(Path.Combine(root.FullName, "package-lock.json"))); 386Assert.False(File.Exists(Path.Combine(root.FullName, "npm-shrinkwrap.json"))); 461var lockPath = Path.Combine(root.FullName, "package-lock.json"); 552var path = Path.Combine(root.FullName, isNpm ? "package.json" : "dotnet-tools.json"); 576var lockPath = Path.Combine(root.FullName, "package-lock.json"); 602foreach (var path in Directory.EnumerateFiles(root.FullName, "*", SearchOption.AllDirectories)) 609var dotNetPath = Path.Combine(root.FullName, "dotnet-tools.json"); 610var npmPath = Path.Combine(root.FullName, "package.json"); 629Assert.Equal(originalFiles.Keys.Order(), Directory.EnumerateFiles(root.FullName, "*", SearchOption.AllDirectories).Order()); 731var path = Path.Combine(directory.FullName, isNpm ? "package.json" : "dotnet-tools.json"); 762var packageLockPath = Path.Combine(directory.FullName, "package-lock.json"); 763var shrinkwrapPath = Path.Combine(directory.FullName, "npm-shrinkwrap.json");
Projects\RunningInstanceManagerTests.cs (1)
42var socketPath = Path.Combine(socketDirectory.FullName, "a.sock");
Projects\TypeScriptAppHostToolchainResolverTests.cs (50)
18File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "package.json"), "{ \"packageManager\": \"bun@1.2.0\" }"); 29File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "package.json"), "{ \"packageManager\": \"deno@2.9.0\" }"); 42var packageJsonPath = Path.Combine(workspace.WorkspaceRoot.FullName, "package.json"); 57File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "package.json"), "{ \"name\": \"apphost\" }"); 58File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "deno.lock"), "{ \"version\": \"5\" }"); 63Assert.Equal($"deno.lock found in {workspace.WorkspaceRoot.FullName}", resolution.Reason); 70File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "package.json"), "{ \"name\": \"apphost\" }"); 71File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "deno.json"), "{}"); 76Assert.Equal($"deno.json found in {workspace.WorkspaceRoot.FullName}", resolution.Reason); 83File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "package.json"), "{ \"name\": \"apphost\" }"); 84File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "deno.jsonc"), "{ /* Deno configuration */ }"); 89Assert.Equal($"deno.jsonc found in {workspace.WorkspaceRoot.FullName}", resolution.Reason); 96File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "package.json"), "{ \"name\": \"apphost\" }"); 97File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "pnpm-lock.yaml"), "lockfileVersion: '9.0'"); 108var packageJsonPath = Path.Combine(workspace.WorkspaceRoot.FullName, "package.json"); 120File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "package.json"), "{ \"packageManager\": \"yarn@4.14.1\" }"); 131File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "package.json"), "{ \"name\": \"apphost\" }"); 132var yarnLockPath = Path.Combine(workspace.WorkspaceRoot.FullName, "yarn.lock"); 146File.WriteAllText(Path.Combine(appHostDirectory.FullName, "package.json"), "{ \"name\": \"apphost\" }"); 147File.WriteAllText(Path.Combine(parentDirectory.FullName, "package.json"), "{ \"name\": \"workspace\" }"); 148var yarnLockPath = Path.Combine(parentDirectory.FullName, "yarn.lock"); 162File.WriteAllText(Path.Combine(parentDirectory.FullName, "package.json"), "{ \"name\": \"workspace\" }"); 163File.WriteAllText(Path.Combine(parentDirectory.FullName, "yarn.lock"), string.Empty); 164File.WriteAllText(Path.Combine(appHostDirectory.FullName, "package.json"), "{ \"name\": \"apphost\" }"); 165File.WriteAllText(Path.Combine(appHostDirectory.FullName, "package-lock.json"), "{}"); 170Assert.Equal($"package-lock.json found in {appHostDirectory.FullName}", resolution.Reason); 177File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "package.json"), "{ \"name\": \"apphost\" }"); 178File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "package-lock.json"), "{}"); 179File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "yarn.lock"), string.Empty); 184Assert.Equal($"yarn.lock found in {workspace.WorkspaceRoot.FullName}", resolution.Reason); 191File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "package.json"), "{ \"name\": \"apphost\" }"); 192Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, ".yarn")); 203File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "package.json"), "{ \"name\": \"apphost\" }"); 214File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "package.json"), "{ \"name\": \"apphost\" }"); 215File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "yarn.lock"), string.Empty); 225Assert.Equal($"Selected TypeScript AppHost package manager 'yarn' because yarn.lock found in {workspace.WorkspaceRoot.FullName}.", write.Message); 234File.WriteAllText(Path.Combine(appHostDirectory.Parent!.FullName, "package.json"), "{ \"packageManager\": \"pnpm@10.12.1\" }"); 235File.WriteAllText(Path.Combine(appHostDirectory.FullName, "package.json"), "{ \"name\": \"apphost\" }"); 248File.WriteAllText(Path.Combine(appHostDirectory.Parent!.FullName, "package.json"), "{ \"packageManager\": \"pnpm@10.12.1\" }"); 249File.WriteAllText(Path.Combine(appHostDirectory.FullName, "package.json"), "{ \"packageManager\": \"bun@1.2.0\" }"); 254Assert.Equal($"packageManager 'bun@1.2.0' found in {Path.Combine(appHostDirectory.FullName, "package.json")}", resolution.Reason); 263File.WriteAllText(Path.Combine(appHostDirectory.Parent!.FullName, "package.json"), "{ \"packageManager\": \"yarn@4.14.1\" }"); 264File.WriteAllText(Path.Combine(appHostDirectory.FullName, "package.json"), "{ \"name\": \"apphost\" }"); 265File.WriteAllText(Path.Combine(appHostDirectory.FullName, "pnpm-lock.yaml"), "lockfileVersion: '9.0'"); 270Assert.Equal($"pnpm-lock.yaml found in {appHostDirectory.FullName}", resolution.Reason); 277File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "package.json"), "{ \"packageManager\": \"bun@1.2.0\" }"); 304homeDirectory: workspace.WorkspaceRoot.FullName); 317homeDirectory: InvertCasing(workspace.WorkspaceRoot.FullName)); 330homeDirectory: InvertCasing(workspace.WorkspaceRoot.FullName)); 343homeDirectory: InvertCasing(workspace.WorkspaceRoot.FullName));
Scaffolding\ChannelReseedTests.cs (2)
63var reloaded = AspireConfigFile.Load(workspace.WorkspaceRoot.FullName); 78var appHostServerProject = new CapturingAppHostServerProject(workspace.WorkspaceRoot.FullName);
Scaffolding\ScaffoldingServiceTests.cs (19)
36File.WriteAllText(Path.Combine(rootDirectory.FullName, "package.json"), "{}"); 41Path.Combine(rootDirectory.FullName, ScaffoldingService.BrownfieldTypeScriptAppHostDirectoryName), 42scaffoldDirectory.FullName); 59Assert.Equal(rootDirectory.FullName, scaffoldDirectory.FullName); 74File.WriteAllText(Path.Combine(rootDirectory.FullName, "package.json"), "{}"); 78Assert.Equal(rootDirectory.FullName, scaffoldDirectory.FullName); 156var appHostDirectory = Directory.CreateDirectory(Path.Combine(rootDirectory.FullName, ScaffoldingService.BrownfieldTypeScriptAppHostDirectoryName)); 157File.WriteAllText(Path.Combine(rootDirectory.FullName, "package.json"), "{ \"packageManager\": \"npm@10.0.0\" }"); 158File.WriteAllText(Path.Combine(appHostDirectory.FullName, "package.json"), "{ \"packageManager\": \"pnpm@10.0.0\" }"); 228var scaffoldDirectory = Directory.CreateDirectory(Path.Combine(rootDirectory.FullName, ScaffoldingService.BrownfieldTypeScriptAppHostDirectoryName)); 251File.WriteAllText(Path.Combine(rootDirectory.FullName, ".gitignore"), "node_modules/\n"); 252File.WriteAllText(Path.Combine(rootDirectory.FullName, "package.json"), "{}"); 253File.WriteAllText(Path.Combine(rootDirectory.FullName, "apphost.mts"), string.Empty); 256rootDirectory.FullName, 290Directory.CreateDirectory(Path.Combine(rootDirectory.FullName, ".vscode")); 291File.WriteAllText(Path.Combine(rootDirectory.FullName, ".vscode", "settings.json"), "{}"); 294rootDirectory.FullName,
Secrets\SecretStoreResolverTests.cs (30)
24var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 25await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 30var syntheticId = AspireSecretsPathHelper.ComputeSyntheticAppHostId(appHostFile.FullName); 33Assert.Null(XDocument.Load(appHostFile.FullName).Descendants("UserSecretsId").SingleOrDefault()); 54var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 55await File.WriteAllTextAsync(appHostFile.FullName, "<Project />"); 76Assert.Null(XDocument.Load(appHostFile.FullName).Descendants("UserSecretsId").SingleOrDefault()); 87Assert.Equal(userSecretsId, XDocument.Load(appHostFile.FullName).Descendants("UserSecretsId").Single().Value); 103var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 105await File.WriteAllTextAsync(appHostFile.FullName, $"<Project><PropertyGroup><UserSecretsId>{userSecretsId}</UserSecretsId></PropertyGroup></Project>"); 106var originalProject = await File.ReadAllTextAsync(appHostFile.FullName); 111workspace.WorkspaceRoot, AspireSecretsPathHelper.ComputeSyntheticAppHostId(appHostFile.FullName), "Production"); 135Assert.Equal(originalProject, await File.ReadAllTextAsync(appHostFile.FullName)); 142var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 144await File.WriteAllTextAsync(appHostFile.FullName, $"<Project><PropertyGroup><UserSecretsId>{userSecretsId}</UserSecretsId></PropertyGroup></Project>"); 146workspace.WorkspaceRoot, AspireSecretsPathHelper.ComputeSyntheticAppHostId(appHostFile.FullName), "Production"); 189var appHostFile = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost.csproj")); 191await File.WriteAllTextAsync(appHostFile.FullName, $"<Project><PropertyGroup><UserSecretsId>{userSecretsId}</UserSecretsId></PropertyGroup></Project>"); 195var syntheticId = AspireSecretsPathHelper.ComputeSyntheticAppHostId(appHostFile.FullName); 281Assert.Equal(Path.Combine(homeDirectory.FullName, ".aspire", "secrets", "apphost-id", "Production.json"), path); 326Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "secrets", "apphost-id", $"{environment}.json"), 426var directory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "shared")); 430File.SetUnixFileMode(directory.FullName, sharedMode); 431var path = Path.Combine(directory.FullName, "secrets.json"); 446Assert.Equal(sharedMode, File.GetUnixFileMode(directory.FullName)); 450Assert.Single(Directory.EnumerateFiles(directory.FullName)); 463var path = Path.Combine(workspace.WorkspaceRoot.FullName, "secrets.json"); 487Assert.Empty(Directory.EnumerateFiles(workspace.WorkspaceRoot.FullName, ".secrets.json.*.tmp")); 500var directory = Path.Combine(workspace.WorkspaceRoot.FullName, "new", "nested"); 521var projectPath = Path.Combine(directory.FullName, "AppHost.csproj");
Telemetry\AgentTelemetryPersistenceTests.cs (2)
129}, workspace.WorkspaceRoot.FullName, new RemoteInvokeOptions { TimeOut = TestConstants.LongTimeoutDuration }); 395var storage = workspace.CreateDirectory("storage").FullName;
Telemetry\AgentTelemetryUploaderTests.cs (2)
16var storage = workspace.CreateDirectory("storage").FullName; 52var storage = workspace.CreateDirectory("storage").FullName;
Templating\CliTemplateFactoryConfigLineEndingTests.cs (1)
33var outputDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "out");
Templating\DotNetTemplateFactoryTests.cs (17)
39var path = Path.Combine(dir.FullName, "nuget.config"); 63var nugetConfigPath = Path.Combine(workingDir.FullName, "nuget.config"); 95var nugetConfigPath = Path.Combine(workingDir.FullName, "nuget.config"); 108var outputDir = Directory.CreateDirectory(Path.Combine(workingDir.FullName, "MyProject")); 133var parentConfigPath = Path.Combine(workingDir.FullName, "nuget.config"); 139var outputConfigPath = Path.Combine(outputDir.FullName, "nuget.config"); 152var outputDir = Directory.CreateDirectory(Path.Combine(workingDir.FullName, "MyProject")); 175var outputConfigPath = Path.Combine(outputDir.FullName, "nuget.config"); 189var outputDir = Directory.CreateDirectory(Path.Combine(workingDir.FullName, "MyProject")); 202var workingConfigPath = Path.Combine(workingDir.FullName, "nuget.config"); 206var outputConfigPath = Path.Combine(outputDir.FullName, "nuget.config"); 219var outputDir = Directory.CreateDirectory(Path.Combine(workingDir.FullName, "MyProject")); 228var workingConfigPath = Path.Combine(workingDir.FullName, "nuget.config"); 229var outputConfigPath = Path.Combine(outputDir.FullName, "nuget.config"); 240var outputDir = Directory.CreateDirectory(Path.Combine(workingDir.FullName, "MyProject")); 249var workingConfigPath = Path.Combine(workingDir.FullName, "nuget.config"); 250var outputConfigPath = Path.Combine(outputDir.FullName, "nuget.config");
Templating\JavaStarterScaffoldTests.cs (2)
117Assert.Equal(outputDirectory, toolchain.ProjectDirectory.FullName); 151return new ScaffoldedTemplate(workspace, Path.Combine(workspace.WorkspaceRoot.FullName, outputDirectoryName));
Templating\OutputPathHelperTests.cs (22)
15var result = OutputPathHelper.GetUniqueDefaultOutputPath("aspire-starter", workspace.WorkspaceRoot.FullName); 26var result = OutputPathHelper.GetUniqueDefaultOutputPath("aspire-starter", workspace.WorkspaceRoot.FullName); 36File.WriteAllText(Path.Combine(dir.FullName, "file.txt"), "content"); 38var result = OutputPathHelper.GetUniqueDefaultOutputPath("aspire-starter", workspace.WorkspaceRoot.FullName); 52File.WriteAllText(Path.Combine(dir.FullName, "file.txt"), "content"); 55var result = OutputPathHelper.GetUniqueDefaultOutputPath("aspire-starter", workspace.WorkspaceRoot.FullName); 67File.WriteAllText(Path.Combine(dir.FullName, "file.txt"), "content"); 70var result = OutputPathHelper.GetUniqueDefaultOutputPath("aspire-starter", workspace.WorkspaceRoot.FullName); 80var result = OutputPathHelper.GetUniqueDefaultOutputPath("my\0app", workspace.WorkspaceRoot.FullName); 90var result = OutputPathHelper.GetUniqueDefaultOutputPath("\0", workspace.WorkspaceRoot.FullName); 99var path = Path.Combine(workspace.WorkspaceRoot.FullName, "new-dir"); 101var result = OutputPathHelper.ValidateOutputPath(path, workspace.WorkspaceRoot.FullName); 112var result = OutputPathHelper.ValidateOutputPath(dir.FullName, workspace.WorkspaceRoot.FullName); 122File.WriteAllText(Path.Combine(dir.FullName, "file.txt"), "content"); 124var result = OutputPathHelper.ValidateOutputPath(dir.FullName, workspace.WorkspaceRoot.FullName); 127Assert.Contains(dir.FullName, result); 134var validator = OutputPathHelper.CreateOutputPathValidator(workspace.WorkspaceRoot.FullName); 147var validator = OutputPathHelper.CreateOutputPathValidator(workspace.WorkspaceRoot.FullName); 159File.WriteAllText(Path.Combine(dir.FullName, "file.txt"), "content"); 161var validator = OutputPathHelper.CreateOutputPathValidator(workspace.WorkspaceRoot.FullName);
Templating\TemplateEngineFactoryGitCheckoutTests.cs (23)
29new TemplateSource(".", Path.GetRelativePath(workspace.WorkspaceRoot.FullName, repository.FullName), commit), 35Assert.Equal(commit, (await File.ReadAllTextAsync(Path.Combine(Directory.GetParent(destination)!.FullName, ".git", "HEAD"))).Trim()); 44await File.WriteAllBytesAsync(Path.Combine(repository.FullName, "content"), [4, 5, 6]); 45await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "commit", "-am", "Move branch"); 49Assert.Single(await factory.GetTemplatesAsync(new TemplateSource(".", repository.FullName, commit), TestContext.Current.CancellationToken)); 59await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "tag", "-a", "same", "-m", "Annotated tag"); 60await File.WriteAllBytesAsync(Path.Combine(repository.FullName, "content"), [4, 5, 6]); 61await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "commit", "-am", "Move branch"); 62await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "branch", "same"); 63var branchCommit = (await File.ReadAllTextAsync(Path.Combine(repository.FullName, ".git", "refs", "heads", "same"))).Trim(); 67Assert.Single(await factory.GetTemplatesAsync(new TemplateSource(".", repository.FullName, "same"), TestContext.Current.CancellationToken)); 69Assert.Single(await factory.GetTemplatesAsync(new TemplateSource(".", repository.FullName, "refs/tags/same"), TestContext.Current.CancellationToken)); 107Assert.Single(await factory.GetTemplatesAsync(new TemplateSource(".", repository.FullName, commit), TestContext.Current.CancellationToken)); 110Assert.Equal(commit, (await File.ReadAllTextAsync(Path.Combine(repository.FullName, ".git", "refs", "heads", "main"))).Trim()); 136var file = Path.Combine(repository.FullName, path); 140await File.WriteAllTextAsync(Path.Combine(configuration.FullName, "template.json"), 142await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "init", "--initial-branch=main", $"--object-format={objectFormat}"); 143await GitTestHelper.ConfigureGitIdentityAsync(repository.FullName, outputHelper); 144await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "config", "core.autocrlf", "false"); 145await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "add", "."); 146await GitTestHelper.RunGitAsync(repository.FullName, outputHelper, "commit", "-m", "Add content"); 147var commit = (await File.ReadAllTextAsync(Path.Combine(repository.FullName, ".git", "refs", "heads", "main"))).Trim();
Templating\TemplateEngineFactoryGitTests.cs (4)
39Assert.Equal(workspace.Path, command.WorkingDirectory.FullName); 44Assert.Equal(destination, command.WorkingDirectory.FullName); 215await File.WriteAllTextAsync(Path.Combine(configuration.FullName, "template.json"), 217await File.WriteAllTextAsync(Path.Combine(destination.FullName, "content.txt"), "template content", token);
Templating\TemplateGitIgnoreTests.cs (1)
30.Select(path => Directory.GetParent(Path.GetDirectoryName(path)!)!.FullName)
Templating\TemplateNuGetConfigServiceTests.cs (99)
55? service.PromptToCreateNuGetConfigAsync(channel, output.FullName, TestContext.Current.CancellationToken) 56: service.CreateNuGetConfigIfMissingAsync(channel, output.FullName, TestContext.Current.CancellationToken)); 102await service.PromptToCreateNuGetConfigAsync(channel, output.FullName, CancellationToken.None); 106await service.CreateNuGetConfigIfMissingAsync(channel, output.FullName, CancellationToken.None); 112NuGetTestHelper.GetEligiblePackageSources(output.FullName, "Aspire.Hosting.Redis")); 113await Verify(await File.ReadAllTextAsync(Path.Combine(output.FullName, "nuget.config"))) 133source = workspace.CreateDirectory(source).FullName; 143await service.PromptToCreateNuGetConfigAsync(channel, builtInOutput.FullName, CancellationToken.None); 144await service.CreateNuGetConfigIfMissingAsync(channel, templateEngineOutput.FullName, CancellationToken.None); 146Assert.Equal(builtInCreatesConfig, File.Exists(Path.Combine(builtInOutput.FullName, "nuget.config"))); 147Assert.Equal(templateEngineCreatesConfig, File.Exists(Path.Combine(templateEngineOutput.FullName, "nuget.config"))); 151Assert.Equal(expectedSources, NuGetTestHelper.GetEligiblePackageSources(builtInOutput.FullName, "Aspire.Hosting"), 156Assert.Equal(expectedSources, NuGetTestHelper.GetEligiblePackageSources(templateEngineOutput.FullName, "Aspire.Hosting"), 170var path = Path.Combine(output.FullName, fileName); 187await service.CreateNuGetConfigIfMissingAsync(channel, output.FullName, CancellationToken.None); 188await service.CreateNuGetConfigIfMissingAsync(channel, output.FullName, CancellationToken.None); 191Assert.Equal([fileName], Directory.GetFiles(output.FullName).Select(Path.GetFileName)); 221var nestedPath = Path.Combine(nested.FullName, "nuget.config"); 230await service.CreateNuGetConfigIfMissingAsync(channel, output.FullName, CancellationToken.None); 231var generated = await File.ReadAllBytesAsync(Path.Combine(output.FullName, "nuget.config")); 232await service.CreateNuGetConfigIfMissingAsync(channel, output.FullName, CancellationToken.None); 234Assert.Equal(generated, await File.ReadAllBytesAsync(Path.Combine(output.FullName, "nuget.config"))); 237Assert.Equal(["https://daily.example/v3/index.json"], NuGetTestHelper.GetEligiblePackageSources(output.FullName, "Aspire.Hosting")); 238Assert.Equal(["https://enterprise.example/v3/index.json"], NuGetTestHelper.GetEligiblePackageSources(output.FullName, "Company.Library")); 239Assert.Equal(["https://nested.example/v3/index.json"], NuGetTestHelper.GetEligiblePackageSources(nested.FullName, "Aspire.Hosting")); 240await Verify(await File.ReadAllTextAsync(Path.Combine(output.FullName, "nuget.config"))) 250Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"), 275var sourceOverride = workspace.CreateDirectory("aspire-pr-hive/packages").FullName; 277Assert.True(await service.CreateNuGetConfigForSourceOverrideAsync(sourceOverride, channelName: null, outputDirectory.FullName, CancellationToken.None)); 279Assert.Equal([sourceOverride], NuGetTestHelper.GetEligiblePackageSources(outputDirectory.FullName, "Aspire.Hosting")); 280Assert.Empty(NuGetTestHelper.GetEligiblePackageSources(outputDirectory.FullName, "Contoso.Package")); 281Assert.Empty(NuGetTestHelper.GetEligiblePackageSources(outputDirectory.FullName, "Example.Dependency")); 282var settings = NuGetTestHelper.LoadSettings(outputDirectory.FullName); 295var sourceOverride = workspace.CreateDirectory("aspire-pr-hive/packages").FullName; 324Assert.True(await service.CreateNuGetConfigForSourceOverrideAsync(sourceOverride, channelName: "daily", outputDirectory.FullName, CancellationToken.None)); 326var doc = XDocument.Load(Path.Combine(outputDirectory.FullName, "nuget.config")); 329Assert.Empty(NuGetTestHelper.GetEligiblePackageSources(outputDirectory.FullName, "Example.Dependency")); 341Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"), 351Path.Combine(outputDirectory.FullName, "nuget.config"), 368var projectConfigPath = Path.Combine(outputDirectory.FullName, "nuget.config"); 369var parentConfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"); 374sourceOverride, channelName: null, outputDirectory.FullName, CancellationToken.None)); 389Assert.False(await service.CreateNuGetConfigForSourceOverrideAsync(sourceOverride: null, channelName: "daily", workspace.WorkspaceRoot.FullName, CancellationToken.None)); 390Assert.False(await service.CreateNuGetConfigForSourceOverrideAsync(sourceOverride: "", channelName: "daily", workspace.WorkspaceRoot.FullName, CancellationToken.None)); 391Assert.False(await service.CreateNuGetConfigForSourceOverrideAsync(sourceOverride: " ", channelName: "daily", workspace.WorkspaceRoot.FullName, CancellationToken.None)); 407workspace.WorkspaceRoot.FullName, 409Assert.False(File.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, "nuget.config"))); 419await service.PromptToCreateNuGetConfigAsync(channelName: null, outputPath: Directory.CreateTempSubdirectory().FullName, CancellationToken.None); 420await service.PromptToCreateNuGetConfigAsync(channelName: "", outputPath: Directory.CreateTempSubdirectory().FullName, CancellationToken.None); 421await service.PromptToCreateNuGetConfigAsync(channelName: " ", outputPath: Directory.CreateTempSubdirectory().FullName, CancellationToken.None); 434Assert.False(await service.ConfigureDotNetAppHostNuGetConfigAsync(channelName: null, outputPath: dir.FullName, CancellationToken.None)); 435Assert.False(await service.ConfigureDotNetAppHostNuGetConfigAsync(channelName: "", outputPath: dir.FullName, CancellationToken.None)); 436Assert.False(await service.ConfigureDotNetAppHostNuGetConfigAsync(channelName: " ", outputPath: dir.FullName, CancellationToken.None)); 563var doc = XDocument.Load(nugetConfigFile.FullName); 622var doc = XDocument.Load(nugetConfigFile.FullName); 675packagesDirectory.FullName, 679Path.Combine(nestedDirectory.FullName, "Aspire.ProjectTemplates.13.5.0.nupkg"), 682var sourceOverride = packagesDirectory.FullName.Replace('\\', '/'); 743var doc = XDocument.Load(nugetConfigFile.FullName); 819var hivesDir = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire", "hives")); 877File.WriteAllText(Path.Combine(packagesDirectory.FullName, "Aspire.ProjectTemplates.13.5.0.nupkg"), string.Empty); 878File.WriteAllText(Path.Combine(prPackagesDirectory.FullName, "Aspire.ProjectTemplates.13.6.0-dev.nupkg"), string.Empty); 912[new PackageMapping("Aspire*", prPackagesDirectory.FullName.Replace('\\', '/'))], 920[new PackageMapping("Aspire*", packagesDirectory.FullName.Replace('\\', '/'))], 951File.WriteAllText(Path.Combine(packagesDirectory.FullName, "Aspire.ProjectTemplates.13.5.0.nupkg"), string.Empty); 952File.WriteAllText(Path.Combine(packagesDirectory.FullName, "Aspire.ProjectTemplates.13.6.0.nupkg"), string.Empty); 960[new PackageMapping("Aspire*", packagesDirectory.FullName.Replace('\\', '/'))], 989packagesDirectory.FullName, 993Path.Combine(nestedDirectory.FullName, "Aspire.ProjectTemplates.13.6.0.nupkg"), 1003[new PackageMapping("Aspire*", packagesDirectory.FullName.Replace('\\', '/'))], 1030File.WriteAllText(Path.Combine(packagesDirectory.FullName, "Aspire.ProjectTemplates.13.6.0-dev.nupkg"), string.Empty); 1031File.WriteAllText(Path.Combine(packagesDirectory.FullName, "Aspire.ProjectTemplates.99.0.0.nupkg"), string.Empty); 1039[new PackageMapping("Aspire*", packagesDirectory.FullName.Replace('\\', '/'))], 1066File.WriteAllText(Path.Combine(packagesDirectory.FullName, "Aspire.ProjectTemplates.99.0.0.nupkg"), string.Empty); 1074[new PackageMapping("Aspire*", packagesDirectory.FullName.Replace('\\', '/'))], 1107File.WriteAllText(Path.Combine(packagesDirectory.FullName, "Aspire.ProjectTemplates.13.6.0-dev.nupkg"), string.Empty); 1108File.WriteAllText(Path.Combine(packagesDirectory.FullName, "Aspire.ProjectTemplates.13.7.0-dev.nupkg"), string.Empty); 1129[new PackageMapping("Aspire*", packagesDirectory.FullName.Replace('\\', '/'))], 1208File.WriteAllText(Path.Combine(packagesDir.FullName, "Aspire.ProjectTemplates.13.5.0.nupkg"), string.Empty); 1230[new PackageMapping("Aspire*", packagesDir.FullName.Replace('\\', '/'))], 1260packagesDir.FullName, 1279[new PackageMapping("Aspire*", new Uri(packagesDir.FullName).AbsoluteUri)], 1358await service.PromptToCreateNuGetConfigAsync(channelName: "daily", outputDir.FullName, CancellationToken.None); 1361var configPath = Path.Combine(outputDir.FullName, "nuget.config"); 1370NuGetTestHelper.GetEligiblePackageSources(outputDir.FullName, "Aspire.Hosting")); 1397await service.PromptToCreateNuGetConfigAsync(channelName: "stable", outputDir.FullName, CancellationToken.None); 1400Assert.False(File.Exists(Path.Combine(outputDir.FullName, "nuget.config"))); 1411Path.Combine(outputDir.FullName, "nuget.config"), 1441var configPath = Path.Combine(outputDir.FullName, "nuget.config"); 1444await service.PromptToCreateNuGetConfigAsync(channelName: "stable", outputDir.FullName, CancellationToken.None); 1465Path.Combine(outputDir.FullName, "nuget.config"), 1492var result = await service.ConfigureDotNetAppHostNuGetConfigAsync(channelName: "stable", outputDir.FullName, CancellationToken.None); 1494var configPath = Path.Combine(outputDir.FullName, "nuget.config"); 1505NuGetTestHelper.GetEligiblePackageSources(outputDir.FullName, "Aspire.Hosting")); 1508NuGetTestHelper.GetEligiblePackageSources(outputDir.FullName, "Example.Dependency")); 1524var configPath = Path.Combine(outputDir.FullName, "nuget.config"); 1555PackageChannelNames.Stable, outputDir.FullName, TestContext.Current.CancellationToken); 1560NuGetTestHelper.GetEligiblePackageSources(outputDir.FullName, "Aspire.Hosting.Redis")); 1563NuGetTestHelper.GetEligiblePackageSources(outputDir.FullName, "Company.Package"));
Templating\TemplateSourceConfigurationTests.cs (1)
21: workspace.CreateDirectory("project").FullName;
tests\Shared\Processes\ChildProcessTests.cs (1)
389var cleanupPath = Path.Combine(fixture.CreateDirectory().FullName, "cleanup-completed");
tests\Shared\Processes\ProcessSupervisorTests.cs (3)
36var shim = Path.Combine(directory.FullName, "literal %PATH%! shim.cmd"); 47var startInfo = new ProcessStartInfo { WorkingDirectory = directory.FullName }; 72var completionPath = Path.Combine(directory.FullName, "exit-code");
tests\Shared\Processes\ProcessTestFixture.cs (11)
47while (!File.Exists(Path.Combine(repository.FullName, "Aspire.slnx"))) 61var sourcePaths = sources.Select(source => Path.Combine(repository.FullName, "src", "Shared", source)).Concat( 63Path.Combine(repository.FullName, "tests", "Shared", "AsyncTestHelpers.cs"), 64Path.Combine(repository.FullName, "tests", "Aspire.TestUtilities", "PlatformDetection.cs") 68var project = Path.Combine(_directory.FullName, "ProcessTestHost.csproj"); 84await File.WriteAllTextAsync(Path.Combine(_directory.FullName, "Program.cs"), HostProgram); 85await RunDotnetAsync(repository.FullName, 86["restore", project, "--configfile", Path.Combine(repository.FullName, "NuGet.config"), "--verbosity", "quiet"]); 87await RunDotnetAsync(repository.FullName, ["build", project, "--no-restore", "--verbosity", "quiet"]); 88_assemblyPath = Path.Combine(_directory.FullName, "bin", "Debug", targetFramework, "ProcessTestHost.dll"); 97WorkingDirectory = _directory.FullName,
tests\Shared\TemporaryWorkspace.cs (11)
21public string Path => workspaceDirectory.FullName; 30if (s_preservedWorkspaces.ContainsKey(workspaceDirectory.FullName)) 32outputHelper.WriteLine($"Preserved temporary workspace at: {workspaceDirectory.FullName}"); 36outputHelper.WriteLine($"Disposing temporary workspace at: {workspaceDirectory.FullName}"); 44outputHelper.WriteLine($"Failed to delete temporary workspace '{workspaceDirectory.FullName}': {ex.Message}"); 105throw new IOException($"Cannot delete '{file.FullName}': {ex.Message}", ex); 116throw new IOException($"Cannot delete directory '{directory.FullName}': {ex.Message}", ex); 156s_preservedWorkspaces[workspaceDirectory.FullName] = 0; 157outputHelper.WriteLine($"Marked temporary workspace for preservation: {workspaceDirectory.FullName}"); 194outputHelper.WriteLine($"Temporary workspace created at: {workspaceDirectory.FullName}"); 198TestContext.Current?.KeyValueStorage["WorkspacePath"] = workspaceDirectory.FullName;
TestServices\FakePlaywrightServices.cs (4)
66_bundleDirectory = new DirectoryInfo(Path.Combine(executionContext.WorkingDirectory.FullName, ".fake-aspire-skills-bundle")); 164var path = Path.Combine(_bundleDirectory.FullName, "skills", skillName, relativePath); 190await File.WriteAllTextAsync(Path.Combine(_bundleDirectory.FullName, "skill-manifest.json"), manifestJson, cancellationToken); 205Sha512 = ComputeSha512(Path.Combine(_bundleDirectory.FullName, "skills", skillName, entry.Key.RelativePath))
TestServices\NuGetTestHelper.cs (3)
20using var archive = ZipFile.Open(Path.Combine(feed.FullName, $"{id}.{version}.nupkg"), ZipArchiveMode.Create); 59.Select(name => Path.Combine(directory.FullName, name)) 63configPaths.AddRange(Settings.LoadSpecificSettings(directory.FullName, Path.GetFileName(configPath)).GetConfigFilePaths());
TestServices\ProcessTestHelpers.cs (1)
12var path = Path.Combine(directory.FullName, OperatingSystem.IsWindows() ? $"{name}.cmd" : name);
TestServices\TerminalCommandTestServices.cs (1)
24AppHostPath = Path.Combine(workspace.WorkspaceRoot.FullName, "TestAppHost", "TestAppHost.csproj"),
TestServices\TerminalTapeTestHost.cs (1)
34SocketPath = Path.Combine(_directory.FullName, "h.sock");
TestServices\TestAppHostProjectFactory.cs (2)
122var content = File.ReadAllText(candidateFile.FullName); 252var content = File.ReadAllText(candidateFile.FullName);
TestServices\TestAuxiliaryBackchannelMonitor.cs (1)
87.Where(c => AuxiliaryBackchannelMonitor.IsAppHostInScopeOfDirectory(c.AppHostInfo?.AppHostPath, workingDirectory.FullName))
TestServices\TestCliDownloader.cs (1)
37var path = Path.Combine(_tempDirectory.FullName, filename);
TestServices\TestConfigSourceServices.cs (7)
21var path = Path.Combine(projectDirectory.FullName, AspireConfigFile.FileName); 35SettingsFilePath = globalSettingsFile?.FullName ?? Path.Combine(context.WorkingDirectory.FullName, ".aspire", "settings.global.json") 106_repositories[destination.Directory.FullName] = new RepositoryState(repository, reference, mode); 115var state = _repositories[repository.Directory.FullName]; 140Task.FromResult<long?>(Encoding.UTF8.GetByteCount(_repositories[repository.Directory.FullName].Content)); 143Task.FromResult(_repositories[repository.Directory.FullName].Content);
TestServices\TestDotNetCliRunner.cs (2)
174? projectFile.FullName + ".csproj" 175: projectFile.FullName;
TestServices\TestGitCommandRunner.cs (2)
34&& call.WorkingDirectory.FullName == command.WorkingDirectory.FullName).Arguments[6];
TestServices\TestLanguageDiscovery.cs (2)
48directory.FullName, 65if (language.FindInDirectory(directory.FullName) is not null)
Utils\AspireRepositoryDetectorTests.cs (4)
43var nestedDirectory = Directory.CreateDirectory(Path.Combine(repoRoot, "src", "Project")).FullName; 72var nestedDirectory = Directory.CreateDirectory(Path.Combine(repoRoot, "playground", "polyglot")).FullName; 90var nestedDirectory = Directory.CreateDirectory(Path.Combine(repoRoot, "src", "Project")).FullName; 99var directory = Directory.CreateTempSubdirectory("aspire-repo-detector-tests-").FullName;
Utils\CliPathHelperTests.cs (15)
188var installPrefix = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire"); 201var installPrefix = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire-pr-test"); 219var binaryPath = WriteBinaryWithSidecar(workspace.WorkspaceRoot.FullName, source); 230var installPrefix = Path.Combine(workspace.WorkspaceRoot.FullName, "portable"); 291var target = Path.Combine(workspace.WorkspaceRoot.FullName, "target-aspire"); 294var link = Path.Combine(workspace.WorkspaceRoot.FullName, "aspire"); 366var realPath = Path.Combine(workspace.WorkspaceRoot.FullName, "binary-under-test"); 382var realPath = Path.Combine(workspace.WorkspaceRoot.FullName, "binary-under-test"); 402var installPrefix = Path.Combine(workspace.WorkspaceRoot.FullName, "portable"); 434var staleFile = BackchannelConstants.ComputeCliSocketPath(tempRoot.FullName, "cli.sock"); 437var freshFile = BackchannelConstants.ComputeCliSocketPath(tempRoot.FullName, "cli.sock"); 463var matching = BackchannelConstants.ComputeCliSocketPath(tempRoot.FullName, "cli.sock"); 466var unrelated = BackchannelConstants.ComputeCliSocketPath(tempRoot.FullName, "apphost.sock"); 491var missingDir = probe.FullName; 505var deleted = CliPathHelper.CleanupStaleCliSockets(tempDir.FullName, TimeSpan.FromHours(24));
Utils\CliTestHelper.cs (4)
120var globalSettingsFilePath = Path.Combine(options.WorkingDirectory.FullName, ".aspire", "settings.global.json"); 132var testLogsDirectory = Path.Combine(options.WorkingDirectory.FullName, ".aspire", "logs"); 490var globalSettingsFilePath = Path.Combine(workingDirectory.FullName, ".aspire", "settings.global.json"); 678var tmpDirectory = new DirectoryInfo(Path.Combine(executionContext.WorkingDirectory.FullName, "tmp"));
Utils\CliTestHelperTests.cs (1)
19workspacePath = workspace.WorkspaceRoot.FullName;
Utils\CliUpdateNotificationServiceTests.cs (1)
219var toolPath = Path.Combine(workspace.CreateDirectory("install").FullName, "custom tool path");
Utils\DcpConnectionHealthCheckTests.cs (12)
48new FixedLayoutDiscovery(LayoutComponent.Dcp, dcpDirectory.FullName), 78var bundleService = new RecordingBundleService(dcpDirectory.FullName); 90Assert.All(probedPaths, path => Assert.Equal(dcpDirectory.FullName, path)); 111var bundleService = new RecordingBundleService(extractedDcpDirectory.FullName); 113new FixedLayoutDiscovery(LayoutComponent.Dcp, discoveredDcpDirectory.FullName), 122Assert.All(probedPaths, path => Assert.Equal(discoveredDcpDirectory.FullName, path)); 161() => checker.TestConnectionAsync(dcpDirectory.FullName, useDeveloperCertificate: false, cancellation.Token)); 179Assert.Equal(dcpDirectory.FullName, path); 185new FixedLayoutDiscovery(LayoutComponent.Dcp, dcpDirectory.FullName), 215new FixedLayoutDiscovery(LayoutComponent.Dcp, dcpDirectory.FullName), 258var kubeconfigPath = Path.Combine(workspace.WorkspaceRoot.FullName, "kubeconfig"); 318File.WriteAllText(BundleDiscovery.GetDcpExecutablePath(dcpDirectory.FullName), string.Empty);
Utils\DevCertsCheckTests.cs (52)
68var certUtilPath = Path.Combine(directory.FullName, CertificateHelpers.CertUtilCommand); 81? Path.Combine(directory.FullName, "openssl.cmd") 82: Path.Combine(directory.FullName, "openssl"); 116File.WriteAllText(Path.Combine(trustDirectory.FullName, GetOpenSslCertificateFileName(certificate)), certificatePem); 117File.WriteAllText(Path.Combine(trustDirectory.FullName, hashEntryName), certificatePem); 378["PATH"] = tempDirectory.FullName 406var trustDirectory = Directory.CreateDirectory(Path.Combine(tempDirectory.FullName, "trust")); 424["PATH"] = tempDirectory.FullName, 425[CertificateHelpers.DevCertsOpenSslCertDirEnvVar] = trustDirectory.FullName 450var trustDirectory = Directory.CreateDirectory(Path.Combine(tempDirectory.FullName, "trust")); 468["PATH"] = tempDirectory.FullName, 469[CertificateHelpers.DevCertsOpenSslCertDirEnvVar] = trustDirectory.FullName 501var trustDirectory = Directory.CreateDirectory(Path.Combine(tempDirectory.FullName, "trust")); 519["PATH"] = tempDirectory.FullName, 520[CertificateHelpers.DevCertsOpenSslCertDirEnvVar] = trustDirectory.FullName 556var trustDirectory = Directory.CreateDirectory(Path.Combine(tempDirectory.FullName, "trust")); 557File.WriteAllText(Path.Combine(trustDirectory.FullName, GetOpenSslCertificateFileName(certificate)), certificate.ExportCertificatePem()); 574["PATH"] = tempDirectory.FullName, 575[CertificateHelpers.DevCertsOpenSslCertDirEnvVar] = trustDirectory.FullName 606var trustDirectory = Directory.CreateDirectory(Path.Combine(tempDirectory.FullName, "trust")); 607File.WriteAllText(Path.Combine(trustDirectory.FullName, GetOpenSslCertificateFileName(certificate)), certificate.ExportCertificatePem()); 624["PATH"] = tempDirectory.FullName, 625[CertificateHelpers.DevCertsOpenSslCertDirEnvVar] = trustDirectory.FullName 665var trustDirectory = Directory.CreateDirectory(Path.Combine(tempDirectory.FullName, "trust")); 666File.WriteAllText(Path.Combine(trustDirectory.FullName, GetOpenSslCertificateFileName(certificate)), certificate.ExportCertificatePem()); 683["PATH"] = tempDirectory.FullName, 684[CertificateHelpers.DevCertsOpenSslCertDirEnvVar] = trustDirectory.FullName 722var trustDirectory = Directory.CreateDirectory(Path.Combine(tempDirectory.FullName, "trust")); 723File.WriteAllText(Path.Combine(trustDirectory.FullName, GetOpenSslCertificateFileName(certificate)), certificate.ExportCertificatePem()); 740["PATH"] = tempDirectory.FullName, 741[CertificateHelpers.DevCertsOpenSslCertDirEnvVar] = trustDirectory.FullName 764var trustDirectory = Path.Combine(tempDirectory.FullName, "missing-trust"); 781["PATH"] = tempDirectory.FullName, 808var trustDirectory = Directory.CreateDirectory(Path.Combine(tempDirectory.FullName, "trust")); 825["PATH"] = tempDirectory.FullName, 826[CertificateHelpers.DevCertsOpenSslCertDirEnvVar] = trustDirectory.FullName 852var trustDirectory = Directory.CreateDirectory(Path.Combine(tempDirectory.FullName, "trust")); 854File.WriteAllText(Path.Combine(trustDirectory.FullName, corruptCertificateFileName), "not a certificate"); 871["PATH"] = tempDirectory.FullName, 872[CertificateHelpers.DevCertsOpenSslCertDirEnvVar] = trustDirectory.FullName 898var trustDirectory = Directory.CreateDirectory(Path.Combine(tempDirectory.FullName, "trust")); 900File.WriteAllText(Path.Combine(trustDirectory.FullName, corruptCertificateFileName), "not a certificate"); 917["PATH"] = tempDirectory.FullName, 918[CertificateHelpers.DevCertsOpenSslCertDirEnvVar] = trustDirectory.FullName 944var trustDirectory = Directory.CreateDirectory(Path.Combine(tempDirectory.FullName, "trust")); 946File.WriteAllText(Path.Combine(trustDirectory.FullName, "unrelated.pem"), "not a certificate"); 963["PATH"] = tempDirectory.FullName, 964[CertificateHelpers.DevCertsOpenSslCertDirEnvVar] = trustDirectory.FullName 988var trustDirectory = Directory.CreateDirectory(Path.Combine(tempDirectory.FullName, "trust")); 989File.WriteAllText(Path.Combine(trustDirectory.FullName, GetOpenSslCertificateFileName(certificate)), staleCertificate.ExportCertificatePem()); 1006["PATH"] = tempDirectory.FullName, 1007[CertificateHelpers.DevCertsOpenSslCertDirEnvVar] = trustDirectory.FullName
Utils\FileSystemHelperTests.cs (35)
16var destDir = Path.Combine(workspace.WorkspaceRoot.FullName, "destination"); 19File.WriteAllText(Path.Combine(sourceDir.FullName, "file1.txt"), "content1"); 20File.WriteAllText(Path.Combine(sourceDir.FullName, "file2.txt"), "content2"); 21File.WriteAllText(Path.Combine(sourceDir.FullName, "file3.cs"), "using System;"); 24FileSystemHelper.CopyDirectory(sourceDir.FullName, destDir); 43var destDir = Path.Combine(workspace.WorkspaceRoot.FullName, "destination"); 49File.WriteAllText(Path.Combine(sourceDir.FullName, "root.txt"), "root content"); 50File.WriteAllText(Path.Combine(subDir1.FullName, "level1.txt"), "level 1 content"); 51File.WriteAllText(Path.Combine(subDir2.FullName, "level2.txt"), "level 2 content"); 54FileSystemHelper.CopyDirectory(sourceDir.FullName, destDir); 75var destDir = Path.Combine(workspace.WorkspaceRoot.FullName, "empty_destination"); 78FileSystemHelper.CopyDirectory(sourceDir.FullName, destDir); 91var nonExistentSource = Path.Combine(workspace.WorkspaceRoot.FullName, "nonexistent"); 92var destDir = Path.Combine(workspace.WorkspaceRoot.FullName, "destination"); 104var destDir = Path.Combine(workspace.WorkspaceRoot.FullName, "destination"); 120FileSystemHelper.CopyDirectory(sourceDir.FullName, null!)); 128var destDir = Path.Combine(workspace.WorkspaceRoot.FullName, "destination"); 144FileSystemHelper.CopyDirectory(sourceDir.FullName, string.Empty)); 153var destDir = Path.Combine(workspace.WorkspaceRoot.FullName, "destination"); 156var binaryFilePath = Path.Combine(sourceDir.FullName, "binary.dat"); 162FileSystemHelper.CopyDirectory(sourceDir.FullName, destDir); 178var destDir = Path.Combine(workspace.WorkspaceRoot.FullName, "destination"); 185File.WriteAllText(Path.Combine(current.FullName, $"file{i}.txt"), $"content at level {i}"); 189FileSystemHelper.CopyDirectory(sourceDir.FullName, destDir); 209var destDir = Path.Combine(workspace.WorkspaceRoot.FullName, "destination"); 212File.WriteAllText(Path.Combine(sourceDir.FullName, "file1.txt"), "new content 1"); 213File.WriteAllText(Path.Combine(sourceDir.FullName, "file2.txt"), "new content 2"); 216File.WriteAllText(Path.Combine(subDir.FullName, "project.assets.json"), "new assets"); 217File.WriteAllText(Path.Combine(subDir.FullName, "project.csproj.nuget.dgspec.json"), "new dgspec"); 225File.WriteAllText(Path.Combine(destSubDir.FullName, "project.assets.json"), "old assets"); 226File.WriteAllText(Path.Combine(destSubDir.FullName, "project.csproj.nuget.dgspec.json"), "old dgspec"); 229FileSystemHelper.CopyDirectory(sourceDir.FullName, destDir, overwrite: true); 244var destDir = Path.Combine(workspace.WorkspaceRoot.FullName, "destination"); 247File.WriteAllText(Path.Combine(sourceDir.FullName, "file1.txt"), "new content"); 255FileSystemHelper.CopyDirectory(sourceDir.FullName, destDir, overwrite: false));
Utils\FirstTimeUseNoticeSentinelTests.cs (8)
15var sentinel = new FirstTimeUseNoticeSentinel(workspace.WorkspaceRoot.FullName); 29var cliDir = Path.Combine(workspace.WorkspaceRoot.FullName, "cli"); 33var sentinel = new FirstTimeUseNoticeSentinel(workspace.WorkspaceRoot.FullName); 47var sentinel = new FirstTimeUseNoticeSentinel(workspace.WorkspaceRoot.FullName); 53var sentinelFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "cli", "cli.firstUseSentinel"); 62var cliDir = Path.Combine(workspace.WorkspaceRoot.FullName, "cli"); 66var sentinel = new FirstTimeUseNoticeSentinel(workspace.WorkspaceRoot.FullName); 81var nonExistentDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "non-existent-dir");
Utils\LegacySettingsFileCheckTests.cs (13)
15var legacyDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire"); 21var subDir = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "src")); 43Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName), 60var legacyDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire"); 64Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName), 83Path.Combine(workspace.WorkspaceRoot.FullName, AspireConfigFile.FileName), 88var subDir = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "src")); 105var legacyDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire"); 111var subDir = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "src", "MyProject")); 131var legacyDir = Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire"); 136var childDir = new DirectoryInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "project")); 139Path.Combine(childDir.FullName, AspireConfigFile.FileName), 143var workingDir = new DirectoryInfo(Path.Combine(childDir.FullName, "src"));
Utils\MissingJavaScriptToolWarningTests.cs (1)
52File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "package.json"), "{ \"packageManager\": \"bun@1.2.0\" }");
Utils\PathNormalizerTests.cs (52)
21var file = new FileInfo(Path.Combine(subdir.FullName, "app.csproj")); 22File.WriteAllText(file.FullName, "<Project />"); 24var firstPass = PathNormalizer.ResolveSymlinks(file.FullName); 42var file = new FileInfo(Path.Combine(directory.FullName, "App.csproj")); 43File.WriteAllText(file.FullName, "<Project />"); 44var caseVariantPath = Path.Combine(workspace.WorkspaceRoot.FullName, "mixedcase", "app.CSPROJ"); 51PathNormalizer.ResolveSymlinks(file.FullName), 61var file = new FileInfo(Path.Combine(directory.FullName, "App.csproj")); 62File.WriteAllText(file.FullName, "<Project />"); 63var caseVariantPath = Path.Combine(workspace.WorkspaceRoot.FullName, "mixedcase", "app.CSPROJ"); 70PathNormalizer.ResolveSymlinks(file.FullName), 71PathNormalizer.ResolveToFilesystemPath(file.FullName)); 78var missingPath = Path.Combine(workspace.WorkspaceRoot.FullName, "Missing", "App.csproj"); 80PathNormalizer.ResolveSymlinks(workspace.WorkspaceRoot.FullName), 92var target = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "target.csproj")); 93File.WriteAllText(target.FullName, "<Project />"); 95var linkPath = Path.Combine(workspace.WorkspaceRoot.FullName, "link.csproj"); 96TestSymlinkHelper.TryCreateSymlink(linkPath, target.FullName, isDirectory: false); 103Assert.Equal(PathNormalizer.ResolveSymlinks(target.FullName), resolved); 117var file = new FileInfo(Path.Combine(nested.FullName, "app.csproj")); 118File.WriteAllText(file.FullName, "<Project />"); 120var linkDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "link"); 121TestSymlinkHelper.TryCreateSymlink(linkDirectory, realDirectory.FullName); 128var resolvedThroughReal = PathNormalizer.ResolveSymlinks(file.FullName); 138var missingTarget = Path.Combine(workspace.WorkspaceRoot.FullName, "missing.csproj"); 139var linkPath = Path.Combine(workspace.WorkspaceRoot.FullName, "broken-link.csproj"); 157var projectFile = new FileInfo(Path.Combine(realDirectory.FullName, "AppHost.csproj")); 158File.WriteAllText(projectFile.FullName, "<Project />"); 160var linkDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "link"); 161TestSymlinkHelper.TryCreateSymlink(linkDirectory, realDirectory.FullName); 166Assert.Equal(PathNormalizer.ResolveSymlinks(projectFile.FullName), resolved); 177var file = new FileInfo(Path.Combine(tempDirectory.FullName, "AppHost.csproj")); 178File.WriteAllText(file.FullName, "<Project />"); 180var logicalPath = file.FullName.StartsWith("/private/var/", StringComparison.Ordinal) 181? file.FullName["/private".Length..] 182: file.FullName; 201var missingPath = Path.Combine(workspace.WorkspaceRoot.FullName, "Missing.AppHost", "Missing.AppHost.csproj"); 216var decomposedPath = Path.Combine(testRoot.FullName, decomposedName); 219var enumeratedPath = Assert.Single(Directory.EnumerateDirectories(testRoot.FullName)); 220var composedPath = Path.Combine(testRoot.FullName, composedName); 241var normalizationMatch = Path.Combine(testRoot.FullName, "Cafe\u0301"); 247var candidate = Path.Combine(testRoot.FullName, "Caf\u00E9"); 257Assert.True(PathNormalizer.TryResolveToFilesystemPath(caseMatch.FullName, out _)); 267var file = new FileInfo(Path.Combine(workspace.WorkspaceRoot.FullName, "app.csproj")); 268File.WriteAllText(file.FullName, "<Project />"); 270file.FullName.Length >= 3 && 271file.FullName[1] == ':' && 272file.FullName[2] == Path.DirectorySeparatorChar, 275var lowercaseDrivePath = $"{char.ToLowerInvariant(file.FullName[0])}{file.FullName[1..]}"; 276var uppercaseDrivePath = $"{char.ToUpperInvariant(file.FullName[0])}{file.FullName[1..]}";
Utils\ReparsePointTests.cs (16)
14var root = workspace.WorkspaceRoot.FullName; 41var root = workspace.WorkspaceRoot.FullName; 75var root = workspace.WorkspaceRoot.FullName; 97var dir = Path.Combine(workspace.WorkspaceRoot.FullName, "plain"); 107Assert.False(ReparsePoint.IsReparsePoint(Path.Combine(workspace.WorkspaceRoot.FullName, "nope"))); 114var root = workspace.WorkspaceRoot.FullName; 134var dir = Path.Combine(workspace.WorkspaceRoot.FullName, "plain"); 147ReparsePoint.RemoveIfExists(Path.Combine(workspace.WorkspaceRoot.FullName, "missing")); 154var root = workspace.WorkspaceRoot.FullName; 168var root = workspace.WorkspaceRoot.FullName; 208var root = workspace.WorkspaceRoot.FullName; 239var root = workspace.WorkspaceRoot.FullName; 278var root = workspace.WorkspaceRoot.FullName; 302var root = workspace.WorkspaceRoot.FullName; 346var root = workspace.WorkspaceRoot.FullName; 399var root = workspace.WorkspaceRoot.FullName;
Utils\TemporaryWorkspaceTests.cs (4)
202var workspacePath = workspace.WorkspaceRoot.FullName; 221var disposableWorkspacePath = disposableWorkspace.WorkspaceRoot.FullName; 232var workspacePath = workspace.WorkspaceRoot.FullName; 248var workspacePath = workspace.WorkspaceRoot.FullName;
Utils\TestExecutionContextHelper.cs (2)
63var root = rootDirectory.FullName; 69logFilePath ??= Path.Combine(logsDirectory.FullName, "test.log");
Aspire.Dashboard (6)
ServiceClient\DashboardRunStore.cs (2)
131_temporaryDirectory = Directory.CreateTempSubdirectory(TemporaryDirectoryPrefix).FullName; 218var temporaryRoot = Directory.GetParent(CurrentWorkingDirectory)!.FullName;
src\Shared\ChildProcess.cs (1)
128_completionPath = Path.Combine(_completionDirectory.FullName, "exit-code");
src\Shared\Telemetry\InternalMicrosoftDetector.cs (3)
72Path.Combine(cacheDirectory.FullName, CacheSubdirectoryName, CacheFileName), 905var copilotHome = Path.Combine(_homeDirectory.FullName, ".copilot"); 1141WorkingDirectory = _workingDirectory.FullName,
Aspire.Dashboard.Components.Tests (11)
tests\Shared\TemporaryWorkspace.cs (11)
21public string Path => workspaceDirectory.FullName; 30if (s_preservedWorkspaces.ContainsKey(workspaceDirectory.FullName)) 32outputHelper.WriteLine($"Preserved temporary workspace at: {workspaceDirectory.FullName}"); 36outputHelper.WriteLine($"Disposing temporary workspace at: {workspaceDirectory.FullName}"); 44outputHelper.WriteLine($"Failed to delete temporary workspace '{workspaceDirectory.FullName}': {ex.Message}"); 105throw new IOException($"Cannot delete '{file.FullName}': {ex.Message}", ex); 116throw new IOException($"Cannot delete directory '{directory.FullName}': {ex.Message}", ex); 156s_preservedWorkspaces[workspaceDirectory.FullName] = 0; 157outputHelper.WriteLine($"Marked temporary workspace for preservation: {workspaceDirectory.FullName}"); 194outputHelper.WriteLine($"Temporary workspace created at: {workspaceDirectory.FullName}"); 198TestContext.Current?.KeyValueStorage["WorkspacePath"] = workspaceDirectory.FullName;
Aspire.Dashboard.Playwright.Tests (18)
Integration\Playwright\NativeAotDashboardTests.cs (4)
42WorkingDirectory = workingDirectory.FullName, 52startInfo.Environment["ASPIRE_BUNDLE_VERSION_DIR"] = workingDirectory.FullName; 64var leasesDirectory = Path.Combine(workingDirectory.FullName, ".leases"); 121var leasesDirectory = Path.Combine(workingDirectory.FullName, ".leases");
tests\Shared\Playwright\PlaywrightProvider.cs (1)
55var probePath = Path.Combine(repoRoot.FullName, "artifacts", "bin", "playwright-deps");
tests\Shared\Playwright\TestUtils.cs (2)
14if (Directory.Exists(Path.Combine(repoRoot.FullName, ".git")) || File.Exists(Path.Combine(repoRoot.FullName, ".git")))
tests\Shared\TemporaryWorkspace.cs (11)
21public string Path => workspaceDirectory.FullName; 30if (s_preservedWorkspaces.ContainsKey(workspaceDirectory.FullName)) 32outputHelper.WriteLine($"Preserved temporary workspace at: {workspaceDirectory.FullName}"); 36outputHelper.WriteLine($"Disposing temporary workspace at: {workspaceDirectory.FullName}"); 44outputHelper.WriteLine($"Failed to delete temporary workspace '{workspaceDirectory.FullName}': {ex.Message}"); 105throw new IOException($"Cannot delete '{file.FullName}': {ex.Message}", ex); 116throw new IOException($"Cannot delete directory '{directory.FullName}': {ex.Message}", ex); 156s_preservedWorkspaces[workspaceDirectory.FullName] = 0; 157outputHelper.WriteLine($"Marked temporary workspace for preservation: {workspaceDirectory.FullName}"); 194outputHelper.WriteLine($"Temporary workspace created at: {workspaceDirectory.FullName}"); 198TestContext.Current?.KeyValueStorage["WorkspacePath"] = workspaceDirectory.FullName;
Aspire.Dashboard.Tests (36)
BlazorAssetsTests.cs (2)
63while (directory is not null && !File.Exists(Path.Combine(directory.FullName, "Aspire.slnx"))) 69return directory.FullName;
Integration\OtlpHttpServiceTests.cs (2)
144var configFilePath = Path.Combine(tempDirectory.FullName, "appsettings.json"); 180Directory.Delete(tempDirectory.FullName, recursive: true);
Integration\StartupTests.cs (8)
273var configFilePath = Path.Combine(tempDirectory.FullName, Path.GetRandomFileName()); 288Directory.Delete(tempDirectory.FullName, recursive: true); 304.AddInMemoryCollection(new Dictionary<string, string?> { [dashboardFileConfigDirectoryNameKey] = fileConfigDirectory.FullName }) 339.AddInMemoryCollection(new Dictionary<string, string?> { [DashboardConfigNames.DashboardFileConfigDirectoryName.ConfigKey] = fileConfigDirectory.FullName }) 377var fileConfigDirectory = Directory.CreateTempSubdirectory().FullName; 684var configFilePath = Path.Combine(tempDirectory.FullName, Path.GetRandomFileName()); 720Directory.Delete(tempDirectory.FullName, recursive: true); 1340var browserTokenConfigFile = Path.Combine(fileConfigDirectory.FullName, DashboardConfigNames.DashboardFrontendBrowserTokenName.EnvVarName);
Model\DashboardDataSourceTests.cs (5)
41Assert.Equal(expectedRunsDirectory, Directory.GetParent(runStore.CurrentWorkingDirectory)!.FullName); 317$"Dashboard run discovery completed in directory '{Directory.GetParent(runStore.CurrentWorkingDirectory)!.FullName}'. Run count: 1. Run IDs: {runStore.RunId}.", 402var abandonedDirectory = Directory.CreateTempSubdirectory("aspire-dashboard-").FullName; 460var initializingDirectory = Directory.CreateTempSubdirectory("aspire-dashboard-").FullName; 506var otherDirectory = Directory.CreateTempSubdirectory("unrelated-").FullName;
Model\ResourceMenuBuilderTests.cs (1)
49var runStore = new TestDashboardRunStore(databasePath: Path.Combine(temporaryDirectory.FullName, "dashboard.db"));
Model\TelemetryExportServiceTests.cs (1)
1269var runStore = new TestDashboardRunStore(databasePath: Path.Combine(temporaryDirectory.FullName, "dashboard.db"));
Shared\SqliteRepositoryTestHelpers.cs (1)
42Path.Combine(temporaryDirectory.FullName, "dashboard.db"),
TelemetryRepositoryTests\TelemetryRepositoryTestBase.cs (1)
42var temporaryDirectory = Directory.CreateTempSubdirectory("aspire-tests-dashboard-telemetry-").FullName;
Terminal\DefaultTerminalConnectionResolverTests.cs (4)
67var socketPath = Path.Combine(directory.FullName, "terminal.sock"); 74udsPath: resourceName == "svc-abc" ? socketPath : Path.Combine(directory.FullName, "other.sock")), 76udsPath: resourceName == "svc-def" ? socketPath : Path.Combine(directory.FullName, "other.sock")) 147udsPath: Path.Combine(directory.FullName, "nonexistent.sock"));
tests\Shared\TemporaryWorkspace.cs (11)
21public string Path => workspaceDirectory.FullName; 30if (s_preservedWorkspaces.ContainsKey(workspaceDirectory.FullName)) 32outputHelper.WriteLine($"Preserved temporary workspace at: {workspaceDirectory.FullName}"); 36outputHelper.WriteLine($"Disposing temporary workspace at: {workspaceDirectory.FullName}"); 44outputHelper.WriteLine($"Failed to delete temporary workspace '{workspaceDirectory.FullName}': {ex.Message}"); 105throw new IOException($"Cannot delete '{file.FullName}': {ex.Message}", ex); 116throw new IOException($"Cannot delete directory '{directory.FullName}': {ex.Message}", ex); 156s_preservedWorkspaces[workspaceDirectory.FullName] = 0; 157outputHelper.WriteLine($"Marked temporary workspace for preservation: {workspaceDirectory.FullName}"); 194outputHelper.WriteLine($"Temporary workspace created at: {workspaceDirectory.FullName}"); 198TestContext.Current?.KeyValueStorage["WorkspacePath"] = workspaceDirectory.FullName;
Aspire.Deployment.EndToEnd.Tests (164)
AcaCompactNamingDeploymentTests.cs (4)
75output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 105var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"); 226output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 250var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs");
AcaCompactNamingUpgradeDeploymentTests.cs (2)
73output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 221var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs");
AcaCustomRegistryDeploymentTests.cs (2)
62output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 104var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
AcaDeploymentErrorOutputTests.cs (3)
60var deployOutputFile = Path.Combine(workspace.WorkspaceRoot.FullName, "deploy-output.txt"); 65output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 94var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs");
AcaExistingRegistryDeploymentTests.cs (2)
74output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 132var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
AcaManagedRedisDeploymentTests.cs (2)
63output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 71var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
AcaStarterDeploymentTests.cs (2)
63output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 101var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
AcrPurgeTaskDeploymentTests.cs (3)
62output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 107var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName); 159var projectDir2 = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
AksAzureKubernetesEnvironmentCertManagerDeploymentTests.cs (3)
76output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 80var pebbleDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "pebble-eab"); 112var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
AksAzureKubernetesEnvironmentCertManagerTypeScriptDeploymentTests.cs (2)
80output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 132var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
AksAzureKubernetesEnvironmentGatewayDeploymentTests.cs (2)
66output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 108var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
AksBlazorRedisDeploymentTests.cs (2)
62output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 98var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
AksCrossResourceGroupRegistryDeploymentTests.cs (1)
64var appHostDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, projectName, $"{projectName}.AppHost");
AksMultipleNodePoolsDeploymentTests.cs (2)
62output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 98var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
AksPersistentVolumeDeploymentTests.cs (1)
75var projectDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
AksStarterDeploymentTests.cs (2)
73output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 188var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
AksStarterWithRedisHelmDeploymentTests.cs (2)
72output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 179var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
AksVnetInfraDeploymentTests.cs (2)
57output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 93var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs");
AksVnetWithAzureResourcesDeploymentTests.cs (3)
62output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 123var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName); 179var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
AksWithAzureResourcesDeploymentTests.cs (3)
62output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 121var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName); 165var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
AksWithHelmChartDeploymentTests.cs (2)
67output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 102var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
AppServiceDotnetProjectDeploymentTests.cs (2)
36var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName); 52File.WriteAllText(Path.Combine(publicDir.FullName, "deployment-marker.txt"), $"static:{marker}");
AppServicePythonDeploymentTests.cs (2)
64output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 111var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
AppServiceReactDeploymentTests.cs (2)
67output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 117var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
AppServiceStoragePrivateEndpointDeploymentTests.cs (2)
56output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 99var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
AzureAppConfigDeploymentTests.cs (2)
58output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 101var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs");
AzureConnectorNamespaceDeploymentTests.cs (2)
75output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 194var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs");
AzureContainerRegistryDeploymentTests.cs (2)
58output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 87var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs");
AzureEventHubsDeploymentTests.cs (2)
58output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 101var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs");
AzureFunctionsDeploymentTests.cs (3)
80["Functions"] = File.ReadAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "functions-url.txt")) 99var root = workspace.WorkspaceRoot.FullName; 100var functions = Directory.CreateDirectory(Path.Combine(root, "functions")).FullName;
AzureKeyVaultDeploymentTests.cs (2)
58output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 101var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs");
AzureLogAnalyticsDeploymentTests.cs (2)
58output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 87var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs");
AzureResourceScopeDeploymentTests.cs (2)
60output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 86var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs");
AzureRoleAssignmentRunModeTests.cs (4)
69output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 93var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"); 112var validateScriptPath = Path.Combine(workspace.WorkspaceRoot.FullName, "validate-role-assignment.py"); 221await DeploymentE2ETestHelpers.StopAppHostAsync(workspace.WorkspaceRoot.FullName, output.WriteLine);
AzureSandboxesDeploymentTests.cs (17)
57var defaultUrlFile = Path.Combine(workspace.WorkspaceRoot.FullName, "dotnet-default-url.txt"); 58var anonymousUrlFile = Path.Combine(workspace.WorkspaceRoot.FullName, "dotnet-anonymous-url.txt"); 59var deployOutputFile = Path.Combine(workspace.WorkspaceRoot.FullName, "dotnet-deploy-output.txt"); 60var stateMarkerFile = Path.Combine(workspace.WorkspaceRoot.FullName, "dotnet-state-marker"); 65output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 247var firstDeployOutputFile = Path.Combine(workspace.WorkspaceRoot.FullName, "first-deploy-output.txt"); 248var secondDeployOutputFile = Path.Combine(workspace.WorkspaceRoot.FullName, "second-deploy-output.txt"); 249var firstUrlFile = Path.Combine(workspace.WorkspaceRoot.FullName, "first-url.txt"); 250var secondUrlFile = Path.Combine(workspace.WorkspaceRoot.FullName, "second-url.txt"); 251var stateMarkerFile = Path.Combine(workspace.WorkspaceRoot.FullName, "state-marker"); 256output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 418var siteDir = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "site")); 419File.WriteAllText(Path.Combine(siteDir.FullName, "Dockerfile"), """ 424File.WriteAllText(Path.Combine(siteDir.FullName, "index.html"), $$""" 432File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts"), """ 464var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName); 574File.WriteAllText(Path.Combine(propertiesDir.FullName, "launchSettings.json"), """
AzureSandboxesDotnetProjectDeploymentTests.cs (1)
17var appHostPath = Path.Combine(projectDir.FullName, "apphost.cs");
AzureServiceBusDeploymentTests.cs (2)
58output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 102var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs");
AzureStorageDeploymentTests.cs (4)
69output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 113var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"); 227output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 260var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
AzureStorageRunModeTests.cs (4)
57output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 82var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs"); 96var validateScriptPath = Path.Combine(workspace.WorkspaceRoot.FullName, "validate-get-resource.py"); 201await DeploymentE2ETestHelpers.StopAppHostAsync(workspace.WorkspaceRoot.FullName, output.WriteLine);
FoundryDotnetProjectDeploymentTests.cs (1)
47var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
FoundryHostedAgentDeploymentTests.cs (3)
94workspace.WorkspaceRoot.FullName, 424output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 462var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
FrontDoorDeploymentTests.cs (2)
62output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 110var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
Helpers\DeploymentE2EAutomatorHelpers.cs (1)
22await auto.PrepareBashEnvironmentAsync(workspace.WorkspaceRoot.FullName, counter, TimeSpan.FromSeconds(10));
KubernetesGatewayTlsDeploymentTests.cs (2)
78output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 261var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
KubernetesHelmChartDeploymentTests.cs (2)
73output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 149var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
NspStorageKeyVaultDeploymentTests.cs (3)
61output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 129var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName); 191var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
PythonFastApiDeploymentTests.cs (2)
64output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 113var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
RadiusAzureResourcesDeploymentTests.cs (1)
72workspace.WorkspaceRoot.FullName,
RadiusStarterDeploymentTests.cs (3)
94output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 109var wsRoot = workspace.WorkspaceRoot.FullName; 337var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
tests\Shared\TemporaryWorkspace.cs (11)
21public string Path => workspaceDirectory.FullName; 30if (s_preservedWorkspaces.ContainsKey(workspaceDirectory.FullName)) 32outputHelper.WriteLine($"Preserved temporary workspace at: {workspaceDirectory.FullName}"); 36outputHelper.WriteLine($"Disposing temporary workspace at: {workspaceDirectory.FullName}"); 44outputHelper.WriteLine($"Failed to delete temporary workspace '{workspaceDirectory.FullName}': {ex.Message}"); 105throw new IOException($"Cannot delete '{file.FullName}': {ex.Message}", ex); 116throw new IOException($"Cannot delete directory '{directory.FullName}': {ex.Message}", ex); 156s_preservedWorkspaces[workspaceDirectory.FullName] = 0; 157outputHelper.WriteLine($"Marked temporary workspace for preservation: {workspaceDirectory.FullName}"); 194outputHelper.WriteLine($"Temporary workspace created at: {workspaceDirectory.FullName}"); 198TestContext.Current?.KeyValueStorage["WorkspacePath"] = workspaceDirectory.FullName;
TypeScriptAzureContainerAppJobDeploymentTests.cs (2)
53output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 127File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts"), """
TypeScriptExpressDeploymentTests.cs (2)
60output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 107var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
TypeScriptJavaScriptHostingDeploymentTests.cs (8)
53output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 123var apiDir = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "api")); 124File.WriteAllText(Path.Combine(apiDir.FullName, "package.json"), """ 134File.WriteAllText(Path.Combine(apiDir.FullName, "server.js"), """ 144var staticSiteDir = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "staticsite")); 145File.WriteAllText(Path.Combine(staticSiteDir.FullName, "package.json"), """ 155File.WriteAllText(Path.Combine(staticSiteDir.FullName, "index.html"), """ 168File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts"), """
TypeScriptVnetSqlServerInfraDeploymentTests.cs (2)
57output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 178var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.mts");
VnetKeyVaultConnectivityDeploymentTests.cs (3)
59output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 113var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName); 155var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
VnetKeyVaultInfraDeploymentTests.cs (2)
56output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 99var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs");
VnetSqlServerConnectivityDeploymentTests.cs (3)
64output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 118var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName); 161var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
VnetSqlServerInfraDeploymentTests.cs (2)
56output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 99var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs");
VnetStorageBlobConnectivityDeploymentTests.cs (3)
59output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 115var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName); 160var projectDir = Path.Combine(workspace.WorkspaceRoot.FullName, projectName);
VnetStorageBlobInfraDeploymentTests.cs (2)
56output.WriteLine($"Workspace: {workspace.WorkspaceRoot.FullName}"); 100var appHostFilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "apphost.cs");
Aspire.EndToEnd.Tests (7)
IntegrationServicesFixture.cs (1)
56_testProjectPath = Path.Combine(BuildEnvironment.RepoRoot.FullName, "tests", "testproject");
tests\Shared\Playwright\PlaywrightProvider.cs (1)
55var probePath = Path.Combine(repoRoot.FullName, "artifacts", "bin", "playwright-deps");
tests\Shared\Playwright\TestUtils.cs (2)
14if (Directory.Exists(Path.Combine(repoRoot.FullName, ".git")) || File.Exists(Path.Combine(repoRoot.FullName, ".git")))
tests\Shared\TemplatesTesting\BuildEnvironment.cs (3)
37return Directory.CreateDirectory(TestRootPath).FullName; 79var sdkFromArtifactsPath = Path.Combine(RepoRoot!.FullName, "artifacts", "bin", sdkDirName); 111BuiltNuGetsPath = Path.Combine(RepoRoot.FullName, "artifacts", "packages", "Debug", "Shipping");
Aspire.Hosting (29)
Dcp\ContainerCreator.cs (1)
641FileInfo filePath => filePath.FullName,
Dcp\KubernetesService.cs (1)
849var kubeconfigStream = new FileStream(fileInfo.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete);
DistributedApplicationBuilder.cs (1)
1055configuration.AddJsonFile(secretsFile.FullName, optional: true, reloadOnChange: false);
Publishing\ManifestPublisher.cs (2)
49if (!Directory.Exists(parentDirectory!.FullName)) 52Directory.CreateDirectory(parentDirectory.FullName);
Publishing\ManifestPublishingContext.cs (1)
450FileInfo fileValue => GetManifestRelativePath(fileValue.FullName),
Publishing\ManifestPublishingExtensions.cs (2)
56if (!Directory.Exists(parentDirectory!.FullName)) 59Directory.CreateDirectory(parentDirectory.FullName);
Publishing\ResourceContainerImageManager.cs (1)
1012FileInfo filePath => filePath.FullName,
src\Shared\MsBuildResponseFile.cs (2)
29var responseFilePath = Path.Combine(directory.FullName, "build-properties.rsp"); 80logger.LogDebug(ex, "Failed to delete temporary MSBuild response-file directory '{DirectoryPath}'.", directory.FullName);
src\Shared\PathNormalizer.cs (2)
418if (linkTarget?.FullName is { Length: > 0 } resolved) 507if (linkTarget?.FullName is { Length: > 0 } resolved)
src\Shared\SocketPermissionHelper.cs (12)
46var isWorkingDirectory = string.Equals(directory.FullName, Path.TrimEndingDirectorySeparator(currentDirectory), comparison); 47var isUserProfile = string.Equals(directory.FullName, profileRoot, comparison); 48var isTemporaryRoot = string.Equals(Path.TrimEndingDirectorySeparator(directory.FullName), tempRoot, comparison); 61if (string.Equals(current.FullName, profileRoot, comparison) || 62string.Equals(current.FullName, tempRoot, comparison)) 65if (!Directory.Exists(resolvedBase.FullName)) 67throw new IOException($"The socket directory base '{current.FullName}' must resolve to an existing directory."); 84if (directory.Exists && (File.GetUnixFileMode(directory.FullName) & UnixFileMode.StickyBit) != 0) 91return DirectoryHelper.CreateWithOwnerOnlyPermissions(directory.FullName); 96Directory.CreateDirectory(directory.FullName, OwnerOnlyMode); 97if (File.GetUnixFileMode(directory.FullName) != OwnerOnlyMode) 174throw new IOException($"The configured socket directory '{directory.FullName}' must have a protected owner-only ACL with inheritable full control for the current user (SYSTEM is also allowed). Set those permissions or choose a new dedicated directory.");
src\Shared\UserSecrets\AspireSecretsPathHelper.cs (1)
83return Path.Combine(homeDirectory.FullName, ".aspire", SecretsDirectoryName, safeAppHostId);
Utils\DotnetSdkUtils.cs (1)
45var globalJsonPath = Path.Combine(directory.FullName, "global.json");
Utils\FileSystemService.cs (2)
140var path = Directory.CreateTempSubdirectory(prefix ?? "aspire").FullName; 158var tempDir = Directory.CreateTempSubdirectory("aspire").FullName;
Aspire.Hosting.Azure (4)
AzureBicepResource.cs (1)
167? Path.Combine(directory ?? Directory.CreateTempSubdirectory("aspire").FullName, $"{Name.ToLowerInvariant()}.module.bicep")
AzureProvisioningResource.cs (1)
131var generationPath = Directory.CreateTempSubdirectory("aspire").FullName;
AzurePublishingContext.cs (2)
186var modulePath = Path.Combine(moduleDirectory.FullName, $"{resource.Name}.bicep"); 476var modulePath = Path.Combine(moduleDirectory.FullName, $"{resource.Name}.bicep");
Aspire.Hosting.Azure.EntraId.Tests (1)
EntraIdStarterScenarioPublishTests.cs (1)
80var directory = Directory.CreateDirectory(Path.Combine(root, "src", name)).FullName;
Aspire.Hosting.Azure.Tests (32)
AzureAppServiceTests.cs (2)
508File.WriteAllText(Path.Combine(directory.FullName, "Dockerfile"), ""); 510builder.AddDockerfile("api", directory.FullName)
AzureContainerAppsTests.cs (2)
87File.WriteAllText(Path.Combine(directory.FullName, "Dockerfile"), ""); 89builder.AddDockerfile("api", directory.FullName);
AzureEnvironmentResourceTests.cs (14)
23output.WriteLine($"Temp directory: {workspace.FullName}"); 24using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, output, workspace.FullName); 36var mainBicepPath = Path.Combine(workspace.FullName, "main.bicep"); 40var envBicepPath = Path.Combine(workspace.FullName, "env", "env.bicep"); 55output.WriteLine($"Temp directory: {workspace.FullName}"); 56using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, output, workspace.FullName); 73var mainBicepPath = Path.Combine(workspace.FullName, "main.bicep"); 87output.WriteLine($"Temp directory: {workspace.FullName}"); 89workspace.FullName); 126var mainBicepPath = Path.Combine(workspace.FullName, "main.bicep"); 137output.WriteLine($"Temp directory: {workspace.FullName}"); 139workspace.FullName); 176var mainBicep = File.ReadAllText(Path.Combine(workspace.FullName, "main.bicep")); 177var storageBicep = File.ReadAllText(Path.Combine(workspace.FullName, "storage", "storage.bicep"));
AzureManifestUtils.cs (1)
31string manifestDir = Directory.CreateTempSubdirectory(resource.Name).FullName;
AzureResourceOptionsTests.cs (4)
25var outputPath = Path.Combine(tempDir.FullName, "aspire-manifest.json"); 45var sbBicep = await File.ReadAllTextAsync(Path.Combine(tempDir.FullName, "sb.module.bicep")); 47var sqlBicep = await File.ReadAllTextAsync(Path.Combine(tempDir.FullName, "sql-server.module.bicep")); 59output.WriteLine($"Failed to delete {tempDir.FullName} : {ex.Message}. Ignoring.");
AzureSandboxesTests.cs (3)
3309var firstManager = new TestDeploymentStateManager(Path.Combine(tempDirectory.FullName, "legacy", "state.json")); 3310var secondManager = new TestDeploymentStateManager(Path.Combine(tempDirectory.FullName, "canonical", "state.json")); 3436Path = Directory.CreateTempSubdirectory(".aspire-test").FullName;
FoundryExtensionsTests.cs (6)
176var daemonPidPath = Path.Combine(temporaryDirectory.FullName, "daemon.pid"); 214Directory.Delete(temporaryDirectory.FullName, recursive: true); 312var commandLogPath = Path.Combine(temporaryDirectory.FullName, "commands.log"); 313var executablePath = Path.Combine(temporaryDirectory.FullName, "foundry"); 344Environment.SetEnvironmentVariable("PATH", $"{temporaryDirectory.FullName}{Path.PathSeparator}{originalPath}"); 385Directory.Delete(temporaryDirectory.FullName, recursive: true);
Aspire.Hosting.Blazor (2)
BlazorGatewayExtensions.cs (2)
468if (ContainsPath(directory.FullName, projectDirectory) 472return directory.FullName;
Aspire.Hosting.Blazor.Tests (22)
AddBlazorGatewayTests.cs (15)
229var gatewayDirectory = Directory.CreateDirectory(Path.Combine(directory.Path, "Gateway")).FullName; 430File.WriteAllText(Path.Combine(solutionRoot.FullName, "Test.slnx"), "<Solution />"); 431var appHostDirectory = Directory.CreateDirectory(Path.Combine(solutionRoot.FullName, "src", "AppHost")).FullName; 433var projectDirectory = Directory.CreateDirectory(Path.Combine(solutionRoot.FullName, "src", "Client")).FullName; 435Assert.Equal(solutionRoot.FullName, BlazorGatewayExtensions.GetSolutionRoot(appHostDirectory, projectDirectory)); 449var appHostDirectory = Directory.CreateDirectory(Path.Combine(directory.FullName, "AppHost")).FullName; 451var projectDirectory = Directory.CreateDirectory(Path.Combine(directory.FullName, "Client")).FullName; 470var appHostDirectory = Directory.CreateDirectory(Path.Combine(directory.FullName, "AppHost")).FullName; 472var projectDirectory = Directory.CreateDirectory(Path.Combine(directory.FullName, "Client")).FullName;
BlazorHostedExtensionsTests.cs (2)
639var serverProjectPath = Path.Combine(serverDirectory.FullName, "Server.csproj"); 640var clientProjectPath = Path.Combine(clientDirectory.FullName, "Client.csproj");
tests\Shared\TestFileSystemService.cs (5)
25_directories.Add(dir.FullName); 26return new TestTempDirectory(dir.FullName); 32_directories.Add(tempDir.FullName); 34var filePath = System.IO.Path.Combine(tempDir.FullName, resolvedName); 36return new TestTempFile(filePath, tempDir.FullName);
Aspire.Hosting.Browsers.Tests (33)
BrowserHostTests.cs (6)
21var browserExecutable = Path.Combine(userDataDirectory.FullName, "browser"); 23var devToolsActivePortPath = Path.Combine(userDataDirectory.FullName, "DevToolsActivePort"); 26var identity = new BrowserHostIdentity(browserExecutable, userDataDirectory.FullName); 39BrowserLogsUserDataDirectory.CreatePersistent(userDataDirectory.FullName, profileDirectoryName: "Profile 1"), 56Assert.False(File.Exists(BrowserEndpointDiscovery.GetEndpointMetadataFilePath(userDataDirectory.FullName))); 59Assert.Contains($"--user-data-dir={userDataDirectory.FullName}", capturedArguments);
BrowserLogsBuilderExtensionsTests.cs (3)
858new BrowserLogsArtifactWriter(sp.GetRequiredService<TimeProvider>(), () => artifactDirectory.FullName), 895Assert.StartsWith(artifactDirectory.FullName, path, StringComparison.OrdinalIgnoreCase); 1020var tempBrowserPath = Path.Combine(tempDirectory.FullName, OperatingSystem.IsWindows() ? "tracked-browser.exe" : "tracked-browser");
BrowserLogsRunningSessionTests.cs (2)
22var browserExecutable = Path.Combine(userDataDirectory.FullName, "browser"); 30createUserDataDirectory: (configuration, _) => BrowserLogsUserDataDirectory.CreatePersistent(userDataDirectory.FullName, configuration.Profile),
BrowserLogsSessionManagerTests.cs (22)
63var browserExecutable = Path.Combine(userDataDirectory.FullName, "browser"); 70createUserDataDirectory: (configuration, _) => BrowserLogsUserDataDirectory.CreatePersistent(userDataDirectory.FullName, configuration.Profile), 103var browserExecutable = Path.Combine(userDataDirectory.FullName, "browser"); 110createUserDataDirectory: (configuration, _) => BrowserLogsUserDataDirectory.CreatePersistent(userDataDirectory.FullName, configuration.Profile), 138var browserExecutable = Path.Combine(userDataDirectory.FullName, "browser"); 144createUserDataDirectory: (configuration, _) => BrowserLogsUserDataDirectory.CreatePersistent(userDataDirectory.FullName, configuration.Profile), 172var browserExecutable = Path.Combine(userDataDirectory.FullName, "browser"); 174var identity = new BrowserHostIdentity(browserExecutable, userDataDirectory.FullName); 188createUserDataDirectory: (configuration, _) => BrowserLogsUserDataDirectory.CreatePersistent(userDataDirectory.FullName, configuration.Profile), 258Path.Combine(userDataDirectory.FullName, "browser"), 259userDataDirectory.FullName); 260var metadataPath = BrowserEndpointDiscovery.GetEndpointMetadataFilePath(userDataDirectory.FullName); 288Path.Combine(userDataDirectory.FullName, "bröwser"), 289userDataDirectory.FullName); 290var metadataPath = BrowserEndpointDiscovery.GetEndpointMetadataFilePath(userDataDirectory.FullName); 318Path.Combine(userDataDirectory.FullName, "browser"), 319userDataDirectory.FullName); 320var metadataPath = BrowserEndpointDiscovery.GetEndpointMetadataFilePath(userDataDirectory.FullName); 329"userDataRootPath": {{System.Text.Json.JsonSerializer.Serialize(userDataDirectory.FullName)}} 351Path.Combine(userDataDirectory.FullName, "browser"), 352userDataDirectory.FullName); 566action(userDataDirectory.FullName);
Aspire.Hosting.CodeGeneration.Go.Tests (41)
AtsGoCodeGeneratorTests.cs (20)
75await File.WriteAllTextAsync(Path.Combine(directory.FullName, name), content, timeout.Token); 77await File.WriteAllTextAsync(Path.Combine(directory.FullName, "terminal_test.go"), """ 107WorkingDirectory = directory.FullName, 155await File.WriteAllTextAsync(Path.Combine(directory.FullName, name), content, timeout.Token); 158await File.WriteAllTextAsync(Path.Combine(directory.FullName, "transport_test.go"), """ 222: Path.Combine(directory.FullName, "socket"); 237WorkingDirectory = directory.FullName, 309await File.WriteAllTextAsync(Path.Combine(directory.FullName, name), content, timeout.Token); 312await File.WriteAllTextAsync(Path.Combine(directory.FullName, "transport_hardening_test.go"), """ 687await File.WriteAllTextAsync(Path.Combine(directory.FullName, "decode_test.go"), """ 1017WorkingDirectory = directory.FullName, 1056await File.WriteAllTextAsync(Path.Combine(directory.FullName, name), content, timeout.Token); 1059await File.WriteAllTextAsync(Path.Combine(directory.FullName, "runtime_test.go"), """ 1180WorkingDirectory = directory.FullName, 1563await File.WriteAllTextAsync(Path.Combine(directory.FullName, name), content, timeout.Token); 1566await File.WriteAllTextAsync(Path.Combine(directory.FullName, "callback_test.go"), """ 1692WorkingDirectory = directory.FullName, 1735await File.WriteAllTextAsync(Path.Combine(directory.FullName, name), content, timeout.Token); 1738await File.WriteAllTextAsync(Path.Combine(directory.FullName, "declared_interface_test.go"), """ 1831WorkingDirectory = directory.FullName,
AtsGoDerivedBuilderTests.cs (3)
404await File.WriteAllTextAsync(Path.Combine(directory.FullName, name), content, cancellationToken); 411await File.WriteAllTextAsync(Path.Combine(packageDirectory.FullName, $"{packageName}.go"), source, cancellationToken); 419WorkingDirectory = workingDirectory.FullName,
GoDocCommentTests.cs (4)
229await File.WriteAllTextAsync(Path.Combine(directory.FullName, name), content, timeout.Token); 232var build = await RunAsync("go", directory.FullName, timeout.Token, "build", "./..."); 235var vet = await RunAsync("go", directory.FullName, timeout.Token, "vet", "./..."); 243var formatted = await RunAsync("gofmt", directory.FullName, timeout.Token, "aspire.go");
GoGeneratorEscapingTests.cs (3)
64await File.WriteAllTextAsync(Path.Combine(directory.FullName, name), content, timeout.Token); 67var build = await GoDocCommentTests.RunAsync("go", directory.FullName, timeout.Token, "build", "./..."); 70var vet = await GoDocCommentTests.RunAsync("go", directory.FullName, timeout.Token, "vet", "./...");
tests\Shared\TemporaryWorkspace.cs (11)
21public string Path => workspaceDirectory.FullName; 30if (s_preservedWorkspaces.ContainsKey(workspaceDirectory.FullName)) 32outputHelper.WriteLine($"Preserved temporary workspace at: {workspaceDirectory.FullName}"); 36outputHelper.WriteLine($"Disposing temporary workspace at: {workspaceDirectory.FullName}"); 44outputHelper.WriteLine($"Failed to delete temporary workspace '{workspaceDirectory.FullName}': {ex.Message}"); 105throw new IOException($"Cannot delete '{file.FullName}': {ex.Message}", ex); 116throw new IOException($"Cannot delete directory '{directory.FullName}': {ex.Message}", ex); 156s_preservedWorkspaces[workspaceDirectory.FullName] = 0; 157outputHelper.WriteLine($"Marked temporary workspace for preservation: {workspaceDirectory.FullName}"); 194outputHelper.WriteLine($"Temporary workspace created at: {workspaceDirectory.FullName}"); 198TestContext.Current?.KeyValueStorage["WorkspacePath"] = workspaceDirectory.FullName;
Aspire.Hosting.CodeGeneration.Java.Tests (10)
AtsJavaCodeGeneratorTests.cs (8)
3811_classes = Directory.CreateDirectory(Path.Combine(_root.FullName, "classes")); 3816var path = Path.Combine(_root.FullName, relativePath.Replace('/', Path.DirectorySeparatorChar)); 3824.EnumerateFiles(_root.FullName, "*.java", SearchOption.AllDirectories) 3825.Select(path => Path.GetRelativePath(_root.FullName, path)) 3829var sourcesFile = Path.Combine(_root.FullName, "sources.txt"); 3835["--release", "21", "-d", _classes.FullName, "@sources.txt"], 3845=> RunProcessAsync("java", ["-cp", _classes.FullName, className], timeout); 3864WorkingDirectory = _root.FullName,
JavaLanguageSupportDetectionTests.cs (2)
48File.WriteAllText(Path.Combine(nested.FullName, "AppHost.java"), "void main(String[] args) { }"); 86public string Path => _directory.FullName;
Aspire.Hosting.CodeGeneration.Rust.Tests (15)
AtsRustCodeGeneratorTests.cs (4)
58await File.WriteAllTextAsync(Path.Combine(directory.FullName, name), content, timeout.Token); 60await File.WriteAllTextAsync(Path.Combine(directory.FullName, "Cargo.toml"), """ 78await File.WriteAllTextAsync(Path.Combine(directory.FullName, "terminal.rs"), """ 115WorkingDirectory = directory.FullName,
tests\Shared\TemporaryWorkspace.cs (11)
21public string Path => workspaceDirectory.FullName; 30if (s_preservedWorkspaces.ContainsKey(workspaceDirectory.FullName)) 32outputHelper.WriteLine($"Preserved temporary workspace at: {workspaceDirectory.FullName}"); 36outputHelper.WriteLine($"Disposing temporary workspace at: {workspaceDirectory.FullName}"); 44outputHelper.WriteLine($"Failed to delete temporary workspace '{workspaceDirectory.FullName}': {ex.Message}"); 105throw new IOException($"Cannot delete '{file.FullName}': {ex.Message}", ex); 116throw new IOException($"Cannot delete directory '{directory.FullName}': {ex.Message}", ex); 156s_preservedWorkspaces[workspaceDirectory.FullName] = 0; 157outputHelper.WriteLine($"Marked temporary workspace for preservation: {workspaceDirectory.FullName}"); 194outputHelper.WriteLine($"Temporary workspace created at: {workspaceDirectory.FullName}"); 198TestContext.Current?.KeyValueStorage["WorkspacePath"] = workspaceDirectory.FullName;
Aspire.Hosting.CodeGeneration.TypeScript (1)
TypeScriptLanguageSupport.cs (1)
181File.Exists(Path.Combine(parent.FullName, PackageJsonFileName));
Aspire.Hosting.CodeGeneration.TypeScript.Tests (12)
tests\Shared\TemporaryWorkspace.cs (11)
21public string Path => workspaceDirectory.FullName; 30if (s_preservedWorkspaces.ContainsKey(workspaceDirectory.FullName)) 32outputHelper.WriteLine($"Preserved temporary workspace at: {workspaceDirectory.FullName}"); 36outputHelper.WriteLine($"Disposing temporary workspace at: {workspaceDirectory.FullName}"); 44outputHelper.WriteLine($"Failed to delete temporary workspace '{workspaceDirectory.FullName}': {ex.Message}"); 105throw new IOException($"Cannot delete '{file.FullName}': {ex.Message}", ex); 116throw new IOException($"Cannot delete directory '{directory.FullName}': {ex.Message}", ex); 156s_preservedWorkspaces[workspaceDirectory.FullName] = 0; 157outputHelper.WriteLine($"Marked temporary workspace for preservation: {workspaceDirectory.FullName}"); 194outputHelper.WriteLine($"Temporary workspace created at: {workspaceDirectory.FullName}"); 198TestContext.Current?.KeyValueStorage["WorkspacePath"] = workspaceDirectory.FullName;
TypeScriptLanguageSupportTests.cs (1)
141TargetPath = appHostDirectory.FullName,
Aspire.Hosting.Containers.Tests (7)
DockerSocketBindMountTests.cs (4)
24var dockerFilePath = Path.Combine(contextDir.FullName, "Dockerfile"); 29appBuilder.AddDockerfile("docker-client", contextPath: contextDir.FullName) 31.WithBindMount(outDir.FullName, "/out"); 48var infoFile = Path.Combine(outDir.FullName, "docker-info.txt");
WithDockerfileTests.cs (3)
913var manifestPath = Path.Combine(tempDir.FullName, "manifest.json"); 922.WithDockerfileFactory(tempDir.FullName, context => dockerfileContent); 928var dockerfilePath = Path.Combine(tempDir.FullName, "testcontainer.Dockerfile");
Aspire.Hosting.Dotnet (6)
DotnetProjectBuildCoordinator.cs (1)
842var globalJsonPath = Path.Combine(directory.FullName, "global.json");
DotnetProjectRunPropertiesResolver.cs (1)
41var resultOutputPath = Path.Combine(resultDirectory.FullName, "run-properties.json");
src\Shared\MsBuildResponseFile.cs (2)
29var responseFilePath = Path.Combine(directory.FullName, "build-properties.rsp"); 80logger.LogDebug(ex, "Failed to delete temporary MSBuild response-file directory '{DirectoryPath}'.", directory.FullName);
src\Shared\PathNormalizer.cs (2)
418if (linkTarget?.FullName is { Length: > 0 } resolved) 507if (linkTarget?.FullName is { Length: > 0 } resolved)
Aspire.Hosting.Dotnet.Tests (81)
DotnetProjectBuildCoordinatorTests.cs (23)
481var filePath = Path.Combine(fileDirectory.FullName, "worker.cs"); 934var projectRoot = workspace.CreateDirectory("projects").FullName; 936var feed = Directory.CreateDirectory(Path.Combine(projectRoot, "feed")).FullName; 2023var runtimeWorkingDirectory = Directory.CreateDirectory(Path.Combine(workspace.Path, "runtime")).FullName; 2024var sdkWorkingDirectory = Directory.CreateDirectory(Path.Combine(workspace.Path, "sdk-runtime")).FullName; 2077var firstSdkWorkingDirectory = Directory.CreateDirectory(Path.Combine(workspace.Path, "sdk-runtime-1")).FullName; 2078var secondSdkWorkingDirectory = Directory.CreateDirectory(Path.Combine(workspace.Path, "sdk-runtime-2")).FullName; 2125var sourceRoot = Directory.CreateDirectory(Path.Combine(workspace.Path, "source")).FullName; 2129var runtimeWorkingDirectory = Directory.CreateDirectory(Path.Combine(workspace.Path, "runtime")).FullName; 2151Directory.CreateDirectory(Path.Combine(workspace.Path, "source")).FullName, 2155var foreignRoot = Directory.CreateDirectory(Path.Combine(workspace.Path, "foreign")).FullName; 2157var runtimeWorkingDirectory = Directory.CreateDirectory(Path.Combine(foreignRoot, "runtime")).FullName; 2333var linkedProjectPath = CreateProject(physicalRoot.FullName, "Service", "Service.csproj"); 2334File.WriteAllText(Path.Combine(physicalRoot.FullName, "global.json"), """ 2345Directory.CreateSymbolicLink(linkPath, physicalRoot.FullName); 2803var sentinels = Directory.CreateDirectory(Path.Combine(workspace.Path, "instances")).FullName; 3859var path = Path.Combine(directory.FullName, projectFileName); 3868File.WriteAllText(Path.Combine(propertiesDirectory.FullName, "launchSettings.json"), $$""" 3920var relativeSharedProject = Path.GetRelativePath(directory.FullName, sharedProject); 3921var projectPath = Path.Combine(directory.FullName, $"{name}{extension}"); 4052var projectPath = Path.Combine(directory.FullName, $"{name}{extension}"); 4060var appPath = Path.Combine(directory.FullName, $"{name}.cs"); 4061var relativeSharedProject = Path.GetRelativePath(directory.FullName, sharedProject)
DotnetProjectLaunchProfileTests.cs (2)
287var path = Path.Combine(directory.FullName, $"Service{extension}"); 296var path = Path.Combine(directory.FullName, "launchSettings.json");
DotnetProjectOptionsTests.cs (4)
103var projectPath = Path.Combine(projectDirectory.FullName, "Service.csproj"); 105var propertiesDirectory = Directory.CreateDirectory(Path.Combine(projectDirectory.FullName, "Properties")); 106await File.WriteAllTextAsync(Path.Combine(propertiesDirectory.FullName, "launchSettings.json"), """ 122await File.WriteAllTextAsync(Path.Combine(projectDirectory.FullName, "appsettings.json"), """
DotnetProjectPathTests.cs (28)
56var projectPath = Path.Combine(directory.FullName, $"Service{extension}"); 58File.WriteAllText(Path.Combine(directory.FullName, "app.cs"), ""); 59File.WriteAllText(Path.Combine(directory.FullName, "script.fsx"), ""); 61File.WriteAllText(Path.Combine(nested.FullName, "Other.csproj"), "<Project />"); 66var absolute = builder.AddDotnetProject("absolute", directory.FullName, options => options.ExcludeLaunchProfile = true); 71Assert.Equal(directory.FullName, absolute.Resource.WorkingDirectory); 72Assert.Equal(directory.FullName, relative.Resource.WorkingDirectory); 78File.WriteAllText(Path.Combine(directory.FullName, "Later.vbproj"), "<Project />"); 122File.WriteAllText(Path.Combine(directory.FullName, $"First{firstExtension}"), "<Project />"); 123File.WriteAllText(Path.Combine(directory.FullName, $"Second{secondExtension}"), "<Project />"); 125File.WriteAllText(Path.Combine(directory.FullName, "app.cs"), ""); 130var resource = builder.AddDotnetProject("service", directory.FullName, options => options.ExcludeLaunchProfile = true); 132Assert.Equal(directory.FullName, resource.Resource.GetProjectMetadata().ProjectPath); 144$"Path to .NET project for resource 'service' could not be determined. The directory '{directory.FullName}' must contain exactly one .csproj, .fsproj, or .vbproj file. Specify an explicit project filename when multiple supported projects exist.", 188var csharpPath = Path.Combine(directory.FullName, "Service.csproj"); 193File.WriteAllText(Path.Combine(directory.FullName, "Service.fsproj"), "<Project />"); 194File.WriteAllText(Path.Combine(directory.FullName, "Service.vbproj"), "<Project />"); 200var legacy = builder.AddProject("legacy", directory.FullName, options => options.ExcludeLaunchProfile = true); 201var legacyFileApp = builder.AddCSharpApp("legacy-file", directory.FullName, options => options.ExcludeLaunchProfile = true); 203var modern = builder.AddDotnetProject("modern", directory.FullName, options => options.ExcludeLaunchProfile = true); 205Assert.Equal(includeCSharpProject ? csharpPath : directory.FullName, legacy.Resource.GetProjectMetadata().ProjectPath); 206Assert.Equal(includeCSharpProject ? csharpPath : directory.FullName, legacyFileApp.Resource.GetProjectMetadata().ProjectPath); 207Assert.Equal(directory.FullName, modern.Resource.GetProjectMetadata().ProjectPath); 264File.WriteAllText(Path.Combine(directory.FullName, $"First{firstExtension}"), "<Project />"); 265File.WriteAllText(Path.Combine(directory.FullName, $"Second{secondExtension}"), "<Project />"); 267File.WriteAllText(Path.Combine(directory.FullName, "app.cs"), ""); 271builder.AddDotnetProject("service", directory.FullName)); 274$"Path to .NET project for resource 'service' could not be determined. The directory '{directory.FullName}' must contain exactly one .csproj, .fsproj, or .vbproj file. Specify an explicit project filename when multiple supported projects exist.",
DotnetProjectResourceTests.cs (22)
425var projectPath = CreateFile(projectDirectory.FullName, "MyService.csproj"); 427File.WriteAllText(Path.Combine(projectDirectory.FullName, "Dockerfile"), "FROM scratch"); 431.WithWorkingDirectory(runtimeDirectory.FullName) 439Assert.Equal(projectDirectory.FullName, dockerfile.ContextPath); 451var projectPath = Path.Combine(projectDir.FullName, "MyService.csproj"); 455var app = builder.AddDotnetProject("svc", projectDir.FullName, o => o.ExcludeLaunchProfile = true); 469File.WriteAllText(Path.Combine(projectDir.FullName, "First.csproj"), "<Project />"); 470File.WriteAllText(Path.Combine(projectDir.FullName, "Second.csproj"), "<Project />"); 473var app = builder.AddDotnetProject("svc", projectDir.FullName, o => o.ExcludeLaunchProfile = true); 476Assert.Equal(projectDir.FullName, metadata.ProjectPath); 538var projectPath = Path.Combine(projectDir.FullName, "MyService.csproj"); 541var propertiesDir = Directory.CreateDirectory(Path.Combine(projectDir.FullName, "Properties")); 542await File.WriteAllTextAsync(Path.Combine(propertiesDir.FullName, "launchSettings.json"), """ 644var projectPath = Path.Combine(projectDir.FullName, "MyService.csproj"); 647var propertiesDir = Directory.CreateDirectory(Path.Combine(projectDir.FullName, "Properties")); 648await File.WriteAllTextAsync(Path.Combine(propertiesDir.FullName, "launchSettings.json"), """ 714var projectPath = Path.Combine(projectDir.FullName, "MyService.csproj"); 717var propertiesDir = Directory.CreateDirectory(Path.Combine(projectDir.FullName, "Properties")); 718await File.WriteAllTextAsync(Path.Combine(propertiesDir.FullName, "launchSettings.json"), """ 1097var projectPath = Path.Combine(projectDirectory.FullName, $"Project{extension}"); 1190CreateFile(projectDirectory.FullName, "MyService.csproj"); 1191return projectDirectory.FullName;
Helpers\DotnetProjectContractFactory.cs (2)
48var directory = _workspace.CreateDirectory($"{name}-{Guid.NewGuid():N}").FullName; 67var properties = Directory.CreateDirectory(Path.Combine(directory, "Properties")).FullName;
Aspire.Hosting.Garnet.Tests (1)
GarnetFunctionalTests.cs (1)
129bindMountPath = Directory.CreateTempSubdirectory().FullName;
Aspire.Hosting.Go.Tests (69)
AddGoAppTests.cs (69)
92File.WriteAllText(Path.Combine(sourceDir.FullName, "go.mod"), "module example.com/api\n\ngo 1.24\n"); 94using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 95builder.AddGoApp("api", sourceDir.FullName, packagePath: "./cmd/server"); 99var content = await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "api.Dockerfile")); 528var app = builder.AddGoApp("api", sourceDir.FullName, 554Assert.Equal(sourceDir.FullName, plan.WorkingDirectory); 575var packageDirectory = Path.Combine(sourceDir.FullName, "cmd", "server"); 577var app = builder.AddGoApp("api", sourceDir.FullName, 588Assert.Equal(sourceDir.FullName, launchConfig.WorkingDirectory); 599var app = builder.AddGoApp("api", sourceDir.FullName); 625var app = builder.AddGoApp("api", sourceDir.FullName, 662var app = builder.AddGoApp("api", sourceDir.FullName, packagePath: "./cmd/server") 692var app = builder.AddGoApp("api", sourceDir.FullName, 845File.WriteAllText(Path.Combine(sourceDir.FullName, "go.mod"), "module example.com/api\n\ngo 1.23\n"); 846File.WriteAllText(Path.Combine(sourceDir.FullName, "main.go"), "package main\nfunc main() {}"); 848using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 849builder.AddGoApp("api", sourceDir.FullName); 853var dockerfilePath = Path.Combine(outputDir.FullName, "api.Dockerfile"); 868using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 869builder.AddGoApp("api", sourceDir.FullName); 873var content = await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "api.Dockerfile")); 885File.WriteAllText(Path.Combine(sourceDir.FullName, "go.mod"), "module example.com/api\n\ngo 1.22\n"); 887using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 888builder.AddGoApp("api", sourceDir.FullName, 895var content = await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "api.Dockerfile")); 907File.WriteAllText(Path.Combine(sourceDir.FullName, "go.mod"), "module example.com/api\n\ngo 1.24\n"); 912using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 913builder.AddGoApp("api", sourceDir.FullName, ldFlags: "-X main.msg=it's alive"); 917var content = await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "api.Dockerfile")); 930File.WriteAllText(Path.Combine(sourceDir.FullName, "Dockerfile"), "FROM scratch"); 932using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 933var app = builder.AddGoApp("api", sourceDir.FullName); 1051builder.AddGoApp("api", workspace.CreateDirectory("source").FullName, packagePath: "./cmd/server"); 1165File.WriteAllText(Path.Combine(sourceDir.FullName, "go.mod"), "module example.com/api\n\ngo 1.22\n"); 1167using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 1168builder.AddGoApp("api", sourceDir.FullName) 1173var content = await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "api.Dockerfile")); 1187File.WriteAllText(Path.Combine(sourceDir.FullName, "go.mod"), "module example.com/api\n\ngo 1.24\n"); 1189using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 1190builder.AddGoApp("api", sourceDir.FullName) 1195var content = await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "api.Dockerfile")); 1207File.WriteAllText(Path.Combine(sourceDir.FullName, "go.mod"), "module example.com/api\n\ngo 1.24\n"); 1209using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 1210builder.AddGoApp("api", sourceDir.FullName) 1215var content = await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "api.Dockerfile")); 1239DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 1263File.WriteAllText(Path.Combine(sourceDir.FullName, "go.mod"), "module example.com/api\n\ngo 1.24\n"); 1266DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 1275var api = builder.AddGoApp("api", sourceDir.FullName); 1280var dockerfile = await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "api.Dockerfile")); 1297File.WriteAllText(Path.Combine(sourceDir.FullName, "go.mod"), "module example.com/api\n\ngo 1.24\n"); 1300DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 1314var api = builder.AddGoApp("api", sourceDir.FullName); 1320var dockerfile = await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "api.Dockerfile")); 1365File.WriteAllText(Path.Combine(sourceDir.FullName, "go.mod"), "module example.com/api\n\ngo 1.24\n"); 1367using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 1368builder.AddGoApp("api", sourceDir.FullName, raceDetector: true); 1372var content = await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "api.Dockerfile")); 1439File.WriteAllText(Path.Combine(sourceDir.FullName, "go.mod"), "module example.com/api\n\ngo 1.24\n"); 1441using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 1442builder.AddGoApp("api", sourceDir.FullName); 1446var content = await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "api.Dockerfile")); 1458File.WriteAllText(Path.Combine(sourceDir.FullName, "go.mod"), "module example.com/api\n\ngo 1.24\n"); 1460using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 1461builder.AddGoApp("api", sourceDir.FullName) 1466var content = await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "api.Dockerfile")); 1547File.WriteAllText(Path.Combine(sourceDir.FullName, "go.mod"), "module example.com/api\n\ngo 1.24\n"); 1548File.WriteAllText(Path.Combine(sourceDir.FullName, "Dockerfile"), "FROM scratch\nENTRYPOINT [\"/app/api\"]\n"); 1550return sourceDir.FullName;
Aspire.Hosting.Java (6)
JavaBuildToolResolver.cs (4)
86var candidate = Path.Combine(directory.FullName, wrapperName); 87var isApplicationDirectory = directory.FullName == appDirectory; 91|| (IsBuildRoot(directory.FullName, tool) 99var gitPath = Path.Combine(directory.FullName, ".git");
src\Shared\PathNormalizer.cs (2)
418if (linkTarget?.FullName is { Length: > 0 } resolved) 507if (linkTarget?.FullName is { Length: > 0 } resolved)
Aspire.Hosting.Java.Tests (113)
AddJavaAppPublishTests.cs (103)
232File.WriteAllText(Path.Combine(sourceDir.FullName, "build.gradle"), ""); 238var app = builder.AddJavaApp("api", sourceDir.FullName, "build/libs/api.jar"); 241() => JavaDockerfileGenerator.ResolveContainerBuildForTesting(app.Resource, sourceDir.FullName)); 418WritePom(sourceDir.FullName, javaVersion: "21"); 419File.WriteAllText(Path.Combine(sourceDir.FullName, "Dockerfile"), "FROM scratch\n"); 421using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 422builder.AddJavaApp("api", sourceDir.FullName).WithMavenGoal("spring-boot:run"); 425Assert.False(File.Exists(Path.Combine(outputDir.FullName, "api.Dockerfile"))); 439WritePom(sourceDir.FullName, javaVersion: "21"); 440File.WriteAllText(Path.Combine(sourceDir.FullName, "Dockerfile"), "FROM scratch\n"); 442using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 443builder.AddJavaApp("api", sourceDir.FullName) 455$"'{sourceDir.FullName}' and its OpenTelemetry agent path 'target/otel/javaagent.jar' is " + 470WritePom(sourceDir.FullName, javaVersion: "21"); 471File.WriteAllText(Path.Combine(sourceDir.FullName, "Dockerfile"), "FROM scratch\n"); 473using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 474builder.AddJavaApp("api", sourceDir.FullName) 494WritePom(sourceDir.FullName, javaVersion: "21"); 496using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 497builder.AddJavaApp("api", sourceDir.FullName) 503var manifest = await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "aspire-manifest.json"), TestContext.Current.CancellationToken); 1226WritePom(sourceDir.FullName, javaVersion: "21"); 1230builder.AddJavaApp("worker", sourceDir.FullName, "target/worker.jar", ["--interval-seconds", "10"]) 1254File.WriteAllText(Path.Combine(sourceDir.FullName, "pom.xml"), "<project/>"); 1257var app = builder.AddJavaApp("api", sourceDir.FullName, "target/api.jar"); 1260() => JavaDockerfileGenerator.ResolveContainerBuildForTesting(app.Resource, sourceDir.FullName)); 1272WritePom(sourceDir.FullName, javaVersion: "21"); 1273WriteWrapper(siblingDir.FullName, "mvnw"); 1276var app = builder.AddJavaApp("api", sourceDir.FullName) 1281() => JavaDockerfileGenerator.ResolveContainerBuildForTesting(app.Resource, sourceDir.FullName)); 1299var app = builder.AddJavaApp("api", sourceDir.FullName, jarPath); 1304() => JavaDockerfileGenerator.TryGetPrebuiltJarPath(app.Resource, sourceDir.FullName, out _)); 1319WritePom(sourceDir.FullName, javaVersion: "21"); 1322var app = builder.AddJavaApp("api", sourceDir.FullName) 1327() => JavaDockerfileGenerator.ResolveContainerBuildForTesting(app.Resource, sourceDir.FullName)); 1342var app = builder.AddJavaApp("api", sourceDir.FullName, jarPath); 1346Assert.True(JavaDockerfileGenerator.TryGetPrebuiltJarPath(app.Resource, sourceDir.FullName, out var resolved)); 1399WritePom(sourceDir.FullName, javaVersion: "21"); 1403File.Delete(Path.Combine(sourceDir.FullName, "mvnw")); 1404WriteWrapper(sourceDir.FullName, "mvnw.cmd"); 1407var app = builder.AddJavaApp("api", sourceDir.FullName) 1412() => JavaDockerfileGenerator.ResolveContainerBuildForTesting(app.Resource, sourceDir.FullName)); 1428WriteWrapper(sourceDir.FullName, wrapperName); 1429Directory.Delete(Path.Combine(sourceDir.FullName, supportDirectory), recursive: true); 1432var app = builder.AddJavaApp("api", sourceDir.FullName); 1439() => JavaDockerfileGenerator.ResolveContainerBuildForTesting(app.Resource, sourceDir.FullName)); 1539Path.Combine(sourceDir.FullName, "App.java"), 1553$"run --rm -v {sourceDir.FullName}:/work -w /work docker.io/library/eclipse-temurin:{JavaVersionDetector.DefaultJavaVersion}-jdk " + 1555sourceDir.FullName); 1558using (var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest")) 1560builder.AddJavaApp("api", sourceDir.FullName, Path.Combine("target", "app.jar"), ["--greeting", "hello"]); 1569await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "aspire-manifest.json"), TestContext.Current.CancellationToken)); 1579Path.Combine(outputDir.FullName, "api.Dockerfile"), 1580Path.Combine(sourceDir.FullName, "Dockerfile")); 1582Path.Combine(outputDir.FullName, "api.Dockerfile.dockerignore"), 1583Path.Combine(sourceDir.FullName, ".dockerignore")); 1589var buildResult = await RunDockerCommandAsync($"build --network=host -t {imageName} -f Dockerfile .", sourceDir.FullName); 1593var runResult = await RunDockerCommandAsync($"run --rm --network=none {imageName} {string.Join(' ', manifestArgs)}", sourceDir.FullName); 1602await RunDockerCommandAsync($"rmi {imageName}", sourceDir.FullName); 1619Path.Combine(sourceDir.FullName, "pom.xml"), 1650var sourcePath = Directory.CreateDirectory(Path.Combine(sourceDir.FullName, "src", "main", "java")); 1652Path.Combine(sourcePath.FullName, "App.java"), 1671$"run --rm -v {sourceDir.FullName}:/work -w /work docker.io/library/maven:3.9-eclipse-temurin-{JavaVersionDetector.DefaultJavaVersion} " + 1673sourceDir.FullName); 1676using (var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest")) 1678builder.AddJavaApp("api", sourceDir.FullName) 1686Path.Combine(outputDir.FullName, "api.Dockerfile"), 1687Path.Combine(sourceDir.FullName, "Dockerfile")); 1689Path.Combine(outputDir.FullName, "api.Dockerfile.dockerignore"), 1690Path.Combine(sourceDir.FullName, ".dockerignore")); 1698var buildResult = await RunDockerCommandAsync($"build --network=host -t {imageName} -f Dockerfile .", sourceDir.FullName); 1701var runResult = await RunDockerCommandAsync($"run --rm --network=none {imageName}", sourceDir.FullName); 1710await RunDockerCommandAsync($"rmi {imageName}", sourceDir.FullName); 2131WritePom(sourceDir.FullName, javaVersion: "21"); 2132var nested = Directory.CreateDirectory(Path.Combine(sourceDir.FullName, "build tools")); 2133WriteWrapper(nested.FullName, "mvnw"); 2136var app = builder.AddJavaApp("api", sourceDir.FullName) 2141() => JavaDockerfileGenerator.ResolveContainerBuildForTesting(app.Resource, sourceDir.FullName)); 2157WritePom(sourceDir.FullName, javaVersion: "21"); 2158WritePom(movedDir.FullName, javaVersion: "21"); 2160using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 2161builder.AddJavaApp("api", sourceDir.FullName) 2163.WithWorkingDirectory(movedDir.FullName); 2170File.Exists(Path.Combine(outputDir.FullName, "api.Dockerfile")), 2184configureSource(sourceDir.FullName); 2186using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 2190var app = builder.AddQuarkusApp("api", sourceDir.FullName); 2196return await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "api.Dockerfile"), TestContext.Current.CancellationToken); 2366WritePom(sourceDir.FullName, javaVersion: "21"); 2369builder.AddJavaApp("api", sourceDir.FullName) 2371.WithWorkingDirectory(elsewhere.FullName); 2394Assert.Contains(elsewhere.FullName, exception.Message, StringComparison.Ordinal); 2395Assert.Contains(sourceDir.FullName, exception.Message, StringComparison.Ordinal); 2407configureSource?.Invoke(sourceDir.FullName); 2409using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 2412? builder.AddJavaApp("api", sourceDir.FullName) 2413: builder.AddJavaApp("api", sourceDir.FullName, jarPath); 2419return await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "api.Dockerfile"), TestContext.Current.CancellationToken); 2431configureSource?.Invoke(sourceDir.FullName); 2433using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 2436? builder.AddJavaApp("api", sourceDir.FullName) 2437: builder.AddJavaApp("api", sourceDir.FullName, jarPath); 2443var ignorePath = Path.Combine(outputDir.FullName, "api.Dockerfile.dockerignore");
AddJavaAppTests.cs (3)
352var module = Directory.CreateDirectory(Path.Combine(repo.Path, "services", "api")).FullName; 372var module = Directory.CreateDirectory(Path.Combine(repo.Path, "services", "api")).FullName; 391var module = Directory.CreateDirectory(Path.Combine(repo.Path, "services", "api")).FullName;
JavaBuildToolResolverTests.cs (5)
143File.WriteAllText(Path.Combine(_root.FullName, "pom.xml"), "<project/>"); 144File.WriteAllText(Path.Combine(_root.FullName, "mvnw"), "#!/bin/sh\n"); 147public string RootPath => _root.FullName; 152File.WriteAllText(Path.Combine(module.FullName, "pom.xml"), "<project/>"); 154return module.FullName;
TempJavaAppDirectory.cs (2)
27: Directory.CreateDirectory(System.IO.Path.Combine(_root.FullName, directoryName)); 36public string Path => _directory.FullName;
Aspire.Hosting.JavaScript (2)
src\Shared\PathNormalizer.cs (2)
418if (linkTarget?.FullName is { Length: > 0 } resolved) 507if (linkTarget?.FullName is { Length: > 0 } resolved)
Aspire.Hosting.JavaScript.Tests (10)
AddDenoAppTests.cs (1)
2273var deno = builder.AddDenoApp("deno", workspace.WorkspaceRoot.FullName, "main.ts");
AddNodeAppTests.cs (6)
320var appDirectory = sourceDir.FullName; 340using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 363var nodeDockerfilePath = Path.Combine(outputDir.FullName, "nodeapp.Dockerfile"); 377var appDirectory = sourceDir.FullName; 397using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 420var nodeDockerfilePath = Path.Combine(outputDir.FullName, "nodeapp.Dockerfile");
BunAppFixture.cs (1)
78var tempDir = Directory.CreateTempSubdirectory("aspire-bun-tests").FullName;
DenoAppFixture.cs (1)
115var tempDir = Directory.CreateTempSubdirectory("aspire-deno-tests").FullName;
NodeAppFixture.cs (1)
73var tempDir = Directory.CreateTempSubdirectory("aspire-nodejs-tests").FullName;
Aspire.Hosting.Kafka.Tests (1)
KafkaFunctionalTests.cs (1)
143bindMountPath = Directory.CreateTempSubdirectory().FullName;
Aspire.Hosting.Kubernetes (8)
KubernetesEnvironmentResource.cs (8)
1529var patchFilePath = Path.Combine(patchTempDir.FullName, "patch.json"); 1641var certPath = Path.Combine(tempDir.FullName, "tls.crt"); 1642var keyPath = Path.Combine(tempDir.FullName, "tls.key"); 1695logger.LogDebug(ex, "Failed to delete temporary directory '{TempDir}'.", tempDir.FullName); 1975var patchFilePath = Path.Combine(patchTempDir.FullName, "patch.json"); 2156var manifestPath = Path.Combine(tempDir.FullName, "gateway.json"); 2278var certPath = Path.Combine(tempDir.FullName, "tls.crt"); 2279var keyPath = Path.Combine(tempDir.FullName, "tls.key");
Aspire.Hosting.Maui (2)
src\Shared\PathNormalizer.cs (2)
418if (linkTarget?.FullName is { Length: > 0 } resolved) 507if (linkTarget?.FullName is { Length: > 0 } resolved)
Aspire.Hosting.Milvus.Tests (1)
MilvusFunctionalTests.cs (1)
99bindMountPath = Path.Combine(Directory.CreateTempSubdirectory().FullName, "data");
Aspire.Hosting.MongoDB.Tests (3)
MongoDbFunctionalTests.cs (3)
227bindMountPath = Path.Combine(Directory.CreateTempSubdirectory().FullName, "data"); 351var bindMountPath = Directory.CreateTempSubdirectory().FullName; 458var initFilesPath = Directory.CreateTempSubdirectory().FullName;
Aspire.Hosting.MySql.Tests (3)
MySqlFunctionalTests.cs (3)
152bindMountPath = Path.Combine(Directory.CreateTempSubdirectory().FullName, "data"); 311var bindMountPath = Directory.CreateTempSubdirectory().FullName; 406var initFilesPath = Directory.CreateTempSubdirectory().FullName;
Aspire.Hosting.Native.CodeGeneration (1)
NativeContractCompilation.cs (1)
61var assemblyPath = Path.Combine(directory.FullName, $"{assemblyName}.dll");
Aspire.Hosting.Native.Core.Tests (69)
DcpConnectionMaterialTests.cs (2)
53var path = Path.Combine(directory.FullName, "kubeconfig"); 86Path.Combine(directory.FullName, "kubeconfig"), () => true, TimeSpan.FromSeconds(1),
NativeCliProtocolTests.cs (8)
29SocketPermissionHelper.CreateDirectory(parent.FullName, repairExisting: true); 44var permissions = File.GetUnixFileMode(parent.FullName) | UnixFileMode.GroupRead | UnixFileMode.OtherRead; 45File.SetUnixFileMode(parent.FullName, permissions); 47Assert.Equal(permissions, File.GetUnixFileMode(parent.FullName)); 63var original = File.GetUnixFileMode(target.FullName); 65Directory.CreateSymbolicLink(link, target.FullName); 67Assert.Equal(original, File.GetUnixFileMode(target.FullName)); 68Assert.False(File.Exists(Path.Combine(target.FullName, "cli.sock")));
NativeComposeCSharpDockerTests.cs (6)
34"-p", project, "-f", Path.Combine(work.FullName, "compose.yaml")]; 38var inputs = JsonNode.Parse(await File.ReadAllTextAsync(Path.Combine(work.FullName, "deployment-inputs.json")))!; 58if (File.Exists(Path.Combine(work.FullName, "compose.yaml"))) 89start.ArgumentList.Add("--output-path=" + work.FullName); 123var state = JsonNode.Parse(await File.ReadAllTextAsync(Path.Combine(work.FullName, "deployment-state.json")))!; 135new(work.FullName, toolEnvironment, TimeSpan.FromSeconds(60), CancellationToken.None));
NativeComposeCSharpTests.cs (28)
24var (context, _) = await ExportAsync(client, root.FullName); 30Assert.Equal(DockerComposeGenerator.ProjectName(root.FullName, "Comparison", "compose"), actualProject); 32Assert.Equal(Path.Combine(root.FullName, "web"), build["context"]!.GetValue<string>()); 33Assert.Equal(Path.Combine(root.FullName, "web", "Dockerfile"), build["dockerfile"]!.GetValue<string>()); 69var (context, _) = await ExportAsync(client, root.FullName); 137var requestPath = Path.Combine(root.FullName, "comparison.json"); 175Directory.CreateDirectory(Path.Combine(root.FullName, "web")); 176await File.WriteAllTextAsync(Path.Combine(root.FullName, "web", "Dockerfile"), "FROM node:24-alpine\n"); 180var builder = ComposeTestApplication.Create(root.FullName, environment => 211.Replace(JsonEncodedText.Encode(Path.Combine(root.FullName, "web", "Dockerfile")).ToString(), "/app/web/Dockerfile") 212.Replace(JsonEncodedText.Encode(Path.Combine(root.FullName, "web")).ToString(), "/app/web") 213.Replace(DockerComposeGenerator.ProjectName(root.FullName, "Comparison", "compose"), "comparison-project")); 227Directory.CreateDirectory(Path.Combine(root.FullName, "web")); 228await File.WriteAllTextAsync(Path.Combine(root.FullName, "web", "Dockerfile"), "FROM node:24-alpine\n"); 231var (context, _) = await ExportAsync(client, root.FullName); 263DockerComposeGenerator.ProjectName(root.FullName, "Comparison", "compose"), "comparison-project")); 267string NormalizePath(string value) => value.Replace(root.FullName, "/app", StringComparison.Ordinal) 282Directory.CreateDirectory(Path.Combine(root.FullName, "web")); 283await File.WriteAllTextAsync(Path.Combine(root.FullName, "web", "Dockerfile"), "FROM node:24-alpine\n"); 286var (context, _) = await ExportAsync(client, root.FullName); 307Directory.CreateDirectory(Path.Combine(root.FullName, "web")); 308await File.WriteAllTextAsync(Path.Combine(root.FullName, "web", "Dockerfile"), "FROM node:24-alpine\n"); 311var (context, _) = await ExportAsync(client, root.FullName); 416var (context, _) = await ExportAsync(client, root.FullName); 436var (context, _) = await ExportAsync(client, root.FullName); 464var (context, _) = await ExportAsync(client, root.FullName); 489new(root.FullName, new Dictionary<string, string>(), exceedsOutput ? TimeSpan.FromSeconds(30) : TimeSpan.FromMilliseconds(200), 512new(root.FullName, new Dictionary<string, string>(), TimeSpan.FromSeconds(30), cancellation.Token));
NativeDashboardConfigurationTests.cs (2)
23var path = Path.Combine(directory.FullName, fileName); 30.Replace(JsonEncodedText.Encode(directory.FullName).ToString(), "/dashboard"));
NativeIpcSecurityTests.cs (3)
37File.SetUnixFileMode(directory.FullName, UnixFileMode.UserRead | UnixFileMode.UserWrite | UnixFileMode.UserExecute | 39var canaryPath = Path.Combine(directory.FullName, "public.sock"); 77"-u", "nobody", "--", python, "-I", "-c", probe, directory.FullName, canaryPath,
NativeProductCliTests.cs (8)
22var apphost = Path.Combine(directory.FullName, "apphost.mts"); 23var proof = Path.Combine(directory.FullName, "proof.json"); 45await File.WriteAllTextAsync(Path.Combine(directory.FullName, "aspire.config.json"), 48Path.Combine(directory.FullName, "package.json")); 50Path.Combine(directory.FullName, "tsconfig.apphost.json")); 77await File.WriteAllTextAsync(Path.Combine(directory.FullName, "finish"), ""); 99WorkingDirectory = directory.FullName, 108start.Environment["ASPIRE_HOME"] = Path.Combine(directory.FullName, "home");
NativeProviderActivationTests.cs (2)
24Path.Combine(directory.FullName, "missing-provider"), [], options, clock, 51var missing = Path.Combine(directory.FullName, "missing-provider");
TestServices\DcpReadyTestHost.cs (3)
20public string KubeconfigPath => Path.Combine(directory.FullName, "kubeconfig"); 25while (!File.Exists(Path.Combine(root.FullName, "Aspire.slnx"))) 29var directory = Directory.CreateDirectory(Path.Combine(root.FullName, "artifacts", "dcp-ready", Guid.NewGuid().ToString("N")));
TestServices\NativeAuxiliaryTestHost.cs (2)
44while (!File.Exists(Path.Combine(root.FullName, "Aspire.slnx"))) 48HomeDirectory = Path.Combine(root.FullName, "artifacts", "aux", Guid.NewGuid().ToString("N")[..8]);
TestServices\NativeCliTestHost.cs (2)
25public string SocketPath => Path.Combine(_directory.FullName, "cli.sock"); 32SocketPermissionHelper.CreateDirectory(_directory.FullName, repairExisting: true);
TestServices\NativeSocketTestHost.cs (3)
120public string SocketPath => Path.Combine(_directory.FullName, "rpc.sock"); 127while (!File.Exists(Path.Combine(root.FullName, "Aspire.slnx"))) 131var path = Path.Combine(root.FullName, "artifacts", $"nst-{Guid.NewGuid():N}");
Aspire.Hosting.Native.Server (17)
Dcp\DcpApiClient.cs (3)
61var kubeconfig = Path.Combine(_directory.FullName, "kubeconfig"); 84start.Environment["DCP_SESSION_FOLDER"] = _directory.FullName; 273if (Directory.Exists(_directory.FullName))
src\Shared\PathNormalizer.cs (2)
418if (linkTarget?.FullName is { Length: > 0 } resolved) 507if (linkTarget?.FullName is { Length: > 0 } resolved)
src\Shared\SocketPermissionHelper.cs (12)
46var isWorkingDirectory = string.Equals(directory.FullName, Path.TrimEndingDirectorySeparator(currentDirectory), comparison); 47var isUserProfile = string.Equals(directory.FullName, profileRoot, comparison); 48var isTemporaryRoot = string.Equals(Path.TrimEndingDirectorySeparator(directory.FullName), tempRoot, comparison); 61if (string.Equals(current.FullName, profileRoot, comparison) || 62string.Equals(current.FullName, tempRoot, comparison)) 65if (!Directory.Exists(resolvedBase.FullName)) 67throw new IOException($"The socket directory base '{current.FullName}' must resolve to an existing directory."); 84if (directory.Exists && (File.GetUnixFileMode(directory.FullName) & UnixFileMode.StickyBit) != 0) 91return DirectoryHelper.CreateWithOwnerOnlyPermissions(directory.FullName); 96Directory.CreateDirectory(directory.FullName, OwnerOnlyMode); 97if (File.GetUnixFileMode(directory.FullName) != OwnerOnlyMode) 174throw new IOException($"The configured socket directory '{directory.FullName}' must have a protected owner-only ACL with inheritable full control for the current user (SYSTEM is also allowed). Set those permissions or choose a new dedicated directory.");
Aspire.Hosting.Nats.Tests (1)
NatsFunctionalTests.cs (1)
180bindMountPath = Directory.CreateTempSubdirectory().FullName;
Aspire.Hosting.Oracle.Tests (3)
OracleFunctionalTests.cs (3)
117bindMountPath = Directory.CreateTempSubdirectory().FullName; 268var bindMountPath = Directory.CreateTempSubdirectory().FullName; 366var initFilesPath = Directory.CreateTempSubdirectory().FullName;
Aspire.Hosting.PostgreSQL.Tests (3)
PostgresFunctionalTests.cs (3)
226bindMountPath = Path.Combine(Directory.CreateTempSubdirectory().FullName, "data"); 371var bindMountPath = Directory.CreateTempSubdirectory().FullName; 467var initFilesPath = Directory.CreateTempSubdirectory().FullName;
Aspire.Hosting.Python.Tests (55)
AddPythonAppTests.cs (52)
268var projectDirectory = Directory.CreateTempSubdirectory().FullName; 445.WithVirtualEnvironment(venvDir.FullName); 455Assert.Equal(Path.Join(venvDir.FullName, "Scripts", "python.exe"), pythonProjectResource.Command); 459Assert.Equal(Path.Join(venvDir.FullName, "bin", "python"), pythonProjectResource.Command); 533var appVenvPath = Path.Combine(appDir.FullName, ".venv"); 537var resourceBuilder = builder.AddPythonApp("pythonProject", appDir.FullName, scriptName); 546var expectedProjectDirectory = Path.GetFullPath(Path.Combine(builder.AppHostDirectory, appDir.FullName)); 657var resourceBuilder = builder.AddPythonApp("pythonProject", appDir.FullName, scriptName); 666var expectedProjectDirectory = Path.GetFullPath(Path.Combine(builder.AppHostDirectory, appDir.FullName)); 1377File.WriteAllText(Path.Combine(sourceDir.FullName, "main.py"), "print('Hello from Python!')"); 1379using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 1380builder.AddPythonApp("api", sourceDir.FullName, "main.py") 1385var content = await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "api.Dockerfile")); 1399builder.AddPythonApp("api", workspace.CreateDirectory("source").FullName, "main.py") 1530var projectDirectory = sourceDir.FullName; 1560using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 1577var scriptDockerfilePath = Path.Combine(outputDir.FullName, "script-app.Dockerfile"); 1580var moduleDockerfilePath = Path.Combine(outputDir.FullName, "module-app.Dockerfile"); 1583var executableDockerfilePath = Path.Combine(outputDir.FullName, "executable-app.Dockerfile"); 1601var projectDirectory = sourceDir.FullName; 1626using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 1643var scriptDockerfilePath = Path.Combine(outputDir.FullName, "script-app.Dockerfile"); 1646var moduleDockerfilePath = Path.Combine(outputDir.FullName, "module-app.Dockerfile"); 1649var executableDockerfilePath = Path.Combine(outputDir.FullName, "executable-app.Dockerfile"); 2056var projectDirectory = sourceDir.FullName; 2084using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 2097var dockerfilePath = Path.Combine(outputDir.FullName, "custom-images-app.Dockerfile"); 2115var projectDirectory = sourceDir.FullName; 2130using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 2139var dockerfilePath = Path.Combine(outputDir.FullName, "script-app.Dockerfile"); 2163var projectDirectory = sourceDir.FullName; 2180using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 2189var dockerfilePath = Path.Combine(outputDir.FullName, "script-app.Dockerfile"); 2203var projectDirectory = sourceDir.FullName; 2212using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 2221var dockerfilePath = Path.Combine(outputDir.FullName, "script-app.Dockerfile"); 2235var projectDirectory = sourceDir.FullName; 2247using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 2258var scriptDockerfilePath = Path.Combine(outputDir.FullName, "script-app.Dockerfile"); 2261var moduleDockerfilePath = Path.Combine(outputDir.FullName, "module-app.Dockerfile"); 2264var executableDockerfilePath = Path.Combine(outputDir.FullName, "executable-app.Dockerfile"); 2421.WithVirtualEnvironment(venvDir.FullName, createIfNotExists: false); 2448.WithVirtualEnvironment(venvDir.FullName, createIfNotExists: true); 2476.WithVirtualEnvironment(venvDir.FullName); 2575.WithVirtualEnvironment(venvDir.FullName, createIfNotExists: true); 2605.WithVirtualEnvironment(venvDir.FullName, createIfNotExists: false); 2640.WithVirtualEnvironment(venvDir.FullName, createIfNotExists: true) 2676.WithVirtualEnvironment(venvDir.FullName, createIfNotExists: false) 2858.WithVirtualEnvironment(venvDir.FullName, createIfNotExists: true); 2873File.WriteAllText(Path.Combine(sourceDir.FullName, "main.py"), "print('Hello from Python!')"); 2874File.WriteAllText(Path.Combine(sourceDir.FullName, "Dockerfile"), "FROM scratch\nENTRYPOINT [\"python\", \"main.py\"]\n"); 2876return sourceDir.FullName;
AddUvicornAppTests.cs (3)
32var projectDirectory = sourceDir.FullName; 62using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 86var appDockerfilePath = Path.Combine(outputDir.FullName, "main.Dockerfile");
Aspire.Hosting.Qdrant.Tests (1)
QdrantFunctionalTests.cs (1)
118bindMountPath = Path.Combine(Directory.CreateTempSubdirectory().FullName, "data");
Aspire.Hosting.RabbitMQ.Tests (1)
RabbitMQFunctionalTests.cs (1)
124bindMountPath = Directory.CreateTempSubdirectory().FullName;
Aspire.Hosting.Radius (3)
Publishing\RadiusDeploymentPipelineStep.cs (3)
169var kubeConfigPath = Path.Combine(kubeConfigHome.FullName, ".kube", "config"); 197kubeConfigHome.FullName, 697var filePath = Path.Combine(directory.FullName, "parameters.json");
Aspire.Hosting.Radius.Tests (6)
Publishing\PostCallbackSecretValidationTests.cs (1)
22private readonly string _manifestDirectory = Directory.CreateTempSubdirectory("radius-sealed-collision").FullName;
Publishing\SealedSecretPublishTests.cs (3)
18private readonly string _dir = Directory.CreateTempSubdirectory("sealed-secret-tests").FullName; 148var outputDir = Directory.CreateTempSubdirectory("sealed-secret-output").FullName; 181var outputDir = Directory.CreateTempSubdirectory("sealed-secret-output").FullName;
Secrets\SealedSecretManifestTests.cs (1)
10private readonly string _dir = Directory.CreateTempSubdirectory("sealed-secret-manifest-tests").FullName;
Secrets\SecretStoreValidationTests.cs (1)
20private readonly string _sealedManifestDirectory = Directory.CreateTempSubdirectory("radius-secret-store-validation-tests").FullName;
Aspire.Hosting.Redis.Tests (2)
RedisFunctionalTests.cs (2)
430var bindMountPath = Directory.CreateTempSubdirectory().FullName; 615bindMountPath = Directory.CreateTempSubdirectory().FullName;
Aspire.Hosting.RemoteHost (13)
src\Shared\ChildProcess.cs (1)
128_completionPath = Path.Combine(_completionDirectory.FullName, "exit-code");
src\Shared\SocketPermissionHelper.cs (12)
46var isWorkingDirectory = string.Equals(directory.FullName, Path.TrimEndingDirectorySeparator(currentDirectory), comparison); 47var isUserProfile = string.Equals(directory.FullName, profileRoot, comparison); 48var isTemporaryRoot = string.Equals(Path.TrimEndingDirectorySeparator(directory.FullName), tempRoot, comparison); 61if (string.Equals(current.FullName, profileRoot, comparison) || 62string.Equals(current.FullName, tempRoot, comparison)) 65if (!Directory.Exists(resolvedBase.FullName)) 67throw new IOException($"The socket directory base '{current.FullName}' must resolve to an existing directory."); 84if (directory.Exists && (File.GetUnixFileMode(directory.FullName) & UnixFileMode.StickyBit) != 0) 91return DirectoryHelper.CreateWithOwnerOnlyPermissions(directory.FullName); 96Directory.CreateDirectory(directory.FullName, OwnerOnlyMode); 97if (File.GetUnixFileMode(directory.FullName) != OwnerOnlyMode) 174throw new IOException($"The configured socket directory '{directory.FullName}' must have a protected owner-only ACL with inheritable full control for the current user (SYSTEM is also allowed). Set those permissions or choose a new dedicated directory.");
Aspire.Hosting.RemoteHost.Tests (60)
AssemblyLoaderTests.cs (1)
278public string Path => _directory.FullName;
AtsExportsTests.cs (1)
139var tempFile = Path.Combine(workspace.WorkspaceRoot.FullName, "artifact.zip");
CodeGeneration\ApiReferenceExportTests.cs (1)
369public string Path => _directory.FullName;
IntegrationLoadContextTests.cs (8)
47var manifestPath = Path.Combine(manifestDirectory.FullName, "integration-package-probe-manifest.json"); 65Directory.Delete(manifestDirectory.FullName, recursive: true); 75var nativeLibraryPath = Path.Combine(manifestDirectory.FullName, "runtimes", "linux-x64", "native", "libe_sqlite3.so"); 79var manifestPath = Path.Combine(manifestDirectory.FullName, "integration-package-probe-manifest.json"); 94Directory.Delete(manifestDirectory.FullName, recursive: true); 104var resourceAssemblyPath = Path.Combine(manifestDirectory.FullName, "fr", "Aspire.Hosting.Redis.resources.dll"); 108var manifestPath = Path.Combine(manifestDirectory.FullName, "integration-package-probe-manifest.json"); 128Directory.Delete(manifestDirectory.FullName, recursive: true);
IntegrationPackageProbeManifestTests.cs (2)
26var manifestPath = Path.Combine(manifestDirectory.FullName, "integration-package-probe-manifest.json"); 49Directory.Delete(manifestDirectory.FullName, recursive: true);
JsonRpcAuthenticationTests.cs (5)
123File.SetUnixFileMode(target.FullName, 125var originalMode = File.GetUnixFileMode(target.FullName); 126var existingFile = Path.Combine(target.FullName, "rpc.sock"); 130Directory.CreateSymbolicLink(link, target.FullName); 148Assert.Equal(originalMode, File.GetUnixFileMode(target.FullName));
tests\Shared\Processes\ChildProcessTests.cs (1)
389var cleanupPath = Path.Combine(fixture.CreateDirectory().FullName, "cleanup-completed");
tests\Shared\Processes\ProcessSupervisorTests.cs (3)
36var shim = Path.Combine(directory.FullName, "literal %PATH%! shim.cmd"); 47var startInfo = new ProcessStartInfo { WorkingDirectory = directory.FullName }; 72var completionPath = Path.Combine(directory.FullName, "exit-code");
tests\Shared\Processes\ProcessTestFixture.cs (11)
47while (!File.Exists(Path.Combine(repository.FullName, "Aspire.slnx"))) 61var sourcePaths = sources.Select(source => Path.Combine(repository.FullName, "src", "Shared", source)).Concat( 63Path.Combine(repository.FullName, "tests", "Shared", "AsyncTestHelpers.cs"), 64Path.Combine(repository.FullName, "tests", "Aspire.TestUtilities", "PlatformDetection.cs") 68var project = Path.Combine(_directory.FullName, "ProcessTestHost.csproj"); 84await File.WriteAllTextAsync(Path.Combine(_directory.FullName, "Program.cs"), HostProgram); 85await RunDotnetAsync(repository.FullName, 86["restore", project, "--configfile", Path.Combine(repository.FullName, "NuGet.config"), "--verbosity", "quiet"]); 87await RunDotnetAsync(repository.FullName, ["build", project, "--no-restore", "--verbosity", "quiet"]); 88_assemblyPath = Path.Combine(_directory.FullName, "bin", "Debug", targetFramework, "ProcessTestHost.dll"); 97WorkingDirectory = _directory.FullName,
tests\Shared\TemporaryWorkspace.cs (11)
21public string Path => workspaceDirectory.FullName; 30if (s_preservedWorkspaces.ContainsKey(workspaceDirectory.FullName)) 32outputHelper.WriteLine($"Preserved temporary workspace at: {workspaceDirectory.FullName}"); 36outputHelper.WriteLine($"Disposing temporary workspace at: {workspaceDirectory.FullName}"); 44outputHelper.WriteLine($"Failed to delete temporary workspace '{workspaceDirectory.FullName}': {ex.Message}"); 105throw new IOException($"Cannot delete '{file.FullName}': {ex.Message}", ex); 116throw new IOException($"Cannot delete directory '{directory.FullName}': {ex.Message}", ex); 156s_preservedWorkspaces[workspaceDirectory.FullName] = 0; 157outputHelper.WriteLine($"Marked temporary workspace for preservation: {workspaceDirectory.FullName}"); 194outputHelper.WriteLine($"Temporary workspace created at: {workspaceDirectory.FullName}"); 198TestContext.Current?.KeyValueStorage["WorkspacePath"] = workspaceDirectory.FullName;
TestServices\IntegrationHostProcessFixture.cs (16)
29while (!File.Exists(Path.Combine(repository.FullName, "Aspire.slnx"))) 33var project = Path.Combine(_directory.FullName, "LifetimeTestHost.csproj"); 44<ProjectReference Include="{Path.Combine(repository.FullName, "src", "Aspire.Hosting.RemoteHost", "Aspire.Hosting.RemoteHost.csproj")}" /> 45<ProjectReference Include="{Path.Combine(repository.FullName, "src", "Aspire.TypeSystem", "Aspire.TypeSystem.csproj")}" /> 49await File.WriteAllTextAsync(Path.Combine(_directory.FullName, "Program.cs"), HostProgram); 50await RunDotnetAsync(repository.FullName, 51["restore", project, $"--property:Configuration={BuildConfiguration}", "--configfile", Path.Combine(repository.FullName, "NuGet.config"), "--verbosity", "quiet"]); 52await RunDotnetAsync(repository.FullName, 54_hostAssembly = Path.Combine(_directory.FullName, "bin", BuildConfiguration, "net10.0", "LifetimeTestHost.dll"); 62var script = Path.Combine(directory.FullName, "host.js"); 64await File.WriteAllTextAsync(Path.Combine(directory.FullName, "appsettings.json"), JsonSerializer.Serialize(new 82await File.WriteAllTextAsync(Path.Combine(directory.FullName, "fail-startup"), ""); 86await File.WriteAllTextAsync(Path.Combine(directory.FullName, "skip-registration"), ""); 90await File.WriteAllTextAsync(Path.Combine(directory.FullName, "missing-command"), ""); 94await File.WriteAllTextAsync(Path.Combine(directory.FullName, "stall-discovery"), ""); 97return new IntegrationHostServerProcess(directory.FullName, _hostAssembly, useAppHostExecutable, output);
Aspire.Hosting.Rust (2)
src\Shared\PathNormalizer.cs (2)
418if (linkTarget?.FullName is { Length: > 0 } resolved) 507if (linkTarget?.FullName is { Length: > 0 } resolved)
Aspire.Hosting.Rust.Tests (137)
AddRustAppPublishTests.cs (122)
114using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 116var rust = builder.AddRustApp("api", sourceDir.FullName).WithCargoTarget(target); 147using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 149builder.AddRustApp("api", sourceDir.FullName).WithCargoTarget(target); 174using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 176builder.AddRustApp("api", sourceDir.FullName).WithCargoTarget(target); 195using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 197builder.AddRustApp("api", sourceDir.FullName) 221using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 223builder.AddRustApp("api", sourceDir.FullName) 247using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 249builder.AddRustApp("api", sourceDir.FullName) 279using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 281builder.AddRustApp("api", sourceDir.FullName) 301using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 310var rust = builder.AddRustApp("api", sourceDir.FullName); 401using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 405var rust = builder.AddRustApp("api", sourceDir.FullName); 416Assert.False(File.Exists(Path.Combine(outputDir.FullName, "api.Dockerfile"))); 438using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 445var rust = builder.AddRustApp("api", sourceDir.FullName); 471Assert.False(File.Exists(Path.Combine(outputDir.FullName, "api.Dockerfile"))); 495File.WriteAllText(Path.Combine(sourceDir.FullName, "Dockerfile"), "FROM scratch\n"); 497using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 498builder.AddRustApp("api", sourceDir.FullName); 501Assert.False(File.Exists(Path.Combine(outputDir.FullName, "api.Dockerfile"))); 513File.WriteAllText(Path.Combine(sourceDir.FullName, "Dockerfile"), "FROM scratch\n"); 515using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 516builder.AddRustApp("api", sourceDir.FullName).WithCargoTarget(target); 519Assert.False(File.Exists(Path.Combine(outputDir.FullName, "api.Dockerfile"))); 529var customDockerfile = Path.Combine(customContext.FullName, "Dockerfile.prod"); 533using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 534builder.AddRustApp("api", sourceDir.FullName) 535.PublishAsDockerFile(container => container.WithDockerfile(customContext.FullName, "Dockerfile.prod")); 541Assert.Equal(customContext.FullName, dockerfile.ContextPath); 543Assert.False(File.Exists(Path.Combine(outputDir.FullName, "api.Dockerfile"))); 554using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 555builder.AddRustApp("api", sourceDir.FullName) 557customContext.FullName, 564Path.Combine(outputDir.FullName, "api.Dockerfile"), 567Assert.Equal(customContext.FullName, dockerfile.ContextPath); 588var manifestDirectory = Directory.CreateDirectory(Path.Combine(sourceDir.FullName, "Crates", "API")); 589File.WriteAllText(Path.Combine(manifestDirectory.FullName, "Cargo.toml"), "[package]\nname = \"api\"\n"); 592if (!File.Exists(Path.Combine(sourceDir.FullName, differentlyCasedPath))) 597using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 599builder.AddRustApp("api", sourceDir.FullName).WithCargoManifestPath(differentlyCasedPath); 602var content = await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "api.Dockerfile"), TestContext.Current.CancellationToken); 615var manifestDirectory = Directory.CreateDirectory(Path.Combine(sourceDir.FullName, decomposedDirectoryName)); 617File.WriteAllText(Path.Combine(manifestDirectory.FullName, "Cargo.toml"), "[package]\nname = \"api\"\n"); 620if (!File.Exists(Path.Combine(sourceDir.FullName, composedManifestPath))) 625var storedDirectoryName = Path.GetFileName(Assert.Single(Directory.EnumerateDirectories(sourceDir.FullName))); 627using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 629builder.AddRustApp("api", sourceDir.FullName).WithCargoManifestPath(composedManifestPath); 632var content = await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "api.Dockerfile"), TestContext.Current.CancellationToken); 649var sourceDir = Directory.CreateDirectory(Path.Combine(restrictedAncestor.FullName, "source")); 650var manifestDirectory = Directory.CreateDirectory(Path.Combine(sourceDir.FullName, "Crates", "API")); 653File.WriteAllText(Path.Combine(manifestDirectory.FullName, "Cargo.toml"), "[package]\nname = \"api\"\n"); 655var originalMode = File.GetUnixFileMode(restrictedAncestor.FullName); 660File.SetUnixFileMode(restrictedAncestor.FullName, UnixFileMode.UserExecute); 664Directory.GetFileSystemEntries(restrictedAncestor.FullName); 671using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 673builder.AddRustApp("api", sourceDir.FullName).WithCargoManifestPath("Crates/API/Cargo.toml"); 677Path.Combine(outputDir.FullName, "api.Dockerfile"), 684File.SetUnixFileMode(restrictedAncestor.FullName, originalMode); 716File.WriteAllText(Path.Combine(manifestDirectory.FullName, "Cargo.toml"), "[package]\nname = \"api\"\n"); 734var canonicalSourceDir = TestPathNormalizer.ResolveSymlinks(sourceDir.FullName); 736if (string.Equals(sourceDir.FullName, canonicalSourceDir, StringComparison.Ordinal)) 745var manifestPath = Path.GetRelativePath(sourceDir.FullName, canonicalManifest); 747using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 749builder.AddRustApp("api", sourceDir.FullName).WithCargoManifestPath(manifestPath); 752var content = await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "api.Dockerfile"), TestContext.Current.CancellationToken); 768var canonicalSourceDir = TestPathNormalizer.ResolveSymlinks(sourceDir.FullName); 769var manifestDirectory = Directory.CreateDirectory(Path.Combine(sourceDir.FullName, "Crates", "API")); 771File.WriteAllText(Path.Combine(manifestDirectory.FullName, "Cargo.toml"), "[package]\nname = \"api\"\n"); 773if (string.Equals(sourceDir.FullName, canonicalSourceDir, StringComparison.Ordinal)) 784var manifestPath = Path.GetRelativePath(sourceDir.FullName, differentlyCasedCanonicalManifest); 786using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 788builder.AddRustApp("api", sourceDir.FullName).WithCargoManifestPath(manifestPath); 791var content = await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "api.Dockerfile"), TestContext.Current.CancellationToken); 803File.WriteAllText(Path.Combine(outsideDir.FullName, "Cargo.toml"), "[package]\nname = \"outside\"\n"); 804CreateDirectorySymbolicLinkOrSkip(Path.Combine(sourceDir.FullName, "linked"), outsideDir.FullName); 806using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 808builder.AddRustApp("api", sourceDir.FullName).WithCargoManifestPath("linked/Cargo.toml"); 811Assert.False(File.Exists(Path.Combine(outputDir.FullName, "api.Dockerfile"))); 820var firstLink = Path.Combine(sourceDir.FullName, "linked"); 821var secondLink = Path.Combine(sourceDir.FullName, "loop"); 829using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 831builder.AddRustApp("api", sourceDir.FullName).WithCargoManifestPath("linked/Cargo.toml"); 834Assert.False(File.Exists(Path.Combine(outputDir.FullName, "api.Dockerfile"))); 919using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 921builder.AddRustApp("api", sourceDir.FullName); 925var first = await File.ReadAllTextAsync(Path.Combine(firstOutputDir.FullName, "api.Dockerfile"), TestContext.Current.CancellationToken); 926var second = await File.ReadAllTextAsync(Path.Combine(secondOutputDir.FullName, "api.Dockerfile"), TestContext.Current.CancellationToken); 937using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 939builder.AddRustApp("api", sourceDir.FullName); 940builder.AddRustApp("worker", sourceDir.FullName); 943var first = await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "api.Dockerfile"), TestContext.Current.CancellationToken); 944var second = await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "worker.Dockerfile"), TestContext.Current.CancellationToken); 967using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 969builder.AddRustApp("api", sourceDir.FullName); 972var ignore = await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "api.Dockerfile.dockerignore"), TestContext.Current.CancellationToken); 986File.WriteAllText(Path.Combine(sourceDir.FullName, ".dockerignore"), "*.md\n"); 988using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 990builder.AddRustApp("api", sourceDir.FullName); 993Assert.False(File.Exists(Path.Combine(outputDir.FullName, "api.Dockerfile.dockerignore"))); 1008File.WriteAllText(Path.Combine(relocatedDir.FullName, "Dockerfile"), "FROM scratch\n"); 1013using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 1015builder.AddRustApp("api", sourceDir.FullName).WithWorkingDirectory(relocatedDir.FullName); 1024Assert.Equal(relocatedDir.FullName, dockerfile.ContextPath); 1029Assert.Equal(Path.Combine(relocatedDir.FullName, "Dockerfile"), dockerfile.DockerfilePath); 1034Assert.Equal(relocatedDir.FullName, reader.LastWorkingDirectory); 1051File.WriteAllText(Path.Combine(workspace.WorkspaceRoot.FullName, "Cargo.lock"), "version = 4\n"); 1055File.WriteAllText(Path.Combine(sourceDir.FullName, "Cargo.lock"), "version = 4\n"); 1058using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 1060builder.AddRustApp("api", sourceDir.FullName + Path.DirectorySeparatorChar) 1064var content = await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "api.Dockerfile"), TestContext.Current.CancellationToken); 1126configureSource?.Invoke(sourceDir.FullName); 1128using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish, outputDir.FullName, step: "publish-manifest"); 1135var app = builder.AddRustApp("api", sourceDir.FullName); 1141return await File.ReadAllTextAsync(Path.Combine(outputDir.FullName, "api.Dockerfile"), TestContext.Current.CancellationToken);
RustDockerfileShellTests.cs (14)
15var targetDirectory = workspace.CreateDirectory("target").FullName; 16var artifactDirectory = workspace.CreateDirectory("artifacts").FullName; 39var targetDirectory = workspace.CreateDirectory("target").FullName; 40var artifactDirectory = workspace.CreateDirectory("artifacts").FullName; 41var cargoStub = Path.Combine(workspace.WorkspaceRoot.FullName, "cargo-stub"); 64var targetDirectory = workspace.CreateDirectory("target").FullName; 65var artifactDirectory = workspace.CreateDirectory("artifacts").FullName; 95var targetDirectory = workspace.CreateDirectory("target").FullName; 96var artifactDirectory = workspace.CreateDirectory("artifacts").FullName; 97var markerPath = Path.Combine(workspace.WorkspaceRoot.FullName, "command-substitution-ran"); 120var stubDirectory = workspace.CreateDirectory("stubs").FullName; 121var invocationLog = Path.Combine(workspace.WorkspaceRoot.FullName, "invocations"); 152var stubDirectory = workspace.CreateDirectory("stubs").FullName; 153var invocationLog = Path.Combine(workspace.WorkspaceRoot.FullName, "invocations");
TempCrateDirectory.cs (1)
13public string Path => _directory.FullName;
Aspire.Hosting.Sdk.Tests (95)
AppHostSdkTargetsTests.cs (84)
327var aspireCliPath = await CreateFakeAspireCliAsync(fakeCliDirectory.FullName); 328await CreateFakeDnxAsync(fakeCliDirectory.FullName); 333CreatePathEnvironment(fakeCliDirectory.FullName)); 351var dnxPath = await CreateFakeDnxAsync(fakeCliDirectory.FullName); 354await CreateFakeAspireCliAsync(fakeCliDirectory.FullName); 371[GetPathEnvironmentVariableName()] = CreatePathWithoutAspire(fakeCliDirectory.FullName) 390var dnxPath = await CreateFakeDnxAsync(fakeCliDirectory.FullName); 391await CreateFakeAspireCliAsync(fakeCliDirectory.FullName); 402CreatePathEnvironment(fakeCliDirectory.FullName)); 430CreatePathEnvironment(emptyPathDirectory.FullName, includeCurrentPath: false)); 446var nonExecutableDnxPath = Path.Combine(nonExecutableDirectory.FullName, "dnx"); 454var executableDnxPath = await CreateFakeDnxAsync(executableDirectory.FullName); 456var path = $"{nonExecutableDirectory.FullName}{Path.PathSeparator}{CreatePathWithoutAspire(executableDirectory.FullName)}"; 475var aspireCliPath = await CreateFakeAspireCliAsync(fakeCliDirectory.FullName); 494await CreateFakeDnxThatFailsVersionAsync(fakeCliDirectory.FullName); 501[GetPathEnvironmentVariableName()] = CreatePathWithoutAspire(fakeCliDirectory.FullName) 515var aspireCliPath = await CreateFakeAspireCliAsync(fakeCliDirectory.FullName); 530var aspireCliPath = await CreateFakeAspireCommandShimAsync(fakeCliDirectory.FullName, extension); 555var aspireCliPath = await CreateFakeAspireCliAsync(fakeCliDirectory.FullName); 562[GetPathEnvironmentVariableName()] = CreatePathWithoutDnx(emptyPathDirectory.FullName) 596var aspireCliPath = await CreateFakeAspireCliAsync(fakeCliDirectory.FullName); 601CreatePathEnvironment(fakeCliDirectory.FullName)); 667await CreateFakeAspireCliAsync(fakeCliDirectory.FullName); 674[pathEnvironmentVariable] = CreatePathWithoutAspire(fakeCliDirectory.FullName) 704await CreateFakeDnxAsync(fakeCliDirectory.FullName); 711[pathEnvironmentVariable] = CreatePathWithoutAspire(fakeCliDirectory.FullName) 747CreateFakeNativeAspireCli(fakeCliDirectory.FullName); 752[GetPathEnvironmentVariableName()] = CreatePathWithoutDnx(fakeCliDirectory.FullName) 787var aspireCliPath = await CreateFakeAspireCommandShimAsync(fakeCliDirectory.FullName); 823var cliPath = Path.Combine(fakeCliDirectory.FullName, OperatingSystem.IsWindows() ? "aspire.cmd" : "aspire"); 824await CreateFakeAspireCliWithVersionAsync(fakeCliDirectory.FullName, cliVersion); 839await CreateFakeAspireCliWithVersionAsync(fakeCliDirectory.FullName, "13.4.5"); 840var dnxPath = await CreateFakeDnxAsync(fakeCliDirectory.FullName); 843[GetPathEnvironmentVariableName()] = CreatePathWithoutAspire(fakeCliDirectory.FullName) 872await CreateFakeAspireCliWithVersionAsync(staleCliDirectory.FullName, AspireCliVersion); 873var staleBundle = CreateFakeCliBundle(staleCliDirectory.FullName); 878await CreateFakeDnxAsync(dnxDirectory.FullName); 893[GetPathEnvironmentVariableName()] = CreatePathWithoutAspire(staleCliDirectory.FullName, dnxDirectory.FullName) 928await CreateFakeDnxWithSetupExitCodeAsync(cliDirectory.FullName, 42); 931CreateFakeNativeAspireCli(cliDirectory.FullName); 940[GetPathEnvironmentVariableName()] = CreatePathWithoutAspire(cliDirectory.FullName) 959await CreateFakeDnxWithSetupExitCodeAsync(dnxDirectory.FullName, 0); 963CreateFakeNativeAspireCli(cliDirectory.FullName); 964await File.WriteAllTextAsync(Path.Combine(cliDirectory.FullName, "setup-exit-code"), "42"); 974[GetPathEnvironmentVariableName()] = CreatePathWithoutAspire(cliDirectory.FullName, dnxDirectory.FullName) 1084var aspireCliPath = await CreateFakeAspireCliThatSetsUpBundleAsync(fakeCliDirectory.FullName); 1094var selectedBundle = GetFakeCliBundlePaths(fakeCliDirectory.FullName); 1100AssertCliBundleExists(fakeCliDirectory.FullName, JsonSerializer.Serialize(properties)); 1108var selectedCliPath = await CreateFakeAspireCliThatSetsUpBundleAsync(selectedCliDirectory.FullName); 1110await CreateFakeAspireCliWithVersionAsync(staleCliDirectory.FullName, AspireCliVersion); 1111var staleBundle = CreateFakeCliBundle(staleCliDirectory.FullName); 1117[GetPathEnvironmentVariableName()] = CreatePathWithoutAspire(selectedCliDirectory.FullName, staleCliDirectory.FullName) 1121var selectedBundle = GetFakeCliBundlePaths(selectedCliDirectory.FullName); 1129AssertCliBundleExists(selectedCliDirectory.FullName, JsonSerializer.Serialize(properties)); 1139var aspireCliPath = CreateFakeNativeAspireCli(fakeCliDirectory.FullName); 1150var selectedBundle = GetFakeCliBundlePaths(fakeCliDirectory.FullName); 1155AssertCliBundleExists(fakeCliDirectory.FullName, JsonSerializer.Serialize(properties)); 1165await CreateFakeAspireCliThatHangsOnSetupAsync(fakeCliDirectory.FullName); 1166await CreateFakeDnxAsync(fakeCliDirectory.FullName); 1171[GetPathEnvironmentVariableName()] = CreatePathWithoutAspire(fakeCliDirectory.FullName) 1194CopyFakeCommandHost(fakeCommandDirectory.FullName); 1195var commandShimPath = Path.Combine(fakeCommandDirectory.FullName, "aspire.cmd"); 1331await CreateFakeDnxAsync(fakeCliDirectory.FullName); 1337[GetPathEnvironmentVariableName()] = CreatePathWithoutAspire(fakeCliDirectory.FullName) 1356await CreateFakeAspireCliThatFailsVersionAsync(fakeCliDirectory.FullName); 1357var dnxPath = await CreateFakeDnxAsync(fakeCliDirectory.FullName); 1362CreatePathEnvironment(fakeCliDirectory.FullName)); 1382var cliPath = Path.Combine(fakeCliDirectory.FullName, OperatingSystem.IsWindows() ? "aspire.cmd" : "aspire"); 1383await CreateFakeAspireCliWithVersionAsync(fakeCliDirectory.FullName, cliVersion); 1398var cliPath = Path.Combine(fakeCliDirectory.FullName, OperatingSystem.IsWindows() ? "aspire.cmd" : "aspire"); 1399await CreateFakeAspireCliWithVersionAndLargeStdErrAsync(fakeCliDirectory.FullName, "13.5.0"); 1414var cliPath = Path.Combine(fakeCliDirectory.FullName, OperatingSystem.IsWindows() ? "aspire.cmd" : "aspire"); 1415await CreateFakeAspireCliThatHangsOnVersionAsync(fakeCliDirectory.FullName); 1430var cliPath = Path.Combine(fakeCliDirectory.FullName, OperatingSystem.IsWindows() ? "aspire.cmd" : "aspire"); 1431await CreateFakeAspireCliWithVersionAsync(fakeCliDirectory.FullName, "aspire version 13.5.0"); 1446var cliPath = Path.Combine(fakeCliDirectory.FullName, OperatingSystem.IsWindows() ? "aspire.cmd" : "aspire"); 1447await CreateFakeAspireCliThatFailsVersionAsync(fakeCliDirectory.FullName); 1466CreatePathEnvironment(emptyPathDirectory.FullName, includeCurrentPath: false)); 1751await File.WriteAllTextAsync(Path.Combine(fakeSdkDirectory.FullName, "dotnet.dll"), ""); 2349directory = Directory.GetParent(directory)?.FullName;
tests\Shared\TemporaryWorkspace.cs (11)
21public string Path => workspaceDirectory.FullName; 30if (s_preservedWorkspaces.ContainsKey(workspaceDirectory.FullName)) 32outputHelper.WriteLine($"Preserved temporary workspace at: {workspaceDirectory.FullName}"); 36outputHelper.WriteLine($"Disposing temporary workspace at: {workspaceDirectory.FullName}"); 44outputHelper.WriteLine($"Failed to delete temporary workspace '{workspaceDirectory.FullName}': {ex.Message}"); 105throw new IOException($"Cannot delete '{file.FullName}': {ex.Message}", ex); 116throw new IOException($"Cannot delete directory '{directory.FullName}': {ex.Message}", ex); 156s_preservedWorkspaces[workspaceDirectory.FullName] = 0; 157outputHelper.WriteLine($"Marked temporary workspace for preservation: {workspaceDirectory.FullName}"); 194outputHelper.WriteLine($"Temporary workspace created at: {workspaceDirectory.FullName}"); 198TestContext.Current?.KeyValueStorage["WorkspacePath"] = workspaceDirectory.FullName;
Aspire.Hosting.Seq.Tests (1)
SeqFunctionalTests.cs (1)
98bindMountPath = Path.Combine(Directory.CreateTempSubdirectory().FullName, "data");
Aspire.Hosting.SqlServer.Tests (1)
SqlServerFunctionalTests.cs (1)
160bindMountPath = Directory.CreateTempSubdirectory().FullName;
Aspire.Hosting.Tasks (1)
ResolveAspireCliBundle.cs (1)
513return File.ResolveLinkTarget(path, returnFinalTarget: true)?.FullName ?? path;
Aspire.Hosting.Testing.Tests (5)
tests\Aspire.Hosting.TestUtilities\Utils\MSBuildUtils.cs (1)
15directory = Directory.GetParent(directory)!.FullName;
tests\Shared\DistributedApplicationTestingBuilderExtensions.cs (1)
52builder.Configuration["Aspire:Store:Path"] = path ?? Directory.CreateTempSubdirectory().FullName;
tests\Shared\Playwright\PlaywrightProvider.cs (1)
55var probePath = Path.Combine(repoRoot.FullName, "artifacts", "bin", "playwright-deps");
tests\Shared\Playwright\TestUtils.cs (2)
14if (Directory.Exists(Path.Combine(repoRoot.FullName, ".git")) || File.Exists(Path.Combine(repoRoot.FullName, ".git")))
Aspire.Hosting.Tests (361)
ApplicationModel\Docker\DockerfileBuildAnnotationTests.cs (7)
220var dockerfilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "Dockerfile"); 221var differentCasingDockerfilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "DOCKERFILE"); 229var annotation = new DockerfileBuildAnnotation(workspace.WorkspaceRoot.FullName, dockerfilePath, null); 240var contextPath = Path.Combine(workspace.WorkspaceRoot.FullName, "app"); 241var outputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "out"); 270var contextPath = Path.Combine(workspace.WorkspaceRoot.FullName, "app"); 271var outputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "out");
AspireStoreTests.cs (2)
63ProjectDirectory = workspace.WorkspaceRoot.FullName 69Assert.Equal(Path.Combine(workspace.WorkspaceRoot.FullName, ".aspire"), store.BasePath);
Backchannel\AppHostBackchannelTests.cs (1)
21await CanConnectToBackchannelAsync(Path.Combine(root.FullName, "custom", "cli.sock"));
Backchannel\AuxiliaryBackchannelRpcTargetTests.cs (1)
1652var baseDir = Directory.CreateTempSubdirectory("abrt-").FullName;
Backchannel\AuxiliaryBackchannelTests.cs (10)
682var realDirectory = Directory.CreateDirectory(Path.Combine(tempRoot.FullName, "real")); 683var symlinkDirectory = Path.Combine(tempRoot.FullName, "link"); 684Directory.CreateSymbolicLink(symlinkDirectory, realDirectory.FullName); 716var appHostFile = new FileInfo(Path.Combine(tempRoot.FullName, "AppHost.cs")); 717File.WriteAllText(appHostFile.FullName, "// apphost"); 718var differentlyCasedPath = Path.Combine(tempRoot.FullName, "APPHOST.CS"); 728var canonicalPath = PathNormalizer.ResolveToFilesystemPath(appHostFile.FullName); 748var appHostFile = Path.Combine(tempRoot.FullName, "apphost.cs"); 782var directory = BackchannelConstants.GetBackchannelsDirectory(root.FullName); 797root.FullName,
Backchannel\GetTerminalInfoAsyncTests.cs (1)
404var dir = Directory.CreateTempSubdirectory("at-").FullName;
Cli\ProcessStartTimeHelperTests.cs (4)
114var statDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, pid.ToString(CultureInfo.InvariantCulture))); 118File.WriteAllText(Path.Combine(statDirectory.FullName, "stat"), $"{pid} (proc name) {string.Join(' ', fields)}"); 120Assert.Equal(expectedStartTicks, ProcessStartTimeHelper.TryGetLinuxProcessStartTicks(pid, workspace.WorkspaceRoot.FullName)); 127Assert.Null(ProcessStartTimeHelper.TryGetLinuxProcessStartTicks(999999, workspace.WorkspaceRoot.FullName));
Dashboard\DashboardEventHandlersTests.cs (2)
892var dashboardExecutable = Path.Combine(tempDir.FullName, executableName); 921var dashboardDll = Path.Combine(tempDirectory.FullName, "Aspire.Dashboard.dll");
Dashboard\DashboardResourceTests.cs (1)
42var dashboardPath = Path.Combine(dashboardDirectory.FullName, "dashboard");
Dashboard\DashboardServiceDataTerminalTests.cs (1)
187var baseDir = Directory.CreateTempSubdirectory("dsdt-").FullName;
Dcp\DcpHostNotificationTests.cs (12)
548var terminalHostPath = Path.Combine(directory.FullName, "aspire-managed.exe"); 550File.WriteAllText(Path.Combine(directory.FullName, "conpty.dll"), ""); 551Directory.CreateDirectory(Path.Combine(directory.FullName, architectureDirectory)); 552File.WriteAllText(Path.Combine(directory.FullName, architectureDirectory, "OpenConsole.exe"), ""); 557Assert.Equal(directory.FullName, conPtyPath); 578var terminalHostPath = Path.Combine(directory.FullName, "aspire-managed.exe"); 580var nativeDirectory = Path.Combine(directory.FullName, "runtimes", runtimeIdentifier, "native"); 608var terminalHostPath = Path.Combine(directory.FullName, "aspire-managed.exe"); 612File.WriteAllText(Path.Combine(directory.FullName, "conpty.dll"), ""); 618Directory.CreateDirectory(Path.Combine(directory.FullName, architectureDirectory)); 619File.WriteAllText(Path.Combine(directory.FullName, architectureDirectory, "OpenConsole.exe"), ""); 729var dcpOptions = new DcpOptions { CliPath = CreateFakeDcpLauncher(launcherDir.FullName, launcherExitCode) };
Dcp\DcpSocketTests.cs (1)
19var directory = root.FullName;
Dcp\KubernetesServiceTests.cs (1)
2424_root ??= Directory.CreateTempSubdirectory("test-kubeconfig-").FullName;
Dcp\ProcessUtilTests.cs (5)
97var appPath = DotnetFileAppProcess.WriteApp(workspace.WorkspaceRoot.FullName, "argument-list.cs", """ 119var appPath = DotnetFileAppProcess.WriteApp(workspace.WorkspaceRoot.FullName, "argument-list-failure.cs", """ 144var appPath = DotnetFileAppProcess.WriteApp(workspace.WorkspaceRoot.FullName, "path-executable.cs", """ 214var appPath = DotnetFileAppProcess.WriteApp(workspace.WorkspaceRoot.FullName, "single-line.cs", """ 229var appPath = DotnetFileAppProcess.WriteApp(workspace.WorkspaceRoot.FullName, "failing.cs", $$"""
DebugSupportExtensionsTests.cs (2)
378var appPath = Path.Combine(workspace.WorkspaceRoot.FullName, "app.cs"); 394var appPath = Path.Combine(workspace.WorkspaceRoot.FullName, "app.cs");
DistributedApplicationBuilderTests.cs (30)
120var projectDirectory = workspace.WorkspaceRoot.FullName; 166var projectDirectory = workspace.WorkspaceRoot.FullName; 524var unrelatedFile = Path.Combine(tempDirectory.FullName, "unrelated.json"); 548var secretsFile = Path.Combine(tempDirectory.FullName, "Production.json"); 637var path = Path.Combine(directory.FullName, "state.json"); 690var legacyPath = Path.Combine(directory.FullName, "legacy.json"); 691var aspirePath = Path.Combine(directory.FullName, "Development.json"); 740var secretsFile = Path.Combine(tempDirectory.FullName, "Production.json"); 771var secretsFile = Path.Combine(tempDirectory.FullName, "Production.json"); 966var appHostPath = Path.Combine(projectDirectory.FullName, "apphost.ts"); 970ProjectDirectory = projectDirectory.FullName, 977ProjectDirectory = projectDirectory.FullName, 979AppHostFilePath = Path.Combine(projectDirectory.FullName, "AppHost.ts"), 1015var appHostPath = Path.Combine(realDirectory.FullName, "apphost.ts"); 1018var symlinkDirectory = Path.Combine(projectDirectory.FullName, "link"); 1019Directory.CreateSymbolicLink(symlinkDirectory, realDirectory.FullName); 1024ProjectDirectory = projectDirectory.FullName, 1048var legacyAppHostPath = Path.GetFullPath(Path.Join(projectDirectory.FullName, projectName)); 1066ProjectDirectory = projectDirectory.FullName, 1068AppHostFilePath = Path.Combine(projectDirectory.FullName, "apphost.ts"), 1114ProjectDirectory = projectDirectory.FullName, 1116AppHostFilePath = Path.Combine(projectDirectory.FullName, "apphost.ts"), 1139ProjectDirectory = projectDirectory.FullName, 1141AppHostFilePath = Path.Combine(projectDirectory.FullName, "apphost.ts"), 1198ProjectDirectory = projectDirectory.FullName, 1200AppHostFilePath = Path.Combine(projectDirectory.FullName, "apphost.ts"), 1262ProjectDirectory = projectDirectory.FullName, 1264AppHostFilePath = Path.Combine(projectDirectory.FullName, "apphost.ts"), 1324ProjectDirectory = projectDirectory.FullName, 1326AppHostFilePath = Path.Combine(projectDirectory.FullName, "apphost.ts"),
DistributedApplicationTests.cs (3)
2156var executableAppPath = DotnetFileAppProcess.WriteApp(executableDir.FullName, "worker.cs", """ 2208.WithTempAspireStore(aspireStoreDir.FullName) 2215builder.AddExecutable(executableResourceName, DotnetFileAppProcess.ExecutablePath, executableDir.FullName, DotnetFileAppProcess.CreateArguments(executableAppPath))
DotnetProgramPublishingTests.cs (10)
143var projectPath = Path.Combine(workspace.WorkspaceRoot.FullName, "program.csproj"); 162workspace.WorkspaceRoot.FullName); 322resource.WithAnnotation(new TestProjectMetadata(Path.Combine(workspace.WorkspaceRoot.FullName, "program.csproj"))) 328context.OutputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "program.tar"); 380.WithAnnotation(new TestProjectMetadata(Path.Combine(workspace.WorkspaceRoot.FullName, "local.csproj"))); 382.WithAnnotation(new TestProjectMetadata(Path.Combine(workspace.WorkspaceRoot.FullName, "archive.csproj"))) 386context.OutputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "archive.tar"); 440var metadata = new TestProjectMetadata(Path.Combine(workspace.WorkspaceRoot.FullName, "program.csproj")); 494var path = Path.Combine(workspace.WorkspaceRoot.FullName, name); 511var path = Path.Combine(workspace.WorkspaceRoot.FullName, name);
MSBuildTests.cs (86)
23var directory = workspace.WorkspaceRoot.FullName; 73var directory = workspace.WorkspaceRoot.FullName; 112CreateLibraryProject(workspace.WorkspaceRoot.FullName, "Library"); 114var appHostDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost"); 169CreateAppProject(workspace.WorkspaceRoot.FullName, "App"); 171var appHostDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost"); 222var temp = workspace?.WorkspaceRoot.FullName; 445var projectPath = Path.Combine(workspace.WorkspaceRoot.FullName, "Plain.AppHost.csproj"); 455workspace.WorkspaceRoot.FullName, 475var bundle = CreateFakeCliBundle(workspace.WorkspaceRoot.FullName); 476var appHostDirectory = CreateSdkBundleAppHostProject(workspace.WorkspaceRoot.FullName, repoRoot, 497var layoutRoot = Path.Combine(workspace.WorkspaceRoot.FullName, "layout"); 500var appHostDirectory = CreateSdkBundleAppHostProject(workspace.WorkspaceRoot.FullName, repoRoot, 521var layoutRoot = Path.Combine(workspace.WorkspaceRoot.FullName, "layout"); 524var appHostDirectory = CreateSdkBundleAppHostProject(workspace.WorkspaceRoot.FullName, repoRoot, 544var bundle = CreateFakeCliBundle(workspace.WorkspaceRoot.FullName); 547workspace.WorkspaceRoot.FullName, 569var fakeCliDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "bin")); 570var fakeCliPath = CreateFakeAspireCli(fakeCliDirectory.FullName); 571var bundle = CreateFakeCliBundle(Path.Combine(workspace.WorkspaceRoot.FullName, "aspire-home")); 572var appHostDirectory = CreateSdkBundleAppHostProject(workspace.WorkspaceRoot.FullName, repoRoot, 593var aspireHome = Path.Combine(workspace.WorkspaceRoot.FullName, "empty-aspire-home"); 594var fakeCliDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "fake-cli")); 595_ = CreateFakeAspireCliThatSetsUpBundle(fakeCliDirectory.FullName); 596var appHostDirectory = CreateSdkBundleAppHostProject(workspace.WorkspaceRoot.FullName, repoRoot, additionalProperties: ""); 603["PATH"] = GetPathWithoutAspire(fakeCliDirectory.FullName) 607var bundleRoot = Path.Combine(workspace.WorkspaceRoot.FullName, BundleDiscovery.BundleDirectoryName); 622var aspireHome = Path.Combine(workspace.WorkspaceRoot.FullName, "empty-aspire-home"); 623var fakeCliDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "fake-cli")); 624var fakeCliPath = CreateFakeAspireCliThatSetsUpBundle(fakeCliDirectory.FullName); 626workspace.WorkspaceRoot.FullName, 642Assert.False(Directory.Exists(Path.Combine(workspace.WorkspaceRoot.FullName, BundleDiscovery.BundleDirectoryName))); 651var aspireHome = Path.Combine(workspace.WorkspaceRoot.FullName, "empty-aspire-home"); 652var fakeCliDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "fake-cli")); 653var fakeCliPath = CreateFakeAspireCliThatFailsSetup(fakeCliDirectory.FullName); 655workspace.WorkspaceRoot.FullName, 681var aspireHome = Path.Combine(workspace.WorkspaceRoot.FullName, "empty-aspire-home"); 682var fakeCliDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "fake-cli")); 683var fakeCliPath = CreateFakeAspireCliThatTimesOutSetup(fakeCliDirectory.FullName); 685workspace.WorkspaceRoot.FullName, 711var aspireHome = Path.Combine(workspace.WorkspaceRoot.FullName, "empty-aspire-home"); 713var fakeCliDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, literalSegment)); 714var fakeCliPath = CreateFakeAspireCliThatSetsUpBundle(fakeCliDirectory.FullName); 716workspace.WorkspaceRoot.FullName, 731var bundleRoot = Path.Combine(workspace.WorkspaceRoot.FullName, BundleDiscovery.BundleDirectoryName); 745var fakeCliDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, literalSegment)); 746var fakeCliPath = CreateFakeAspireCliThatFailsSetup(fakeCliDirectory.FullName); 748workspace.WorkspaceRoot.FullName, 758["ASPIRE_HOME"] = Path.Combine(workspace.WorkspaceRoot.FullName, "empty-aspire-home"), 773var bundle = CreateFakeCliBundle(Path.Combine(workspace.WorkspaceRoot.FullName, "aspire-home")); 774var appHostDirectory = CreateSdkBundleAppHostProject(workspace.WorkspaceRoot.FullName, repoRoot, additionalProperties: ""); 796var toolsDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, ".dotnet", "tools")); 797var shimPath = CreateFakeAspireCli(toolsDirectory.FullName); 799toolsDirectory.FullName, 808_ = CreateFakeAspireCli(nativeCliDirectory.FullName); 809File.WriteAllText(Path.Combine(nativeCliDirectory.FullName, ".aspire-install.json"), """{"source":"dotnet-tool"}"""); 810var bundle = CreateFakeCliBundleAtLayoutRoot(nativeCliDirectory.FullName); 811var appHostDirectory = CreateSdkBundleAppHostProject(workspace.WorkspaceRoot.FullName, repoRoot, 832var bundle = CreateFakeCliBundle(workspace.WorkspaceRoot.FullName); 833var repoDcpDir = EnsureTrailingSeparator(Path.Combine(workspace.WorkspaceRoot.FullName, "repo-dcp")); 834var repoDashboardDir = EnsureTrailingSeparator(Path.Combine(workspace.WorkspaceRoot.FullName, "repo-dashboard")); 838var appHostDirectory = CreateSdkBundleAppHostProject(workspace.WorkspaceRoot.FullName, repoRoot, 861var missingBundlePath = Path.Combine(workspace.WorkspaceRoot.FullName, "missing-bundle"); 862var appHostDirectory = CreateSdkBundleAppHostProject(workspace.WorkspaceRoot.FullName, repoRoot, 896workspace.WorkspaceRoot.FullName, 899var fakeCliDirectory = Directory.CreateDirectory(Path.Combine(workspace.WorkspaceRoot.FullName, "fake-cli")); 900var dnxPath = Path.Combine(fakeCliDirectory.FullName, OperatingSystem.IsWindows() ? "dnx.exe" : "dnx"); 917["ASPIRE_HOME"] = Path.Combine(workspace.WorkspaceRoot.FullName, "empty-aspire-home"), 918["PATH"] = GetPathWithoutAspire(fakeCliDirectory.FullName) 936var missingCliPath = Path.Combine(workspace.WorkspaceRoot.FullName, "missing-aspire"); 937var appHostDirectory = CreateSdkBundleAppHostProject(workspace.WorkspaceRoot.FullName, repoRoot, 958var appHostDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost"); 991CreateAppProject(workspace.WorkspaceRoot.FullName, "App"); 992var bundle = CreateFakeCliBundle(workspace.WorkspaceRoot.FullName); 993var appHostDirectory = CreateSdkBundleAppHostProject(workspace.WorkspaceRoot.FullName, repoRoot, 1273CreateLibraryProject(workspace.WorkspaceRoot.FullName, "Library"); 1275var appHostDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost"); 1332CreateLibraryProject(workspace.WorkspaceRoot.FullName, "Library"); 1334var appHostDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost"); 1387var projectDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "MyHostingExtension"); 1436var projectDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "MyHostingExtension"); 1485var packageOutputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "packages"); 1512var packageOutputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "packages"); 1558var packageOutputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "packages"); 1568var projectDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "MyHostingExtension"); 1701var appHostDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "AppHost");
PathLookupHelperTests.cs (7)
13var binPath = Path.Combine(workspace.WorkspaceRoot.FullName, "bin"); 47var firstBinPath = Path.Combine(workspace.WorkspaceRoot.FullName, "first-bin"); 48var secondBinPath = Path.Combine(workspace.WorkspaceRoot.FullName, "second-bin"); 74var binPath = Path.Combine(workspace.WorkspaceRoot.FullName, "bin"); 94var binPath = Path.Combine(workspace.WorkspaceRoot.FullName, "bin"); 212var firstBinPath = Path.Combine(workspace.WorkspaceRoot.FullName, "first-bin"); 213var secondBinPath = Path.Combine(workspace.WorkspaceRoot.FullName, "second-bin");
ProjectResourceTests.cs (2)
37var projectDetails = await PrepareProjectWithTrailingCommasInLaunchSettingsAsync(workspace.WorkspaceRoot.FullName).DefaultTimeout(); 81var projectDetails = await PrepareProjectWithMalformedLaunchSettingsAsync(workspace.WorkspaceRoot.FullName).DefaultTimeout();
PublishAsDockerfileTests.cs (14)
19var path = workspace.WorkspaceRoot.FullName; 57var path = workspace.WorkspaceRoot.FullName; 110var path = workspace.WorkspaceRoot.FullName; 155var path = workspace.WorkspaceRoot.FullName; 217var path = workspace.WorkspaceRoot.FullName; 274var path = workspace.WorkspaceRoot.FullName; 293var path = workspace.WorkspaceRoot.FullName; 315var path = workspace.WorkspaceRoot.FullName; 340var path = workspace.WorkspaceRoot.FullName; 372var path = workspace.WorkspaceRoot.FullName; 389var path = workspace.WorkspaceRoot.FullName; 418var path = workspace.WorkspaceRoot.FullName; 437var path = workspace.WorkspaceRoot.FullName; 484.WithDockerfile(workspace.WorkspaceRoot.FullName);
Publishing\DeploymentStateManagerTests.cs (8)
406_aspireHome.FullName, 431Path.Combine(_aspireHome.FullName, "deployments", sha, "development.json"), 994_aspireHome.FullName, 1017_aspireHome.FullName, 1194var legacyDirectory = Path.Combine(_aspireHome.FullName, "deployments", legacySha); 1201var canonicalPath = Path.Combine(_aspireHome.FullName, "deployments", Guid.NewGuid().ToString("N"), "production.json"); 1202var legacyDirectory = Path.Combine(_aspireHome.FullName, "deployments", Guid.NewGuid().ToString("N")); 1220[KnownConfigNames.AspireHome] = _aspireHome.FullName
Publishing\DotnetProgramArchiveTests.cs (20)
40var archivePath = Path.Combine(workspace.WorkspaceRoot.FullName, "program.tar"); 41var resource = AddArchiveResource(builder, workspace.WorkspaceRoot.FullName, archivePath); 76var firstArchive = Path.Combine(firstWorkspace.WorkspaceRoot.FullName, "program.tar"); 77var secondArchive = Path.Combine(secondWorkspace.WorkspaceRoot.FullName, "program.tar"); 78var firstResource = AddArchiveResource(firstBuilder, firstWorkspace.WorkspaceRoot.FullName, firstArchive); 79var secondResource = AddArchiveResource(secondBuilder, secondWorkspace.WorkspaceRoot.FullName, secondArchive); 135var resource = AddArchiveResource(builder, workspace.WorkspaceRoot.FullName, Path.Combine(workspace.WorkspaceRoot.FullName, "program.tar")); 181var resource = AddArchiveResource(builder, workspace.WorkspaceRoot.FullName, Path.Combine(workspace.WorkspaceRoot.FullName, "program.tar")); 219var archivePath = Path.Combine(workspace.WorkspaceRoot.FullName, "program.tar.gz"); 221var resource = AddArchiveResource(builder, workspace.WorkspaceRoot.FullName, archivePath); 261var outputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "program.tar"); 263var resource = AddArchiveResource(builder, workspace.WorkspaceRoot.FullName, outputPath); 284var blockedDirectory = Path.Combine(workspace.WorkspaceRoot.FullName, "output"); 288workspace.WorkspaceRoot.FullName, 317var resource = AddArchiveResource(builder, workspace.WorkspaceRoot.FullName, Path.Combine(workspace.WorkspaceRoot.FullName, "program.tar")); 347var outputPath = Path.Combine(workspace.WorkspaceRoot.FullName, path); 356var resource = AddArchiveResource(builder, workspace.WorkspaceRoot.FullName, outputPath);
Publishing\ResourceContainerImageManagerTests.cs (35)
60var appPath = Path.Combine(workspace.WorkspaceRoot.FullName, "app.cs"); 66var archivePath = Path.Combine(workspace.WorkspaceRoot.FullName, "app.tar.gz"); 317var tempOutputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "NewFolder"); // tests that the folder is created if it doesn't exist 706.WithAnnotation(new TestProjectMetadata(Path.Combine(workspace.WorkspaceRoot.FullName, "missing.csproj"))) 711ctx.OutputPath = workspace.WorkspaceRoot.FullName; 737.WithAnnotation(new TestProjectMetadata(Path.Combine(workspace.WorkspaceRoot.FullName, "program.csproj"))) 770.WithAnnotation(new TestProjectMetadata(Path.Combine(workspace.WorkspaceRoot.FullName, "missing.csproj"))) 775ctx.OutputPath = workspace.WorkspaceRoot.FullName; 817.WithAnnotation(new TestProjectMetadata(Path.Combine(workspace.WorkspaceRoot.FullName, "program.csproj"))) 827context.OutputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "program.tar"); 855var projectPath = Path.Combine(workspace.WorkspaceRoot.FullName, "program.csproj"); 868context.OutputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "program.tar"); 909var archivePath = Path.Combine(workspace.WorkspaceRoot.FullName, "program.tar.gz"); 911var projectPath = Path.Combine(workspace.WorkspaceRoot.FullName, "program.csproj"); 930Assert.Equal(workspace.WorkspaceRoot.FullName, contextPath); 998var archivePath = Path.Combine(workspace.WorkspaceRoot.FullName, "program.tar.gz"); 1001.WithAnnotation(new TestProjectMetadata(Path.Combine(workspace.WorkspaceRoot.FullName, "program.csproj"))) 1049.WithAnnotation(new TestProjectMetadata(Path.Combine(workspace.WorkspaceRoot.FullName, "app.cs"))) 1054context.OutputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "app.tar"); 1090var projectPath = Path.Combine(workspace.WorkspaceRoot.FullName, fileBased ? "app.cs" : "app.csproj"); 1096context.OutputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "app.tar"); 1130var projectPath = Path.Combine(workspace.WorkspaceRoot.FullName, fileBased ? "app.cs" : "app.csproj"); 1191var projectPath = Path.Combine(workspace.WorkspaceRoot.FullName, fileBased ? "app.cs" : "app.csproj"); 1226var probePath = Path.Combine(workspace.WorkspaceRoot.FullName, "properties.proj"); 1247WorkingDirectory = workspace.WorkspaceRoot.FullName, 1274var projectPath = Path.Combine(workspace.WorkspaceRoot.FullName, "app.csproj"); 1275var outputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "archive;100%.tar"); 1301var probePath = Path.Combine(workspace.WorkspaceRoot.FullName, "properties.proj"); 1311WorkingDirectory = workspace.WorkspaceRoot.FullName, 1570var tempSecretFile = System.IO.Path.Combine(workspace.WorkspaceRoot.FullName, ".npmrc"); 1599Assert.Equal(new FileInfo(tempSecretFile).FullName, fakeContainerRuntime.CapturedBuildSecrets["FILE_SECRET"].Value); 1967ctx.OutputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "archives"); 2095ctx.OutputPath = Path.Combine(workspace.WorkspaceRoot.FullName, "archives"); 2166var dockerfilePath = Path.Combine(workspace.WorkspaceRoot.FullName, "Dockerfile"); 2172var container = builder.AddDockerfile("broken-container", workspace.WorkspaceRoot.FullName, dockerfilePath);
PythonAppDeployPipelineTests.cs (1)
20var appDirectory = workspace.CreateDirectory("api").FullName;
ResourceCommandServiceTests.cs (2)
1743var projectPath = CreateBuildOutputTestProject(workspace.WorkspaceRoot.FullName, rebuildOutputMarker); 1764var buildCountPath = Path.Combine(workspace.WorkspaceRoot.FullName, "build-count.txt");
Schema\SchemaTests.cs (2)
121var tempContextPath = Directory.CreateTempSubdirectory().FullName; 230var manifestDir = Directory.CreateTempSubdirectory(testCaseName).FullName;
Terminals\Hex1bPtySocketTests.cs (13)
32var directory = Path.Combine(root.FullName, "custom"); 63var directory = Path.Combine(root.FullName, "custom"); 79EnvironmentVariables = { [Hex1bPtySocketHelper.SocketDirectoryEnvironmentVariable] = Path.Combine(root.FullName, "child") } 117Directory.CreateDirectory(Path.Combine(root.FullName, ".aspire")); 118var directory = Path.Combine(root.FullName, ".aspire", "pty"); 152var directory = Directory.CreateDirectory(Path.Combine(root.FullName, "custom")); 162Environment.SetEnvironmentVariable(Hex1bPtySocketHelper.SocketDirectoryEnvironmentVariable, directory.FullName); 210var directory = Path.Combine(root.FullName, new string('a', 108)); 242var directory = Path.Combine(root.FullName, ".aspire", "pty"); 262EnvironmentVariables = { [Hex1bPtySocketHelper.SocketDirectoryEnvironmentVariable] = Path.Combine(root.FullName, "child") }, 275var laterDirectory = Path.Combine(root.FullName, "later"); 285Assert.False(Directory.Exists(Path.Combine(root.FullName, "child"))); 305Assert.Equal(Path.Combine(root.FullName, "later"), Environment.GetEnvironmentVariable(Hex1bPtySocketHelper.SocketDirectoryEnvironmentVariable));
Terminals\ResourceAspireTerminalTests.cs (1)
26private readonly string _socketDirectory = Directory.CreateTempSubdirectory("aspire-resource-terminal-tests-").FullName;
Terminals\ResourceTerminalCatalogTests.cs (1)
26private readonly string _terminalRoot = Directory.CreateTempSubdirectory().FullName;
Terminals\TerminalKeyInputTests.cs (1)
20private readonly string _socketDirectory = Directory.CreateTempSubdirectory("aspire-key-input-").FullName;
Terminals\TerminalServiceTests.cs (1)
244var secondDirectory = Directory.GetParent(firstDirectory)!.FullName;
tests\Shared\TestFileSystemService.cs (5)
25_directories.Add(dir.FullName); 26return new TestTempDirectory(dir.FullName); 32_directories.Add(tempDir.FullName); 34var filePath = System.IO.Path.Combine(tempDir.FullName, resolvedName); 36return new TestTempFile(filePath, tempDir.FullName);
Utils\DotnetSdkVersionProviderTests.cs (4)
288var firstDirectory = Directory.CreateDirectory(Path.Combine(workspace.Path, "src", "First")).FullName; 289var secondDirectory = Directory.CreateDirectory(Path.Combine(workspace.Path, "src", "Second")).FullName; 309var firstDirectory = Directory.CreateDirectory(Path.Combine(workspace.Path, "First")).FullName; 310var secondDirectory = Directory.CreateDirectory(Path.Combine(workspace.Path, "Second")).FullName;
Utils\SocketPermissionHelperTests.cs (63)
25var directory = Path.Combine(root.FullName, "custom"); 69var directory = Path.Combine(root.FullName, ".aspire", "pty"); 96var directory = Path.Combine(root.FullName, "custom"); 138var directory = SocketPermissionHelper.CreateDirectory(Path.Combine(root.FullName, "custom"), repairExisting: false); 148Assert.Throws<IOException>(() => SocketPermissionHelper.CreateDirectory(directory.FullName, repairExisting: false)); 164Directory.CreateDirectory(Path.Combine(root.FullName, ".aspire")); 165var directory = Path.Combine(root.FullName, ".aspire", "pty"); 191var target = Directory.CreateDirectory(Path.Combine(root.FullName, "target")); 192Directory.CreateDirectory(Path.Combine(target.FullName, "home")); 193var link = Path.Combine(root.FullName, "homes"); 194Directory.CreateSymbolicLink(link, target.FullName); 199path, repairExisting: true, root.FullName, profile, root.FullName); 201Assert.Equal(path, directory.FullName); 202AssertDirectoryPermissions(Path.Combine(target.FullName, "home", ".aspire", "cli", "bch")); 225var target = Directory.CreateDirectory(Path.Combine(root.FullName, "target")); 226var baseMode = File.GetUnixFileMode(target.FullName); 227var link = Path.Combine(root.FullName, "base"); 228Directory.CreateSymbolicLink(link, target.FullName); 230var targetDirectory = Path.Combine(target.FullName, ".aspire", "trmnl"); 237path, repairExisting, root.FullName, 238temporaryBase ? root.FullName : link, 239temporaryBase ? link : root.FullName); 241Assert.Equal(path, directory.FullName); 243Assert.Equal(baseMode, File.GetUnixFileMode(target.FullName)); 246path, repairExisting: false, root.FullName, 247temporaryBase ? root.FullName : link, 248temporaryBase ? link : root.FullName); 274var home = Directory.CreateDirectory(Path.Combine(root.FullName, "home")); 275var profile = Path.Combine(root.FullName, "profile"); 276Directory.CreateSymbolicLink(profile, home.FullName); 277var target = Path.Combine(root.FullName, "target"); 286root.FullName, profile, root.FullName)); 310var target = Path.Combine(root.FullName, "target"); 315var profile = Path.Combine(root.FullName, "profile"); 320root.FullName, profile, root.FullName)); 346var target = Path.Combine(root.FullName, "target"); 349Directory.CreateDirectory(Path.Combine(root.FullName, ".aspire")); 350var link = Path.Combine(root.FullName, ".aspire", "pty"); 385var directory = Path.GetFullPath(Path.Combine(root.FullName, "base", relativePath)); 418var directory = Path.Combine(root.FullName, ".aspire", "pty"); 423var currentDirectory = environmentDirectory == "working" ? directory : root.FullName; 424var userProfileDirectory = environmentDirectory == "profile" ? directory : root.FullName; 425var tempDirectory = environmentDirectory == "temp" ? directory : root.FullName; 449"custom", repairExisting: false, root.FullName, root.FullName, root.FullName); 451Assert.Equal(Path.Combine(root.FullName, "custom"), directory.FullName); 452AssertDirectoryPermissions(directory.FullName); 468var directory = Path.Combine(root.FullName, dcpLayout ? "aspire-dcp-test" : ".aspire/pty"); 475directory, repairExisting: false, root.FullName, root.FullName, root.FullName)); 499var target = Directory.CreateDirectory(Path.Combine(root.FullName, "target")); 500var directory = Path.Combine(target.FullName, "pty"); 503Directory.CreateSymbolicLink(Path.Combine(root.FullName, ".aspire"), target.FullName); 506Path.Combine(root.FullName, ".aspire", "pty"), repairExisting: false)); 527var directory = Directory.CreateDirectory(Path.Combine(root.FullName, ".aspire", "pty")).FullName;
WithTerminalTests.cs (1)
20private readonly string _terminalRoot = Directory.CreateTempSubdirectory().FullName;
Aspire.Hosting.TestUtilities (16)
tests\Shared\DistributedApplicationTestingBuilderExtensions.cs (1)
52builder.Configuration["Aspire:Store:Path"] = path ?? Directory.CreateTempSubdirectory().FullName;
tests\Shared\TemporaryWorkspace.cs (11)
21public string Path => workspaceDirectory.FullName; 30if (s_preservedWorkspaces.ContainsKey(workspaceDirectory.FullName)) 32outputHelper.WriteLine($"Preserved temporary workspace at: {workspaceDirectory.FullName}"); 36outputHelper.WriteLine($"Disposing temporary workspace at: {workspaceDirectory.FullName}"); 44outputHelper.WriteLine($"Failed to delete temporary workspace '{workspaceDirectory.FullName}': {ex.Message}"); 105throw new IOException($"Cannot delete '{file.FullName}': {ex.Message}", ex); 116throw new IOException($"Cannot delete directory '{directory.FullName}': {ex.Message}", ex); 156s_preservedWorkspaces[workspaceDirectory.FullName] = 0; 157outputHelper.WriteLine($"Marked temporary workspace for preservation: {workspaceDirectory.FullName}"); 194outputHelper.WriteLine($"Temporary workspace created at: {workspaceDirectory.FullName}"); 198TestContext.Current?.KeyValueStorage["WorkspacePath"] = workspaceDirectory.FullName;
Utils\DockerfileUtils.cs (2)
44var tempContextPath = workspace.WorkspaceRoot.FullName; 72public string ContextPath => _workspace.WorkspaceRoot.FullName;
Utils\MSBuildUtils.cs (1)
15directory = Directory.GetParent(directory)!.FullName;
Utils\PersistentContainerTestHelpers.cs (1)
103.WithTempAspireStore(workspace.WorkspaceRoot.FullName)
Aspire.Hosting.Valkey.Tests (1)
ValkeyFunctionalTests.cs (1)
87bindMountPath = Path.Combine(Directory.CreateTempSubdirectory().FullName, "data");
Aspire.Managed.Tests (28)
TerminalHostSignalTests.cs (17)
25var socketDirectory = new DirectoryInfo(Path.Combine(root.FullName, "terminals")); 26var producerPath = Path.Combine(socketDirectory.FullName, "p.sock"); 27var consumerPath = Path.Combine(socketDirectory.FullName, "h.sock"); 28var controlPath = Path.Combine(socketDirectory.FullName, "c.sock"); 108.Select(name => Path.Combine(root.FullName, "terminals", name)).ToArray(); 146var startInfo = CreateTerminalHostStartInfo(Path.Combine(root.FullName, "s", "p.sock"), "consumer", "control"); 150File.Delete(Path.Combine(root.FullName, "terminalhost", OperatingSystem.IsWindows() ? "Aspire.TerminalHost.exe" : "Aspire.TerminalHost")); 177var socketDirectory = new DirectoryInfo(Path.Combine(root.FullName, "terminals")); 178var parentProducerPath = Path.Combine(socketDirectory.FullName, "pp.sock"); 179var parentConsumerPath = Path.Combine(socketDirectory.FullName, "ph.sock"); 180var parentControlPath = Path.Combine(socketDirectory.FullName, "pc.sock"); 182var producerPath = Path.Combine(socketDirectory.FullName, "p.sock"); 183var consumerPath = Path.Combine(socketDirectory.FullName, "h.sock"); 184var controlPath = Path.Combine(socketDirectory.FullName, "c.sock"); 293foreach (var (fixture, directory) in new[] { ("terminalhost", terminal.FullName), ("managed", managed.FullName) }) 306var managedAssembly = Path.Combine(managed.FullName, "aspire-managed.dll");
tests\Shared\TemporaryWorkspace.cs (11)
21public string Path => workspaceDirectory.FullName; 30if (s_preservedWorkspaces.ContainsKey(workspaceDirectory.FullName)) 32outputHelper.WriteLine($"Preserved temporary workspace at: {workspaceDirectory.FullName}"); 36outputHelper.WriteLine($"Disposing temporary workspace at: {workspaceDirectory.FullName}"); 44outputHelper.WriteLine($"Failed to delete temporary workspace '{workspaceDirectory.FullName}': {ex.Message}"); 105throw new IOException($"Cannot delete '{file.FullName}': {ex.Message}", ex); 116throw new IOException($"Cannot delete directory '{directory.FullName}': {ex.Message}", ex); 156s_preservedWorkspaces[workspaceDirectory.FullName] = 0; 157outputHelper.WriteLine($"Marked temporary workspace for preservation: {workspaceDirectory.FullName}"); 194outputHelper.WriteLine($"Temporary workspace created at: {workspaceDirectory.FullName}"); 198TestContext.Current?.KeyValueStorage["WorkspacePath"] = workspaceDirectory.FullName;
Aspire.Playground.Tests (3)
tests\Shared\Playwright\PlaywrightProvider.cs (1)
55var probePath = Path.Combine(repoRoot.FullName, "artifacts", "bin", "playwright-deps");
tests\Shared\Playwright\TestUtils.cs (2)
14if (Directory.Exists(Path.Combine(repoRoot.FullName, ".git")) || File.Exists(Path.Combine(repoRoot.FullName, ".git")))
Aspire.Templates.Tests (6)
tests\Shared\Playwright\PlaywrightProvider.cs (1)
55var probePath = Path.Combine(repoRoot.FullName, "artifacts", "bin", "playwright-deps");
tests\Shared\Playwright\TestUtils.cs (2)
14if (Directory.Exists(Path.Combine(repoRoot.FullName, ".git")) || File.Exists(Path.Combine(repoRoot.FullName, ".git")))
tests\Shared\TemplatesTesting\BuildEnvironment.cs (3)
37return Directory.CreateDirectory(TestRootPath).FullName; 79var sdkFromArtifactsPath = Path.Combine(RepoRoot!.FullName, "artifacts", "bin", sdkDirName); 111BuiltNuGetsPath = Path.Combine(RepoRoot.FullName, "artifacts", "packages", "Debug", "Shipping");
Aspire.TerminalHost (12)
src\Shared\SocketPermissionHelper.cs (12)
46var isWorkingDirectory = string.Equals(directory.FullName, Path.TrimEndingDirectorySeparator(currentDirectory), comparison); 47var isUserProfile = string.Equals(directory.FullName, profileRoot, comparison); 48var isTemporaryRoot = string.Equals(Path.TrimEndingDirectorySeparator(directory.FullName), tempRoot, comparison); 61if (string.Equals(current.FullName, profileRoot, comparison) || 62string.Equals(current.FullName, tempRoot, comparison)) 65if (!Directory.Exists(resolvedBase.FullName)) 67throw new IOException($"The socket directory base '{current.FullName}' must resolve to an existing directory."); 84if (directory.Exists && (File.GetUnixFileMode(directory.FullName) & UnixFileMode.StickyBit) != 0) 91return DirectoryHelper.CreateWithOwnerOnlyPermissions(directory.FullName); 96Directory.CreateDirectory(directory.FullName, OwnerOnlyMode); 97if (File.GetUnixFileMode(directory.FullName) != OwnerOnlyMode) 174throw new IOException($"The configured socket directory '{directory.FullName}' must have a protected owner-only ACL with inheritable full control for the current user (SYSTEM is also allowed). Set those permissions or choose a new dedicated directory.");
Aspire.TerminalHost.Tests (11)
tests\Shared\TemporaryWorkspace.cs (11)
21public string Path => workspaceDirectory.FullName; 30if (s_preservedWorkspaces.ContainsKey(workspaceDirectory.FullName)) 32outputHelper.WriteLine($"Preserved temporary workspace at: {workspaceDirectory.FullName}"); 36outputHelper.WriteLine($"Disposing temporary workspace at: {workspaceDirectory.FullName}"); 44outputHelper.WriteLine($"Failed to delete temporary workspace '{workspaceDirectory.FullName}': {ex.Message}"); 105throw new IOException($"Cannot delete '{file.FullName}': {ex.Message}", ex); 116throw new IOException($"Cannot delete directory '{directory.FullName}': {ex.Message}", ex); 156s_preservedWorkspaces[workspaceDirectory.FullName] = 0; 157outputHelper.WriteLine($"Marked temporary workspace for preservation: {workspaceDirectory.FullName}"); 194outputHelper.WriteLine($"Temporary workspace created at: {workspaceDirectory.FullName}"); 198TestContext.Current?.KeyValueStorage["WorkspacePath"] = workspaceDirectory.FullName;
Aspire.Tray.Tests (28)
Helpers\FixtureCli.cs (1)
21Path = System.IO.Path.Combine(_directory.FullName, "aspire");
Helpers\TestMacTrayLogDirectory.cs (3)
18foreach (var component in _directory.FullName.Split('/', StringSplitOptions.RemoveEmptyEntries)) 21Root = directory.ResolveLinkTarget(returnFinalTarget: true)?.FullName ?? directory.FullName;
Helpers\TestTrayBundle.cs (2)
16Root = Path.Combine(_directory.FullName, "layout with spaces"); 17CliPath = Path.Combine(_directory.FullName, "aspire cli");
Helpers\TestTrayStartupInstallation.cs (1)
24Root = Path.Combine(_directory.FullName, "i & s");
Helpers\TestTrayStateDirectory.cs (4)
10public string StatePath => Path.Combine(_directory.FullName, "state", "history.json"); 11public string UserProfilePath => Path.Combine(_directory.FullName, "user"); 12public string LegacyDirectory => Path.Combine(_directory.FullName, "legacy"); 19var path = Path.GetFullPath(Path.Combine(_directory.FullName, relativePath));
MacSingleInstanceTests.cs (1)
33var directory = Path.Combine(parent.FullName, "state");
MacTrayLauncherTests.cs (2)
52var targetDirectory = Directory.CreateDirectory(Path.Combine(directory.Root, "target")).FullName; 138var targetDirectory = Directory.CreateDirectory(Path.Combine(directory.Root, "target")).FullName;
MacTrayPayloadTests.cs (5)
31var script = Path.Combine(workspace.FullName, "tools", "CreateLayout", "verify-tray-payload.sh"); 34var app = Path.Combine(workspace.FullName, rid, "tray", "Aspire Tray.app"); 51var source = Path.Combine(workspace.FullName, "main.c"); 67var archive = Path.Combine(workspace.FullName, "payload.tar.gz"); 68await RunSuccessfullyAsync("/usr/bin/tar", "-czf", archive, "-C", workspace.FullName, rid);
src\Aspire.Tray\Common\TrayConfiguration.cs (1)
138var binary = new FileInfo(cliPath).ResolveLinkTarget(returnFinalTarget: true)?.FullName ?? cliPath;
src\Aspire.Tray\Common\TraySavedState.cs (1)
152return File.GetAttributes(target.FullName);
src\Aspire.Tray\Common\TrayStartupEntry.cs (1)
120current = ResolveCore(target.FullName, remainingLinks - 1);
WindowsTrayLogTests.cs (6)
43var root = Directory.CreateDirectory(directory.UserProfilePath).FullName; 44var target = Directory.CreateDirectory(directory.LegacyDirectory).FullName; 78var path = Directory.CreateDirectory(directory.UserProfilePath).FullName; 92var path = Directory.CreateDirectory(directory.UserProfilePath).FullName; 108var path = Directory.CreateDirectory(directory.UserProfilePath).FullName; 123var path = Directory.CreateDirectory(directory.UserProfilePath).FullName;
CodeStyleConfigFileGenerator (2)
Program.cs (2)
91var configFilePath = Path.Combine(directory.FullName, configFileName); 205var fileWithPath = Path.Combine(directory.FullName, targetsFileName);
csc (1)
src\roslyn\src\Compilers\Shared\RuntimeHostInfo.cs (1)
68dotNetHostPath = resolvedPath.FullName;
dotnet (3)
Program.cs (3)
54File.WriteAllText(Path.Combine(dcpDirectory.FullName, OperatingSystem.IsWindows() ? "dcp.exe" : "dcp"), ""); 55File.WriteAllText(Path.Combine(managedDirectory.FullName, OperatingSystem.IsWindows() ? "aspire-managed.exe" : "aspire-managed"), ""); 56File.WriteAllText(Path.Combine(dashboardDirectory.FullName, OperatingSystem.IsWindows() ? "Aspire.Dashboard.exe" : "Aspire.Dashboard"), "");
dotnet-aot (26)
parent\dotnet\CommandFactory\CommandResolution\DotnetToolsCommandResolver.cs (2)
67executable.FullName, 76dll.FullName,
parent\dotnet\Commands\Run\FileBasedAppRunPlan.cs (23)
100RunFileBuildCacheEntry? previousEntry = ReadCacheEntry(successCacheFile.FullName); 321FileSystemInfo implicitBuildFileInfo = new FileInfo(Path.Join(directory.FullName, implicitBuildFile.Name)); 325collectedPaths.Add(implicitBuildFileInfo.FullName); 328exampleMSBuildFile = implicitBuildFileInfo.FullName; 389ResolvedEntryPointFilePath = entryPointFile != originalEntryPointFile ? entryPointFile.FullName : null, 421Reporter.Verbose.WriteLine("Building because cache file does not exist: " + successCacheFile.FullName); 428Reporter.Verbose.WriteLine("Building because start cache file does not exist: " + startCacheFile.FullName); 435Reporter.Verbose.WriteLine("Building because start cache file is newer than success cache file (previous build likely failed): " + startCacheFile.FullName); 440RunFileBuildCacheEntry? previousCacheEntry = ReadCacheEntry(successCacheFile.FullName); 445Reporter.Verbose.WriteLine("Building because previous cache entry could not be deserialized: " + successCacheFile.FullName); 463Reporter.Verbose.WriteLine($"Building because previous SDK version ({previousCacheEntry.SdkVersion}) does not match current ({cacheEntry.SdkVersion}): {successCacheFile.FullName}"); 470Reporter.Verbose.WriteLine($"Building because previous runtime version ({previousCacheEntry.RuntimeVersion}) does not match current ({cacheEntry.RuntimeVersion}): {successCacheFile.FullName}"); 477Reporter.Verbose.WriteLine($"Building because previous global properties count ({previousCacheEntry.GlobalProperties.Count}) does not match current count ({cacheEntry.GlobalProperties.Count}): {successCacheFile.FullName}"); 485Reporter.Verbose.WriteLine($"Building because previous global property \"{key}\" ({otherValue}) does not match current ({value}): {successCacheFile.FullName}"); 494Reporter.Verbose.WriteLine("Building because entry point file is missing: " + entryPointFile.FullName); 501Reporter.Verbose.WriteLine($"Building because resolved entry point file path changed from '{previousCacheEntry.ResolvedEntryPointFilePath}' to '{cacheEntry.ResolvedEntryPointFilePath}': {successCacheFile.FullName}"); 510Reporter.Verbose.WriteLine("Compiling because entry point file is modified: " + entryPointFile.FullName); 521Reporter.Verbose.WriteLine("Building because implicit build file is missing or modified: " + implicitBuildFileInfo.FullName); 545if (!RunFileBuildCacheEntry.FilePathComparer.Equals(additionalSource.Resolved, resolvedFileInfo.FullName)) 547Reporter.Verbose.WriteLine($"Building because additional source file '{additionalSource.Original}' resolved path changed from '{additionalSource.Resolved}' to '{resolvedFileInfo.FullName}': {successCacheFile.FullName}"); 553Reporter.Verbose.WriteLine("Building because additional source file is missing or modified: " + resolvedFileInfo.FullName); 562Reporter.Verbose.WriteLine("Compiling because entry point file is modified: " + entryPointFile.FullName);
parent\dotnet\Commands\Run\RunFileBuildCacheEntry.cs (1)
117return resolved == fileInfo ? path : new RunFileBuildCacheEntry.AdditionalSourceLink(path, resolved.FullName);
dotnet-build-cache (1)
Program.cs (1)
66string? path = result.GetValue(directory)?.FullName;
dotnet-dev-certs (5)
src\aspnetcore\src\Shared\CertificateGeneration\MacOSCertificateManager.cs (1)
481Log.DirectoryPermissionsNotSecure(dirInfo.FullName);
src\aspnetcore\src\Shared\CertificateGeneration\UnixCertificateManager.cs (3)
549Log.DirectoryPermissionsNotSecure(dirInfo.FullName); 1042if (!TryGetOpenSslHash(cert.FullName, out var hash)) 1062Log.UnixOpenSslRehashTooManyHashes(cert.FullName, hash, MaxHashCollisions);
src\aspnetcore\src\Shared\CertificateGeneration\WindowsCertificateManager.cs (1)
168Log.DirectoryPermissionsNotSecure(dirInfo.FullName);
dotnet-format (2)
Utilities\EditorConfigFinder.cs (2)
28while (directory is not null && visitedDirectories.Add(directory.FullName)) 30var editorConfigPath = Path.Combine(directory.FullName, ".editorconfig");
dotnet-openapi (2)
Commands\BaseCommand.cs (2)
128projectFile.FullName, 225WorkingDirectory = projectFile.Directory.FullName,
dotnet-suggest (8)
DotnetMuxer.cs (1)
32var muxerCandidate = new FileInfo(System.IO.Path.Combine(muxerDir.FullName, muxerFileName));
FileEnumerator.cs (1)
20.Select(p => Path.GetFileNameWithoutExtension(p.FullName));
FileSuggestionRegistration.cs (1)
55if (line.StartsWith(soughtExecutable.FullName, StringComparison.OrdinalIgnoreCase))
GlobalToolsSuggestionRegistration.cs (2)
59if (!soughtExecutable.FullName.StartsWith(_nullableToolsShimPath)) 64return new Registration(soughtExecutable.FullName);
SuggestionDispatcher.cs (3)
132if (commandPath.FullName == DotnetMuxer.Path.FullName) 134suggestionRegistration = new Registration(commandPath.FullName);
dotnet-svcutil-lib (33)
Bootstrapper\SvcutilBootstrapper.cs (1)
99var projectFullPath = Path.Combine(this.Options.BootstrapPath.FullName, nameof(SvcutilBootstrapper), SvcutilBootstrapper.ProjectName);
CodeSerializer.cs (2)
32_outputFilePath = OutputPathHelper.BuildFilePath(s_defaultFileName, options.OutputDir.FullName, outputFilename, extension, CommandProcessorOptions.Switches.OutputFile.Name); 133string fileName = options.OutputFile?.FullName;
CommandProcessorOptions.cs (10)
217await ProcessOutputFileOptionAsync(this.OutputDir.FullName, cancellationToken); 396Path.GetDirectoryName(this.OutputFile.FullName) : Path.GetDirectoryName(Path.Combine(Directory.GetCurrentDirectory(), this.OutputFile.OriginalPath())); 657if (this.Project != null && PathHelper.GetRelativePath(this.OutputDir.FullName, new DirectoryInfo(this.Project.DirectoryPath), out var relPath)) 704var projectFullPath = Path.Combine(this.BootstrapPath.FullName, "TFMResolver", "TFMResolver.csproj"); 742var inputFiles = Metadata.MetadataFileNameManager.ResolveFiles(metadataUri.LocalPath).Select(f => f.FullName); 853string projFolder = Path.Combine(this.BootstrapPath.FullName, nameof(SvcutilBootstrapper)); 858assembly = Assembly.LoadFrom(assemblyFile.FullName); 1029if (!Directory.Exists(this.BootstrapPath.FullName)) 1031Directory.CreateDirectory(this.BootstrapPath.FullName); 1035await RuntimeEnvironmentHelper.TryCopyingConfigFiles(workingDirectory, this.BootstrapPath.FullName, logger, cancellationToken).ConfigureAwait(false);
Metadata\MetadataDocumentLoader.cs (4)
107this.metadataSourceFiles.AddRange(fileInfoList.Select(fi => new Uri(fi.FullName, UriKind.Absolute))); 148this.metadataSourceFiles.AddRange(fileInfoList.Select(fi => new Uri(fi.FullName, UriKind.Absolute))); 219if (!IsUriProcessed(fileInfo.FullName)) 223await LoadFromStreamAsync(fileStream, fileInfo.FullName, fileInfo.DirectoryName, cancellationToken).ConfigureAwait(false);
Metadata\MetadataDocumentSaver.cs (1)
143var missingRefs = files.Where(file => !this.MetadataFiles.Any(metaFile => MetadataFileNameManager.UriEqual(file.FullName, metaFile.SourceUri)));
Metadata\MetadataFileNameManager.cs (1)
248throw new DirectoryNotFoundException(string.Format(CultureInfo.CurrentCulture, MetadataResources.ErrDirectoryNotFoundFormat, dirInfo.FullName));
Shared\MSBuildProj.cs (4)
316fullPath = new FileInfo(Path.Combine(msbuildProj.DirectoryPath, binReference)).FullName; 802var assetsFile = new FileInfo(Path.Combine(this.DirectoryPath, "obj", "project.assets.json")).FullName; 1011.Where(f => PathHelper.GetFolderName(Path.GetDirectoryName(f)) == this.TargetFramework || Directory.GetParent(Directory.GetParent(f).FullName).Name == this.TargetFramework) 1015depsFile = depsFiles.FirstOrDefault()?.FullName;
Shared\Options\ApplicationOptions.cs (1)
140jsonText = File.ReadAllText(fileInfo.FullName);
Shared\Options\UpdateOptions.cs (2)
112this.OutputFile = new FileInfo(Path.Combine(optionsFileDirectory.FullName, this.OutputFile.OriginalPath())); 120if (!input.IsAbsoluteUri && PathHelper.IsFile(input, optionsFileDirectory.FullName, out var fileUri))
Shared\Utilities\PathHelper.cs (4)
85filePath = Path.Combine(directory.FullName, relPath); 114var parentSegments = Path.GetFullPath(parentPath.FullName).Split(new char[] { Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar }, StringSplitOptions.RemoveEmptyEntries); 178var directory = new DirectoryInfo(Path.Combine(parentDirInfo.FullName, directoryName)); 198directory = new DirectoryInfo(Path.Combine(parentDirInfo.FullName, directoryName + nextIndex));
Tool.cs (3)
145if (!File.Exists(options.OutputFile.FullName)) 268PathHelper.IsUnderDirectory(options.OutputFile.FullName, new DirectoryInfo(options.Project.DirectoryPath), out var filePath, out var relPath); 314var paramsFile = Path.Combine(options.OutputDir.FullName, CommandProcessorOptions.SvcutilParamsFileName);
dotnet-svcutil-lib.Tests (3)
FileUtil.cs (1)
35CopyDirectory(subdir.FullName, temppath);
FixupUtil.cs (1)
56var resultPathReplacement = Directory.GetParent(resultsPath).FullName;
TestInit.cs (1)
539vstestDir = new DirectoryInfo(Path.Combine(g_RepositoryRoot, "src", "dotnet-svcutil", "lib", "tests")).FullName;
dotnet-svcutil.xmlserializer (3)
Microsoft\Tools\ServiceModel\SvcUtil\InputModule.cs (3)
115throw new ToolInputException(SR.Format(SR.ErrInputFileNotAssemblyOrMetadata, fileInfo.FullName, path)); 135assembly = LoadAssembly(fileInfo.FullName); 171throw new ToolInputException(SR.Format(SR.ErrDirectoryNotFound, dirInfo.FullName));
GenerateDocumentationAndConfigFiles (10)
Program.cs (10)
433var fileWithPath = Path.Combine(directory.FullName, args.PropsFileName); 442fileWithPath = Path.Combine(directory.FullName, args.PropsFileToDisableNetAnalyzersInNuGetPackageName); 544var fileWithPath = Path.Combine(directory.FullName, args.AnalyzerDocumentationFileName); 640var fileWithPath = Path.Combine(directory.FullName, args.AnalyzerSarifFileName); 734Validate(Path.Combine(directory.FullName, args.AnalyzerSarifFileName), stringWriter.ToString(), fileNamesWithValidationFailures); 776var fileWithPath = Path.Combine(directory.FullName, "RulesMissingDocumentation.md"); 1112var rulesetFilePath = Path.Combine(directory.FullName, rulesetFileName); 1177var editorconfigFilePath = Path.Combine(directory.FullName, ".editorconfig"); 1400var configFilePath = Path.Combine(directory.FullName, fileName.ToLowerInvariant()); 1612var fileWithPath = Path.Combine(directory.FullName, targetsFileName);
GenerateTemplateManifest (7)
Program.cs (7)
13var sourceDirectory = result.GetValue(command.SourceDirectory)!.FullName; 14var processedDirectory = result.GetValue(command.ProcessedDirectory)!.FullName; 15var manifestPath = result.GetValue(command.ManifestPath)!.FullName; 16var nugetConfigPath = result.GetValue(command.NuGetConfigPath)!.FullName; 17var localPackageFeed = result.GetValue(command.LocalPackageFeed)!.FullName; 18var restoreDirectory = result.GetValue(command.RestoreDirectory)!.FullName; 95await plan.DiscoverAsync(sourceDirectory, processedDirectory, discoveryDirectory.FullName).ConfigureAwait(false);
ilasm (1)
OutputFileWriter.cs (1)
110return File.ResolveLinkTarget(path, returnFinalTarget: false)?.FullName;
illink (4)
Infrastructure.Tests (117)
BuildWarningPolicyTests.cs (2)
92var root = workspace.CreateDirectory("repository with spaces").FullName; 93var common = Directory.CreateDirectory(Path.Combine(root, "eng", "common")).FullName;
PowerShellScripts\VerifyNonBlockingTestResultsTests.cs (2)
96var testResultsPath = _workspace.CreateDirectory("testresults").FullName; 271var testResultsPath = _workspace.CreateDirectory(Guid.NewGuid().ToString("N")).FullName;
Shared\RepoRoot.cs (2)
27if (File.Exists(System.IO.Path.Combine(directory.FullName, "Aspire.slnx"))) 29return directory.FullName;
Shared\TestTrxBuilder.cs (1)
60var tempDirectory = Directory.CreateTempSubdirectory("aspire-test-trx").FullName;
TemplateManifest\TemplateManifestBuildTargetTests.cs (2)
19var root = workspace.CreateDirectory("repository with spaces").FullName; 21var restore = Directory.CreateDirectory(Path.Combine(intermediate, "template-cg-restore")).FullName;
TemplateManifest\TemplateManifestCommandTests.cs (8)
25Assert.Equal(arguments[0], result.GetValue(command.SourceDirectory)!.FullName); 26Assert.Equal(arguments[1], result.GetValue(command.ProcessedDirectory)!.FullName); 27Assert.Equal(arguments[2], result.GetValue(command.ManifestPath)!.FullName); 28Assert.Equal(arguments[3], result.GetValue(command.NuGetConfigPath)!.FullName); 29Assert.Equal(arguments[4], result.GetValue(command.LocalPackageFeed)!.FullName); 30Assert.Equal(arguments[5], result.GetValue(command.RestoreDirectory)!.FullName); 104var source = workspace.CreateDirectory("source templates").FullName; 105var processed = workspace.CreateDirectory("processed templates").FullName;
TemplateManifest\TemplateManifestGenerationTests.cs (2)
20var root = workspace.CreateDirectory("repository with spaces").FullName; 64var root = workspace.CreateDirectory("repo").FullName;
TemplateManifest\TemplateManifestTestEnvironment.cs (5)
29SourceDirectory = workspace.CreateDirectory("source").FullName; 30TemplateDirectory = Directory.CreateDirectory(Path.Combine(SourceDirectory, "template")).FullName; 31BuiltFeed = workspace.CreateDirectory("built feed").FullName; 32ExternalFeed = workspace.CreateDirectory("external feed").FullName; 33SharedCache = workspace.CreateDirectory("shared cache").FullName;
TemplateManifest\TemplateRestorePlanTests.cs (11)
19var source = workspace.CreateDirectory("source").FullName; 35await plan.DiscoverAsync(source, source, workspace.CreateDirectory("work").FullName); 53var source = workspace.CreateDirectory("source").FullName; 78await plan.DiscoverAsync(source, source, workspace.CreateDirectory("work").FullName); 91var source = workspace.CreateDirectory("source").FullName; 110await plan.DiscoverAsync(source, source, workspace.CreateDirectory("work").FullName); 159var directory = workspace.CreateDirectory(normalize ? "normalized" : "original").FullName; 249var source = workspace.CreateDirectory("source").FullName; 259await plan.DiscoverAsync(source, source, workspace.CreateDirectory("work").FullName); 273var source = workspace.CreateDirectory("source").FullName; 282await Assert.ThrowsAsync<InvalidDataException>(() => plan.DiscoverAsync(source, source, workspace.CreateDirectory("work").FullName));
tests\Shared\TemporaryWorkspace.cs (11)
21public string Path => workspaceDirectory.FullName; 30if (s_preservedWorkspaces.ContainsKey(workspaceDirectory.FullName)) 32outputHelper.WriteLine($"Preserved temporary workspace at: {workspaceDirectory.FullName}"); 36outputHelper.WriteLine($"Disposing temporary workspace at: {workspaceDirectory.FullName}"); 44outputHelper.WriteLine($"Failed to delete temporary workspace '{workspaceDirectory.FullName}': {ex.Message}"); 105throw new IOException($"Cannot delete '{file.FullName}': {ex.Message}", ex); 116throw new IOException($"Cannot delete directory '{directory.FullName}': {ex.Message}", ex); 156s_preservedWorkspaces[workspaceDirectory.FullName] = 0; 157outputHelper.WriteLine($"Marked temporary workspace for preservation: {workspaceDirectory.FullName}"); 194outputHelper.WriteLine($"Temporary workspace created at: {workspaceDirectory.FullName}"); 198TestContext.Current?.KeyValueStorage["WorkspacePath"] = workspaceDirectory.FullName;
TestTriggerMap\PrComparisonBaseTests.cs (4)
20var repo = workspace.CreateDirectory("origin").FullName; 85var repo = workspace.CreateDirectory("origin").FullName; 169var repo = workspace.CreateDirectory("origin").FullName; 188var repo = workspace.CreateDirectory("origin").FullName;
TestTriggerMap\SelectTestsCliTests.cs (20)
166var slnxPath = Path.Combine(dir.FullName, "custom", "MyApp.slnx"); 169File.WriteAllText(Path.Combine(dir.FullName, "map.yml"), Map); 171WithGitHubEnv(dir.FullName, _ => 173var propsPath = Path.Combine(dir.FullName, "BeforeBuildProps.props"); 174var changed = WriteChangedFiles(dir.FullName, "trigger.txt"); 177dir.FullName, propsPath, changedFilesPath: changed, 186Directory.Delete(dir.FullName, recursive: true); 1542File.WriteAllText(Path.Combine(dir.FullName, "Aspire.slnx"), slnx); 1543File.WriteAllText(Path.Combine(dir.FullName, "map.yml"), map); 1545WithGitHubEnv(dir.FullName, output => 1546body(dir.FullName, Path.Combine(dir.FullName, "BeforeBuildProps.props"), output)); 1550Directory.Delete(dir.FullName, recursive: true); 1561RunGit(dir.FullName, "init", "-q", "-b", "main"); 1562RunGit(dir.FullName, "config", "user.email", "test@example.com"); 1563RunGit(dir.FullName, "config", "user.name", "Test"); 1564RunGit(dir.FullName, "config", "commit.gpgsign", "false"); 1566WithGitHubEnv(dir.FullName, output => body(dir.FullName, output)); 1570Directory.Delete(dir.FullName, recursive: true);
WorkflowScripts\AnalyzeCiFailureWorkflowTests.cs (31)
140Path.Combine(_workspace.Path, "ci-failure-data", "prior-causes")).FullName; 162Path.Combine(_workspace.Path, "ci-failure-data", "prior-causes")).FullName; 1094Path.Combine(_workspace.Path, "ci-failure-data", "prior-causes")).FullName; 2468Path.Combine(testResultsDirectory.FullName, "00001.trx"), 2497testResultsDirectory.FullName, 2517Path.Combine(testResultsDirectory.FullName, "00001.json"), 2538testResultsDirectory.FullName, 2559Path.Combine(testResultsDirectory.FullName, "00001.json"), 2580testResultsDirectory.FullName, 2597Path.Combine(testResultsDirectory.FullName, "00001.json"), 2624testResultsDirectory.FullName, 2651testResultsDirectory.FullName, 2668Path.Combine(testResultsDirectory.FullName, "00001.json"), 2681testResultsDirectory.FullName, 2702Path.Combine(testResultsDirectory.FullName, "00001.trx"), 2711Path.Combine(testResultsDirectory.FullName, "00002.trx"), 2723testResultsDirectory.FullName, 2743Path.Combine(testResultsDirectory.FullName, "00001.trx"), 2755testResultsDirectory.FullName, 2774await File.WriteAllTextAsync(Path.Combine(testResultsDirectory.FullName, "results.xml"), "<TestRun />"); 2785testResultsDirectory.FullName, 2805Path.Combine(testResultsDirectory.FullName, "00001.trx"), 2823testResultsDirectory.FullName, 3806var failureDataDirectory = Directory.CreateDirectory(Path.Combine(_workspace.Path, "ci-failure-data")).FullName; 4589var failureDataDirectory = Directory.CreateDirectory(Path.Combine(_workspace.Path, "ci-failure-data")).FullName; 4733var fakeBinDirectory = Directory.CreateDirectory(Path.Combine(_workspace.Path, "fake-bin")).FullName; 4756var fakeBinDirectory = Directory.CreateDirectory(Path.Combine(_workspace.Path, "fake-bin")).FullName; 4778var fakeBinDirectory = Directory.CreateDirectory(Path.Combine(_workspace.Path, $"fake-bin-{Guid.NewGuid():N}")).FullName; 4815var analysisDirectory = Directory.CreateDirectory(Path.Combine(_workspace.Path, "ci-analysis-output")).FullName; 4816var failureDataDirectory = Directory.CreateDirectory(Path.Combine(_workspace.Path, "ci-failure-data")).FullName; 4971var causesDirectory = Directory.CreateDirectory(Path.Combine(_workspace.Path, "ci-analysis-output", "causes")).FullName;
WorkflowScripts\ExtensionReleaseWorkflowTests.cs (13)
39var fakeGh = await CreateFakeGhAsync(tempDirectory.FullName); 59Directory.Delete(tempDirectory.FullName, recursive: true); 70var fakeGh = await CreateFakeGhAsync(tempDirectory.FullName); 90Directory.Delete(tempDirectory.FullName, recursive: true); 101var fakeGh = await CreateFakeGhAsync(tempDirectory.FullName); 123Directory.Delete(tempDirectory.FullName, recursive: true); 305var bodyPath = Path.Combine(tempDirectory.FullName, "pr_body.md"); 315Directory.Delete(tempDirectory.FullName, recursive: true); 324var bodyPath = Path.Combine(tempDirectory.FullName, "pr_body.md"); 334Directory.Delete(tempDirectory.FullName, recursive: true); 345var commitsPath = Path.Combine(tempDirectory.FullName, "commits.txt"); 346var outputPath = Path.Combine(tempDirectory.FullName, "release_notes.md"); 393Directory.Delete(tempDirectory.FullName, recursive: true);
WorkflowScripts\LintHandwrittenWorkflowsScriptTests.cs (1)
92var binDirectory = Directory.CreateDirectory(Path.Combine(_workspace.Path, "bin")).FullName;
WorkflowScripts\UpdateActionlintTests.cs (2)
265var pinPath = Path.Combine(pinDirectory.FullName, "actionlint-version.json"); 293var pinPath = Path.Combine(pinDirectory.FullName, "actionlint-version.json");
Microsoft.Agents.AI.ProjectTemplates.Tests (2)
test\ProjectTemplates\Infrastructure\TemplateExecutionTestClassFixtureBase.cs (1)
89CopySandboxDirectory(subDir.FullName, Path.Combine(testSandbox, subDir.Name));
test\ProjectTemplates\Infrastructure\WellKnownPaths.cs (1)
54directory = Directory.GetParent(directory)?.FullName;
Microsoft.AspNetCore.DataProtection (13)
Internal\ContainerUtils.cs (2)
65var fs_file = new DirectoryInfo(fields[1].TrimEnd(Path.DirectorySeparatorChar)).FullName; 70if (fs_file.Equals(dir.FullName.TrimEnd(Path.DirectorySeparatorChar), StringComparison.Ordinal))
Internal\KeyManagementOptionsPostSetup.cs (1)
75logger.UsingReadOnlyKeyConfiguration(keyDirectory.FullName);
KeyManagement\XmlKeyManager.cs (3)
654_logger.UsingAzureAsKeyRepository(azureWebSitesKeysFolder.FullName); 680_logger.UsingProfileAsKeyRepositoryWithDPAPI(localAppDataKeysFolder.FullName); 684_logger.UsingProfileAsKeyRepository(localAppDataKeysFolder.FullName);
Repositories\FileSystemXmlRepository.cs (7)
40_logger.UsingEphemeralFileSystemLocationInContainer(Directory.FullName); 87yield return ReadElementFromFile(fileSystemInfo.FullName); 140var tempFilename = Path.Combine(Directory.FullName, Guid.NewGuid().ToString() + ".tmp"); 141var finalFilename = Path.Combine(Directory.FullName, filename + ".xml"); 188var fullPath = fileSystemInfo.FullName; 202_logger.DeletingFile(fileSystemInfo.FullName); 210_logger.FailedToDeleteFile(fileSystemInfo.FullName, ex);
Microsoft.AspNetCore.DeveloperCertificates.XPlat (5)
src\aspnetcore\src\Shared\CertificateGeneration\MacOSCertificateManager.cs (1)
481Log.DirectoryPermissionsNotSecure(dirInfo.FullName);
src\aspnetcore\src\Shared\CertificateGeneration\UnixCertificateManager.cs (3)
549Log.DirectoryPermissionsNotSecure(dirInfo.FullName); 1042if (!TryGetOpenSslHash(cert.FullName, out var hash)) 1062Log.UnixOpenSslRehashTooManyHashes(cert.FullName, hash, MaxHashCollisions);
src\aspnetcore\src\Shared\CertificateGeneration\WindowsCertificateManager.cs (1)
168Log.DirectoryPermissionsNotSecure(dirInfo.FullName);
Microsoft.AspNetCore.InternalTesting (3)
TestPathUtilities.cs (3)
19var projectFileInfo = new FileInfo(Path.Combine(directoryInfo.FullName, $"{solution}.slnf")); 25projectFileInfo = new FileInfo(Path.Combine(directoryInfo.FullName, "AspNetCore.slnx")); 29directoryInfo = new DirectoryInfo(Path.Combine(directoryInfo.FullName, "src"));
Microsoft.AspNetCore.Mvc.Testing (2)
WebApplicationFactory.cs (2)
576depsFile.FullName, 577Path.GetFileName(depsFile.FullName)));
Microsoft.AspNetCore.Server.IntegrationTesting (6)
ApplicationPublisher.cs (2)
31+ $" --output \"{publishDirectory.FullName}\"" 109return Task.FromResult(new PublishedApplication(publishDirectory.FullName, logger));
CachingApplicationPublisher.cs (3)
56return target.FullName; 66logger.LogDebug($"Processing {target.FullName}"); 70var destFileName = Path.Combine(target.FullName, fileInfo.Name);
Deployers\RemoteWindowsDeployer\RemoteWindowsDeployer.cs (1)
298DirectoryCopy(subdir.FullName, temppath, copySubDirs);
Microsoft.AspNetCore.Server.Kestrel.Core (5)
src\aspnetcore\src\Shared\CertificateGeneration\MacOSCertificateManager.cs (1)
481Log.DirectoryPermissionsNotSecure(dirInfo.FullName);
src\aspnetcore\src\Shared\CertificateGeneration\UnixCertificateManager.cs (3)
549Log.DirectoryPermissionsNotSecure(dirInfo.FullName); 1042if (!TryGetOpenSslHash(cert.FullName, out var hash)) 1062Log.UnixOpenSslRehashTooManyHashes(cert.FullName, hash, MaxHashCollisions);
src\aspnetcore\src\Shared\CertificateGeneration\WindowsCertificateManager.cs (1)
168Log.DirectoryPermissionsNotSecure(dirInfo.FullName);
Microsoft.AspNetCore.TestHost (2)
WebHostBuilderExtensions.cs (2)
196var solutionPath = Directory.EnumerateFiles(directoryInfo.FullName, solutionName).FirstOrDefault(); 199builder.UseContentRoot(Path.GetFullPath(Path.Combine(directoryInfo.FullName, solutionRelativePath)));
Microsoft.Build (6)
BackEnd\Components\SdkResolution\SdkResolverLoader.cs (4)
132var manifest = Path.Combine(subfolder.FullName, $"{subfolder.Name}.xml"); 133var assembly = Path.Combine(subfolder.FullName, $"{subfolder.Name}.dll"); 137assemblyAdded = TryAddAssemblyManifestFromXml(manifest, subfolder.FullName, manifestsList, location); 145ProjectErrorUtilities.ThrowInvalidProject(location, "SdkResolverNoDllOrManifest", subfolder.FullName);
parent\Shared\TaskParameterValueStringConverter.cs (2)
27return fileInfo.FullName; 32return directoryInfo.FullName;
Microsoft.Build.Framework (27)
BuildEnvironmentHelper.cs (2)
627=> currentToolsDirectory.Parent?.FullName, 641MSBuildToolsDirectoryRoot = currentToolsDirectory.Parent?.FullName;
FileClassifier.cs (1)
301path = Directory.GetParent(EnsureNoTrailingSlash(path!))?.FullName;
FileUtilities_TempFiles.cs (2)
71path = Directory.CreateTempSubdirectory(msbuildTempFolderPrefix).FullName; 223CopyDirectory(subdirInfo.FullName, destDir);
FileUtilities.cs (1)
1496return parent?.FullName ?? path;
Loader\MSBuildLoadContext.cs (1)
37_directory = Directory.GetParent(assemblyPath)!.FullName;
Utilities\FileMatcher.cs (2)
960if (linkTarget is not null && IsSubdirectoryOf(recursionState.BaseDirectory, linkTarget.FullName, FileUtilities.PathComparison)) 3438&& IsSubdirectoryOf(directory, linkTarget.FullName, FileUtilities.PathComparison);
Utilities\FrameworkLocationHelper.cs (1)
1062fixedPath = fixedPathInfo.FullName;
Utilities\ToolLocationHelper_ReferenceAssemblies.cs (1)
692pathToReturn = Directory.GetParent(pathToReturn).FullName;
Utilities\ToolLocationHelper_SDKDiscovery.cs (14)
139DebugTrace.WriteLine($"Found ExtensionsSDK folder '{extensionSdksDirectory.FullName}'. "); 142DebugTrace.WriteLine($"Found '{sdkNameDirectories.Length}' sdkName directories under '{extensionSdksDirectory.FullName}'"); 148DebugTrace.WriteLine($"Found '{sdkVersionDirectories.Length}' sdkVersion directories under '{sdkNameFolders.FullName}'"); 154DebugTrace.WriteLine($"Parsed sdk version folder '{sdkVersionDirectory.Name}' under '{sdkVersionDirectory.FullName}'"); 165string pathToSDKManifest = Path.Combine(sdkVersionDirectory.FullName, "SDKManifest.xml"); 168targetPlatformSDK.ExtensionSDKs.Add(SDKKey, FileUtilities.EnsureTrailingSlash(sdkVersionDirectory.FullName)); 177DebugTrace.WriteLine($"SDKKey '{SDKKey}' was already found, not adding sdk under '{sdkVersionDirectory.FullName}'"); 182DebugTrace.WriteLine($"Failed to parse sdk version folder '{sdkVersionDirectory.Name}' under '{sdkVersionDirectory.FullName}'"); 241string platformSDKDirectory = Path.Combine(rootPathWithIdentifier.FullName, version); 656DebugTrace.WriteLine($"Found '{platformVersions.Length}' platform version directories under '{platformIdentifier.FullName}'"); 672string pathToPlatformManifest = Path.Combine(platformVersion.FullName, "Platform.xml"); 675sdk.Platforms.Add(sdkKey, FileUtilities.EnsureTrailingSlash(platformVersion.FullName)); 684DebugTrace.WriteLine($"SDKKey '{sdkKey}' was already found, not adding platform under '{platformVersion.FullName}'"); 689DebugTrace.WriteLine($"Failed to parse platform version folder '{platformVersion.Name}' under '{platformVersion.FullName}'");
ValueTypeParser.cs (2)
143return fileInfo.FullName; 148return directoryInfo.FullName;
Microsoft.Build.NuGetSdkResolver (11)
FileSystemInfoFullNameEqualityComparer.cs (8)
13/// Represents an implementation of <see cref="IEqualityComparer{T}" /> that compares <see cref="FileSystemInfo" /> objects by the value of their <see cref="FileSystemInfo.FullName" /> property. 30/// Determines whether the specified <see cref="FileSystemInfo" /> objects are equal by comparing their <see cref="FileSystemInfo.FullName" /> property. 34/// <returns><see langword="true" /> if the specified <see cref="FileSystemInfo" /> objects' <see cref="FileSystemInfo.FullName" /> property are equal, otherwise <see langword="false" />.</returns> 37return string.Equals(x.FullName, y.FullName, StringComparison.Ordinal); 41/// Returns a hash code for the specified <see cref="FileSystemInfo" /> object's <see cref="FileSystemInfo.FullName" /> property. 44/// <returns>A hash code for the specified <see cref="FileSystemInfo" /> object's <see cref="FileSystemInfo.FullName" /> property..</returns> 50return obj.FullName.GetHashCode(StringComparison.Ordinal);
GlobalJsonReader.cs (3)
79key => (key.LastWriteTime, new Lazy<Dictionary<string, string>>(() => ParseMSBuildSdkVersions(key.FullName, context))), 86return (lastWriteTime, new Lazy<Dictionary<string, string>>(() => ParseMSBuildSdkVersions(key.FullName, context))); 140candidatePath = new FileInfo(Path.Combine(currentDirectory.FullName, file));
Microsoft.Build.Tasks.CodeAnalysis (3)
src\roslyn\src\Compilers\Core\MSBuildTask\TaskEnvironmentExtensions.cs (1)
46public void DeleteNoThrow(FileInfo fileInfo) => taskEnvironment.DeleteNoThrow(taskEnvironment.GetAbsolutePath(fileInfo.FullName));
src\roslyn\src\Compilers\Core\MSBuildTask\Vbc.cs (1)
332TaskEnvironment.FileMove(actualPdbInfo.FullName, desiredLocation);
src\roslyn\src\Compilers\Shared\RuntimeHostInfo.cs (1)
68dotNetHostPath = resolvedPath.FullName;
Microsoft.Build.Tasks.Core (74)
DownloadFile.cs (7)
185var destinationFile = new FileInfo(Path.Combine(destinationDirectory.FullName, filename)); 190Log.LogMessageFromResources(MessageImportance.Normal, "DownloadFile.DidNotDownloadBecauseOfFileMatch", SourceUrl, destinationFile.FullName, nameof(SkipUnchangedFiles), "true"); 192DownloadedFile = new TaskItem(destinationFile.FullName); 198Log.LogErrorFromResources("DownloadFile.Downloading", SourceUrl, destinationFile.FullName, response.Content.Headers.ContentLength); 206using (var target = new FileStream(destinationFile.FullName, FileMode.Create, FileAccess.Write, FileShare.None)) 208Log.LogMessageFromResources(MessageImportance.High, "DownloadFile.Downloading", SourceUrl, destinationFile.FullName, response.Content.Headers.ContentLength); 220DownloadedFile = new TaskItem(destinationFile.FullName);
parent\Shared\TaskParameterValueStringConverter.cs (2)
27return fileInfo.FullName; 32return directoryInfo.FullName;
TarDirectory.cs (16)
168Log.LogErrorWithCodeFromResources("TarDirectory.ErrorDirectoryDoesNotExist", _sourceDirectory.FullName); 178Log.LogErrorWithCodeFromResources("TarDirectory.ErrorFailIfNotIncremental", _sourceDirectory.FullName, _destinationFile.FullName); 187Log.LogErrorWithCodeFromResources("TarDirectory.ErrorFileExists", _destinationFile.FullName); 194File.Delete(_destinationFile.FullName); 198string lockedFileMessage = LockCheck.GetLockedFileMessage(_destinationFile.FullName); 199Log.LogErrorWithCodeFromResources("TarDirectory.ErrorFailed", _sourceDirectory.FullName, _destinationFile.FullName, e.Message, lockedFileMessage); 234Log.LogMessageFromResources(MessageImportance.High, "TarDirectory.Comment", _sourceDirectory.FullName, _destinationFile.FullName); 241using (FileStream destinationStream = new FileStream(_destinationFile.FullName, FileMode.Create, FileAccess.Write, FileShare.None)) 278await writer.WriteEntryAsync(info.FullName, entryName, cancellationToken) 301Log.LogErrorWithCodeFromResources("TarDirectory.ErrorFailed", _sourceDirectory.FullName, _destinationFile.FullName, e.Message, string.Empty); 338string basePath = FileUtilities.EnsureTrailingSlash(_sourceDirectory.FullName); 366string relativePath = info.FullName.Substring(basePath.Length);
Untar.cs (16)
147if (!FileSystems.Default.FileExists(sourceFile.FullName)) 149Log.LogErrorWithCodeFromResources("Untar.ErrorFileDoesNotExist", sourceFile.FullName); 194Log.LogErrorWithCodeFromResources("Untar.ErrorCouldNotOpenFile", sourceFile.FullName, e.Message); 204Log.LogErrorWithCodeFromResources("Untar.ErrorCouldNotOpenFile", sourceFile.FullName, e.Message); 274AbsolutePath fullDestinationDirectoryPath = TaskEnvironment.GetAbsolutePath(FileUtilities.EnsureTrailingSlash(destinationDirectory.FullName)).GetCanonicalForm(); 286AbsolutePath fullDestinationPath = TaskEnvironment.GetAbsolutePath(Path.Combine(destinationDirectory.FullName, entryName)).GetCanonicalForm(); 300if (tarEntry.EntryType is TarEntryType.Directory || Path.GetFileName(destinationPath.FullName).Length == 0) 304Directory.CreateDirectory(destinationPath.FullName); 311Log.LogErrorWithCodeFromResources("Untar.ErrorCouldNotCreateDestinationDirectory", destinationPath.FullName, e.Message); 326Log.LogMessageFromResources(MessageImportance.Low, "Untar.DidNotUntarBecauseOfFileMatch", entryName, destinationPath.FullName, nameof(SkipUnchangedFiles), "true"); 331Log.LogErrorWithCodeFromResources("Untar.ErrorFailIfNotIncremental", entryName, destinationPath.FullName); 353string lockedFileMessage = LockCheck.GetLockedFileMessage(destinationPath.FullName); 354Log.LogErrorWithCodeFromResources("Untar.ErrorCouldNotMakeFileWriteable", entryName, destinationPath.FullName, e.Message, lockedFileMessage); 361Log.LogMessageFromResources(MessageImportance.Normal, "Untar.FileComment", entryName, destinationPath.FullName); 367await tarEntry.ExtractToFileAsync(destinationPath.FullName, overwrite: true, _cancellationTokenSource.Token) 376Log.LogErrorWithCodeFromResources("Untar.ErrorCouldNotExtractFile", entryName, destinationPath.FullName, e.Message);
Unzip.cs (15)
179AbsolutePath fullDestinationDirectoryPath = TaskEnvironment.GetAbsolutePath(FileUtilities.EnsureTrailingSlash(destinationDirectory.FullName)).GetCanonicalForm(); 190AbsolutePath fullDestinationPath = TaskEnvironment.GetAbsolutePath(Path.Combine(destinationDirectory.FullName, zipArchiveEntry.FullName)).GetCanonicalForm(); 198if (Path.GetFileName(destinationPath.FullName).Length == 0) 201Directory.CreateDirectory(destinationPath.FullName); 205if (!destinationPath.FullName.StartsWith(destinationDirectory.FullName, StringComparison.OrdinalIgnoreCase)) 209Log.LogErrorFromResources("Unzip.ErrorExtractingResultsInFilesOutsideDestination", destinationPath.FullName, destinationDirectory.FullName); 215Log.LogMessageFromResources(MessageImportance.Low, "Unzip.DidNotUnzipBecauseOfFileMatch", zipArchiveEntry.FullName, destinationPath.FullName, nameof(SkipUnchangedFiles), "true"); 220Log.LogErrorFromResources("Unzip.FileComment", zipArchiveEntry.FullName, destinationPath.FullName); 242string lockedFileMessage = LockCheck.GetLockedFileMessage(destinationPath.FullName); 243Log.LogErrorWithCodeFromResources("Unzip.ErrorCouldNotMakeFileWriteable", zipArchiveEntry.FullName, destinationPath.FullName, e.Message, lockedFileMessage); 250Log.LogMessageFromResources(MessageImportance.Normal, "Unzip.FileComment", zipArchiveEntry.FullName, destinationPath.FullName); 275using (FileStream destination = new FileStream(destinationPath.FullName, fileStreamOptions)) 293Log.LogErrorWithCodeFromResources("Unzip.ErrorCouldNotExtractFile", zipArchiveEntry.FullName, destinationPath.FullName, e.Message);
ZipDirectory.cs (18)
71Log.LogErrorWithCodeFromResources("ZipDirectory.ErrorDirectoryDoesNotExist", sourceDirectory.FullName); 86Log.LogErrorWithCodeFromResources("ZipDirectory.ErrorFileExists", destinationFile.FullName); 93File.Delete(destinationFile.FullName); 97string lockedFileMessage = LockCheck.GetLockedFileMessage(destinationFile.FullName); 98Log.LogErrorWithCodeFromResources("ZipDirectory.ErrorFailed", sourceDirectory.FullName, destinationFile.FullName, e.Message, lockedFileMessage); 108Log.LogErrorFromResources("ZipDirectory.Comment", sourceDirectory.FullName, destinationFile.FullName); 112Log.LogMessageFromResources(MessageImportance.High, "ZipDirectory.Comment", sourceDirectory.FullName, destinationFile.FullName); 115ZipFile.CreateFromDirectory(sourceDirectory.FullName, destinationFile.FullName); 119ZipFile.CreateFromDirectory(sourceDirectory.FullName, destinationFile.FullName, compressionLevel.Value, includeBaseDirectory: false); 135ZipFile.CreateFromDirectory(sourceDirectory.FullName, destinationFile.FullName); 141Log.LogErrorWithCodeFromResources("ZipDirectory.ErrorFailed", sourceDirectory.FullName, destinationFile.FullName, e.Message, string.Empty);
Microsoft.CodeAnalysis.BuildClient.Package (1)
src\roslyn\src\Compilers\Shared\RuntimeHostInfo.cs (1)
68dotNetHostPath = resolvedPath.FullName;
Microsoft.CodeAnalysis.CSharp.Workspaces (1)
SyncedSource\FileBasedPrograms\ProjectLocator.cs (1)
50projectFilePath = files.First().FullName;
Microsoft.CodeAnalysis.Features (1)
MetadataAsSource\MetadataAsSourceFileService.cs (1)
137TryDeleteFolderWhichContainsReadOnlyFiles(directoryInfo.FullName);
Microsoft.CodeAnalysis.Razor.Compiler (1)
Language\DefaultRazorProjectItem.cs (1)
63public override string PhysicalPath => _fileInfo?.FullName ?? _physicalFilePath;
Microsoft.CodeAnalysis.Scripting (1)
src\roslyn\src\Compilers\Shared\GlobalAssemblyCacheHelpers\MonoGlobalAssemblyCache.cs (1)
34s_gacDirectory = Directory.GetParent(Path.GetDirectoryName(systemAssemblyFile)).Parent.FullName;
Microsoft.CodeAnalysis.Workspaces (1)
Rename\ConflictEngine\MutableConflictResolution.cs (1)
104var directory = Directory.GetParent(document.FilePath)?.FullName;
Microsoft.CodeAnalysis.Workspaces.MSBuild.Contracts (1)
MonoMSBuildDiscovery.cs (1)
158s_monoMSBuildDirectory = versionDirectory.EnumerateDirectories().SingleOrDefault(d => string.Equals(d.Name, "bin", StringComparison.OrdinalIgnoreCase))?.FullName;
Microsoft.Data.Analysis.Tests (1)
parent\Microsoft.ML.TestFramework\BaseTestClass.cs (1)
57OutDir = Path.Combine(currentAssemblyLocation.Directory.FullName, "TestOutput");
Microsoft.DotNet.Build.Tasks.Feed (3)
src\PushToBuildStorage.cs (3)
574DeleteFile(destFile.FullName); 606_log.LogMessage(MessageImportance.Low, $"Removing read-only attribute from \"{destFile.FullName}\"."); 607File.SetAttributes(destFile.FullName, FileAttributes.Normal);
Microsoft.DotNet.Build.Tasks.FileCatalog (2)
CatalogBuilder.cs (1)
104File.WriteAllBytes(path.FullName, Build());
CatalogEntry.cs (1)
38using (FileStream stream = File.OpenRead(filePath.FullName))
Microsoft.DotNet.Build.Tasks.Packaging (1)
PackageIndex.cs (1)
39.Select(packageIndexFileInfo => $"{packageIndexFileInfo.FullName}:{packageIndexFileInfo.Length}:{packageIndexFileInfo.LastWriteTimeUtc.Ticks}"));
Microsoft.DotNet.Cli.Definitions (1)
src\sdk\src\Resolvers\Microsoft.DotNet.NativeWrapper\EnvironmentProvider.cs (1)
84dotnetExeFromPath = fileInfo.FullName;
Microsoft.DotNet.Cli.Utils (3)
PathUtility.cs (3)
112var path1 = PathUtilities.EnsureTrailingSlash(directory.FullName); 114var path2 = childItem.FullName; 382var filePath = Path.Combine(directory.FullName, relativeFilePath);
Microsoft.DotNet.Configurer (1)
CliFolderPathCalculator.cs (1)
18Path.Combine(new DirectoryInfo(AppContext.BaseDirectory).Parent?.FullName ?? string.Empty, "NuGetFallbackFolder");
Microsoft.DotNet.HotReload.Watch (1)
FileWatcher\PollingDirectoryWatcher.cs (1)
163filePath = entity.FullName;
Microsoft.DotNet.InternalAbstractions (3)
DirectoryPath.cs (2)
55return new DirectoryPath(parentDirectory.FullName); 68return new DirectoryPath(parentDirectory.FullName);
TemporaryDirectory.cs (1)
36return Directory.CreateTempSubdirectory().FullName;
Microsoft.DotNet.NativeWrapper (1)
EnvironmentProvider.cs (1)
84dotnetExeFromPath = fileInfo.FullName;
Microsoft.DotNet.NuGetRepack.Tasks (9)
src\NuGetVersionUpdater.cs (7)
103package = Package.Open(packagePath.FullName, FileMode.Open, FileAccess.Read); 107tempPathOpt = new FileInfo(Path.Combine(tempDirectoryOpt.FullName, Guid.NewGuid().ToString())); 108File.Copy(packagePath.FullName, tempPathOpt.FullName); 109package = Package.Open(tempPathOpt.FullName, FileMode.Open, FileAccess.ReadWrite); 361string finalPath = Path.Combine(outDirectory.FullName, package.Id + "." + package.NewVersion + ".nupkg"); 365File.Copy(package.TempPathOpt.FullName, finalPath, overwrite: true);
src\ReplacePackageParts.cs (1)
117string tempPackagePath = Path.Combine(tempDirectory.FullName, "package.nupkg");
src\UpdatePackageVersionTask.cs (1)
87File.WriteAllLines(Path.Combine(outputDirectory.FullName, "PreReleaseDependencies.txt"), preReleaseDependencies.Distinct());
Microsoft.DotNet.ProjectTools (1)
src\sdk\src\Cli\Microsoft.DotNet.FileBasedPrograms\ProjectLocator.cs (1)
50projectFilePath = files.First().FullName;
Microsoft.DotNet.SharedFramework.Sdk (2)
src\FileUtilities.cs (2)
22var fvi = FileVersionInfo.GetVersionInfo(sourceFile.FullName); 41using (var stream = File.OpenRead(file.FullName))
Microsoft.DotNet.XliffTasks (5)
Model\Document.cs (5)
31using FileStream stream = File.Open(path.FullName, FileMode.Open, FileAccess.Read, FileShare.Read); 70string tempPath = Path.Combine(path.Directory.FullName, Path.GetRandomFileName()); 79if (File.Exists(path.FullName)) 83destinationFileName: path.FullName, 89File.Move(sourceFileName: tempPath, destFileName: path.FullName);
Microsoft.Extensions.AI.Evaluation.Console (4)
Commands\CleanCacheCommand.cs (1)
39string storageRootPath = storageRootDir.FullName;
Commands\CleanResultsCommand.cs (1)
44string storageRootPath = storageRootDir.FullName;
Commands\ReportCommand.cs (2)
54string storageRootPath = storageRootDir.FullName; 119string outputFilePath = outputFile.FullName;
Microsoft.Extensions.AI.Evaluation.Reporting (4)
Storage\DiskBasedResultStore.cs (4)
79string.Format(CultureInfo.CurrentCulture, DeserializationFailedMessage, resultFile.FullName)) 106var resultFile = new FileInfo(Path.Combine(resultDir.FullName, $"{result.IterationName}.json")); 326var scenarioDir = new DirectoryInfo(Path.Combine(executionDir.FullName, scenarioName)); 362var resultFile = new FileInfo(Path.Combine(scenarioDir.FullName, $"{iterationName}.json"));
Microsoft.Extensions.AI.Templates.Tests (2)
test\ProjectTemplates\Infrastructure\TemplateExecutionTestClassFixtureBase.cs (1)
89CopySandboxDirectory(subDir.FullName, Path.Combine(testSandbox, subDir.Name));
test\ProjectTemplates\Infrastructure\WellKnownPaths.cs (1)
54directory = Directory.GetParent(directory)?.FullName;
Microsoft.Extensions.DataIngestion (6)
IngestionPipeline.cs (6)
89rootActivity?.SetTag(ProcessDirectory.DirectoryPathTagName, directory.FullName) 92_logger?.ProcessingDirectory(directory.FullName, searchPattern, searchOption); 145processFileActivity?.SetTag(ProcessFile.FilePathTagName, fileInfo.FullName); 146_logger?.ReadingFile(fileInfo.FullName, GetShortName(_reader)); 162_logger?.IngestingFailed(ex, document?.Identifier ?? fileInfo.FullName); 167string documentId = document?.Identifier ?? fileInfo.FullName;
Microsoft.Extensions.DataIngestion.Abstractions (2)
IngestionDocumentReader.cs (2)
27string identifier = Throw.IfNull(source).FullName; // entire path is more unique than just part of it. 45using FileStream stream = new(source.FullName, FileMode.Open, FileAccess.Read, FileShare.Read, bufferSize: 1, FileOptions.Asynchronous);
Microsoft.Extensions.DataIngestion.Markdig (1)
MarkdownReader.cs (1)
23string fileContent = await File.ReadAllTextAsync(source.FullName, cancellationToken).ConfigureAwait(false);
Microsoft.Extensions.DataIngestion.MarkItDown (6)
MarkItDownMcpReader.cs (2)
43throw new FileNotFoundException("The specified file does not exist.", source.FullName); 47DataContent dataContent = await DataContent.LoadFromAsync(source.FullName, mediaType, cancellationToken).ConfigureAwait(false);
MarkItDownReader.cs (4)
41throw new FileNotFoundException("The specified file does not exist.", source.FullName); 47string workingDirectory = _exePath?.Directory?.FullName ?? AppContext.BaseDirectory; 51FileName = _exePath?.FullName ?? "markitdown", 65startInfo.ArgumentList.Add(source.FullName);
Microsoft.Extensions.DataIngestion.Tests (11)
IngestionPipelineTests.cs (6)
53File.WriteAllText(_withTable.FullName, FirstFileContent); 69File.WriteAllText(_withImage.FullName, secondFileContent); 98.GetAsync(record => _sampleFiles.Any(info => info.FullName == (string)record["documentid"]!), top: 1000) 106Assert.Contains((string)retrieved[i]["documentid"]!, _sampleFiles.Select(info => info.FullName)); 132.GetAsync(record => ((string)record["documentid"]!).StartsWith(directory.FullName), top: 1000) 140Assert.StartsWith(directory.FullName, (string)retrieved[i]["documentid"]!);
Readers\DocumentReaderConformanceTests.cs (5)
99SimpleAsserts(document, inputFile.FullName, inputFile.FullName); 120SimpleAsserts(document, inputFile.FullName, expectedId: inputFile.FullName); 193using FileStream inputStream = new(file.FullName, FileMode.CreateNew, FileAccess.Write, FileShare.None, bufferSize: 1, FileOptions.Asynchronous);
Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests (7)
Linux\Resources\HardcodedValueFileSystem.cs (7)
27_fileContent = fileContent.ToDictionary(static x => x.Key.FullName, static y => y.Value, StringComparer.OrdinalIgnoreCase); 33return _fileContent.ContainsKey(fileInfo.FullName); 47if (_fileContent.Count == 0 || !_fileContent.TryGetValue(file.FullName, out var content)) 61if (_fileContent.Count == 0 || !_fileContent.TryGetValue(file.FullName, out var content)) 75if (_fileContent.Count != 0 && _fileContent.TryGetValue(file.FullName, out var content)) 92_fileContent[file.FullName] = value; 97bool flag = !_fileContent.TryGetValue(file.FullName, out var content);
Microsoft.Extensions.FileProviders.Physical (3)
PhysicalDirectoryInfo.cs (1)
46public string PhysicalPath => _info.FullName;
PhysicalFileInfo.cs (1)
32public string PhysicalPath => _info.FullName;
PollingFileChangeToken.cs (1)
60_directoryInfo ??= new DirectoryInfo(_fileInfo.FullName);
Microsoft.Extensions.FileSystemGlobbing (6)
Abstractions\DirectoryInfoWrapper.cs (4)
79new DirectoryInfo(Path.Combine(_directoryInfo.FullName, name)), 89=> new FileInfoWrapper(new FileInfo(Path.Combine(_directoryInfo.FullName, name))); 98/// Equals the value of <seealso cref="System.IO.FileSystemInfo.FullName" />. 100public override string FullName => _directoryInfo.FullName;
Abstractions\FileInfoWrapper.cs (2)
39/// Equals the value of <see cref="System.IO.FileSystemInfo.FullName" />. 41public override string FullName => _fileInfo.FullName;
Microsoft.Extensions.Http.Resilience.Tests (2)
BuildTransitive\GrpcNetClientFactoryVersionTargetTests.cs (2)
420directory.FullName, 429return directory.FullName;
Microsoft.Maui.Resizetizer (10)
AndroidAdaptiveIconGenerator.cs (3)
66 var dir = Path.Combine(fullIntermediateOutputPath.FullName, dpi.Path); 110 var dir = Path.Combine(fullIntermediateOutputPath.FullName, dpi.Path); 143 var dir = Path.Combine(fullIntermediateOutputPath.FullName, "mipmap-anydpi-v26");
ResizeImageInfo.cs (6)
83 throw new FileNotFoundException("Unable to find background file: " + fileInfo.FullName, fileInfo.FullName); 85 info.Filename = fileInfo.FullName; 122 throw new FileNotFoundException("Unable to find foreground file: " + fgFileInfo.FullName, fgFileInfo.FullName); 124 info.ForegroundFilename = fgFileInfo.FullName;
Resizer.cs (1)
53 destination = Path.Combine(fullIntermediateOutputPath.FullName, destination);
Microsoft.ML.AutoML (4)
Experiment\ModelContainer.cs (2)
27using (var fs = File.Create(fileInfo.FullName)) 43using (var stream = new FileStream(_fileInfo.FullName, FileMode.Open, FileAccess.Read, FileShare.Read))
Experiment\Runners\RunnerUtil.cs (1)
58new FileInfo(Path.Combine(modelDirectory.FullName, $"Model{iterationNum}_{foldNum}.zip"));
Experiment\Runners\TrainValidateRunner.cs (1)
66new FileInfo(Path.Combine(modelDirectory.FullName, $"Model{iterationNum}.zip"));
Microsoft.ML.AutoML.Tests (1)
DatasetUtil.cs (1)
237DatasetUtil).Assembly.Location).Directory.FullName, relativePath);
Microsoft.ML.Core.Tests (5)
UnitTests\FileSource.cs (5)
30var dirName = Directory.CreateDirectory("MultiFileSourceUnitTest").FullName; 55var dataDir = Directory.CreateDirectory("MultiFileSourceUnitTest/Data").FullName; 63var dataFolderDir = Directory.CreateDirectory("MultiFileSourceUnitTest/DataFolder").FullName; 64var subFolder1Dir = Directory.CreateDirectory("MultiFileSourceUnitTest/DataFolder/SubFolder1").FullName; 65var subFolder2Dir = Directory.CreateDirectory("MultiFileSourceUnitTest/DataFolder/SubFolder2").FullName;
Microsoft.ML.IntegrationTests (1)
IntegrationTestBaseClass.cs (1)
49OutDir = Path.Combine(currentAssemblyLocation.Directory.FullName, "TestOutput");
Microsoft.ML.PerformanceTests (3)
Harness\ProjectGenerator.cs (2)
57<ProjectReference Include=""{GetProjectFilePath(buildPartition.RepresentativeBenchmarkCase.Descriptor.Type, logger).FullName}"" /> 70return string.Join(Environment.NewLine, File.ReadAllLines(csproj.FullName).Where(line => line.Contains("<NativeAssemblyReference")));
ImageClassificationBench.cs (1)
211string assemblyFolderPath = dataRoot.Directory.FullName;
Microsoft.ML.Samples (4)
Dynamic\Trainers\MulticlassClassification\ImageClassification\ImageClassificationDefault.cs (1)
312string assemblyFolderPath = _dataRoot.Directory.FullName;
Dynamic\Trainers\MulticlassClassification\ImageClassification\LearningRateSchedulingCifarResnetTransferLearning.cs (1)
353string assemblyFolderPath = _dataRoot.Directory.FullName;
Dynamic\Trainers\MulticlassClassification\ImageClassification\ResnetV2101TransferLearningEarlyStopping.cs (1)
309string assemblyFolderPath = _dataRoot.Directory.FullName;
Dynamic\Trainers\MulticlassClassification\ImageClassification\ResnetV2101TransferLearningTrainTestSplit.cs (1)
330string assemblyFolderPath = _dataRoot.Directory.FullName;
Microsoft.ML.Samples.GPU (4)
parent\6a273e5f1a281752\LearningRateSchedulingCifarResnetTransferLearning.cs (1)
353string assemblyFolderPath = _dataRoot.Directory.FullName;
parent\Microsoft.ML.Samples\Dynamic\Trainers\MulticlassClassification\ImageClassification\ImageClassificationDefault.cs (1)
312string assemblyFolderPath = _dataRoot.Directory.FullName;
parent\Microsoft.ML.Samples\Dynamic\Trainers\MulticlassClassification\ImageClassification\ResnetV2101TransferLearningEarlyStopping.cs (1)
309string assemblyFolderPath = _dataRoot.Directory.FullName;
parent\Microsoft.ML.Samples\Dynamic\Trainers\MulticlassClassification\ImageClassification\ResnetV2101TransferLearningTrainTestSplit.cs (1)
330string assemblyFolderPath = _dataRoot.Directory.FullName;
Microsoft.ML.SamplesUtils (1)
SamplesDatasetUtils.cs (1)
29directory = Directory.GetParent(directory).FullName;
Microsoft.ML.SearchSpace.Tests (2)
TestBase.cs (2)
41return Path.Combine(testDataDir.FullName, fileName).Replace(cwd, "."); 53return Path.Combine(testDataDir.FullName, folderName).Replace(cwd, ".");
Microsoft.ML.TestFramework (7)
BaseTestClass.cs (1)
57OutDir = Path.Combine(currentAssemblyLocation.Directory.FullName, "TestOutput");
CopyAction.cs (6)
31file.CopyTo(destFile.FullName, true); 34file.CopyTo(destFile.FullName, true); 46var deploymentDirectory = testDirectory.Parent.FullName; 53CopyAll(dir.FullName, testDirectory.FullName); 54CopyAll(Path.Combine(deploymentDirectory, "AutoLoad"), testDirectory.FullName);
Microsoft.ML.TestFrameworkCommon (1)
TestCommon.cs (1)
78directory = Directory.GetParent(directory).FullName;
Microsoft.NET.Build.Containers (5)
ContentStore.cs (1)
21public static string TempPath { get; } = Directory.CreateTempSubdirectory().FullName;
Layer.cs (2)
127string relativePath = Path.GetRelativePath(directory, fsi.FullName); 184var fileStream = File.OpenRead(file.FullName);
LocalDaemons\ContainerRuntimeOperations.cs (2)
97string archivePath = Path.Combine(temporaryDirectory.FullName, "image.tar"); 131temporaryDirectory.FullName,
Microsoft.NET.HostModel (3)
AppHost\BinaryUtils.cs (1)
167var destinationDirectory = new FileInfo(destinationPath).Directory.FullName;
Bundle\Bundler.cs (1)
321string destinationDirectory = new FileInfo(bundlePath).Directory!.FullName;
ComHost\ComHost.cs (1)
30var destinationDirectory = new FileInfo(comHostDestinationFilePath).Directory.FullName;
Microsoft.NET.ProjectData (3)
Donor\ProjectDataDonorIndex.cs (1)
213 current = Directory.GetParent(current)?.FullName;
UnsupportedProjectDataMarker.cs (2)
164 if (parent is null || string.Equals(parent.FullName, directory, StringComparison.Ordinal)) 169 directory = parent.FullName;
Microsoft.NET.ProjectData.Tasks (4)
CachePathResolver.cs (1)
346 return sdkDirectory.Parent?.FullName;
src\roslyn\src\ProjectData\Microsoft.NET.ProjectData\Donor\ProjectDataDonorIndex.cs (1)
213 current = Directory.GetParent(current)?.FullName;
src\roslyn\src\ProjectData\Microsoft.NET.ProjectData\UnsupportedProjectDataMarker.cs (2)
164 if (parent is null || string.Equals(parent.FullName, directory, StringComparison.Ordinal)) 169 directory = parent.FullName;
Microsoft.NET.Sdk.Publish.Tasks (2)
MsDeploy\CommonUtility.cs (1)
1389log.LogMessage(Framework.MessageImportance.Normal, string.Format(CultureInfo.CurrentCulture, Resources.BUILDTASK_RemoveEmptyDirectories_Deleting, dirinfo.FullName));
WebConfigTelemetry.cs (1)
82solutionDirectory = Directory.GetParent(solutionDirectory)?.FullName;
Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver (1)
WorkloadSdkResolver.cs (1)
100dotnetRoot = Directory.GetParent(sdkDirectory)?.Parent?.FullName;
Microsoft.TemplateEngine.Cli (2)
PostActionProcessors\AddJsonPropertyPostActionProcessor.cs (2)
69currentDirectory = Directory.GetParent(currentDirectory)?.FullName; 274directory = Path.GetPathRoot(directory) != directory ? Directory.GetParent(directory)?.FullName : null;
Microsoft.TemplateEngine.Edge (6)
ReflectionLoadProbingPath.cs (6)
71AssemblyName candidateName = AssemblyLoadContext.GetAssemblyName(file.FullName); 175bestMatch.Push(file.FullName); 221.Where(x => x.FullName.IndexOf($"{Path.DirectorySeparatorChar}lib{Path.DirectorySeparatorChar}", StringComparison.OrdinalIgnoreCase) > -1 222&& (x.FullName.IndexOf($"{Path.DirectorySeparatorChar}netstandard", StringComparison.OrdinalIgnoreCase) > -1 223|| x.FullName.IndexOf($"{Path.DirectorySeparatorChar}netcoreapp", StringComparison.OrdinalIgnoreCase) > -1)) 224.OrderByDescending(x => x.FullName);
Microsoft.TemplateEngine.Utils (1)
FileFindHelpers.cs (1)
26directory = Path.GetPathRoot(directory) != directory ? Directory.GetParent(directory).FullName : null;
Microsoft.TestPlatform.Extensions.BlameDataCollector (2)
ProcDumpDumper.cs (2)
276File.Delete(dumpToRemove.FullName); 285return allTargetProcessDumps.Take(allTargetProcessDumps.Count - 1).Select(dump => dump.FullName).ToList();
Microsoft.TestPlatform.TestHostRuntimeProvider (2)
Hosting\DotnetTestHostManager.cs (2)
385var testHostExeNugetPath = Path.Combine(testHostNugetRoot.FullName, "build", "net8.0", folderName, exeName); 388testHostExeNugetPath = Path.Combine(testHostNugetRoot.FullName, "build", "net9.0", folderName, exeName);
Microsoft.VisualBasic.Forms (2)
Microsoft\VisualBasic\Helpers\FileSystemUtils.vb (2)
39Return dInfo.GetFiles(IO.Path.GetFileName(fullPath))(0).FullName 43Return dInfo.GetDirectories(IO.Path.GetFileName(fullPath))(0).FullName
Microsoft.VisualStudio.TestPlatform.Common (1)
Utilities\InstallationContext.cs (1)
27var vsInstallPath = new DirectoryInfo(typeof(InstallationContext).Assembly.GetAssemblyLocation()).Parent?.Parent?.Parent?.FullName;
MSBuild (2)
parent\Shared\TaskParameterValueStringConverter.cs (2)
27return fileInfo.FullName; 32return directoryInfo.FullName;
NuGet.Build.Tasks (2)
WriteRestoreGraphTask.cs (2)
77log.LogMinimal($"Writing {fileInfo.FullName}"); 79dgFile.Save(fileInfo.FullName);
NuGet.Build.Tasks.Console (1)
Program.cs (1)
82MSBuildFeatureFlags.MSBuildExeFilePath = arguments.MSBuildExeFilePath.FullName;
NuGet.CommandLine.XPlat (1)
Commands\Package\Update\PackageUpdateCommand.cs (1)
60Project = project?.FullName ?? Environment.CurrentDirectory,
NuGet.Commands (4)
RestoreCommand\Utility\LockFileUtils.cs (1)
571var projectDir = PathUtility.EnsureTrailingSlash(msbuildFilePathInfo.Directory.FullName);
SignCommand\SignCommandRunner.cs (3)
132tempPackageFile.FullName, 142FileUtility.Replace(tempPackageFile.FullName, outputPath); 156FileUtility.Delete(tempPackageFile.FullName);
NuGet.Configuration (6)
Settings\Settings.cs (4)
507.OrderByDescending(file => file.FullName.Count(c => c == Path.DirectorySeparatorChar)) 512.Select(file => ReadSettings(file.DirectoryName!, file.FullName, settingsLoadingContext: settingsLoadingContext)) 516root.FullName, 785var normalizedPath = new DirectoryInfo(rawPath).FullName;
Settings\SettingsLoadingContext.cs (2)
75FileRead?.Invoke(this, fileInfo.FullName); 77if (ConfigurationEventSource.Instance.IsEnabled()) ConfigurationEventSource.Instance.SettingsLoadingContext_FileRead(fileInfo.FullName, isMachineWide ? 1 : 0, isReadOnly ? 1 : 0);
NuGet.PackageManagement (3)
Projects\ProjectJsonNuGetProject.cs (3)
123public string JsonConfigPath => _jsonConfig.FullName; 324string.Format(CultureInfo.CurrentCulture, Strings.ErrorLoadingPackagesConfig, _jsonConfig.FullName, ex.Message), ex); 343string.Format(CultureInfo.CurrentCulture, Strings.ErrorLoadingPackagesConfig, _jsonConfig.FullName, ex.Message), ex);
NuGet.Packaging (18)
PackageExtractor.cs (5)
76var packageDirectory = packageDirectoryInfo.FullName; 211var packageDirectory = packageDirectoryInfo.FullName; 317var packageDirectory = packageDirectoryInfo.FullName; 626Directory.Exists(parent.FullName) && 630Directory.Delete(parent.FullName);
PackageFolderReader.cs (10)
65_rootPath = PathUtility.EnsureTrailingSlash(folder.FullName); 77message.AppendFormat(CultureInfo.CurrentCulture, Strings.Message_Path, _root.FullName); 85return nuspecFiles[0].FullName; 100if (!file.FullName.StartsWith(_rootPath, PathUtility.GetStringComparisonBasedOnOS())) 120var searchFolder = new DirectoryInfo(_root.FullName); 125searchFolder = new DirectoryInfo(Path.Combine(_root.FullName, folder)); 180&& !StringComparer.OrdinalIgnoreCase.Equals(parent.FullName, root.FullName)) 189throw new FileNotFoundException(file.FullName); 217targetPath = extractFile(sourceFile.FullName, targetPath, fileStream);
Signing\TrustStore\X509TrustStore.cs (2)
123fallbackCertificateBundleFile?.FullName, 144fallbackCertificateBundleFile?.FullName,
Signing\Utility\SigningUtility.cs (1)
274FileUtility.Delete(tempPackageFile.FullName);
NuGet.Protocol (20)
LocalRepositories\FindLocalPackagesResourceUnzipped.cs (3)
119var nupkgPath = Path.Combine(rootDirInfo.FullName, $"{name}{PackagingCoreConstants.NupkgExtension}"); 138var nuspecPath = Path.Combine(root.FullName, name, $"{name}{PackagingCoreConstants.NuspecExtension}"); 147var nupkgPath = Path.Combine(root.FullName, $"{name}{PackagingCoreConstants.NupkgExtension}");
LocalRepositories\LocalV2FindPackageByIdResource.cs (2)
53_source = rootDirInfo.FullName; 459nupkgInfo.FullName,
LocalRepositories\LocalV3FindPackageByIdResource.cs (2)
87_source = rootDirInfo.FullName; 520versionDir.FullName));
Plugins\PluginDiscoverer.cs (4)
203PluginFile pluginFile = new PluginFile(fileInfo.FullName, new Lazy<PluginFileState>(() => PluginFileState.Valid), requiresDotnetHost: false); 210pluginFiles.Add(new PluginFile(fileInfo.FullName, state)); 276PluginFile pluginFile = new PluginFile(file.FullName, new Lazy<PluginFileState>(() => PluginFileState.Valid), requiresDotnetHost: false); 313var fileMode = File.GetUnixFileMode(fileInfo.FullName);
Plugins\PluginPackageReader.cs (1)
1117return Directory.CreateTempSubdirectory("NuGet-").FullName;
SourceCacheContext.cs (1)
107_generatedTempFolder = Directory.CreateTempSubdirectory("NuGet-").FullName;
Utility\LocalFolderUtility.cs (7)
371var expectedPath = Path.Combine(rootDirInfo.FullName, idVersion, $"{idVersion}{PackagingCoreConstants.NupkgExtension}"); 474dir.FullName, 663var pathResolver = new VersionFolderPathResolver(rootDirInfo.FullName); 1027var pathResolver = new VersionFolderPathResolver(rootDirectoryInfo.FullName); 1216using (var package = new PackageArchiveReader(nupkgFile.FullName)) 1224nupkgFile.FullName, 1236nupkgFile.FullName,
PresentationCore (1)
MS\Internal\FontCache\DWriteFactory.cs (1)
63localPath = Directory.GetParent(fontCollectionUri.LocalPath).FullName + Path.DirectorySeparatorChar;
PresentationUI (1)
MS\Internal\Documents\RMPublishingDialog.cs (1)
389templateList.Add(new Uri(file.FullName));
RepoTasks (5)
src\aspnetcore\src\Shared\CertificateGeneration\MacOSCertificateManager.cs (1)
481Log.DirectoryPermissionsNotSecure(dirInfo.FullName);
src\aspnetcore\src\Shared\CertificateGeneration\UnixCertificateManager.cs (3)
549Log.DirectoryPermissionsNotSecure(dirInfo.FullName); 1042if (!TryGetOpenSslHash(cert.FullName, out var hash)) 1062Log.UnixOpenSslRehashTooManyHashes(cert.FullName, hash, MaxHashCollisions);
src\aspnetcore\src\Shared\CertificateGeneration\WindowsCertificateManager.cs (1)
168Log.DirectoryPermissionsNotSecure(dirInfo.FullName);
ResultsOfTGenerator (2)
Program.cs (2)
214Console.WriteLine($"{file.Length:N0} bytes written to {file.FullName} successfully!"); 300Console.WriteLine($"{file.Length:N0} bytes written to {file.FullName} successfully!");
sdk-tasks (2)
GenerateMSBuildExtensionsSWR.cs (1)
35File.WriteAllText(outputFileInfo.FullName, sb.ToString());
TarGzFileCreateFromDirectory.cs (1)
106var parentDirectory = Directory.GetParent(SourceDirectory).Parent.FullName;
System.CodeDom (1)
src\runtime\src\libraries\Common\src\System\IO\TempFileCollection.cs (1)
160return Directory.CreateTempSubdirectory().FullName;
System.Configuration.ConfigurationManager (2)
src\runtime\src\libraries\Common\src\System\IO\TempFileCollection.cs (1)
160return Directory.CreateTempSubdirectory().FullName;
System\Configuration\LocalFileSettingsProvider.cs (1)
327file = Path.Combine(previousDirectory.FullName, ConfigurationManagerInternalFactory.Instance.UserConfigFilename);
System.DirectoryServices (1)
System\DirectoryServices\ActiveDirectory\DirectoryContext.cs (1)
699tempHandle = global::Interop.Kernel32.LoadLibrary(windowsDirectory.FullName + "\\ADAM\\ntdsapi.dll");
System.Formats.Tar (5)
System\Formats\Tar\TarEntry.cs (1)
565return target.FullName;
System\Formats\Tar\TarFile.cs (4)
511writer.WriteEntry(di.FullName, GetEntryNameForBaseDirectory(di.Name)); 566await writer.WriteEntryAsync(di.FullName, GetEntryNameForBaseDirectory(di.Name), cancellationToken).ConfigureAwait(false); 619includeBaseDirectory && di.Parent != null ? di.Parent.FullName : di.FullName;
System.IO.Compression.ZipFile (4)
System\IO\Compression\ZipFile.Create.cs (3)
560string basePath = di.FullName; 564basePath = di.Parent.FullName; 567FileSystemEnumerable<(string, CreateEntryType)> fse = CreateEnumerableForCreate(di.FullName);
System\IO\Compression\ZipFileExtensions.ZipArchiveEntry.Extract.cs (1)
191string fullDestination = Path.GetFullPath(di.FullName);
System.IO.FileSystem.AccessControl (7)
System\IO\FileSystemAclExtensions.cs (7)
17return new DirectorySecurity(directoryInfo.FullName, AccessControlSections.Access | AccessControlSections.Owner | AccessControlSections.Group); 24return new DirectorySecurity(directoryInfo.FullName, includeSections); 31string fullPath = Path.GetFullPath(directoryInfo.FullName); 46return new FileSecurity(fileInfo.FullName, includeSections); 54string fullPath = Path.GetFullPath(fileInfo.FullName); 111FileSystem.CreateDirectory(directoryInfo.FullName, directorySecurity.GetSecurityDescriptorBinaryForm()); 178SafeFileHandle handle = CreateFileHandle(fileInfo.FullName, mode, rights, share, options, fileSecurity);
System.IO.Packaging (1)
System\IO\Packaging\Package.cs (1)
878package = new ZipPackage(packageFileInfo.FullName, packageMode, packageAccess, packageShare);
System.IO.Ports (4)
System\IO\Ports\SerialPort.Unix.cs (4)
56(File.Exists(entry.FullName + "/device/id") || 57Directory.Exists(entry.FullName + "/device/of_node"))) || 58(!isTtyS && Directory.Exists(entry.FullName + "/device/tty")) || 60(isTtyGS && (File.Exists(entry.FullName + "/dev"))))
System.Private.CoreLib (6)
src\runtime\src\libraries\System.Private.CoreLib\src\System\IO\FileInfo.cs (3)
184string? directoryPath = Path.GetDirectoryName(FullName); 189throw new FileNotFoundException(SR.Format(SR.IO_FileNotFound_FileName, FullName), FullName);
src\runtime\src\libraries\System.Private.CoreLib\src\System\IO\FileSystemInfo.cs (3)
110/// If a link does not exist in <see cref="FullName"/>, or this instance does not represent a link, returns <see langword="null"/>. 149/// Creates a symbolic link located in <see cref="FullName"/> that points to the specified <paramref name="pathToTarget"/>. 158/// <exception cref="IOException">A file or directory already exists in the location of <see cref="FullName"/>.
System.Windows.Forms.Design (1)
System\Windows\Forms\Design\DocumentDesigner.AxToolboxItem.cs (1)
172string fullPath = file.FullName;
vbc (1)
src\roslyn\src\Compilers\Shared\RuntimeHostInfo.cs (1)
68dotNetHostPath = resolvedPath.FullName;
VBCSCompiler (1)
src\roslyn\src\Compilers\Shared\RuntimeHostInfo.cs (1)
68dotNetHostPath = resolvedPath.FullName;
vstest.console (5)
Processors\AeDebuggerArgumentProcessor.cs (5)
145procDumpPath = Path.Combine(procDumpToolDirectoryPath.FullName, ProcDumpExecutableHelper.ProcDumpFileName(_environment.Architecture)); 174procDumpInstallUnistallArgument = dumpDirectoryPath.FullName; 224if (!_fileHelper.DirectoryExists(directoryInfo.FullName)) 226_output.Error(false, string.Format(CultureInfo.CurrentCulture, invalidDirectoryErrorMessage, directoryInfo.FullName)); 249if (!_fileHelper.DirectoryExists(directoryInfo.FullName))
vstest.console.arm64 (5)
parent\vstest.console\Processors\AeDebuggerArgumentProcessor.cs (5)
145procDumpPath = Path.Combine(procDumpToolDirectoryPath.FullName, ProcDumpExecutableHelper.ProcDumpFileName(_environment.Architecture)); 174procDumpInstallUnistallArgument = dumpDirectoryPath.FullName; 224if (!_fileHelper.DirectoryExists(directoryInfo.FullName)) 226_output.Error(false, string.Format(CultureInfo.CurrentCulture, invalidDirectoryErrorMessage, directoryInfo.FullName)); 249if (!_fileHelper.DirectoryExists(directoryInfo.FullName))