Skip to content

Commit f7dd047

Browse files
committed
configure daemons and clients to match github and local test environments
1 parent ed3abb9 commit f7dd047

10 files changed

Lines changed: 302 additions & 168 deletions

.github/workflows/ci.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,8 @@ jobs:
7070
# Sign client cert with CA
7171
openssl x509 -req -in /tmp/certs/client.csr -CA /tmp/certs/ca.pem -CAkey /tmp/certs/ca-key.pem -CAcreateserial -out /tmp/certs/cert.pem -days 365 -sha256
7272
73-
# Copy certs for Docker
74-
cp /tmp/certs/ca.pem /tmp/certs/server-cert.pem /tmp/certs/server-key.pem /tmp/certs/cert.pem /tmp/certs/key.pem /tmp/certs/
75-
76-
# Clean up
77-
rm /tmp/certs/*.csr /tmp/certs/ca-key.pem
73+
# create pfx
74+
openssl pkcs12 -export -out /tmp/certs/client.pfx -inkey /tmp/certs/key.pem -in /tmp/certs/cert.pem -certfile /tmp/certs/ca.pem -passout pass:
7875
7976
- name: Wait for Docker (no TLS) to be healthy
8077
run: |

test/Docker.DotNet.Tests/IConfigOperationsTests.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,11 @@ public IConfigOperationsTests(TestFixture testFixture, ITestOutputHelper testOut
1313
}
1414

1515
public static IEnumerable<object[]> GetDockerClientTypes() =>
16-
Enum.GetValues(typeof(DockerClientType))
17-
.Cast<DockerClientType>()
18-
.Select(t => new object[] { t });
16+
TestFixture.GetDockerClientTypes();
1917

2018
[Theory]
2119
[MemberData(nameof(GetDockerClientTypes))]
22-
public async Task SwarmConfig_CanCreateAndRead(DockerClientType clientType)
20+
public async Task SwarmConfig_CanCreateAndRead(TestClientsEnum clientType)
2321
{
2422
var currentConfigs = await _testFixture.DockerClients[clientType].Configs.ListConfigsAsync();
2523

test/Docker.DotNet.Tests/IContainerOperationsTests.cs

Lines changed: 47 additions & 49 deletions
Large diffs are not rendered by default.

test/Docker.DotNet.Tests/IImageOperationsTests.cs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,11 @@ public IImageOperationsTests(TestFixture testFixture, ITestOutputHelper testOutp
1313
}
1414

1515
public static IEnumerable<object[]> GetDockerClientTypes() =>
16-
Enum.GetValues(typeof(DockerClientType))
17-
.Cast<DockerClientType>()
18-
.Select(t => new object[] { t });
16+
TestFixture.GetDockerClientTypes();
1917

2018
[Theory]
2119
[MemberData(nameof(GetDockerClientTypes))]
22-
public async Task CreateImageAsync_TaskCancelled_ThrowsTaskCanceledException(DockerClientType clientType)
20+
public async Task CreateImageAsync_TaskCancelled_ThrowsTaskCanceledException(TestClientsEnum clientType)
2321
{
2422
using var cts = CancellationTokenSource.CreateLinkedTokenSource(_testFixture.Cts.Token);
2523

@@ -55,7 +53,7 @@ await _testFixture.DockerClients[clientType].Images.TagImageAsync(
5553

5654
[Theory]
5755
[MemberData(nameof(GetDockerClientTypes))]
58-
public Task CreateImageAsync_ErrorResponse_ThrowsDockerApiException(DockerClientType clientType)
56+
public Task CreateImageAsync_ErrorResponse_ThrowsDockerApiException(TestClientsEnum clientType)
5957
{
6058
return Assert.ThrowsAsync<DockerApiException>(() => _testFixture.DockerClients[clientType].Images.CreateImageAsync(
6159
new ImagesCreateParameters
@@ -67,7 +65,7 @@ public Task CreateImageAsync_ErrorResponse_ThrowsDockerApiException(DockerClient
6765

6866
[Theory]
6967
[MemberData(nameof(GetDockerClientTypes))]
70-
public async Task DeleteImageAsync_RemovesImage(DockerClientType clientType)
68+
public async Task DeleteImageAsync_RemovesImage(TestClientsEnum clientType)
7169
{
7270
var newImageTag = Guid.NewGuid().ToString();
7371

test/Docker.DotNet.Tests/ISwarmOperationsTests.cs

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,11 @@ public ISwarmOperationsTests(TestFixture testFixture, ITestOutputHelper testOutp
1313
}
1414

1515
public static IEnumerable<object[]> GetDockerClientTypes() =>
16-
Enum.GetValues(typeof(DockerClientType))
17-
.Cast<DockerClientType>()
18-
.Select(t => new object[] { t });
16+
TestFixture.GetDockerClientTypes();
1917

2018
[Theory]
2119
[MemberData(nameof(GetDockerClientTypes))]
22-
public async Task GetFilteredServicesByName_Succeeds(DockerClientType clientType)
20+
public async Task GetFilteredServicesByName_Succeeds(TestClientsEnum clientType)
2321
{
2422
var serviceName = $"service1-{Guid.NewGuid().ToString().Substring(1, 10)}";
2523

@@ -28,7 +26,7 @@ public async Task GetFilteredServicesByName_Succeeds(DockerClientType clientType
2826
Service = new ServiceSpec
2927
{
3028
Name = serviceName,
31-
TaskTemplate = new TaskSpec { ContainerSpec = new ContainerSpec { Image = _testFixture.Image.ID } }
29+
TaskTemplate = new TaskSpec { ContainerSpec = new ContainerSpec { Image = _testFixture.Images[TestFixture.GetDaemonForClient(clientType)].ID } }
3230
}
3331
})).ID;
3432

@@ -37,7 +35,7 @@ public async Task GetFilteredServicesByName_Succeeds(DockerClientType clientType
3735
Service = new ServiceSpec
3836
{
3937
Name = $"service2-{Guid.NewGuid().ToString().Substring(1, 10)}",
40-
TaskTemplate = new TaskSpec { ContainerSpec = new ContainerSpec { Image = _testFixture.Image.ID } }
38+
TaskTemplate = new TaskSpec { ContainerSpec = new ContainerSpec { Image = _testFixture.Images[TestFixture.GetDaemonForClient(clientType)].ID } }
4139
}
4240
})).ID;
4341

@@ -46,7 +44,7 @@ public async Task GetFilteredServicesByName_Succeeds(DockerClientType clientType
4644
Service = new ServiceSpec
4745
{
4846
Name = $"service3-{Guid.NewGuid().ToString().Substring(1, 10)}",
49-
TaskTemplate = new TaskSpec { ContainerSpec = new ContainerSpec { Image = _testFixture.Image.ID } }
47+
TaskTemplate = new TaskSpec { ContainerSpec = new ContainerSpec { Image = _testFixture.Images[TestFixture.GetDaemonForClient(clientType)].ID } }
5048
}
5149
})).ID;
5250

@@ -70,14 +68,14 @@ public async Task GetFilteredServicesByName_Succeeds(DockerClientType clientType
7068

7169
[Theory]
7270
[MemberData(nameof(GetDockerClientTypes))]
73-
public async Task GetFilteredServicesById_Succeeds(DockerClientType clientType)
71+
public async Task GetFilteredServicesById_Succeeds(TestClientsEnum clientType)
7472
{
7573
var firstServiceId = (await _testFixture.DockerClients[clientType].Swarm.CreateServiceAsync(new ServiceCreateParameters
7674
{
7775
Service = new ServiceSpec
7876
{
7977
Name = $"service1-{Guid.NewGuid().ToString().Substring(1, 10)}",
80-
TaskTemplate = new TaskSpec { ContainerSpec = new ContainerSpec { Image = _testFixture.Image.ID } }
78+
TaskTemplate = new TaskSpec { ContainerSpec = new ContainerSpec { Image = _testFixture.Images[TestFixture.GetDaemonForClient(clientType)].ID } }
8179
}
8280
})).ID;
8381

@@ -86,7 +84,7 @@ public async Task GetFilteredServicesById_Succeeds(DockerClientType clientType)
8684
Service = new ServiceSpec
8785
{
8886
Name = $"service2-{Guid.NewGuid().ToString().Substring(1, 10)}",
89-
TaskTemplate = new TaskSpec { ContainerSpec = new ContainerSpec { Image = _testFixture.Image.ID } }
87+
TaskTemplate = new TaskSpec { ContainerSpec = new ContainerSpec { Image = _testFixture.Images[TestFixture.GetDaemonForClient(clientType)].ID } }
9088
}
9189
})).ID;
9290

@@ -95,7 +93,7 @@ public async Task GetFilteredServicesById_Succeeds(DockerClientType clientType)
9593
Service = new ServiceSpec
9694
{
9795
Name = $"service3-{Guid.NewGuid().ToString().Substring(1, 10)}",
98-
TaskTemplate = new TaskSpec { ContainerSpec = new ContainerSpec { Image = _testFixture.Image.ID } }
96+
TaskTemplate = new TaskSpec { ContainerSpec = new ContainerSpec { Image = _testFixture.Images[TestFixture.GetDaemonForClient(clientType)].ID } }
9997
}
10098
})).ID;
10199

@@ -119,7 +117,7 @@ public async Task GetFilteredServicesById_Succeeds(DockerClientType clientType)
119117

120118
[Theory]
121119
[MemberData(nameof(GetDockerClientTypes))]
122-
public async Task GetServices_Succeeds(DockerClientType clientType)
120+
public async Task GetServices_Succeeds(TestClientsEnum clientType)
123121
{
124122
var initialServiceCount = (await _testFixture.DockerClients[clientType].Swarm.ListServicesAsync(cancellationToken: CancellationToken.None)).Count();
125123

@@ -128,7 +126,7 @@ public async Task GetServices_Succeeds(DockerClientType clientType)
128126
Service = new ServiceSpec
129127
{
130128
Name = $"service1-{Guid.NewGuid().ToString().Substring(1, 10)}",
131-
TaskTemplate = new TaskSpec { ContainerSpec = new ContainerSpec { Image = _testFixture.Image.ID } }
129+
TaskTemplate = new TaskSpec { ContainerSpec = new ContainerSpec { Image = _testFixture.Images[TestFixture.GetDaemonForClient(clientType)].ID } }
132130
}
133131
})).ID;
134132

@@ -137,7 +135,7 @@ public async Task GetServices_Succeeds(DockerClientType clientType)
137135
Service = new ServiceSpec
138136
{
139137
Name = $"service2-{Guid.NewGuid().ToString().Substring(1, 10)}",
140-
TaskTemplate = new TaskSpec { ContainerSpec = new ContainerSpec { Image = _testFixture.Image.ID } }
138+
TaskTemplate = new TaskSpec { ContainerSpec = new ContainerSpec { Image = _testFixture.Images[TestFixture.GetDaemonForClient(clientType)].ID } }
141139
}
142140
})).ID;
143141

@@ -146,7 +144,7 @@ public async Task GetServices_Succeeds(DockerClientType clientType)
146144
Service = new ServiceSpec
147145
{
148146
Name = $"service3-{Guid.NewGuid().ToString().Substring(1, 10)}",
149-
TaskTemplate = new TaskSpec { ContainerSpec = new ContainerSpec { Image = _testFixture.Image.ID } }
147+
TaskTemplate = new TaskSpec { ContainerSpec = new ContainerSpec { Image = _testFixture.Images[TestFixture.GetDaemonForClient(clientType)].ID } }
150148
}
151149
})).ID;
152150

@@ -161,7 +159,7 @@ public async Task GetServices_Succeeds(DockerClientType clientType)
161159

162160
[Theory]
163161
[MemberData(nameof(GetDockerClientTypes))]
164-
public async Task GetServiceLogs_Succeeds(DockerClientType clientType)
162+
public async Task GetServiceLogs_Succeeds(TestClientsEnum clientType)
165163
{
166164
var cts = new CancellationTokenSource();
167165
var linkedCts = CancellationTokenSource.CreateLinkedTokenSource(_testFixture.Cts.Token, cts.Token);
@@ -172,7 +170,7 @@ public async Task GetServiceLogs_Succeeds(DockerClientType clientType)
172170
Service = new ServiceSpec
173171
{
174172
Name = serviceName,
175-
TaskTemplate = new TaskSpec { ContainerSpec = new ContainerSpec { Image = _testFixture.Image.ID, Command = CommonCommands.EchoToStdoutAndStderr } }
173+
TaskTemplate = new TaskSpec { ContainerSpec = new ContainerSpec { Image = _testFixture.Images[TestFixture.GetDaemonForClient(clientType)].ID, Command = CommonCommands.EchoToStdoutAndStderr } }
176174
}
177175
})).ID;
178176

test/Docker.DotNet.Tests/ISystemOperations.Tests.cs

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,7 @@ public ISystemOperationsTests(TestFixture testFixture, ITestOutputHelper testOut
1313
}
1414

1515
public static IEnumerable<object[]> GetDockerClientTypes() =>
16-
Enum.GetValues(typeof(DockerClientType))
17-
.Cast<DockerClientType>()
18-
.Select(t => new object[] { t });
16+
TestFixture.GetDockerClientTypes();
1917

2018
[Fact]
2119
public void Docker_IsRunning()
@@ -30,23 +28,23 @@ public void Docker_IsRunning()
3028

3129
[Theory]
3230
[MemberData(nameof(GetDockerClientTypes))]
33-
public async Task GetSystemInfoAsync_Succeeds(DockerClientType clientType)
31+
public async Task GetSystemInfoAsync_Succeeds(TestClientsEnum clientType)
3432
{
3533
var info = await _testFixture.DockerClients[clientType].System.GetSystemInfoAsync();
3634
Assert.NotNull(info.Architecture);
3735
}
3836

3937
[Theory]
4038
[MemberData(nameof(GetDockerClientTypes))]
41-
public async Task GetVersionAsync_Succeeds(DockerClientType clientType)
39+
public async Task GetVersionAsync_Succeeds(TestClientsEnum clientType)
4240
{
4341
var version = await _testFixture.DockerClients[clientType].System.GetVersionAsync();
4442
Assert.NotNull(version.APIVersion);
4543
}
4644

4745
[Theory]
4846
[MemberData(nameof(GetDockerClientTypes))]
49-
public async Task MonitorEventsAsync_EmptyContainersList_CanBeCancelled(DockerClientType clientType)
47+
public async Task MonitorEventsAsync_EmptyContainersList_CanBeCancelled(TestClientsEnum clientType)
5048
{
5149
var progress = new Progress<Message>();
5250

@@ -60,21 +58,21 @@ public async Task MonitorEventsAsync_EmptyContainersList_CanBeCancelled(DockerCl
6058

6159
[Theory]
6260
[MemberData(nameof(GetDockerClientTypes))]
63-
public async Task MonitorEventsAsync_NullParameters_Throws(DockerClientType clientType)
61+
public async Task MonitorEventsAsync_NullParameters_Throws(TestClientsEnum clientType)
6462
{
6563
await Assert.ThrowsAsync<ArgumentNullException>(() => _testFixture.DockerClients[clientType].System.MonitorEventsAsync(null, null));
6664
}
6765

6866
[Theory]
6967
[MemberData(nameof(GetDockerClientTypes))]
70-
public async Task MonitorEventsAsync_NullProgress_Throws(DockerClientType clientType)
68+
public async Task MonitorEventsAsync_NullProgress_Throws(TestClientsEnum clientType)
7169
{
7270
await Assert.ThrowsAsync<ArgumentNullException>(() => _testFixture.DockerClients[clientType].System.MonitorEventsAsync(new ContainerEventsParameters(), null));
7371
}
7472

7573
[Theory]
7674
[MemberData(nameof(GetDockerClientTypes))]
77-
public async Task MonitorEventsAsync_Succeeds(DockerClientType clientType)
75+
public async Task MonitorEventsAsync_Succeeds(TestClientsEnum clientType)
7876
{
7977
var newTag = $"MonitorTests-{Guid.NewGuid().ToString().Substring(1, 10)}";
8078

@@ -116,7 +114,7 @@ await _testFixture.DockerClients[clientType].Images.DeleteImageAsync(
116114

117115
[Theory]
118116
[MemberData(nameof(GetDockerClientTypes))]
119-
public async Task MonitorEventsAsync_IsCancelled_NoStreamCorruption(DockerClientType clientType)
117+
public async Task MonitorEventsAsync_IsCancelled_NoStreamCorruption(TestClientsEnum clientType)
120118
{
121119
var rand = new Random();
122120
var sw = new Stopwatch();
@@ -181,7 +179,7 @@ await _testFixture.DockerClients[clientType].Images.TagImageAsync(
181179

182180
[Theory]
183181
[MemberData(nameof(GetDockerClientTypes))]
184-
public async Task MonitorEventsFiltered_Succeeds(DockerClientType clientType)
182+
public async Task MonitorEventsFiltered_Succeeds(TestClientsEnum clientType)
185183
{
186184
string newTag = $"MonitorTests-{Guid.NewGuid().ToString().Substring(1, 10)}";
187185
string newImageRepositoryName = Guid.NewGuid().ToString();
@@ -264,7 +262,7 @@ await _testFixture.DockerClients[clientType].Images.TagImageAsync(
264262

265263
[Theory]
266264
[MemberData(nameof(GetDockerClientTypes))]
267-
public async Task PingAsync_Succeeds(DockerClientType clientType)
265+
public async Task PingAsync_Succeeds(TestClientsEnum clientType)
268266
{
269267
await _testFixture.DockerClients[clientType].System.PingAsync();
270268
}

test/Docker.DotNet.Tests/IVolumeOperationsTests.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,11 @@ public IVolumeOperationsTests(TestFixture testFixture, ITestOutputHelper testOut
1313
}
1414

1515
public static IEnumerable<object[]> GetDockerClientTypes() =>
16-
Enum.GetValues(typeof(DockerClientType))
17-
.Cast<DockerClientType>()
18-
.Select(t => new object[] { t });
16+
TestFixture.GetDockerClientTypes();
1917

2018
[Theory]
2119
[MemberData(nameof(GetDockerClientTypes))]
22-
public async Task ListAsync_VolumeExists_Succeeds(DockerClientType clientType)
20+
public async Task ListAsync_VolumeExists_Succeeds(TestClientsEnum clientType)
2321
{
2422
const string volumeName = "docker-dotnet-test-volume";
2523

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
namespace Docker.DotNet.Tests
22
{
3-
public enum DockerClientType
3+
public enum TestClientsEnum
44
{
55
ManagedPipe = 1,
66
ManagedHttp = 2,
7-
NativeHttp = 3
7+
NativeHttp = 3,
8+
ManagedHttps = 4,
9+
NativeHttps = 5,
810
}
911
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace Docker.DotNet.Tests
2+
{
3+
public enum TestDaemonsEnum
4+
{
5+
Local = 1,
6+
DindHttp = 2,
7+
DindHttps = 3
8+
}
9+
}

0 commit comments

Comments
 (0)