2 writes to Spec
Aspire.Hosting (1)
Dcp\Model\ModelCommon.cs (1)
149Spec = spec;
Aspire.Hosting.Tests (1)
Dcp\TestKubernetesService.cs (1)
462proxy.Spec = updatedProxy.Spec;
637 references to Spec
Aspire.Hosting (84)
Dcp\ContainerCreator.cs (12)
94ctr.Spec.ContainerName = containerObjectInstance.Name; 98ctr.Spec.Persistent = true; 99ApplyMonitorProcess(container, ctr.Spec); 104ctr.Spec.PullPolicy = pullPolicy switch 125ctr.Spec.Networks = new List<ContainerNetworkConnection> 139ctr.Spec.Start = false; 162return !DcpModelUtilities.ShouldDeferCreateForExplicitStart(resource.ModelResource, resource.DcpResource.Spec.Start); 215var spec = dcpContainer.Spec; 303var containerExes = _appResources.Get().OfType<RenderedModelResource<ContainerExec>>().Where(ar => ar.DcpResource.Spec.ContainerName == dcpContainer.Metadata.Name).ToArray(); 656dcpContainerResource.Spec.Build = new() 674dcpContainerResource.Spec.Build.Platform = ToDcpPlatformString(targetPlatform); 718sp.Service.Spec.Port ??= hostPort;
Dcp\ContainerNetworkEndpointProvisioner.cs (10)
115network.Spec.Persistent = true; 116network.Spec.NetworkName = $"{DefaultAspirePersistentNetworkName}-{_nameGenerator.GetProjectHashSuffix()}"; 120network.Spec.NetworkName = $"{DefaultAspireNetworkName}-{DcpNameGenerator.GetRandomNameSuffix()}"; 128network.Spec.NetworkName += $"-{shortApplicationName}"; 185service.Spec.AddressAllocationMode = AddressAllocationModes.Proxyless; 186service.Spec.Protocol = PortProtocol.FromProtocolType(endpoint.Protocol); 390proxy => proxy.Spec.Tunnels = _tunnelConfigurations.ToList(), 416tunnelProxy.Spec.ContainerNetworkName = KnownNetworkIdentifiers.DefaultAspireContainerNetwork.Value; 417tunnelProxy.Spec.Aliases = [await GetContainerHostNameAsync(cancellationToken).ConfigureAwait(false)]; 418tunnelProxy.Spec.Tunnels = tunnels;
Dcp\DcpExecutor.cs (19)
195.Where(sr => !sr.HasCompleteAddress && sr.Spec.AddressAllocationMode != AddressAllocationModes.Proxyless); 527$"'{volume.Spec.Name ?? volume.Metadata.Name}': current state is '{volume.Status?.State ?? "(unknown)"}'")); 690svc.Spec.Port = fixedPublicPort; 693svc.Spec.Protocol = PortProtocol.FromProtocolType(endpoint.Protocol); 696svc.Spec.Address = KnownHostNames.Localhost; 700svc.Spec.Address = endpoint.TargetHost; 705svc.Spec.AddressAllocationMode = AddressAllocationModes.Proxyless; 1107Container { Spec.Start: false } => true, 1108Executable { Spec.Start: false } => true, 1187patch = CreatePatch(c, obj => obj.Spec.Stop = true); 1202patch = CreatePatch(e, obj => obj.Spec.Stop = true); 1257case RenderedModelResource<Container> { DcpResource.Spec.Start: false } cr when !DcpModelUtilities.ShouldDeferCreateForExplicitStart(cr.ModelResource, cr.DcpResource.Spec.Start): 1260await PatchDcpObjectAsync(cr.DcpResource, static c => c.Spec.Start = true, cancellationToken).ConfigureAwait(false); 1263case RenderedModelResource<Executable> { DcpResource.Spec.Start: false } er when !DcpModelUtilities.ShouldDeferCreateForExplicitStart(er.ModelResource, er.DcpResource.Spec.Start): 1266await PatchDcpObjectAsync(er.DcpResource, static e => e.Spec.Start = true, cancellationToken).ConfigureAwait(false); 1273cr.DcpResource.Spec.Start = true; 1285er.DcpResource.Spec.Start = true;
Dcp\DcpModelUtilities.cs (2)
225if (resource.DcpResource is not Container ctr || ctr.Spec.Networks is null) 231var containerNetwork = ctr.Spec.Networks.FirstOrDefault(n => n.Name == KnownNetworkIdentifiers.DefaultAspireContainerNetwork.Value);
Dcp\DcpResourceWatcher.cs (3)
557if (container.Spec.Start == false && (container.Status?.State == null || container.Status?.State == ContainerState.Pending)) 567if (executable.Spec.Start == false && IsNotStartedExecutableState(executable.Status?.State)) 935var service = endpoint.Spec.ServiceName is { } serviceName
Dcp\ExecutableCreator.cs (8)
50resource.DcpResource.Spec.Start); 242var spec = executable.Spec; 297executable.Spec.WorkingDirectory = 302ApplyExplicitStart(project, executable.Spec); 325executable.Spec.WorkingDirectory = resource.WorkingDirectory; 328ApplyExplicitStart(resource, executable.Spec); 378executable.Spec.Terminal = null; 389executable.Spec.Terminal = new TerminalSpec
Dcp\Model\ExecutableReplicaSet.cs (1)
109ers.Spec.Template.Spec.ExecutablePath = executablePath;
Dcp\Model\Service.cs (6)
89public int? AllocatedPort => Spec.Port ?? Status?.EffectivePort; 90public string? AllocatedAddress => Spec.Address ?? Status?.EffectiveAddress; 97Spec.Port = other.Spec.Port; 98Spec.Address = other.Spec.Address;
Dcp\ResourceLogSource.cs (4)
58&& executable.Spec.ExecutionType is null or "" or ExecutionType.Process 59&& !string.IsNullOrEmpty(executable.Spec.WorkingDirectory) 60? [new("WorkingDirectory", executable.Spec.WorkingDirectory)] 127if (resource is not Executable { Spec.Terminal: not null })
Dcp\ResourceSnapshotBuilder.cs (19)
30var environment = GetEnvironmentVariables(container.Status?.EffectiveEnv ?? container.Spec.Env, container.Spec.Env); 33if (container.Spec.Start is false && (state == null || state == ContainerState.Pending)) 56ResourcePropertySnapshotMetadata.Create(KnownResourceTypes.Container, KnownProperties.Container.Image, container.Spec.Image), 58ResourcePropertySnapshotMetadata.Create(KnownResourceTypes.Container, KnownProperties.Container.Command, container.Spec.Command), 76if (container.Spec.Ports is null) 82foreach (var port in container.Spec.Ports) 94return (container.Spec.Persistent ?? false) ? ContainerLifetime.Persistent : ContainerLifetime.Session; 104var environment = GetEnvironmentVariables(executable.Status?.EffectiveEnv, executable.Spec.Env); 120ResourcePropertySnapshotMetadata.Create(KnownResourceTypes.Executable, KnownProperties.Executable.WorkDir, executable.Spec.WorkingDirectory), 156if (executable.Spec.Start is false && IsNotStartedExecutableState(state)) 164var environment = GetEnvironmentVariables(executable.Status?.EffectiveEnv, executable.Spec.Env); 185ResourcePropertySnapshotMetadata.Create(KnownResourceTypes.Project, KnownProperties.Executable.Path, executable.Spec.ExecutablePath), 186ResourcePropertySnapshotMetadata.Create(KnownResourceTypes.Project, KnownProperties.Executable.WorkDir, executable.Spec.WorkingDirectory), 209ResourcePropertySnapshotMetadata.Create(KnownResourceTypes.Executable, KnownProperties.Executable.Path, executable.Spec.ExecutablePath), 210ResourcePropertySnapshotMetadata.Create(KnownResourceTypes.Executable, KnownProperties.Executable.WorkDir, executable.Spec.WorkingDirectory), 318e.Value.Spec.ServiceName == serviceName 352var isActive = _resourceState.EndpointsMap.Any(e => e.Value.Spec.ServiceName == endpointOwnerEndpoint?.Metadata.Name); 385return container.Spec.VolumeMounts?.Select(v => new VolumeSnapshot(v.Source, v.Target ?? "", v.Type, v.IsReadOnly)).ToImmutableArray() ?? [];
Aspire.Hosting.Containers.Tests (12)
WithDockerfileTests.cs (12)
220Assert.Equal(tempContextPath, container!.Spec!.Build!.Context); 221Assert.Equal(tempDockerfilePath, container!.Spec!.Build!.Dockerfile); 253Assert.Equal(tempContextPath, container!.Spec!.Build!.Context); 254Assert.Equal(tempDockerfilePath, container!.Spec!.Build!.Dockerfile); 490Assert.Equal(tempContextPath, container!.Spec!.Build!.Context); 491Assert.Equal(tempDockerfilePath, container!.Spec!.Build!.Dockerfile); 492Assert.Null(container!.Spec!.Build!.Stage); 494container!.Spec!.Build!.Args!, 561Assert.Equal(tempContextPath, container!.Spec!.Build!.Context); 562Assert.Equal(tempDockerfilePath, container!.Spec!.Build!.Dockerfile); 563Assert.Null(container!.Spec!.Build!.Stage); 565container!.Spec!.Build!.Args!,
Aspire.Hosting.Dotnet.Tests (3)
DotnetProjectResourceTests.cs (3)
129Assert.Equal(resource.Resource.Command, executable.Spec.ExecutablePath); 130Assert.Equal(resource.Resource.WorkingDirectory, executable.Spec.WorkingDirectory); 131Assert.False(executable.Spec.Start);
Aspire.Hosting.Tests (538)
Dcp\DcpExecutorTests.cs (401)
317Assert.Single(executable.Spec.Env!, variable => variable.Name == "PORT").Value); 354Assert.All(created, executable => Assert.True(executable.Spec.Start)); 442Assert.NotNull(container.Spec.Build); 443Assert.Equal("linux/arm64", container.Spec.Build!.Platform); 464Assert.NotNull(container.Spec.Build); 465Assert.Null(container.Spec.Build!.Platform); 578var callArgs = executionType == ExecutionType.IDE ? exe.Spec.Args : exe.Spec.Args![^(expectedArgs?.Length ?? 0)..]; 583AssertEffectiveArgumentIndexesMatchSpecArgs(argAnnotations, exe.Spec.Args); 616Assert.Equal(callArgs, exe.Spec.Args); 620AssertEffectiveArgumentIndexesMatchSpecArgs(argAnnotations, exe.Spec.Args); 664Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 665Assert.Equal(["app-arg"], exe.Spec.Args); 666Assert.Null(exe.Spec.FallbackExecutionTypes); 674AssertEffectiveArgumentIndexesMatchSpecArgs(displayArgs, exe.Spec.Args); 704Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 705Assert.Equal(["custom", "exec", "--", "prepended-arg", "app-arg"], exe.Spec.Args); 713AssertEffectiveArgumentIndexesMatchSpecArgs(displayArgs, exe.Spec.Args); 741AssertEffectiveArgumentIndexesMatchSpecArgs(argAnnotations, exe.Spec.Args); 743var effectiveArgs = exe.Spec.Args!.ToList(); 787AssertEffectiveArgumentIndexesMatchSpecArgs(argAnnotations, container.Spec.Args); 789var effectiveArgs = container.Spec.Args!.ToList(); 937var callCount1 = exe1.Spec.Env!.Single(e => e.Name == "CALL_COUNT"); 940Assert.Single(exe1.Spec.Args!, a => a == "--no-build"); 941Assert.Single(exe1.Spec.Args!, a => a == "--test"); 944AssertEffectiveArgumentIndexesMatchSpecArgs(argAnnotations1, exe1.Spec.Args); 957var callCount2 = exe2.Spec.Env!.Single(e => e.Name == "CALL_COUNT"); 960Assert.Single(exe2.Spec.Args!, a => a == "--no-build"); 961Assert.Single(exe2.Spec.Args!, a => a == "--test"); 964AssertEffectiveArgumentIndexesMatchSpecArgs(argAnnotations2, exe2.Spec.Args); 997Assert.Equal(AddressAllocationModes.Localhost, svc.Spec.AddressAllocationMode); 1000var envVarVal = dcpExe.Spec.Env?.Single(v => v.Name == "NO_PORT_NO_TARGET_PORT").Value; 1035Assert.Equal(AddressAllocationModes.Localhost, svc.Spec.AddressAllocationMode); 1038var envVarVal = dcpExe.Spec.Env?.Single(v => v.Name == "PORT_SET_NO_TARGET_PORT").Value; 1066Assert.Equal(AddressAllocationModes.Localhost, svc.Spec.AddressAllocationMode); 1070var envVarVal = dcpExe.Spec.Env?.Single(v => v.Name == "NO_PORT_TARGET_PORT_SET").Value; 1131Assert.Equal(AddressAllocationModes.Localhost, svc.Spec.AddressAllocationMode); 1135var envVarVal = dcpExe.Spec.Env?.Single(v => v.Name == "PORT_AND_TARGET_PORT_SET").Value; 1182Assert.Equal(AddressAllocationModes.Proxyless, svc.Spec.AddressAllocationMode); 1186var envVarVal = dcpExe.Spec.Env?.Single(v => v.Name == "PORT_SET_NO_TARGET_PORT").Value; 1211Assert.Equal(AddressAllocationModes.Proxyless, svc.Spec.AddressAllocationMode); 1215var envVarVal = dcpExe.Spec.Env?.Single(v => v.Name == "EQUAL_PORT_AND_TARGET_PORT").Value; 1246Assert.Equal(AddressAllocationModes.Proxyless, svc.Spec.AddressAllocationMode); 1250var envVarVal = dcpExe.Spec.Env?.Single(v => v.Name == "PORT_SET_NO_TARGET_PORT").Value; 1289Assert.Equal(AddressAllocationModes.Localhost, svc.Spec.AddressAllocationMode); 1290Assert.Null(svc.Spec.Port); 1295var envVarVal = dcpExe.Spec.Env?.Single(v => v.Name == "PORT_SET_NO_TARGET_PORT").Value; 1327Assert.Equal(AddressAllocationModes.Proxyless, svc.Spec.AddressAllocationMode); 1331var envVarVal = dcpExe.Spec.Env?.Single(v => v.Name == "PORT_SET_NO_TARGET_PORT").Value; 1358Assert.Equal(AddressAllocationModes.Proxyless, svc.Spec.AddressAllocationMode); 1362var envVarVal = dcpExe.Spec.Env?.Single(v => v.Name == "PORT_SET_NO_TARGET_PORT").Value; 1389Assert.Equal(AddressAllocationModes.Proxyless, svc.Spec.AddressAllocationMode); 1391Assert.Equal(desiredPort, svc.Spec.Port); 1394var envVarVal = dcpExe.Spec.Env?.Single(v => v.Name == "NO_PORT_TARGET_PORT_SET").Value; 1421Assert.Equal(AddressAllocationModes.Proxyless, svc.Spec.AddressAllocationMode); 1425var envVarVal = dcpExe.Spec.Env?.Single(v => v.Name == "PORT_AND_TARGET_PORT_SET").Value; 1449Assert.Equal(AddressAllocationModes.Proxyless, svc.Spec.AddressAllocationMode); 1451Assert.Equal(allocatedPort, svc.Spec.Port); 1454var envVarVal = dcpExe.Spec.Env?.Single(v => v.Name == "NO_PORT_NO_TARGET_PORT").Value; 1570Assert.Equal(allocatedPort, dynamicService.Spec.Port); 1572var envVarVal = dynamicExecutable.Spec.Env?.Single(v => v.Name == "DYNAMIC_PORT").Value; 1609Assert.Equal(AddressAllocationModes.Proxyless, svc.Spec.AddressAllocationMode); 1648Assert.Equal(AddressAllocationModes.Proxyless, svc.Spec.AddressAllocationMode); 1650Assert.Equal(allocatedPort, svc.Spec.Port); 1651Assert.Contains(dcpCtr.Spec.Ports!, p => p.HostPort == allocatedPort && p.ContainerPort == targetPort); 1724Assert.Equal(allocatedPort.ToString(CultureInfo.InvariantCulture), firstExecutable.Spec.Env?.Single(v => v.Name == "HTTP_PORT").Value); 1733Assert.Equal(allocatedPort.ToString(CultureInfo.InvariantCulture), executables[1].Spec.Env?.Single(v => v.Name == "HTTP_PORT").Value); 1762Assert.Contains(firstContainer.Spec.Ports!, p => p.HostPort == allocatedPort && p.ContainerPort == targetPort); 1771Assert.Contains(containers[1].Spec.Ports!, p => p.HostPort == allocatedPort && p.ContainerPort == targetPort); 1810Assert.Equal(persistedPort, persistentService.Spec.Port); 1812Assert.Equal(allocatedPort, dynamicService.Spec.Port); 1855Assert.Equal(AddressAllocationModes.Proxyless, service.Spec.AddressAllocationMode); 3957Assert.Equal(AddressAllocationModes.Localhost, svc.Spec.AddressAllocationMode); 3962var envVarVal = dcpExe.Spec.Env?.Single(v => v.Name == "NO_PORT_NO_TARGET_PORT").Value; 3967var aspnetCoreUrls = dcpExe.Spec.Env?.Single(v => v.Name == KnownAspNetCoreConfigNames.Urls).Value; 4004Assert.Equal(AddressAllocationModes.Localhost, svc.Spec.AddressAllocationMode); 4009var envVarVal = dcpExe.Spec.Env?.Single(v => v.Name == "PORT_SET_NO_TARGET_PORT").Value; 4038Assert.Equal(AddressAllocationModes.Proxyless, svc.Spec.AddressAllocationMode); 4042var aspnetCoreUrls = dcpExe.Spec.Env?.Single(v => v.Name == KnownAspNetCoreConfigNames.Urls).Value; 4075Assert.Equal(AddressAllocationModes.Proxyless, svc.Spec.AddressAllocationMode); 4079var aspnetCoreUrls = dcpExe.Spec.Env?.Single(v => v.Name == KnownAspNetCoreConfigNames.Urls).Value; 4120Assert.Equal(AddressAllocationModes.Localhost, svc.Spec.AddressAllocationMode); 4121Assert.Null(svc.Spec.Port); 4126var aspnetCoreUrls = dcpExe.Spec.Env?.Single(v => v.Name == KnownAspNetCoreConfigNames.Urls).Value; 4153Assert.Equal(AddressAllocationModes.Localhost, svc.Spec.AddressAllocationMode); 4155Assert.NotNull(dcpCtr.Spec.Ports); 4156Assert.Contains(dcpCtr.Spec.Ports!, p => p.HostPort is null && p.ContainerPort == desiredTargetPort); 4159var envVarVal = dcpCtr.Spec.Env?.Single(v => v.Name == "NO_PORT_TARGET_PORT_SET").Value; 4188Assert.Equal(AddressAllocationModes.Localhost, svc.Spec.AddressAllocationMode); 4190Assert.NotNull(dcpCtr.Spec.Ports); 4191Assert.Contains(dcpCtr.Spec.Ports!, p => p.HostPort is null && p.ContainerPort == desiredTargetPort); 4194var envVarVal = dcpCtr.Spec.Env?.Single(v => v.Name == "PORT_AND_TARGET_PORT_SET").Value; 4418Assert.Equal(AddressAllocationModes.Proxyless, svc.Spec.AddressAllocationMode); 4420Assert.NotNull(dcpCtr.Spec.Ports); 4421Assert.Contains(dcpCtr.Spec.Ports!, p => p.HostPort == desiredPort && p.ContainerPort == desiredPort); 4424var envVarVal = dcpCtr.Spec.Env?.Single(v => v.Name == "PORT_SET_NO_TARGET_PORT").Value; 4449Assert.Equal(AddressAllocationModes.Proxyless, svc.Spec.AddressAllocationMode); 4450Assert.Equal(allocatedPort, svc.Spec.Port); 4452Assert.NotNull(dcpCtr.Spec.Ports); 4453Assert.Contains(dcpCtr.Spec.Ports!, p => p.HostPort == allocatedPort && p.ContainerPort == desiredTargetPort); 4456var envVarVal = dcpCtr.Spec.Env?.Single(v => v.Name == "NO_PORT_TARGET_PORT_SET").Value; 4521Assert.NotNull(dcpCtr.Spec.Ports); 4522Assert.Contains(dcpCtr.Spec.Ports!, p => p.HostPort == allocatedPort && p.ContainerPort == desiredTargetPort); 4524Assert.Equal(allocatedPort, svc.Spec.Port); 4569Assert.Equal(AddressAllocationModes.Proxyless, svc.Spec.AddressAllocationMode); 4571Assert.Equal(allocatedPort, svc.Spec.Port); 4573Assert.NotNull(dcpCtr.Spec.Ports); 4574Assert.Contains(dcpCtr.Spec.Ports!, p => p.HostPort == allocatedPort && p.ContainerPort == desiredTargetPort); 4575var envVarVal = dcpCtr.Spec.Env?.Single(v => v.Name == "PUBLIC_PORT").Value; 4578var secondEnvVarVal = dcpCtr.Spec.Env?.Single(v => v.Name == "PUBLIC_PORT_AGAIN").Value; 4602Assert.Equal(AddressAllocationModes.Proxyless, svc.Spec.AddressAllocationMode); 4604Assert.Equal(allocatedPort, svc.Spec.Port); 4606Assert.NotNull(dcpCtr.Spec.Ports); 4607Assert.Contains(dcpCtr.Spec.Ports!, p => p.HostPort == allocatedPort && p.ContainerPort == desiredTargetPort); 4608var envVarVal = dcpCtr.Spec.Env?.Single(v => v.Name == "PUBLIC_HOST_AND_PORT").Value; 4652Assert.Equal(AddressAllocationModes.Proxyless, svc.Spec.AddressAllocationMode); 4653Assert.Equal(allocatedPort, svc.Spec.Port); 4655Assert.NotNull(dcpCtr.Spec.Ports); 4656Assert.Contains(dcpCtr.Spec.Ports!, p => p.HostPort == allocatedPort && p.ContainerPort == desiredTargetPort); 4694Assert.Equal(AddressAllocationModes.Proxyless, svc.Spec.AddressAllocationMode); 4695Assert.Equal(allocatedPort, svc.Spec.Port); 4697Assert.NotNull(dcpCtr.Spec.Ports); 4698Assert.Contains(dcpCtr.Spec.Ports!, p => p.HostPort == allocatedPort && p.ContainerPort == desiredTargetPort); 4759Assert.Equal(AddressAllocationModes.Proxyless, svc.Spec.AddressAllocationMode); 4761Assert.NotNull(dcpCtr.Spec.Ports); 4762Assert.Contains(dcpCtr.Spec.Ports!, p => p.HostPort == desiredPort && p.ContainerPort == desiredTargetPort); 4765var envVarVal = dcpCtr.Spec.Env?.Single(v => v.Name == "PORT_AND_TARGET_PORT_SET").Value; 4791Assert.Equal(AddressAllocationModes.Proxyless, svc.Spec.AddressAllocationMode); 4793Assert.NotNull(dcpCtr.Spec.Ports); 4794Assert.Contains(dcpCtr.Spec.Ports!, p => p.HostPort == desiredPort && p.ContainerPort == desiredTargetPort); 4797var envVarVal = dcpCtr.Spec.Env?.Single(v => v.Name == "PORT_AND_TARGET_PORT_SET").Value; 4825Assert.Equal(AddressAllocationModes.Proxyless, svc.Spec.AddressAllocationMode); 4827Assert.NotNull(dcpCtr.Spec.Ports); 4828Assert.Contains(dcpCtr.Spec.Ports!, p => p.HostPort == desiredPort && p.ContainerPort == desiredTargetPort && p.Protocol == "UDP"); 4831var envVarVal = dcpCtr.Spec.Env?.Single(v => v.Name == "PORT_AND_PROTOCOL_SET").Value; 4914Assert.Null(implicitDefaultContainer.Spec.PullPolicy); 4917Assert.Null(explicitDefaultContainer.Spec.PullPolicy); 4920Assert.Equal(ContainerPullPolicy.Always, explicitAlwaysContainer.Spec.PullPolicy); 4923Assert.Equal(ContainerPullPolicy.Missing, explicitMissingContainer.Spec.PullPolicy); 4926Assert.Equal(ContainerPullPolicy.Never, explicitNeverContainer.Spec.PullPolicy); 5150Assert.NotNull(exe.Spec.Env); 5151var effectiveLaunchProfileEnv = exe.Spec.Env.SingleOrDefault(v => v.Name == "DOTNET_LAUNCH_PROFILE")?.Value; 5182var envVal = exe.Spec.Env!.SingleOrDefault(e => e.Name == "DOTNET_LAUNCH_PROFILE")?.Value; 5213var envVal = exe.Spec.Env!.SingleOrDefault(e => e.Name == "DOTNET_LAUNCH_PROFILE")?.Value; 5244Assert.DoesNotContain(exe.Spec.Env ?? [], e => e.Name == "DOTNET_LAUNCH_PROFILE"); 5274Assert.DoesNotContain(exe.Spec.Env ?? [], e => e.Name == "DOTNET_LAUNCH_PROFILE"); 5365var debugValue = Assert.Single(executable.Spec.Env!, variable => variable.Name == "DEBUG_VALUE").Value; 5369Assert.Equal(["app-arg"], executable.Spec.Args); 5416Assert.Equal(ExecutionType.IDE, debuggableExe.Spec.ExecutionType); 5417Assert.Null(debuggableExe.Spec.FallbackExecutionTypes); 5424Assert.Equal(ExecutionType.Process, nonDebuggableExe.Spec.ExecutionType); 5458Assert.True(exe.Spec.Persistent.GetValueOrDefault()); 5459Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 5460Assert.Null(exe.Spec.FallbackExecutionTypes); 5488Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 5489Assert.Equal(expectedArgs, exe.Spec.Args); 5492AssertEffectiveArgumentIndexesMatchSpecArgs(argAnnotations, exe.Spec.Args); 5525Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 5526Assert.Equal(expectedArgs, exe.Spec.Args); 5529AssertEffectiveArgumentIndexesMatchSpecArgs(argAnnotations, exe.Spec.Args); 5549Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 5550AssertDefaultProjectProcessArgs(exe.Spec.Args, "app-arg"); 5592Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 5593Assert.Null(exe.Spec.FallbackExecutionTypes); 5632Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 5633Assert.Equal(["app-arg"], exe.Spec.Args); 5634Assert.Null(exe.Spec.FallbackExecutionTypes); 5676Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 5677Assert.Equal(["app-arg"], exe.Spec.Args); 5678Assert.Null(exe.Spec.FallbackExecutionTypes); 5720Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 5721Assert.Equal(["--profile-arg", "profile value", "app-arg"], exe.Spec.Args); 5725AssertEffectiveArgumentIndexesMatchSpecArgs(displayArgs, exe.Spec.Args); 5806Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 5807Assert.Null(exe.Spec.FallbackExecutionTypes); 5839Assert.True(container.Spec.Persistent.GetValueOrDefault()); 5840Assert.Null(container.Spec.MonitorPid); 5841Assert.Null(container.Spec.MonitorTimestamp); 5849Assert.True(exe.Spec.Persistent.GetValueOrDefault()); 5850Assert.Null(exe.Spec.MonitorPid); 5851Assert.Null(exe.Spec.MonitorTimestamp); 5852Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 5992Assert.True(container.Spec.Persistent.GetValueOrDefault()); 5993Assert.Equal(parentProcessIdentity.ProcessId, container.Spec.MonitorPid); 5994Assert.NotNull(container.Spec.MonitorTimestamp); 5995Assert.Equal(parentProcessIdentity.Timestamp, container.Spec.MonitorTimestamp.Value, TimeSpan.FromMicroseconds(1)); 6003Assert.True(exe.Spec.Persistent.GetValueOrDefault()); 6004Assert.Equal(parentProcessIdentity.ProcessId, exe.Spec.MonitorPid); 6005Assert.NotNull(exe.Spec.MonitorTimestamp); 6006Assert.Equal(parentProcessIdentity.Timestamp, exe.Spec.MonitorTimestamp.Value, TimeSpan.FromMicroseconds(1)); 6007Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 6044var sslCertDir = Assert.Single(exe.Spec.Env!, e => e.Name == "SSL_CERT_DIR").Value; 6045var sslCertFile = Assert.Single(exe.Spec.Env!, e => e.Name == "SSL_CERT_FILE").Value; 6144var sslCertDir = Assert.Single(exe.Spec.Env!, e => e.Name == "SSL_CERT_DIR").Value; 6243Assert.True(exe.Spec.Start); 6324Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 6361Assert.Equal(ExecutionType.Process, debuggableExe.Spec.ExecutionType); 6365Assert.Equal(ExecutionType.Process, nonDebuggableExe.Spec.ExecutionType); 6402Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 6438Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 6480Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 6522Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 6564Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 6597Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 6637Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 6639Assert.NotNull(exe.Spec.Args); 6640Assert.Contains("launch-tool-arg", exe.Spec.Args); 6641Assert.NotNull(exe.Spec.Terminal); 6677Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 6710Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 6749Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 6790Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 6825Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 6826Assert.Null(exe.Spec.Args); 6827Assert.Null(exe.Spec.FallbackExecutionTypes); 6873Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 6932Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 6933Assert.Equal("dotnet", exe.Spec.ExecutablePath); 6934Assert.Equal("/tmp/mauiapp", exe.Spec.WorkingDirectory); 6943Assert.Equal(expectedArgs, exe.Spec.Args); 6984Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 6985Assert.Equal("dotnet", exe.Spec.ExecutablePath); 6986Assert.Equal("/tmp/mauiapp", exe.Spec.WorkingDirectory); 6995Assert.Equal(expectedArgs, exe.Spec.Args); 7029Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 7030Assert.Equal("dotnet", exe.Spec.ExecutablePath); 7031Assert.Equal("/tmp/mauiapp", exe.Spec.WorkingDirectory); 7040Assert.Equal(expectedArgs, exe.Spec.Args); 7100Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 7101Assert.Equal("dotnet", exe.Spec.ExecutablePath); 7102Assert.Equal("/tmp/mauiapp", exe.Spec.WorkingDirectory); 7103Assert.Null(exe.Spec.FallbackExecutionTypes); 7111Assert.Equal(expectedArgs, exe.Spec.Args); 7204Assert.Equal(ExecutionType.Process, executable.Spec.ExecutionType); 7219Assert.Equal(expectedArgs, executable.Spec.Args); 7348Assert.Equal(ExecutionType.Process, executable.Spec.ExecutionType); 7365Assert.Equal(expectedArgs, executable.Spec.Args); 7431Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 7432Assert.Equal(["--profile-arg", "profile value", "app-arg"], exe.Spec.Args); 7433Assert.Null(exe.Spec.FallbackExecutionTypes); 7438AssertEffectiveArgumentIndexesMatchSpecArgs(displayArgs, exe.Spec.Args); 7521Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 7522Assert.Equal(dotnetCommand, exe.Spec.ExecutablePath); 7546Assert.Equal(expectedArgs, exe.Spec.Args); 7547Assert.Null(exe.Spec.FallbackExecutionTypes); 7568AssertEffectiveArgumentIndexesMatchSpecArgs(displayArgs, exe.Spec.Args); 7636Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 7638Assert.Equal(expectedArgs, exe.Spec.Args); 7639Assert.Null(exe.Spec.FallbackExecutionTypes); 7643AssertEffectiveArgumentIndexesMatchSpecArgs(displayArgs, exe.Spec.Args); 7689Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 7690Assert.Equal(resourceArgs, exe.Spec.Args); 7691Assert.Null(exe.Spec.FallbackExecutionTypes); 7754Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 7755Assert.Equal(expectedArgs, exe.Spec.Args); 7781Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 7823Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 7862Assert.Equal(ExecutionType.IDE, standardExe.Spec.ExecutionType); 7865Assert.Equal(ExecutionType.IDE, customExe.Spec.ExecutionType); 7866Assert.Null(customExe.Spec.Args); 7867Assert.Null(customExe.Spec.FallbackExecutionTypes); 7921Assert.Equal(ExecutionType.Process, standardExe.Spec.ExecutionType); 7925Assert.Equal(ExecutionType.IDE, functionsExe.Spec.ExecutionType); 7960Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 7961Assert.Equal(["app-arg"], exe.Spec.Args); 7962Assert.Null(exe.Spec.FallbackExecutionTypes); 7990Assert.NotNull(container.Spec.Networks); 7991var network = Assert.Single(container.Spec.Networks); 8041Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 8042Assert.Null(exe.Spec.FallbackExecutionTypes); 8081Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 8082Assert.NotNull(exe.Spec.Args); 8083Assert.Equal("run", exe.Spec.Args[0]); 8084Assert.Equal("--file", exe.Spec.Args[1]); 8085Assert.Equal(projectPath, exe.Spec.Args[2]); 8086Assert.Equal("--no-cache", exe.Spec.Args[3]); 8087Assert.Contains("--no-launch-profile", exe.Spec.Args); 8088Assert.Null(exe.Spec.FallbackExecutionTypes); 8132Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 8133Assert.Null(exe.Spec.Args); 8134Assert.Null(exe.Spec.FallbackExecutionTypes); 8178Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 8219Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 8300Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 8301Assert.Null(exe.Spec.FallbackExecutionTypes); 8304exe.Spec.Args!, 8340Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 8342exe.Spec.Args!, 8351Assert.DoesNotContain("--no-launch-profile", exe.Spec.Args!); 8377Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 8379exe.Spec.Args!, 8412Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 8414exe.Spec.Args!, 8448Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 8450exe.Spec.Args!, 8467AssertEffectiveArgumentIndexesMatchSpecArgs(displayArgs, exe.Spec.Args); 8499Assert.True(exe.Spec.Persistent); 8500Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 8503exe.Spec.Args!, 8536Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 8571Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 8572Assert.Null(exe.Spec.FallbackExecutionTypes); 8578Assert.Null(exe.Spec.Args); 8611Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 8612Assert.Null(exe.Spec.FallbackExecutionTypes); 8645Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 8646Assert.Null(exe.Spec.FallbackExecutionTypes); 8709Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 8741Assert.True(exe.Spec.Persistent); 8742Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 8835Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 8836Assert.Equal(["app-arg"], exe.Spec.Args); 8837Assert.Null(exe.Spec.FallbackExecutionTypes); 8890Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 8891Assert.Equal(["app-arg"], exe.Spec.Args); 8892Assert.Null(exe.Spec.FallbackExecutionTypes); 8941Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 8942Assert.Equal(["certificate-arg", "app-arg"], exe.Spec.Args); 8943Assert.Null(exe.Spec.FallbackExecutionTypes); 8994Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 8995Assert.Equal(["app-arg"], exe.Spec.Args); 8996Assert.Null(exe.Spec.FallbackExecutionTypes); 9027Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 9028Assert.Equal(["tool", "exec", "app-arg"], exe.Spec.Args); 9071Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 9072Assert.Equal(["run", "app-arg"], exe.Spec.Args); 9073Assert.Null(exe.Spec.FallbackExecutionTypes); 9166Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 9202Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 9203Assert.Equal(["app-arg"], exe.Spec.Args); 9204Assert.Null(exe.Spec.FallbackExecutionTypes); 9239Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 9240Assert.Equal(["app-arg"], exe.Spec.Args); 9241Assert.Null(exe.Spec.FallbackExecutionTypes); 9433Assert.Null(exe1.Spec.FallbackExecutionTypes); 9443Assert.Null(exe2.Spec.FallbackExecutionTypes); 9452Assert.Null(exe3.Spec.FallbackExecutionTypes); 9495Assert.Equal(ExecutionType.IDE, exe1.Spec.ExecutionType); 9496Assert.Null(exe1.Spec.FallbackExecutionTypes); 9506Assert.Equal(ExecutionType.IDE, exe1.Spec.ExecutionType); 9507Assert.Null(exe1.Spec.FallbackExecutionTypes); 9514Assert.Equal(ExecutionType.IDE, exe2.Spec.ExecutionType); 9515Assert.Null(exe2.Spec.FallbackExecutionTypes); 9666var exePortEnvVal = dcpContainer.Spec?.Env?.Where(e => e.Name == $"EXE_{endpointName.ToUpper()}_PORT").Single().Value; 9729Assert.NotNull(dcpContainer.Spec.Env); 9730var url = Assert.Single(dcpContainer.Spec.Env, e => e.Name == "URL").Value; 9776Assert.NotNull(dcpContainer.Spec.Env); 9777var url = Assert.Single(dcpContainer.Spec.Env, e => e.Name == "URL").Value; 9890AssertEffectiveArgumentIndexesMatchSpecArgs(argAnnotations, container.Spec.Args); 9930var startedExecutable = Assert.Single(GetCreatedExecutablesForResource(kubernetesService, "anExecutable"), e => e.Spec.Start == true); 9931Assert.Contains("--deferred", startedExecutable.Spec.Args!); 9932Assert.Contains(startedExecutable.Spec.Env!, e => e is { Name: "DEFERRED_ENV", Value: "true" }); 9935AssertEffectiveArgumentIndexesMatchSpecArgs(argAnnotations, startedExecutable.Spec.Args); 9975var startedContainer = Assert.Single(kubernetesService.CreatedResources.OfType<Container>(), c => c.AppModelResourceName == "aContainer" && c.Spec.Start == true); 9976Assert.Contains("--deferred", startedContainer.Spec.Args!); 9977Assert.Contains(startedContainer.Spec.Env!, e => e is { Name: "DEFERRED_ENV", Value: "true" }); 9980AssertEffectiveArgumentIndexesMatchSpecArgs(argAnnotations, startedContainer.Spec.Args); 10021Assert.False(executable.Spec.Start); 10022Assert.True(executable.Spec.Persistent); 10023Assert.Contains("--persistent", executable.Spec.Args!); 10024Assert.Contains(executable.Spec.Env!, e => e is { Name: "PERSISTENT_ENV", Value: "true" }); 10033Assert.True(executable.Spec.Start); 10074Assert.False(container.Spec.Start); 10075Assert.True(container.Spec.Persistent); 10076Assert.Contains("--persistent", container.Spec.Args!); 10077Assert.Contains(container.Spec.Env!, e => e is { Name: "PERSISTENT_ENV", Value: "true" }); 10086Assert.True(container.Spec.Start); 10205Assert.NotNull(dcpExecutable.Spec.Env); 10208Assert.Single(dcpExecutable.Spec.Env, variable => variable.Name == "CONTAINER_URL").Value); 10211Assert.Single(dcpExecutable.Spec.Env, variable => variable.Name == "HOST_PORT").Value); 10255Assert.NotNull(sourceExecutable.Spec.Env); 10258Assert.Single(sourceExecutable.Spec.Env, variable => variable.Name == "TARGET_PORT").Value); 10292Assert.NotNull(dcpExecutable.Spec.Env); 10295Assert.Single(dcpExecutable.Spec.Env, variable => variable.Name == "CONTAINER_PORT").Value); 10332Assert.NotNull(sourceExecutable.Spec.Env); 10335Assert.Single(sourceExecutable.Spec.Env, variable => variable.Name == "TARGET_PORT").Value); 10492Assert.NotNull(sourceExecutable.Spec.Env); 10495Assert.Single(sourceExecutable.Spec.Env, variable => variable.Name == "TARGET_PORT").Value); 10541Assert.NotNull(dcpExecutable.Spec.Env); 10544Assert.Single(dcpExecutable.Spec.Env, variable => variable.Name == "CONTAINER_PORT").Value); 10705Assert.NotNull(waitingConsumingContainer.Spec.Env); 10706var executableBPort = Assert.Single(waitingConsumingContainer.Spec.Env, e => e.Name == "EXEC_B_PORT").Value; 10710Assert.Equal(2, tunnelProxy.Spec.Tunnels?.Count); 10777Assert.NotNull(tunnelDependentDcpContainer.Spec.Env); 10778var upstreamPort = Assert.Single(tunnelDependentDcpContainer.Spec.Env, e => e.Name == "UPSTREAM_PORT").Value; 10782Assert.Equal(1, tunnelProxy.Spec.Tunnels?.Count); 10978Assert.Equal(ExecutionType.IDE, exe.Spec.ExecutionType); 11070Assert.Equal(ExecutionType.Process, exe.Spec.ExecutionType); 11148var spec = exes[i].Spec.Terminal; 11173Assert.Null(exe.Spec.Terminal); 11210Assert.NotNull(exe.Spec.Terminal); 11211Assert.Equal(host.Layout.ProducerUdsPath, exe.Spec.Terminal!.UdsPath); 11212Assert.Equal(100, exe.Spec.Terminal.Cols); 11213Assert.Equal(30, exe.Spec.Terminal.Rows); 11216Assert.Equal("connect", exe.Spec.Terminal.SocketMode); 11254Assert.NotNull(container.Spec.Terminal); 11255Assert.Equal(host.Layout.ProducerUdsPath, container.Spec.Terminal!.UdsPath); 11256Assert.Equal(100, container.Spec.Terminal.Cols); 11257Assert.Equal(30, container.Spec.Terminal.Rows); 11259Assert.Equal("connect", container.Spec.Terminal.SocketMode); 11487return Assert.Single(exe.Spec.Env!, e => e.Name == "SSL_CERT_DIR").Value;
Dcp\ExecutableLaunchPlanTests.cs (7)
207executable.Spec.ExecutionType = ExecutionType.IDE; 208executable.Spec.FallbackExecutionTypes = [ExecutionType.Process]; 209executable.Spec.Args = ["stale"]; 231Assert.Equal(ExecutionType.Process, executable.Spec.ExecutionType); 232Assert.Null(executable.Spec.FallbackExecutionTypes); 233Assert.Equal(["app-arg"], executable.Spec.Args); 236executable.Spec.Env!,
Dcp\ResourceLogSourceTests.cs (3)
27executable.Spec.ExecutionType = executionType; 28executable.Spec.WorkingDirectory = WorkingDirectory; 67executable.Spec.Terminal = new TerminalSpec();
Dcp\ResourceSnapshotBuilderTests.cs (11)
24container.Spec.Command = "redis-server"; 25container.Spec.Ports = [new() { ContainerPort = 6379 }]; 26container.Spec.Persistent = true; 46executable.Spec.WorkingDirectory = "/app"; 69executable.Spec.WorkingDirectory = "/app"; 162executable.Spec.WorkingDirectory = "/app"; 219executable.Spec.Start = false; 234executable.Spec.Start = false; 249executable.Spec.Start = false; 264executable.Spec.Start = false; 278executable.Spec.Args = [.. launchArgumentAnnotations.Select(a => a.Argument)];
Dcp\TestKubernetesService.cs (21)
108if (svc.Spec.AddressAllocationMode != AddressAllocationModes.Proxyless || 109svc.Spec.Port is not null || 116svc.Status.EffectiveAddress = svc.Spec.Address ?? "localhost"; 117svc.Status.EffectivePort = svc.Spec.Port ?? Interlocked.Increment(ref _nextPort); 130proxy.Status.TunnelStatuses = CreateReadyTunnelStatuses(proxy.Spec.Tunnels); 264if (service?.Spec.AddressAllocationMode != AddressAllocationModes.Proxyless || service.Spec.Port is not null || service.Status?.EffectivePort is not null) 269var hostPort = container.Spec.Ports?.FirstOrDefault(port => port.ContainerPort == serviceProduced.Port)?.HostPort; 272service.Status.EffectiveAddress = service.Spec.Address ?? "localhost"; 410if (eu.Spec.Start is not null) 412exe.Spec.Start = eu.Spec.Start; 416if (eu.Spec.Stop == true) 418exe.Spec.Stop = true; 437if (cu.Spec.Start is not null) 439ctr.Spec.Start = cu.Spec.Start; 443if (cu.Spec.Stop == true) 445ctr.Spec.Stop = true; 462proxy.Spec = updatedProxy.Spec; 466proxy.Status.TunnelStatuses = CreateReadyTunnelStatuses(proxy.Spec.Tunnels);
DistributedApplicationTests.cs (93)
842Assert.Equal(RedisImageSource, item.Spec.Image); 843Assert.Equal(["redis-cli", "-h", "host.docker.internal", "-p", "9999", "MONITOR"], item.Spec.Args); 844Assert.Equal(["--add-host", "testlocalhost:127.0.0.1"], item.Spec.RunArgs); 899Assert.Equal(RedisImageSource, item.Spec.Image); 909item.Spec.CreateFiles); 942Assert.NotNull(redisContainer.Spec.Args); 943Assert.Equal(2, redisContainer.Spec.Args.Count); 945Assert.Equal("-c", redisContainer.Spec.Args[0]); 946Assert.Contains("--tls-cert-file", redisContainer.Spec.Args[1]); 947Assert.Contains("--tls-key-file", redisContainer.Spec.Args[1]); 948Assert.Contains("--tls-auth-clients", redisContainer.Spec.Args[1]); 949Assert.Contains("--tls-port", redisContainer.Spec.Args[1]); 950Assert.Contains("--port", redisContainer.Spec.Args[1]); 953Assert.NotNull(redisContainer.Spec.Ports); 954Assert.Contains(redisContainer.Spec.Ports, p => p.ContainerPort == 6380); 955Assert.Contains(redisContainer.Spec.Ports, p => p.ContainerPort == 6379); 1018Assert.Equal(RedisImageSource, item.Spec.Image); 1022Assert.NotNull(item.Spec.Env); 1025Assert.DoesNotContain(item.Spec.Env, e => e.Name == "SSL_CERT_FILE"); 1029Assert.Collection(item.Spec.Env.Where(e => e.Name == "SSL_CERT_FILE"), 1037Assert.Collection(item.Spec.Env.Where(e => e.Name == "SSL_CERT_DIR"), 1055Assert.Empty(item.Spec?.PemCertificates?.Certificates ?? []); 1061var foundCert = Assert.Single(item.Spec?.PemCertificates?.Certificates ?? [], c => string.Equals(c.Thumbprint, cert.Thumbprint, StringComparison.Ordinal)); 1070Assert.Equal(expectedDefaultBundleFiles.Count, item.Spec?.PemCertificates?.OverwriteBundlePaths?.Count ?? 0); 1073Assert.Contains(bundlePath, item.Spec?.PemCertificates?.OverwriteBundlePaths ?? []); 1079Assert.Empty(item.Spec?.PemCertificates?.Certificates ?? []); 1148r => r.Spec.Env != null).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout); 1151Assert.NotNull(redisContainer.Spec.Env); 1154Assert.Single(redisContainer.Spec.Env, e => e.Name == "INITIAL_ENV_VAR" && e.Value == "InitialValue"); 1155Assert.Single(redisContainer.Spec.Env, e => e.Name == "CALLBACK_ADDED_VAR" && e.Value == "CallbackValue"); 1156Assert.Single(redisContainer.Spec.Env, e => e.Name == "INITIAL_REFERENCE_EXPRESSION" && e.Value == $"{value}_AppendedInCallback"); 1188r => r.Spec.Env != null).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout); 1191Assert.NotNull(redisContainer.Spec.Env); 1194Assert.Single(redisContainer.Spec.Env, e => e.Name == "INITIAL_ENV_VAR" && e.Value == "InitialValue"); 1195Assert.Single(redisContainer.Spec.Env, e => e.Name == "INITIAL_REFERENCE_EXPRESSION" && e.Value == $"{value}"); 1320Assert.Equal(RedisImageSource, redisContainer.Spec.Image); 1321Assert.Equal("6379", GetEnv(redisContainer.Spec.Env, "REDIS_PORT")); 1324Assert.Equal($"{{{{- portForServing \"{testName}-servicea-http0-{suffix}\" -}}}}", GetEnv(serviceA.Spec.Env, "PORT0")); 1329Assert.Equal($"{{{{- portForServing \"{testName}-nodeapp-{suffix}\" -}}}}", GetEnv(nodeApp.Spec.Env, "PORT")); 1395Assert.Equal("BrowserToken", GetEnv(aspireDashboard.Spec.Env, "DASHBOARD__FRONTEND__AUTHMODE")); 1396Assert.Equal("ThisIsATestToken", GetEnv(aspireDashboard.Spec.Env, "DASHBOARD__FRONTEND__BROWSERTOKEN")); 1398Assert.Equal("ApiKey", GetEnv(aspireDashboard.Spec.Env, "DASHBOARD__OTLP__AUTHMODE")); 1399var keyBytes = Convert.FromHexString(GetEnv(aspireDashboard.Spec.Env, "DASHBOARD__OTLP__PRIMARYAPIKEY")!); 1432Assert.Equal("Unsecured", GetEnv(aspireDashboard.Spec.Env, "DASHBOARD__FRONTEND__AUTHMODE")); 1433Assert.Equal("Unsecured", GetEnv(aspireDashboard.Spec.Env, "DASHBOARD__OTLP__AUTHMODE")); 1527Assert.Equal(RedisImageSource, redisContainer.Spec.Image); 1528Assert.Equal("bob", redisContainer.Spec.Command); 1553$"{testName}-redis-{ReplicaIdRegex}-{suffix}", r => r.Spec.VolumeMounts != null).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout); 1555Assert.NotNull(redisContainer.Spec.VolumeMounts); 1556Assert.NotEmpty(redisContainer.Spec.VolumeMounts); 1557Assert.Equal(sourcePath, redisContainer.Spec.VolumeMounts[0].Source); 1581$"{testName}-redis-{ReplicaIdRegex}-{suffix}", r => r.Spec.VolumeMounts != null).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout); 1583Assert.NotNull(redisContainer.Spec.VolumeMounts); 1584Assert.NotEmpty(redisContainer.Spec.VolumeMounts); 1585Assert.NotEqual("etc/path-here", redisContainer.Spec.VolumeMounts[0].Source); 1586Assert.True(Path.IsPathRooted(redisContainer.Spec.VolumeMounts[0].Source)); 1610$"{testName}-redis-{ReplicaIdRegex}-{suffix}", r => r.Spec.VolumeMounts != null).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout); 1612Assert.NotNull(redisContainer.Spec.VolumeMounts); 1613Assert.NotEmpty(redisContainer.Spec.VolumeMounts); 1614Assert.Equal($"{testName}-volume", redisContainer.Spec.VolumeMounts[0].Source); 1617Assert.Equal($"{testName}-volume", containerVolume.Spec.Name); 1861var env = Assert.Single(service.Spec.Env!, e => e.Name == $"ConnectionStrings__{testName}-redis"); 1871Assert.Equal(2, redisContainer.Spec.Ports!.Count); 1872Assert.Contains(redisContainer.Spec.Ports!, p => p.HostPort == port); 1876Assert.Equal(port, Assert.Single(redisContainer.Spec.Ports!).HostPort); 1882var otherRedisEnv = Assert.Single(service.Spec.Env!, e => e.Name == $"ConnectionStrings__{testName}-redisNoPort"); 1890Assert.Equal(2, otherRedisContainer.Spec.Ports!.Count); 1891Assert.Contains(otherRedisContainer.Spec.Ports!, p => p.HostPort == otherRedisPort && p.ContainerPort == 6379); 1895var portSpec = Assert.Single(otherRedisContainer.Spec.Ports!); 1934Assert.All(serviceList.Where(s => s.Metadata.Name.Contains("redis")), s => Assert.Equal(AddressAllocationModes.Proxyless, s.Spec.AddressAllocationMode)); 1939var env = Assert.Single(service.Spec.Env!, e => e.Name == $"ConnectionStrings__{testName}-redis"); 1949Assert.Equal(2, redisContainer.Spec.Ports!.Count); 1950Assert.Contains(redisContainer.Spec.Ports!, p => p.HostPort == port); 1954Assert.Equal(port, Assert.Single(redisContainer.Spec.Ports!).HostPort); 1960var otherRedisEnv = Assert.Single(service.Spec.Env!, e => e.Name == $"ConnectionStrings__{testName}-redisNoPort"); 1969Assert.Equal(2, otherRedisContainer.Spec.Ports!.Count); 1970Assert.Contains(otherRedisContainer.Spec.Ports!, p => p.HostPort == otherRedisPort && p.ContainerPort == 6379); 1974var portSpec = Assert.Single(otherRedisContainer.Spec.Ports!); 2026Assert.Single(networks, n => n.Spec.Persistent == true); 2030Assert.Single(networks, n => n.Spec.Persistent.GetValueOrDefault(false) == false); 2066Assert.True(dcpContainer.Spec.Persistent.GetValueOrDefault()); 2067Assert.Equal(parentProcessIdentity.ProcessId, dcpContainer.Spec.MonitorPid); 2068Assert.NotNull(dcpContainer.Spec.MonitorTimestamp); 2069Assert.InRange((dcpContainer.Spec.MonitorTimestamp.Value - parentProcessIdentity.Timestamp).Duration(), TimeSpan.Zero, TimeSpan.FromMilliseconds(1)); 2070Assert.False(dcpContainer.Spec.Start.GetValueOrDefault(true)); 2075Assert.True(dcpExecutable.Spec.Persistent.GetValueOrDefault()); 2076Assert.Equal(parentProcessIdentity.ProcessId, dcpExecutable.Spec.MonitorPid); 2077Assert.NotNull(dcpExecutable.Spec.MonitorTimestamp); 2078Assert.InRange((dcpExecutable.Spec.MonitorTimestamp.Value - parentProcessIdentity.Timestamp).Duration(), TimeSpan.Zero, TimeSpan.FromMilliseconds(1)); 2079Assert.False(dcpExecutable.Spec.Start.GetValueOrDefault(true)); 2080Assert.Equal(ExecutionType.Process, dcpExecutable.Spec.ExecutionType); 2378Assert.Equal(AddressAllocationModes.Proxyless, service.Spec.AddressAllocationMode); 2380var port = Assert.IsType<int>(service.Spec.Port);
WithVolumeTests.cs (2)
211Assert.Equal(volumeName, volume.Spec.Name); 212Assert.True(volume.Spec.Persistent);