Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ coverage:
range: "70...95"

status:
project: yes
project:
default:
threshold: 0.2%
patch:
default:
target: 100%
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
using Moq.Contrib.HttpClient;
using Finos.Fdc3.AppDirectory;
using Newtonsoft.Json.Linq;
using TaskExtensions = MorganStanley.ComposeUI.Testing.TaskExtensions;
using System.Diagnostics;
using System.IO.Abstractions;

namespace MorganStanley.ComposeUI.Fdc3.AppDirectory;
Expand Down Expand Up @@ -67,9 +67,18 @@ await fileSystem.File.WriteAllTextAsync(
useApiSchema ? GetAppsApiResponseChanged : GetAppsJsonArrayChanged,
Encoding.UTF8);

await TaskExtensions.WaitForBackgroundTasksAsync(TimeSpan.FromSeconds(20));

var apps = await appDirectory.GetApps();
// Poll until the cache is invalidated and the updated data is returned
const int pollIntervalMs = 50;
var timeout = TimeSpan.FromSeconds(20);
var stopwatch = Stopwatch.StartNew();
IEnumerable<Fdc3App> apps;
do
{
apps = await appDirectory.GetApps();
if (apps.Count() == GetAppsExpectationChanged.Count)
break;
await Task.Delay(pollIntervalMs);
} while (stopwatch.Elapsed < timeout);

apps.Should().BeEquivalentTo(GetAppsExpectationChanged);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,9 @@ public class PrivateChannelTests
private readonly string _instanceId = "test-instance";
private readonly DisplayMetadata _displayMetadata = new();
private readonly PrivateChannel _channel;
private readonly TaskCompletionSource _disconnectTcs = new(TaskCreationOptions.RunContinuationsAsynchronously);
private readonly JsonSerializerOptions _jsonSerializerOptions = SerializerOptionsHelper.JsonSerializerOptionsWithContextSerialization;
private static readonly TimeSpan DisconnectTimeout = TimeSpan.FromSeconds(5);

public PrivateChannelTests()
{
Expand All @@ -45,16 +47,15 @@ public PrivateChannelTests()
_channelId,
_messagingMock.Object,
_instanceId,
onDisconnect: () => { },
onDisconnect: () => _disconnectTcs.TrySetResult(),
isOriginalCreator: true);
}

[Fact]
public async Task Broadcast_when_disconnected_throws()
{
_channel.Disconnect();

await Task.Delay(2000);
await _disconnectTcs.Task.WaitAsync(DisconnectTimeout);

Func<Task> act = async () => await _channel.Broadcast(Mock.Of<IContext>());

Expand All @@ -76,6 +77,7 @@ public async Task Broadcast_when_connected_calls_publish()
public async Task AddContextListener_when_disconnected_throws()
{
_channel.Disconnect();
await _disconnectTcs.Task.WaitAsync(DisconnectTimeout);

Func<Task> act = async () => await _channel.AddContextListener<Instrument>(null, (ctx, ctxM) => { });

Expand Down Expand Up @@ -115,8 +117,7 @@ public void OnAddContextListener_when_connected_returns_listener()
public async Task OnAddContextListener_when_disconnected_throws()
{
_channel.Disconnect();

await Task.Delay(2000);
await _disconnectTcs.Task.WaitAsync(DisconnectTimeout);

Action act = () => _channel.OnAddContextListener(_ => { });

Expand All @@ -132,16 +133,18 @@ public void OnDisconnect_when_connected_returns_listener()
}

[Fact]
public void OnDisconnect_when_disconnected_throws()
public async Task OnDisconnect_when_disconnected_throws()
{
var disconnectTcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously);
var channel = new PrivateChannel(
_channelId,
_messagingMock.Object,
_instanceId,
true,
() => { });
() => disconnectTcs.TrySetResult());

channel.Disconnect();
await disconnectTcs.Task.WaitAsync(DisconnectTimeout);

Action act = () => channel.OnDisconnect(() => { });

Expand All @@ -160,8 +163,7 @@ public void OnUnsubscribe_when_connected_returns_listener()
public async Task OnUnsubscribe_when_disconnected_throws()
{
_channel.Disconnect();

await Task.Delay(2000);
await _disconnectTcs.Task.WaitAsync(DisconnectTimeout);

Action act = () => _channel.OnUnsubscribe(_ => { });

Expand Down
Loading