Files
WireMock.Net-wiremock/test/WireMock.Net.Aspire.Tests/DockerUtils.cs
Stef Heyenrath 4b12f3419f Add Aspire Extension (#1109)
* WireMock.Net.Aspire

* .

* xxx

* nuget

* [CodeFactor] Apply fixes

* ut

* t

* **WireMock.Net.Aspire**

* .

* t

* .

* .

* .

* TESTS

* docker utils

* Install .NET Aspire workload

* 4

* 4!

* projects: '**/test/**/*.csproj'

* script: 'dotnet workload install aspire'

* projects: '**/test/**/*.csproj'

* coverage

* WithWatchStaticMappings

* Admin

* typo

* port

* fix

* .

* x

* ...

* wait

* readme

* x

* 2

* async

* <Version>0.0.1-preview-03</Version>

* ...

* fix aspire

* admin/pwd

* Install .NET Aspire workload

* 0.0.1-preview-04

* WaitForHealthAsync

* ...

* IsHealthyAsync

* .

* add eps

* name: 'Execute Aspire Tests'

* name: Install .NET Aspire workload

* .

* dotnet test

* remove duplicate

* .

* cc

* dotnet tool install --global coverlet.console

* -*

* merge

* /d:sonar.pullrequest.provider=github

* <Version>0.0.1-preview-05</Version>

* // Copyright © WireMock.Net

* .

---------

Co-authored-by: codefactor-io <support@codefactor.io>
2024-07-27 18:53:59 +02:00

62 lines
1.7 KiB
C#

// Copyright © WireMock.Net
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
namespace WireMock.Net.Aspire.Tests;
[ExcludeFromCodeCoverage]
internal static class DockerUtils
{
public static bool IsDockerRunningLinuxContainerMode()
{
return IsDockerRunning() && IsLinuxContainerMode();
}
private static bool IsDockerRunning()
{
try
{
var processInfo = new ProcessStartInfo("docker", "info")
{
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
CreateNoWindow = true
};
var process = Process.Start(processInfo);
process?.WaitForExit();
return process?.ExitCode == 0;
}
catch (Exception ex)
{
Console.WriteLine($"Error checking Docker status: {ex.Message}");
return false;
}
}
private static bool IsLinuxContainerMode()
{
try
{
var processInfo = new ProcessStartInfo("docker", "version --format '{{.Server.Os}}'")
{
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true
};
var process = Process.Start(processInfo);
var output = process?.StandardOutput.ReadToEnd();
process?.WaitForExit();
return output?.Contains("linux", StringComparison.OrdinalIgnoreCase) == true;
}
catch (Exception ex)
{
Console.WriteLine($"Error checking Docker container mode: {ex.Message}");
return false;
}
}
}