Skip to content

Commit 6c92dc6

Browse files
committed
chore: update Foundatio package versions to 13.0.1-preview.0.12 and enhance Redis tests with additional cases
1 parent b5132b5 commit 6c92dc6

9 files changed

Lines changed: 178 additions & 3 deletions

File tree

samples/Foundatio.SampleJobClient/Foundatio.SampleJobClient.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
</PropertyGroup>
99

1010
<ItemGroup>
11-
<PackageReference Include="Foundatio.Xunit.v3" Version="13.0.1-preview.0.11" />
11+
<PackageReference Include="Foundatio.Xunit.v3" Version="13.0.1-preview.0.12" />
1212
</ItemGroup>
1313

1414
<ItemGroup>

src/Foundatio.Redis/Foundatio.Redis.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<Import Project="..\..\build\common.props" />
33
<ItemGroup>
4-
<PackageReference Include="Foundatio" Version="13.0.1-preview.0.11" Condition="'$(ReferenceFoundatioSource)' == '' OR '$(ReferenceFoundatioSource)' == 'false'" />
4+
<PackageReference Include="Foundatio" Version="13.0.1-preview.0.12" Condition="'$(ReferenceFoundatioSource)' == '' OR '$(ReferenceFoundatioSource)' == 'false'" />
55
<ProjectReference Include="..\..\..\Foundatio\src\Foundatio\Foundatio.csproj" Condition="'$(ReferenceFoundatioSource)' == 'true'" />
66

77
<PackageReference Include="StackExchange.Redis" Version="2.12.14" />

src/Foundatio.Redis/Queues/RedisQueue.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ private string GetTopicName()
198198

199199
protected override async Task<string?> EnqueueImplAsync(T data, QueueEntryOptions options)
200200
{
201+
// TODO: Use options.UniqueId as the entry ID when provided (like InMemoryQueue and AzureServiceBusQueue do)
201202
string id = Guid.NewGuid().ToString("N");
202203
_logger.LogDebug("Queue {QueueName} enqueue item: {QueueEntryId}", _options.Name, id);
203204

tests/Foundatio.Redis.Tests/Caching/RedisCacheClientTests.cs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,12 @@ public override Task AddAsync_WithInvalidKey_ThrowsArgumentException()
3939
return base.AddAsync_WithInvalidKey_ThrowsArgumentException();
4040
}
4141

42+
[Fact]
43+
public override Task AddAsync_WhenKeyAlreadyExists_ReturnsFalseAndDoesNotOverwrite()
44+
{
45+
return base.AddAsync_WhenKeyAlreadyExists_ReturnsFalseAndDoesNotOverwrite();
46+
}
47+
4248
[Fact]
4349
public override Task AddAsync_WithExpiration_SetsExpirationCorrectly()
4450
{
@@ -129,6 +135,12 @@ public override Task GetAsync_WithInvalidKey_ThrowsArgumentException()
129135
return base.GetAsync_WithInvalidKey_ThrowsArgumentException();
130136
}
131137

138+
[Fact]
139+
public override Task GetAsync_WhenKeyDoesNotExist_ReturnsNoValue()
140+
{
141+
return base.GetAsync_WhenKeyDoesNotExist_ReturnsNoValue();
142+
}
143+
132144
[Fact]
133145
public override Task GetAsync_WithNumericTypeConversion_ConvertsBetweenTypes()
134146
{
@@ -195,6 +207,12 @@ public override Task IncrementAsync_WithExpiration_SetsExpirationCorrectly()
195207
return base.IncrementAsync_WithExpiration_SetsExpirationCorrectly();
196208
}
197209

210+
[Fact]
211+
public override Task IncrementAsync_WithAmountZero_ReturnsCurrentValue()
212+
{
213+
return base.IncrementAsync_WithAmountZero_ReturnsCurrentValue();
214+
}
215+
198216
[Fact]
199217
public override Task IncrementAsync_WithInvalidKey_ThrowsException()
200218
{
@@ -309,6 +327,12 @@ public override Task RemoveAsync_WithInvalidKey_ThrowsArgumentException()
309327
return base.RemoveAsync_WithInvalidKey_ThrowsArgumentException();
310328
}
311329

330+
[Fact]
331+
public override Task RemoveAsync_WhenKeyDoesNotExist_ReturnsFalse()
332+
{
333+
return base.RemoveAsync_WhenKeyDoesNotExist_ReturnsFalse();
334+
}
335+
312336
[Fact]
313337
public override Task RemoveAsync_WithNonExistentKey_ReturnsFalse()
314338
{
@@ -392,6 +416,12 @@ public override Task RemoveByPrefixAsync_WithNullOrEmptyPrefix_RemovesAllKeys()
392416
return base.RemoveByPrefixAsync_WithNullOrEmptyPrefix_RemovesAllKeys();
393417
}
394418

419+
[Fact]
420+
public override Task RemoveByPrefixAsync_WithNoMatchingKeys_ReturnsZero()
421+
{
422+
return base.RemoveByPrefixAsync_WithNoMatchingKeys_ReturnsZero();
423+
}
424+
395425
[Theory]
396426
[MemberData(nameof(GetRegexSpecialCharacters))]
397427
public override Task RemoveByPrefixAsync_WithRegexMetacharacter_TreatsAsLiteral(string specialChar)
@@ -583,6 +613,12 @@ public override Task SetExpirationAsync_WithInvalidKey_ThrowsArgumentException()
583613
return base.SetExpirationAsync_WithInvalidKey_ThrowsArgumentException();
584614
}
585615

616+
[Fact]
617+
public override Task SetExpirationAsync_OnNonExistentKey_DoesNotThrow()
618+
{
619+
return base.SetExpirationAsync_OnNonExistentKey_DoesNotThrow();
620+
}
621+
586622
[Fact]
587623
public override Task SetExpirationAsync_WithExpiration_SetsExpirationCorrectly()
588624
{

tests/Foundatio.Redis.Tests/Foundatio.Redis.Tests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5" />
99
<PackageReference Include="GitHubActionsTestLogger" Version="3.0.4" PrivateAssets="All" />
1010

11-
<PackageReference Include="Foundatio.TestHarness" Version="13.0.1-preview.0.11" Condition="'$(ReferenceFoundatioSource)' == '' OR '$(ReferenceFoundatioSource)' == 'false'" />
11+
<PackageReference Include="Foundatio.TestHarness" Version="13.0.1-preview.0.12" Condition="'$(ReferenceFoundatioSource)' == '' OR '$(ReferenceFoundatioSource)' == 'false'" />
1212
<ProjectReference Include="..\..\..\Foundatio\src\Foundatio.TestHarness\Foundatio.TestHarness.csproj" Condition="'$(ReferenceFoundatioSource)' == 'true'" />
1313
</ItemGroup>
1414
<ItemGroup>

tests/Foundatio.Redis.Tests/Locks/RedisLockTests.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,30 @@ public override Task CanAcquireAndReleaseLockAsync()
5656
return base.CanAcquireAndReleaseLockAsync();
5757
}
5858

59+
[Fact]
60+
public override Task AcquireAsync_WithReleaseOnDisposeFalse_DoesNotReleaseOnDispose()
61+
{
62+
return base.AcquireAsync_WithReleaseOnDisposeFalse_DoesNotReleaseOnDispose();
63+
}
64+
5965
[Fact]
6066
public override Task LockWillTimeoutAsync()
6167
{
6268
return base.LockWillTimeoutAsync();
6369
}
6470

71+
[Fact]
72+
public override Task Lock_AcquiredTimeUtc_ReturnsValidTimestamp()
73+
{
74+
return base.Lock_AcquiredTimeUtc_ReturnsValidTimestamp();
75+
}
76+
77+
[Fact]
78+
public override Task Lock_LockIdAndResource_ReturnCorrectValues()
79+
{
80+
return base.Lock_LockIdAndResource_ReturnCorrectValues();
81+
}
82+
6583
[Fact]
6684
public override Task LockOneAtATimeAsync()
6785
{
@@ -110,6 +128,18 @@ public override Task CanReleaseLockMultipleTimes()
110128
return base.CanReleaseLockMultipleTimes();
111129
}
112130

131+
[Fact]
132+
public override Task ReleaseAsync_WithForceRelease_ReleasesLockWithoutLockId()
133+
{
134+
return base.ReleaseAsync_WithForceRelease_ReleasesLockWithoutLockId();
135+
}
136+
137+
[Fact]
138+
public override Task TryUsingAsync_WithSuccessfulAction_ExecutesAndReleasesLock()
139+
{
140+
return base.TryUsingAsync_WithSuccessfulAction_ExecutesAndReleasesLock();
141+
}
142+
113143
[Fact]
114144
public override Task LockWontTimeoutEarly()
115145
{

tests/Foundatio.Redis.Tests/Messaging/RedisMessageBusTests.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,12 @@ public override Task PublishAsync_WithCancellation_ThrowsOperationCanceledExcept
187187
return base.PublishAsync_WithCancellation_ThrowsOperationCanceledExceptionAsync();
188188
}
189189

190+
[Fact]
191+
public override Task PublishAsync_WithDeliveryDelayExtension_DelaysDeliveryAsync()
192+
{
193+
return base.PublishAsync_WithDeliveryDelayExtension_DelaysDeliveryAsync();
194+
}
195+
190196
[Fact]
191197
public override Task PublishAsync_WithDelayedMessageAndDisposeBeforeDelivery_DiscardsMessageAsync()
192198
{
@@ -199,6 +205,12 @@ public override Task PublishAsync_WithSerializationFailure_ThrowsSerializerExcep
199205
return base.PublishAsync_WithSerializationFailure_ThrowsSerializerExceptionAsync();
200206
}
201207

208+
[Fact]
209+
public override Task PublishAsync_WithUniqueId_PropagatesUniqueIdToSubscriberAsync()
210+
{
211+
return base.PublishAsync_WithUniqueId_PropagatesUniqueIdToSubscriberAsync();
212+
}
213+
202214
[Fact]
203215
public override Task SubscribeAsync_AfterDispose_ThrowsMessageBusExceptionAsync()
204216
{
@@ -217,6 +229,18 @@ public override Task SubscribeAsync_WithCancellation_ThrowsOperationCanceledExce
217229
return base.SubscribeAsync_WithCancellation_ThrowsOperationCanceledExceptionAsync();
218230
}
219231

232+
[Fact]
233+
public override Task SubscribeAsync_ToRawIMessage_CanAccessAllPropertiesAsync()
234+
{
235+
return base.SubscribeAsync_ToRawIMessage_CanAccessAllPropertiesAsync();
236+
}
237+
238+
[Fact]
239+
public override Task SubscribeAsync_WithCancellationTokenHandler_ReceivesCancellationTokenAsync()
240+
{
241+
return base.SubscribeAsync_WithCancellationTokenHandler_ReceivesCancellationTokenAsync();
242+
}
243+
220244
[Fact]
221245
public override Task SubscribeAsync_WithDeserializationFailure_SkipsMessageAsync()
222246
{

tests/Foundatio.Redis.Tests/Queues/RedisQueueTests.cs

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,12 @@ public override Task DequeueAsync_AfterAbandonWithMutatedValue_ReturnsOriginalVa
122122
return base.DequeueAsync_AfterAbandonWithMutatedValue_ReturnsOriginalValueAsync();
123123
}
124124

125+
[Fact]
126+
public override Task DequeueAsync_WithDispose_AutoAbandonsEntryAsync()
127+
{
128+
return base.DequeueAsync_WithDispose_AutoAbandonsEntryAsync();
129+
}
130+
125131
[Fact]
126132
public override Task DequeueWaitWillGetSignaledAsync()
127133
{
@@ -158,6 +164,12 @@ public override Task EnqueueAsync_WithSerializationError_ThrowsAndLeavesQueueEmp
158164
return base.EnqueueAsync_WithSerializationError_ThrowsAndLeavesQueueEmptyAsync();
159165
}
160166

167+
[Fact]
168+
public override Task EnqueueAsync_WithUniqueId_UsesProvidedIdAsync()
169+
{
170+
return base.EnqueueAsync_WithUniqueId_UsesProvidedIdAsync();
171+
}
172+
161173
[Fact]
162174
public override Task CanUseQueueWorkerAsync()
163175
{
@@ -876,6 +888,36 @@ public override Task AbandonAsync_WhenRetriesExceeded_MovesToDeadletterAsync()
876888
return base.AbandonAsync_WhenRetriesExceeded_MovesToDeadletterAsync();
877889
}
878890

891+
[Fact]
892+
public override Task GetDeadletterItemsAsync_WithDeadletteredEntry_ReturnsItemsAsync()
893+
{
894+
return base.GetDeadletterItemsAsync_WithDeadletteredEntry_ReturnsItemsAsync();
895+
}
896+
897+
[Fact]
898+
public override Task GetQueueActivity_AfterEnqueueAndDequeue_ReturnsTimestampsAsync()
899+
{
900+
return base.GetQueueActivity_AfterEnqueueAndDequeue_ReturnsTimestampsAsync();
901+
}
902+
903+
[Fact]
904+
public override Task GetQueueEntryMetadata_AfterDequeue_ReturnsValidTimestampsAsync()
905+
{
906+
return base.GetQueueEntryMetadata_AfterDequeue_ReturnsValidTimestampsAsync();
907+
}
908+
909+
[Fact]
910+
public override Task QueueEntry_EntryType_ReturnsCorrectTypeAsync()
911+
{
912+
return base.QueueEntry_EntryType_ReturnsCorrectTypeAsync();
913+
}
914+
915+
[Fact]
916+
public override Task QueueEntry_GetValue_ReturnsUntypedValueAsync()
917+
{
918+
return base.QueueEntry_GetValue_ReturnsUntypedValueAsync();
919+
}
920+
879921
private record Command1(int Id);
880922
private record Command2(int Id);
881923

tests/Foundatio.Redis.Tests/Storage/RedisFileStorageTests.cs

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,12 +79,30 @@ public override Task CanRenameFilesAsync()
7979
return base.CanRenameFilesAsync();
8080
}
8181

82+
[Fact]
83+
public override Task RenameFileAsync_WhenSourceDoesNotExist_ReturnsFalse()
84+
{
85+
return base.RenameFileAsync_WhenSourceDoesNotExist_ReturnsFalse();
86+
}
87+
8288
[Fact]
8389
public override Task CanConcurrentlyManageFilesAsync()
8490
{
8591
return base.CanConcurrentlyManageFilesAsync();
8692
}
8793

94+
[Fact]
95+
public override Task CopyFileAsync_WithExistingFile_CreatesIdenticalCopy()
96+
{
97+
return base.CopyFileAsync_WithExistingFile_CreatesIdenticalCopy();
98+
}
99+
100+
[Fact]
101+
public override Task CopyFileAsync_WithNonExistentSource_ReturnsFalse()
102+
{
103+
return base.CopyFileAsync_WithNonExistentSource_ReturnsFalse();
104+
}
105+
88106
[Fact]
89107
public override void CanUseDataDirectory()
90108
{
@@ -97,6 +115,18 @@ public override Task CanDeleteEntireFolderAsync()
97115
return base.CanDeleteEntireFolderAsync();
98116
}
99117

118+
[Fact]
119+
public override Task DeleteFileAsync_WhenFileDoesNotExist_ReturnsFalse()
120+
{
121+
return base.DeleteFileAsync_WhenFileDoesNotExist_ReturnsFalse();
122+
}
123+
124+
[Fact]
125+
public override Task DeleteFilesAsync_WithFileSpecCollection_DeletesSpecifiedFiles()
126+
{
127+
return base.DeleteFilesAsync_WithFileSpecCollection_DeletesSpecifiedFiles();
128+
}
129+
100130
[Fact]
101131
public override Task CanDeleteEntireFolderWithWildcardAsync()
102132
{
@@ -121,6 +151,18 @@ public override Task CanDeleteNestedFolderAsync()
121151
return base.CanDeleteNestedFolderAsync();
122152
}
123153

154+
[Fact]
155+
public override Task GetFileContentsRawAsync_WithExistingFile_ReturnsByteArray()
156+
{
157+
return base.GetFileContentsRawAsync_WithExistingFile_ReturnsByteArray();
158+
}
159+
160+
[Fact]
161+
public override Task GetFileStreamAsync_WithNonExistentFileInReadMode_ReturnsNull()
162+
{
163+
return base.GetFileStreamAsync_WithNonExistentFileInReadMode_ReturnsNull();
164+
}
165+
124166
[Fact]
125167
public override Task CanDeleteSpecificFilesInNestedFolderAsync()
126168
{

0 commit comments

Comments
 (0)