Skip to content

Commit

Permalink
Grouped all base tests at the top of the test file.
Browse files Browse the repository at this point in the history
  • Loading branch information
niemyjski committed Sep 26, 2024
1 parent dda4e98 commit 45f3821
Show file tree
Hide file tree
Showing 5 changed files with 95 additions and 100 deletions.
10 changes: 5 additions & 5 deletions NuGet.config
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<packageSources>
<add key="Foundatio" value="https://f.feedz.io/foundatio/foundatio/nuget/index.json" />
</packageSources>
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<packageSources>
<add key="Foundatio" value="https://f.feedz.io/foundatio/foundatio/nuget/index.json" />
</packageSources>
</configuration>
1 change: 0 additions & 1 deletion src/Foundatio.TestHarness/Storage/FileStorageTestsBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -514,7 +514,6 @@ public virtual async Task WillRespectStreamOffsetAsync()

public virtual async Task WillWriteStreamContentAsync()
{

const string testContent = "test";
const string path = "created.txt";

Expand Down
4 changes: 0 additions & 4 deletions tests/Foundatio.Tests/Jobs/InMemoryJobQueueTests.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
using System;
using System.Threading.Tasks;
using Foundatio.Caching;
using Foundatio.Queues;
using Microsoft.Extensions.Logging;

using Xunit;
using Xunit.Abstractions;
Expand All @@ -27,8 +25,6 @@ public override Task CanRunMultipleQueueJobsAsync()
[Fact]
public override Task CanRunQueueJobWithLockFailAsync()
{
Log.SetLogLevel<InMemoryCacheClient>(LogLevel.Trace);

return base.CanRunQueueJobWithLockFailAsync();
}

Expand Down
26 changes: 13 additions & 13 deletions tests/Foundatio.Tests/Messaging/InMemoryMessageBusTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,19 +34,6 @@ public override Task CanUseMessageOptionsAsync()
return base.CanUseMessageOptionsAsync();
}

[Fact]
public async Task CanCheckMessageCounts()
{
var messageBus = new InMemoryMessageBus(o => o.LoggerFactory(Log));
await messageBus.PublishAsync(new SimpleMessageA
{
Data = "Hello"
});
Assert.Equal(1, messageBus.MessagesSent);
Assert.Equal(1, messageBus.GetMessagesSent<SimpleMessageA>());
Assert.Equal(0, messageBus.GetMessagesSent<SimpleMessageB>());
}

[Fact]
public override Task CanSendMessageAsync()
{
Expand Down Expand Up @@ -149,6 +136,19 @@ public override void CanDisposeWithNoSubscribersOrPublishers()
base.CanDisposeWithNoSubscribersOrPublishers();
}

[Fact]
public async Task CanCheckMessageCounts()
{
var messageBus = new InMemoryMessageBus(o => o.LoggerFactory(Log));
await messageBus.PublishAsync(new SimpleMessageA
{
Data = "Hello"
});
Assert.Equal(1, messageBus.MessagesSent);
Assert.Equal(1, messageBus.GetMessagesSent<SimpleMessageA>());
Assert.Equal(0, messageBus.GetMessagesSent<SimpleMessageB>());
}

public void Dispose()
{
_messageBus?.Dispose();
Expand Down
154 changes: 77 additions & 77 deletions tests/Foundatio.Tests/Queue/InMemoryQueueTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,83 +46,6 @@ protected override async Task CleanupQueueAsync(IQueue<SimpleWorkItem> queue)
}
}

[Fact]
public async Task TestAsyncEvents()
{
using var q = new InMemoryQueue<SimpleWorkItem>(o => o.LoggerFactory(Log));
var disposables = new List<IDisposable>(5);
try
{
disposables.Add(q.Enqueuing.AddHandler(async (sender, args) =>
{
await Task.Delay(250);
_logger.LogInformation("First Enqueuing");
}));
disposables.Add(q.Enqueuing.AddHandler(async (sender, args) =>
{
await Task.Delay(250);
_logger.LogInformation("Second Enqueuing");
}));
disposables.Add(q.Enqueued.AddHandler(async (sender, args) =>
{
await Task.Delay(250);
_logger.LogInformation("First");
}));
disposables.Add(q.Enqueued.AddHandler(async (sender, args) =>
{
await Task.Delay(250);
_logger.LogInformation("Second");
}));

var sw = Stopwatch.StartNew();
await q.EnqueueAsync(new SimpleWorkItem());
sw.Stop();
if (_logger.IsEnabled(LogLevel.Trace)) _logger.LogTrace("Time {Elapsed:g}", sw.Elapsed);

sw.Restart();
await q.EnqueueAsync(new SimpleWorkItem());
sw.Stop();
if (_logger.IsEnabled(LogLevel.Trace)) _logger.LogTrace("Time {Elapsed:g}", sw.Elapsed);
}
finally
{
foreach (var disposable in disposables)
disposable.Dispose();
}
}

[Fact]
public async Task CanGetCompletedEntries()
{
using var q = new InMemoryQueue<SimpleWorkItem>(o => o.LoggerFactory(Log).CompletedEntryRetentionLimit(10));

await q.EnqueueAsync(new SimpleWorkItem());
Assert.Single(q.GetEntries());
Assert.Empty(q.GetDequeuedEntries());
Assert.Empty(q.GetCompletedEntries());

var item = await q.DequeueAsync();
Assert.Empty(q.GetEntries());
Assert.Single(q.GetDequeuedEntries());
Assert.Empty(q.GetCompletedEntries());

await item.CompleteAsync();
Assert.Empty(q.GetEntries());
Assert.Empty(q.GetDequeuedEntries());
Assert.Single(q.GetCompletedEntries());

for (int i = 0; i < 100; i++)
{
await q.EnqueueAsync(new SimpleWorkItem());
item = await q.DequeueAsync();
await item.CompleteAsync();
}

Assert.Empty(q.GetEntries());
Assert.Empty(q.GetDequeuedEntries());
Assert.Equal(10, q.GetCompletedEntries().Count);
}

[Fact]
public override Task CanQueueAndDequeueWorkItemAsync()
{
Expand Down Expand Up @@ -291,6 +214,83 @@ public override Task CanHandleAutoAbandonInWorker()
return base.CanHandleAutoAbandonInWorker();
}

[Fact]
public async Task TestAsyncEvents()
{
using var q = new InMemoryQueue<SimpleWorkItem>(o => o.LoggerFactory(Log));
var disposables = new List<IDisposable>(5);
try
{
disposables.Add(q.Enqueuing.AddHandler(async (sender, args) =>
{
await Task.Delay(250);
_logger.LogInformation("First Enqueuing");
}));
disposables.Add(q.Enqueuing.AddHandler(async (sender, args) =>
{
await Task.Delay(250);
_logger.LogInformation("Second Enqueuing");
}));
disposables.Add(q.Enqueued.AddHandler(async (sender, args) =>
{
await Task.Delay(250);
_logger.LogInformation("First");
}));
disposables.Add(q.Enqueued.AddHandler(async (sender, args) =>
{
await Task.Delay(250);
_logger.LogInformation("Second");
}));

var sw = Stopwatch.StartNew();
await q.EnqueueAsync(new SimpleWorkItem());
sw.Stop();
if (_logger.IsEnabled(LogLevel.Trace)) _logger.LogTrace("Time {Elapsed:g}", sw.Elapsed);

sw.Restart();
await q.EnqueueAsync(new SimpleWorkItem());
sw.Stop();
if (_logger.IsEnabled(LogLevel.Trace)) _logger.LogTrace("Time {Elapsed:g}", sw.Elapsed);
}
finally
{
foreach (var disposable in disposables)
disposable.Dispose();
}
}

[Fact]
public async Task CanGetCompletedEntries()
{
using var q = new InMemoryQueue<SimpleWorkItem>(o => o.LoggerFactory(Log).CompletedEntryRetentionLimit(10));

await q.EnqueueAsync(new SimpleWorkItem());
Assert.Single(q.GetEntries());
Assert.Empty(q.GetDequeuedEntries());
Assert.Empty(q.GetCompletedEntries());

var item = await q.DequeueAsync();
Assert.Empty(q.GetEntries());
Assert.Single(q.GetDequeuedEntries());
Assert.Empty(q.GetCompletedEntries());

await item.CompleteAsync();
Assert.Empty(q.GetEntries());
Assert.Empty(q.GetDequeuedEntries());
Assert.Single(q.GetCompletedEntries());

for (int i = 0; i < 100; i++)
{
await q.EnqueueAsync(new SimpleWorkItem());
item = await q.DequeueAsync();
await item.CompleteAsync();
}

Assert.Empty(q.GetEntries());
Assert.Empty(q.GetDequeuedEntries());
Assert.Equal(10, q.GetCompletedEntries().Count);
}

#region Issue239

class QueueEntry_Issue239<T> : IQueueEntry<T> where T : class
Expand Down

0 comments on commit 45f3821

Please sign in to comment.