Skip to content

Commit

Permalink
[#335] #CHANGE 'assemblyName: DotNet.Testcontainers; function: Testco…
Browse files Browse the repository at this point in the history
…ntainersContainer'

{Fix TestcontainersContainerCancellationTest and TestcontainersWaitStrategyTest.}
  • Loading branch information
HofmeisterAn committed Oct 29, 2020
1 parent e697ee2 commit 5a394d0
Show file tree
Hide file tree
Showing 5 changed files with 62 additions and 30 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
namespace DotNet.Testcontainers.Tests.Fixtures.Containers.Modules
{
using System.Threading.Tasks;
using DotNet.Testcontainers.Containers.Builders;
using DotNet.Testcontainers.Containers.Modules;
using Xunit;

public class AlpineFixture : ModuleFixture<TestcontainersContainer>, IAsyncLifetime
{
public AlpineFixture()
: base(new TestcontainersBuilder<TestcontainersContainer>()
.WithImage("alpine")
.Build())
{
}

public Task InitializeAsync()
{
return Task.WhenAll(this.Container.StartAsync(), this.Container.StopAsync());
}

public Task DisposeAsync()
{
return this.Container.DisposeAsync().AsTask();
}
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
namespace DotNet.Testcontainers.Tests.Fixtures.Containers.Modules
{
using DotNet.Testcontainers.Containers.Modules.Abstractions;
using DotNet.Testcontainers.Containers.Modules;

public class ModuleFixture<T> where T : HostedServiceContainer
public class ModuleFixture<T> where T : TestcontainersContainer
{
public ModuleFixture(T container)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,25 +37,23 @@ public class Timeout : IWaitUntil, IWaitWhile
[Fact]
public async Task UntilAfter1Ms()
{
await Assert.ThrowsAsync<TimeoutException>(() => WaitStrategy.WaitUntil(() => this.Until(null, string.Empty), timeout: 1));
await Assert.ThrowsAsync<TimeoutException>(() => WaitStrategy.WaitUntil(() => this.Until(null, string.Empty), 1000, 1));
}

[Fact]
public async Task WhileAfter1Ms()
{
await Assert.ThrowsAsync<TimeoutException>(() => WaitStrategy.WaitWhile(() => this.While(null, string.Empty), timeout: 1));
await Assert.ThrowsAsync<TimeoutException>(() => WaitStrategy.WaitWhile(() => this.While(null, string.Empty), 1000, 1));
}

public async Task<bool> Until(Uri endpoint, string id)
public Task<bool> Until(Uri endpoint, string id)
{
await Task.Delay(TimeSpan.FromSeconds(1));
return false;
return Task.FromResult(false);
}

public async Task<bool> While(Uri endpoint, string id)
public Task<bool> While(Uri endpoint, string id)
{
await Task.Delay(TimeSpan.FromSeconds(1));
return true;
return Task.FromResult(true);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,29 +3,26 @@ namespace DotNet.Testcontainers.Tests.Unit.Containers.Unix
using System;
using System.Threading;
using System.Threading.Tasks;
using DotNet.Testcontainers.Containers;
using DotNet.Testcontainers.Containers.Builders;
using DotNet.Testcontainers.Containers.Modules;
using DotNet.Testcontainers.Containers.WaitStrategies;
using DotNet.Testcontainers.Tests.Fixtures.Containers.Modules;
using Xunit;

public static class TestcontainersContainerCancellationTest
{
public class Cancel
public class Cancel : IClassFixture<AlpineFixture>
{
private readonly AlpineFixture alpineFixture;

public Cancel(AlpineFixture alpineFixture)
{
this.alpineFixture = alpineFixture;
}

[Fact]
public async Task Start()
{
using (var cts = new CancellationTokenSource(TimeSpan.FromSeconds(5)))
using (var cts = new CancellationTokenSource(TimeSpan.FromSeconds(0)))
{
await using (IDockerContainer testcontainer = new TestcontainersBuilder<TestcontainersContainer>()
.WithImage("alpine")
.WithWaitStrategy(Wait.ForUnixContainer()
.AddCustomWaitStrategy(new TestcontainersWaitStrategyTest.Timeout()))
.Build())
{
await Assert.ThrowsAsync<TaskCanceledException>(() => testcontainer.StartAsync(cts.Token));
}
await Assert.ThrowsAsync<TaskCanceledException>(() => this.alpineFixture.Container.StartAsync(cts.Token));
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,14 @@ await Task.Delay(frequency, ct)
}
}, ct);

await (await Task.WhenAny(waitTask, Task.Delay(timeout, ct))
.ConfigureAwait(false))
.ConfigureAwait(false);
if (await Task.WhenAny(waitTask, Task.Delay(timeout, ct)) == waitTask)
{
await waitTask.ConfigureAwait(false);
}
else
{
throw new TimeoutException();
}
}

/// <summary>
Expand All @@ -53,9 +58,14 @@ await Task.Delay(frequency, ct)
}
}, ct);

await (await Task.WhenAny(waitTask, Task.Delay(timeout, ct))
.ConfigureAwait(false))
.ConfigureAwait(false);
if (await Task.WhenAny(waitTask, Task.Delay(timeout, ct)) == waitTask)
{
await waitTask.ConfigureAwait(false);
}
else
{
throw new TimeoutException();
}
}
}
}

0 comments on commit 5a394d0

Please sign in to comment.