Skip to content

Commit 495f439

Browse files
committed
migrate Azure to xUnit
1 parent ad09224 commit 495f439

42 files changed

Lines changed: 2651 additions & 140 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 53 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -601,27 +601,28 @@ jobs:
601601
# - name: Sqlite Tests
602602
# run: dotnet test ./tests/Paramore.Brighter.Sqlite.Tests/Paramore.Brighter.Sqlite.Tests.csproj --filter "Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n
603603
#
604-
# azure-ci:
605-
# runs-on: ubuntu-latest
606-
# timeout-minutes: 8
607-
# if: |
608-
# (github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'master')) ||
609-
# (github.event_name == 'pull_request' && !github.event.pull_request.head.repo.fork)
610-
# needs: [build]
611-
# env:
612-
# BrighterTestsASBConnectionString: ${{ secrets.BRIGHTERTESTS_ASB_CONNECTION_STRING }}
613-
# steps:
614-
# - uses: actions/checkout@v6
615-
# - name: Setup dotnet
616-
# uses: actions/setup-dotnet@v5
617-
# with:
618-
# dotnet-version: |
619-
# 9.0.x
620-
# 10.0.x
621-
# - name: Install dependencies
622-
# run: dotnet restore
623-
# - name: Azure Tests
624-
# run: dotnet test ./tests/Paramore.Brighter.AzureServiceBus.Tests/Paramore.Brighter.AzureServiceBus.Tests.csproj --filter "Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n
604+
azure-ci:
605+
runs-on: ubuntu-latest
606+
timeout-minutes: 8
607+
if: |
608+
(github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'master')) ||
609+
(github.event_name == 'pull_request' && !github.event.pull_request.head.repo.fork)
610+
env:
611+
BrighterTestsASBConnectionString: ${{ secrets.BRIGHTERTESTS_ASB_CONNECTION_STRING }}
612+
steps:
613+
- uses: actions/checkout@v6
614+
- name: Setup dotnet
615+
uses: actions/setup-dotnet@v5
616+
with:
617+
dotnet-version: |
618+
9.0.x
619+
10.0.x
620+
- name: Install dependencies
621+
run: dotnet restore
622+
- name: AzureServiceBus Tests
623+
run: dotnet test ./tests/Paramore.Brighter.AzureServiceBus.Tests/Paramore.Brighter.AzureServiceBus.Tests.csproj --filter "Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n
624+
- name: Azure Tests
625+
run: dotnet test ./tests/Paramore.Brighter.Azure.Tests/Paramore.Brighter.Azure.Tests.csproj --filter "Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n
625626
#
626627
# mongodb-ci:
627628
# runs-on: ubuntu-latest
@@ -655,42 +656,42 @@ jobs:
655656
# - name: MongoDB Tests
656657
# run: dotnet test ./tests/Paramore.Brighter.MongoDb.Tests/Paramore.Brighter.MongoDb.Tests.csproj --filter "Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n
657658
#
658-
gcp-ci:
659-
runs-on: ubuntu-latest
660-
timeout-minutes: 20
661-
# needs: [build]
662-
if: |
663-
(github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'master')) ||
664-
(github.event_name == 'pull_request' && !github.event.pull_request.head.repo.fork)
665-
steps:
666-
- uses: actions/checkout@v6
667-
with:
668-
fetch-depth: 0 # Required to fetch the Git tags
669-
filter: tree:0
670-
show-progress: false
659+
# gcp-ci:
660+
# runs-on: ubuntu-latest
661+
# timeout-minutes: 20
662+
# # needs: [build]
663+
# if: |
664+
# (github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'master')) ||
665+
# (github.event_name == 'pull_request' && !github.event.pull_request.head.repo.fork)
666+
# steps:
667+
# - uses: actions/checkout@v6
668+
# with:
669+
# fetch-depth: 0 # Required to fetch the Git tags
670+
# filter: tree:0
671+
# show-progress: false
671672

672-
- name: Google Cloud auth
673-
uses: google-github-actions/auth@v3
674-
with:
675-
credentials_json: ${{ secrets.GOOGLE_CREDENTIALS }}
673+
# - name: Google Cloud auth
674+
# uses: google-github-actions/auth@v3
675+
# with:
676+
# credentials_json: ${{ secrets.GOOGLE_CREDENTIALS }}
676677

677-
- name: Set up Cloud SDK
678-
uses: google-github-actions/setup-gcloud@v3
679-
with:
680-
version: '>= 363.0.0'
678+
# - name: Set up Cloud SDK
679+
# uses: google-github-actions/setup-gcloud@v3
680+
# with:
681+
# version: '>= 363.0.0'
681682

682-
- name: Setup dotnet
683-
uses: actions/setup-dotnet@v5
684-
with:
685-
dotnet-version: |
686-
9.0.x
687-
10.0.x
683+
# - name: Setup dotnet
684+
# uses: actions/setup-dotnet@v5
685+
# with:
686+
# dotnet-version: |
687+
# 9.0.x
688+
# 10.0.x
688689

689-
- name: Install dependencies
690-
run: dotnet restore
690+
# - name: Install dependencies
691+
# run: dotnet restore
691692

692-
- name: GCP Tests
693-
run: dotnet test ./tests/Paramore.Brighter.Gcp.Tests/Paramore.Brighter.Gcp.Tests.csproj --filter "Category!=Spanner&Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n
693+
# - name: GCP Tests
694+
# run: dotnet test ./tests/Paramore.Brighter.Gcp.Tests/Paramore.Brighter.Gcp.Tests.csproj --filter "Category!=Spanner&Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n
694695

695696
# TODO: Rafael Andrade is working on how to run RocketMQ on GHA
696697
# rocketmq-ci:

tests/Paramore.Brighter.Azure.Tests/AzureBlobArchiveProviderTests.cs

Lines changed: 31 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public AzureBlobArchiveProviderTests()
3030
_storageLocationFunction = (message) => $"{message.Header.Topic}/{message.Id}".ToLower();
3131
}
3232

33-
[Test]
33+
[Fact]
3434
public async Task GivenARequestToArchiveAMessage_TheMessageIsArchived()
3535
{
3636
var publication = new Publication
@@ -41,31 +41,27 @@ public async Task GivenARequestToArchiveAMessage_TheMessageIsArchived()
4141

4242
var commandMessage = _commandMapper?.MapToMessage(_command, publication);
4343

44-
if (commandMessage == null)
45-
{
46-
Assert.Fail("Failed to map command to message");
47-
return;
48-
}
44+
Assert.NotNull(commandMessage);
4945

5046
var blobClient = GetClient(AccessTier.Cool).GetBlobClient(_storageLocationFunction?.Invoke(commandMessage));
5147

5248
_provider?.ArchiveMessage(commandMessage);
5349

54-
Assert.That((bool)await blobClient.ExistsAsync(), Is.True);
50+
Assert.True(await blobClient.ExistsAsync());
5551

5652
var tags = (await blobClient.GetTagsAsync()).Value.Tags;
57-
Assert.That(tags.Count, Is.EqualTo(0));
53+
Assert.Empty(tags);
5854

5955
var body = (await blobClient.DownloadContentAsync()).Value.Content.ToString();
6056

61-
Assert.That(body, Is.EqualTo(commandMessage.Body.Value));
57+
Assert.Equal(commandMessage.Body.Value, body);
6258

6359
var tier = await blobClient.GetPropertiesAsync();
64-
Assert.That(tier.Value.AccessTier, Is.EqualTo(AccessTier.Cool.ToString()));
60+
Assert.Equal(AccessTier.Cool.ToString(), tier.Value.AccessTier);
6561

6662
}
6763

68-
[Test]
64+
[Fact]
6965
public async Task GivenARequestToArchiveAMessage_WhenTagsAreTurnedOn_ThenTagsAreWritten()
7066
{
7167
var publication = new Publication
@@ -81,18 +77,18 @@ public async Task GivenARequestToArchiveAMessage_WhenTagsAreTurnedOn_ThenTagsAre
8177
_provider?.ArchiveMessage(eventMessage);
8278

8379
var tier = await blobClient.GetPropertiesAsync();
84-
Assert.That(tier.Value.AccessTier, Is.EqualTo(AccessTier.Hot.ToString()));
80+
Assert.Equal(AccessTier.Hot.ToString(), tier.Value.AccessTier);
8581

8682
var tags = (await blobClient.GetTagsAsync()).Value.Tags;
8783

88-
Assert.That(tags["topic"], Is.EqualTo(eventMessage.Header.Topic.Value));
89-
Assert.That(tags["correlationId"], Is.EqualTo(eventMessage.Header.CorrelationId.Value));
90-
Assert.That(tags["message_type"], Is.EqualTo(eventMessage.Header.MessageType.ToString()));
91-
Assert.That(DateTime.Parse(tags["timestamp"]), Is.EqualTo(eventMessage.Header.TimeStamp.DateTime));
92-
Assert.That(tags["content_type"], Is.EqualTo(eventMessage.Header.ContentType!.ToString()));
84+
Assert.Equal(eventMessage.Header.Topic.Value, tags["topic"]);
85+
Assert.Equal(eventMessage.Header.CorrelationId.Value, tags["correlationId"]);
86+
Assert.Equal(eventMessage.Header.MessageType.ToString(), tags["message_type"]);
87+
Assert.Equal(eventMessage.Header.TimeStamp.DateTime, DateTime.Parse(tags["timestamp"]));
88+
Assert.Equal(eventMessage.Header.ContentType!.ToString(), tags["content_type"]);
9389
}
9490

95-
[Test]
91+
[Fact]
9692
public async Task GivenARequestToArchiveAMessageAsync_TheMessageIsArchived()
9793
{
9894
var publication = new Publication
@@ -103,31 +99,27 @@ public async Task GivenARequestToArchiveAMessageAsync_TheMessageIsArchived()
10399

104100
var commandMessage = _commandMapper.MapToMessage(_command, publication);
105101

106-
if (commandMessage == null)
107-
{
108-
Assert.Fail("Failed to map command to message");
109-
return;
110-
}
102+
Assert.NotNull(commandMessage);
111103

112104
var blobClient = GetClient(AccessTier.Cool).GetBlobClient(_storageLocationFunction.Invoke(commandMessage));
113105

114106
await _provider?.ArchiveMessageAsync(commandMessage, CancellationToken.None)!;
115107

116-
Assert.That((bool)await blobClient.ExistsAsync(), Is.True);
108+
Assert.True(await blobClient.ExistsAsync());
117109

118110
var tags = (await blobClient.GetTagsAsync()).Value.Tags;
119-
Assert.That(tags.Count, Is.EqualTo(0));
111+
Assert.Empty(tags);
120112

121113
var body = (await blobClient.DownloadContentAsync()).Value.Content.ToString();
122114

123-
Assert.That(body, Is.EqualTo(commandMessage.Body.Value));
115+
Assert.Equal(commandMessage.Body.Value, body);
124116

125117
var tier = await blobClient.GetPropertiesAsync();
126-
Assert.That(tier.Value.AccessTier, Is.EqualTo(AccessTier.Cool.ToString()));
118+
Assert.Equal(AccessTier.Cool.ToString(), tier.Value.AccessTier);
127119

128120
}
129121

130-
[Test]
122+
[Fact]
131123
public async Task GivenARequestToArchiveAMessageAsync_WhenParallel_TheMessageIsArchived()
132124
{
133125
var cmdPublication = new Publication
@@ -162,10 +154,10 @@ public async Task GivenARequestToArchiveAMessageAsync_WhenParallel_TheMessageIsA
162154
foreach (var message in messages)
163155
{
164156
var blobClient = containerClient.GetBlobClient(_storageLocationFunction.Invoke(message));
165-
Assert.That((bool)await blobClient.ExistsAsync(), Is.True);
157+
Assert.True(await blobClient.ExistsAsync());
166158

167159
var tags = (await blobClient.GetTagsAsync()).Value.Tags;
168-
Assert.That(tags.Count, Is.EqualTo(0));
160+
Assert.Empty(tags);
169161

170162
var body = (await blobClient.DownloadContentAsync()).Value.Content.ToString();
171163

@@ -175,15 +167,15 @@ public async Task GivenARequestToArchiveAMessageAsync_WhenParallel_TheMessageIsA
175167
else if (message.Header.MessageType == MessageType.MT_EVENT)
176168
brighterBody = JsonSerializer.Serialize(superAwesomeEvents.First(c => c.Id == message.Id));
177169

178-
Assert.That(body, Is.EqualTo(brighterBody));
170+
Assert.Equal(brighterBody, body);
179171

180172
var tier = await blobClient.GetPropertiesAsync();
181-
Assert.That(tier.Value.AccessTier, Is.EqualTo(AccessTier.Cool.ToString()));
173+
Assert.Equal(AccessTier.Cool.ToString(), tier.Value.AccessTier);
182174
}
183175

184176
}
185177

186-
[Test]
178+
[Fact]
187179
public async Task GivenARequestToArchiveAMessageAsync_WhenTagsAreTurnedOn_ThenTagsAreWritten()
188180
{
189181
var publication = new Publication
@@ -199,15 +191,15 @@ public async Task GivenARequestToArchiveAMessageAsync_WhenTagsAreTurnedOn_ThenTa
199191
await _provider?.ArchiveMessageAsync(eventMessage, CancellationToken.None)!;
200192

201193
var tier = await blobClient.GetPropertiesAsync();
202-
Assert.That(tier.Value.AccessTier, Is.EqualTo(AccessTier.Hot.ToString()));
194+
Assert.Equal(AccessTier.Hot.ToString(), tier.Value.AccessTier);
203195

204196
var tags = (await blobClient.GetTagsAsync()).Value.Tags;
205197

206-
Assert.That(tags["topic"], Is.EqualTo(eventMessage.Header.Topic.Value));
207-
Assert.That(tags["correlationId"], Is.EqualTo(eventMessage.Header.CorrelationId.Value));
208-
Assert.That(tags["message_type"], Is.EqualTo(eventMessage.Header.MessageType.ToString()));
209-
Assert.That(DateTime.Parse(tags["timestamp"]), Is.EqualTo(eventMessage.Header.TimeStamp.DateTime));
210-
Assert.That(tags["content_type"], Is.EqualTo(eventMessage.Header.ContentType!.ToString()));
198+
Assert.Equal(eventMessage.Header.Topic.Value, tags["topic"]);
199+
Assert.Equal(eventMessage.Header.CorrelationId.Value, tags["correlationId"]);
200+
Assert.Equal(eventMessage.Header.MessageType.ToString(), tags["message_type"]);
201+
Assert.Equal(eventMessage.Header.TimeStamp.DateTime, DateTime.Parse(tags["timestamp"]));
202+
Assert.Equal(eventMessage.Header.ContentType!.ToString(), tags["content_type"]);
211203
}
212204

213205
private BlobContainerClient GetClient(AccessTier tier , bool tags = false )

tests/Paramore.Brighter.Azure.Tests/AzureBlobLockingProviderTests.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,19 @@ public AzureBlobLockingProviderTests()
1515
_blobLocking = new AzureBlobLockingProvider(options);
1616
}
1717

18-
[Test]
18+
[Fact]
1919
public async Task GivenAnAzureBlobLockingProvider_WhenLockIsCalled_ItCanOnlyBeObtainedOnce()
2020
{
2121
var resourceName = $"TestLock-{Guid.NewGuid()}";
2222

2323
var firstLock = await _blobLocking.ObtainLockAsync(resourceName, CancellationToken.None);
2424
var secondLock = await _blobLocking.ObtainLockAsync(resourceName, CancellationToken.None);
2525

26-
Assert.That(firstLock, Is.Not.Null);
27-
Assert.That(secondLock, Is.Null, "A Lock should not be able to be acquired");
26+
Assert.NotNull(firstLock);
27+
Assert.Null(secondLock);
2828
}
2929

30-
[Test]
30+
[Fact]
3131
public async Task GivenAnAzureBlobLockingProviderWithALockedBlob_WhenReleaseLockIsCalled_ItCanOnlyBeLockedAgain()
3232
{
3333
var resourceName = $"TestLock-{Guid.NewGuid()}";
@@ -37,9 +37,9 @@ public async Task GivenAnAzureBlobLockingProviderWithALockedBlob_WhenReleaseLock
3737
var secondLock = await _blobLocking.ObtainLockAsync(resourceName, CancellationToken.None);
3838
var thirdLock = await _blobLocking.ObtainLockAsync(resourceName, CancellationToken.None);
3939

40-
Assert.That(firstLock, Is.Not.Null);
41-
Assert.That(secondLock, Is.Not.Null, "A Lock should be able to be acquired");
42-
Assert.That(thirdLock, Is.Null, "A Lock should not be able to be acquired");
40+
Assert.NotNull(firstLock);
41+
Assert.NotNull(secondLock);
42+
Assert.Null(thirdLock);
4343
}
4444

4545
}

tests/Paramore.Brighter.Azure.Tests/Paramore.Brighter.Azure.Tests.csproj

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,8 @@
1313
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1414
</PackageReference>
1515
<PackageReference Include="Microsoft.NET.Test.Sdk" />
16-
<PackageReference Include="NUnit" />
17-
<PackageReference Include="NUnit3TestAdapter" />
18-
<PackageReference Include="NUnit.Analyzers">
16+
<PackageReference Include="xunit" />
17+
<PackageReference Include="xunit.runner.visualstudio">
1918
<PrivateAssets>all</PrivateAssets>
2019
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2120
</PackageReference>

tests/Paramore.Brighter.Azure.Tests/Transformers/When_unwrapping_a_large_message.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using System.Text.Json;
1+
using System.Text.Json;
22
using Azure.Identity;
33
using Azure.Storage.Blobs;
44
using Paramore.Brighter.Azure.Tests.Helpers;
@@ -8,8 +8,8 @@
88

99
namespace Paramore.Brighter.Azure.Tests.Transformers;
1010

11-
[Category("Azure")]
12-
[Property("Fragile", "CI")]
11+
[Trait("Category", "Azure")]
12+
[Trait("Fragile", "CI")]
1313
public class LargeMessagePayloadAUnwrapTests : IDisposable
1414
{
1515
private readonly BlobContainerClient _client;
@@ -42,7 +42,7 @@ public LargeMessagePayloadAUnwrapTests()
4242
_pipelineBuilder = new TransformPipelineBuilder(mapperRegistry, messageTransformerFactory);
4343
}
4444

45-
[Test]
45+
[Fact]
4646
public void When_unwrapping_a_large_message_async()
4747
{
4848
//arrange
@@ -78,8 +78,8 @@ public void When_unwrapping_a_large_message_async()
7878

7979
//assert
8080
//contents should be from storage
81-
Assert.Equals(contents, transformedMessage.Value);
82-
Assert.That(_luggageStore.HasClaim(id));
81+
Assert.Equal(contents, transformedMessage.Value);
82+
Assert.True(_luggageStore.HasClaim(id));
8383
}
8484

8585
public void Dispose()

0 commit comments

Comments
 (0)