diff --git a/src/Aspirate.Services/Implementations/ContainerCompositionService.cs b/src/Aspirate.Services/Implementations/ContainerCompositionService.cs index 8f84e3da..659fab4b 100644 --- a/src/Aspirate.Services/Implementations/ContainerCompositionService.cs +++ b/src/Aspirate.Services/Implementations/ContainerCompositionService.cs @@ -1,4 +1,3 @@ -using System; namespace Aspirate.Services.Implementations; @@ -26,7 +25,7 @@ public async Task BuildAndPushContainerForProject( containerDetails.ContainerRepository = $"{options.Prefix}/{containerDetails.ContainerRepository}"; } - await AddProjectPublishArguments(argumentsBuilder, fullProjectPath, runtimeIdentifier); + AddProjectPublishArguments(argumentsBuilder, fullProjectPath, runtimeIdentifier); AddContainerDetailsToArguments(argumentsBuilder, containerDetails); await shellExecutionService.ExecuteCommand(new() @@ -171,33 +170,13 @@ private bool AskIfShouldRetryHandlingDuplicateFiles(bool nonInteractive) "[red bold]Implicitly, dotnet publish does not allow duplicate filenames to be output to the artefact directory at build time.Would you like to retry the build explicitly allowing them?[/]"); } - private async Task AddProjectPublishArguments(ArgumentsBuilder argumentsBuilder, string fullProjectPath, string? runtimeIdentifier) + private static void AddProjectPublishArguments(ArgumentsBuilder argumentsBuilder, string fullProjectPath, string? runtimeIdentifier) { var defaultRuntimeIdentifier = GetRuntimeIdentifier(); - var propertiesJson = await projectPropertyService.GetProjectPropertiesAsync( - fullProjectPath, - MsBuildPropertiesLiterals.PublishSingleFileArgument, - MsBuildPropertiesLiterals.PublishTrimmedArgument); - - var msbuildProperties = JsonSerializer.Deserialize>(propertiesJson ?? "{}"); - - if (string.IsNullOrEmpty(msbuildProperties.Properties.PublishSingleFile)) - { - msbuildProperties.Properties.PublishSingleFile = DotNetSdkLiterals.DefaultSingleFile; - } - - if (string.IsNullOrEmpty(msbuildProperties.Properties.PublishTrimmed)) - { - msbuildProperties.Properties.PublishTrimmed = DotNetSdkLiterals.DefaultPublishTrimmed; - } - argumentsBuilder .AppendArgument(DotNetSdkLiterals.PublishArgument, fullProjectPath) .AppendArgument(DotNetSdkLiterals.ContainerTargetArgument, string.Empty, quoteValue: false) - .AppendArgument(DotNetSdkLiterals.PublishSingleFileArgument, msbuildProperties.Properties.PublishSingleFile) - .AppendArgument(DotNetSdkLiterals.PublishTrimmedArgument, msbuildProperties.Properties.PublishTrimmed) - .AppendArgument(DotNetSdkLiterals.SelfContainedArgument, DotNetSdkLiterals.DefaultSelfContained) .AppendArgument(DotNetSdkLiterals.VerbosityArgument, DotNetSdkLiterals.DefaultVerbosity) .AppendArgument(DotNetSdkLiterals.NoLogoArgument, string.Empty, quoteValue: false); diff --git a/src/Aspirate.Shared/Models/MsBuild/MsBuildPublishingProperties.cs b/src/Aspirate.Shared/Models/MsBuild/MsBuildPublishingProperties.cs deleted file mode 100644 index d4e9d22d..00000000 --- a/src/Aspirate.Shared/Models/MsBuild/MsBuildPublishingProperties.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace Aspirate.Shared.Models.MsBuild; - -[ExcludeFromCodeCoverage] -public sealed class MsBuildPublishingProperties : BaseMsBuildProperties -{ - [JsonPropertyName(MsBuildPropertiesLiterals.PublishSingleFileArgument)] - public string? PublishSingleFile { get; set; } - - [JsonPropertyName(MsBuildPropertiesLiterals.PublishTrimmedArgument)] - public string? PublishTrimmed { get; set; } -} diff --git a/tests/Aspirate.Tests/ActionsTests/Containers/PopulateContainerDetailsForProjectsActionTests.cs b/tests/Aspirate.Tests/ActionsTests/Containers/PopulateContainerDetailsForProjectsActionTests.cs index 42ababac..6981df42 100644 --- a/tests/Aspirate.Tests/ActionsTests/Containers/PopulateContainerDetailsForProjectsActionTests.cs +++ b/tests/Aspirate.Tests/ActionsTests/Containers/PopulateContainerDetailsForProjectsActionTests.cs @@ -1,5 +1,3 @@ -using Aspirate.Shared.Outputs; - namespace Aspirate.Tests.ActionsTests.Containers; public class PopulateContainerDetailsForProjectsActionTests : BaseActionTests diff --git a/tests/Aspirate.Tests/ActionsTests/Manifests/ApplyManifestsToClusterActionTests.cs b/tests/Aspirate.Tests/ActionsTests/Manifests/ApplyManifestsToClusterActionTests.cs index 58088768..1e75ce31 100644 --- a/tests/Aspirate.Tests/ActionsTests/Manifests/ApplyManifestsToClusterActionTests.cs +++ b/tests/Aspirate.Tests/ActionsTests/Manifests/ApplyManifestsToClusterActionTests.cs @@ -1,5 +1,3 @@ -using Aspirate.Shared.Outputs; - namespace Aspirate.Tests.ActionsTests.Manifests; public class ApplyManifestsToClusterActionTests : BaseActionTests diff --git a/tests/Aspirate.Tests/ActionsTests/Manifests/GenerateAspireManifestActionTests.cs b/tests/Aspirate.Tests/ActionsTests/Manifests/GenerateAspireManifestActionTests.cs index 88667044..38df993a 100644 --- a/tests/Aspirate.Tests/ActionsTests/Manifests/GenerateAspireManifestActionTests.cs +++ b/tests/Aspirate.Tests/ActionsTests/Manifests/GenerateAspireManifestActionTests.cs @@ -1,5 +1,3 @@ -using Aspirate.Shared.Outputs; - namespace Aspirate.Tests.ActionsTests.Manifests; public class GenerateAspireManifestActionTests : BaseActionTests diff --git a/tests/Aspirate.Tests/ActionsTests/Manifests/RemoveManifestsToClusterActionTests.cs b/tests/Aspirate.Tests/ActionsTests/Manifests/RemoveManifestsToClusterActionTests.cs index 2de7c3a7..d3caadae 100644 --- a/tests/Aspirate.Tests/ActionsTests/Manifests/RemoveManifestsToClusterActionTests.cs +++ b/tests/Aspirate.Tests/ActionsTests/Manifests/RemoveManifestsToClusterActionTests.cs @@ -1,5 +1,3 @@ -using Aspirate.Shared.Outputs; - namespace Aspirate.Tests.ActionsTests.Manifests; public class RemoveManifestsToClusterActionTests : BaseActionTests diff --git a/tests/Aspirate.Tests/GlobalUsings.cs b/tests/Aspirate.Tests/GlobalUsings.cs index eb532ee4..7a954004 100644 --- a/tests/Aspirate.Tests/GlobalUsings.cs +++ b/tests/Aspirate.Tests/GlobalUsings.cs @@ -22,6 +22,7 @@ global using Aspirate.Shared.Models.AspireManifests.Components.V0.Parameters; global using Aspirate.Shared.Models.AspireManifests.Interfaces; global using Aspirate.Shared.Models.MsBuild; +global using Aspirate.Shared.Outputs; global using DockerComposeBuilder.Builders; global using DockerComposeBuilder.Model.Services.BuildArguments; global using FluentAssertions; diff --git a/tests/Aspirate.Tests/ServiceTests/ContainerCompositionServiceTest.cs b/tests/Aspirate.Tests/ServiceTests/ContainerCompositionServiceTest.cs index cc6265d7..4e81859c 100644 --- a/tests/Aspirate.Tests/ServiceTests/ContainerCompositionServiceTest.cs +++ b/tests/Aspirate.Tests/ServiceTests/ContainerCompositionServiceTest.cs @@ -1,114 +1,7 @@ -using Aspirate.Shared.Outputs; - namespace Aspirate.Tests.ServiceTests; public class ContainerCompositionServiceTest { - [Theory] - [InlineData("docker")] - [InlineData("podman")] - public async Task BuildAndPushContainerForProject_ShouldCallExpectedMethods_WhenCalled(string builder) - { - // Arrange - var fileSystem = Substitute.For(); - var console = Substitute.For(); - var projectPropertyService = Substitute.For(); - var shellExecutionService = Substitute.For(); - - var service = new ContainerCompositionService(fileSystem, console, projectPropertyService, shellExecutionService); - - var project = new ProjectResource - { - Path = "testPath", - }; - - var containerDetails = new MsBuildContainerProperties(); - - projectPropertyService.GetProjectPropertiesAsync(Arg.Any(), Arg.Any(), Arg.Any()) - .Returns( - JsonSerializer.Serialize( - new MsBuildProperties - { - Properties = new() - { - PublishSingleFile = "true", - PublishTrimmed = "true", - }, - })); - - var response = builder == "docker" ? DockerInfoOutput : PodmanInfoOutput; - - shellExecutionService.ExecuteCommand(Arg.Is(options => options.Command != null && options.ArgumentsBuilder != null)) - .Returns(Task.FromResult(new ShellCommandResult(true, response, string.Empty, 0))); - - shellExecutionService.IsCommandAvailable(Arg.Any()) - .Returns(CommandAvailableResult.Available(builder)); - - // Act - var result = await service.BuildAndPushContainerForProject(project, containerDetails, new() - { - ContainerBuilder = builder, - }); - - // Assert - await shellExecutionService.Received(2).ExecuteCommand(Arg.Is(options => options.Command != null && options.ArgumentsBuilder != null)); - result.Should().BeTrue(); - } - - [Theory] - [InlineData("docker")] - [InlineData("podman")] - public async Task BuildAndPushContainerForProject_ShouldThrowWhenBuilderOffline(string builder) - { - // Arrange - var fileSystem = Substitute.For(); - var console = Substitute.For(); - var projectPropertyService = Substitute.For(); - var shellExecutionService = Substitute.For(); - - var service = new ContainerCompositionService(fileSystem, console, projectPropertyService, shellExecutionService); - - var project = new ProjectResource - { - Path = "testPath", - }; - - var containerDetails = new MsBuildContainerProperties(); - - projectPropertyService.GetProjectPropertiesAsync(Arg.Any(), Arg.Any(), Arg.Any()) - .Returns( - JsonSerializer.Serialize( - new MsBuildProperties - { - Properties = new() - { - PublishSingleFile = "true", - PublishTrimmed = "true", - }, - })); - - var response = "{\"ServerErrors\":[\"Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?\"]}"; - - shellExecutionService.ExecuteCommand(Arg.Is(options => options.Command != null && options.ArgumentsBuilder != null)) - .Returns(Task.FromResult(new ShellCommandResult(false, response, string.Empty, 0))); - - shellExecutionService.ExecuteCommandWithEnvironmentNoOutput(Arg.Any(), Arg.Any(),Arg.Any>()) - .Returns(Task.FromResult(false)); - - shellExecutionService.IsCommandAvailable(Arg.Any()) - .Returns(CommandAvailableResult.Available(builder)); - - // Act - var action = () => service.BuildAndPushContainerForProject(project, containerDetails, new() - { - ContainerBuilder = builder, - }); - - // Assert - await action.Should().ThrowAsync(); - } - - [Theory] [InlineData("docker")] [InlineData("podman")] diff --git a/tests/Aspirate.Tests/ServiceTests/KubeCtlServiceTests.cs b/tests/Aspirate.Tests/ServiceTests/KubeCtlServiceTests.cs index c87fedc4..f1b1828c 100644 --- a/tests/Aspirate.Tests/ServiceTests/KubeCtlServiceTests.cs +++ b/tests/Aspirate.Tests/ServiceTests/KubeCtlServiceTests.cs @@ -1,5 +1,3 @@ -using Aspirate.Shared.Outputs; - namespace Aspirate.Tests.ServiceTests; public class KubeCtlServiceTests diff --git a/tests/Aspirate.Tests/ServiceTests/ProjectPropertyServiceTests.cs b/tests/Aspirate.Tests/ServiceTests/ProjectPropertyServiceTests.cs index 1eead84d..c7ab21a0 100644 --- a/tests/Aspirate.Tests/ServiceTests/ProjectPropertyServiceTests.cs +++ b/tests/Aspirate.Tests/ServiceTests/ProjectPropertyServiceTests.cs @@ -1,5 +1,3 @@ -using Aspirate.Shared.Outputs; - namespace Aspirate.Tests.ServiceTests; public class ProjectPropertyServiceTest