Skip to content

Commit e0f18f2

Browse files
Copilotgfs
andcommitted
Changes before error encountered
Co-authored-by: gfs <98900+gfs@users.noreply.github.com>
1 parent 479cca3 commit e0f18f2

17 files changed

Lines changed: 80 additions & 71 deletions

.editorconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@ dotnet_naming_symbols.non_field_members.required_modifiers =
191191
# Naming styles
192192

193193
dotnet_naming_style.pascal_case.required_prefix =
194+
194195
dotnet_naming_style.pascal_case.required_suffix =
195196
dotnet_naming_style.pascal_case.word_separator =
196197
dotnet_naming_style.pascal_case.capitalization = pascal_case

Pipelines/recursive-extractor-pr.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ extends:
4242
poolName: MSSecurity-1ES-Build-Agents-Pool
4343
poolImage: MSSecurity-1ES-Windows-2022
4444
poolOs: windows
45-
dotnetTestArgs: '-- --coverage --report-trx'
45+
dotnetTestArgs: '--logger trx --results-directory $(Build.SourcesDirectory)/TestResults -- --coverage'
4646
includeNuGetOrg: false
4747
nugetFeedsToUse: 'config'
4848
nugetConfigPath: 'nuget.config'
@@ -57,7 +57,7 @@ extends:
5757
poolName: MSSecurity-1ES-Build-Agents-Pool
5858
poolImage: MSSecurity-1ES-Windows-2022
5959
poolOs: windows
60-
dotnetTestArgs: '-- --coverage --report-trx'
60+
dotnetTestArgs: '--logger trx --results-directory $(Build.SourcesDirectory)/TestResults -- --coverage'
6161
includeNuGetOrg: false
6262
nugetFeedsToUse: 'config'
6363
nugetConfigPath: 'nuget.config'

Pipelines/recursive-extractor-release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ extends:
4343
poolName: MSSecurity-1ES-Build-Agents-Pool
4444
poolImage: MSSecurity-1ES-Windows-2022
4545
poolOs: windows
46-
dotnetTestArgs: '-- --coverage --report-trx'
46+
dotnetTestArgs: '--logger trx --results-directory $(Build.SourcesDirectory)/TestResults -- --coverage'
4747
includeNuGetOrg: false
4848
nugetFeedsToUse: 'config'
4949
nugetConfigPath: 'nuget.config'
@@ -57,7 +57,7 @@ extends:
5757
poolName: MSSecurity-1ES-Build-Agents-Pool
5858
poolImage: MSSecurity-1ES-Windows-2022
5959
poolOs: windows
60-
dotnetTestArgs: '-- --coverage --report-trx'
60+
dotnetTestArgs: '--logger trx --results-directory $(Build.SourcesDirectory)/TestResults -- --coverage'
6161
includeNuGetOrg: false
6262
nugetFeedsToUse: 'config'
6363
nugetConfigPath: 'nuget.config'
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
using Microsoft.VisualStudio.TestTools.UnitTesting;
2+
3+
[assembly: Parallelize(Workers = 0, Scope = ExecutionScope.MethodLevel)]

RecursiveExtractor.Tests/ExtractorTests/BaseExtractorTestClass.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ namespace RecursiveExtractor.Tests.ExtractorTests;
88

99
public class BaseExtractorTestClass
1010
{
11+
public TestContext TestContext { get; set; } = null!;
12+
1113
[ClassCleanup]
1214
public static void ClassCleanup()
1315
{

RecursiveExtractor.Tests/ExtractorTests/CustomExtractorTests.cs

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ namespace RecursiveExtractor.Tests.ExtractorTests;
1212
[TestClass]
1313
public class CustomExtractorTests
1414
{
15+
public TestContext TestContext { get; set; } = null!;
16+
1517
/// <summary>
1618
/// A simple test custom extractor that extracts files with a specific magic number
1719
/// For testing purposes, it recognizes files starting with "CUSTOM1"
@@ -127,7 +129,7 @@ public void Constructor_WithCustomExtractors_RegistersExtractors()
127129
var customExtractor = new TestCustomExtractor(null!);
128130
var extractor = new Extractor(new[] { customExtractor });
129131

130-
Assert.AreEqual(1, extractor.CustomExtractors.Count);
132+
Assert.HasCount(extractor.CustomExtractors, 1);
131133
}
132134

133135
[TestMethod]
@@ -137,7 +139,7 @@ public void Constructor_WithMultipleCustomExtractors_RegistersAll()
137139
var customExtractor2 = new SecondTestCustomExtractor(null!);
138140
var extractor = new Extractor(new ICustomAsyncExtractor[] { customExtractor1, customExtractor2 });
139141

140-
Assert.AreEqual(2, extractor.CustomExtractors.Count);
142+
Assert.HasCount(extractor.CustomExtractors, 2);
141143
}
142144

143145
[TestMethod]
@@ -146,15 +148,15 @@ public void Constructor_WithNullInCollection_IgnoresNull()
146148
var customExtractor = new TestCustomExtractor(null!);
147149
var extractor = new Extractor(new ICustomAsyncExtractor[] { customExtractor, null! });
148150

149-
Assert.AreEqual(1, extractor.CustomExtractors.Count);
151+
Assert.HasCount(extractor.CustomExtractors, 1);
150152
}
151153

152154
[TestMethod]
153155
public void Constructor_WithNullCollection_CreatesEmptyExtractor()
154156
{
155157
var extractor = new Extractor((IEnumerable<ICustomAsyncExtractor>)null!);
156158

157-
Assert.AreEqual(0, extractor.CustomExtractors.Count);
159+
Assert.IsEmpty(extractor.CustomExtractors);
158160
}
159161

160162
[TestMethod]
@@ -167,7 +169,7 @@ public void Extract_WithMatchingCustomExtractor_UsesCustomExtractor()
167169
var testData = System.Text.Encoding.ASCII.GetBytes("CUSTOM1 This is test data");
168170
var results = extractor.Extract("test.custom", testData).ToList();
169171

170-
Assert.AreEqual(1, results.Count);
172+
Assert.HasCount(results, 1);
171173
Assert.AreEqual("extracted_from_custom.txt", results[0].Name);
172174

173175
// Read the content to verify it was processed by our custom extractor
@@ -185,9 +187,9 @@ public async Task ExtractAsync_WithMatchingCustomExtractor_UsesCustomExtractor()
185187

186188
// Create a test file with the custom magic bytes
187189
var testData = System.Text.Encoding.ASCII.GetBytes("CUSTOM1 This is test data");
188-
var results = await extractor.ExtractAsync("test.custom", testData).ToListAsync();
190+
var results = await extractor.ExtractAsync("test.custom", testData).ToListAsync(TestContext.CancellationTokenSource.Token);
189191

190-
Assert.AreEqual(1, results.Count);
192+
Assert.HasCount(results, 1);
191193
Assert.AreEqual("extracted_from_custom.txt", results[0].Name);
192194

193195
// Read the content to verify it was processed by our custom extractor
@@ -208,7 +210,7 @@ public void Extract_WithoutMatchingCustomExtractor_ReturnsOriginalFile()
208210
var results = extractor.Extract("test.txt", testData).ToList();
209211

210212
// Should return the original file since no custom extractor matched
211-
Assert.AreEqual(1, results.Count);
213+
Assert.HasCount(results, 1);
212214
Assert.AreEqual("test.txt", results[0].Name);
213215

214216
// Verify it's the original content
@@ -230,13 +232,13 @@ public void Extract_MultipleCustomExtractors_UsesCorrectOne()
230232
// Test with first custom format
231233
var testData1 = System.Text.Encoding.ASCII.GetBytes("CUSTOM1 data");
232234
var results1 = extractor.Extract("test1.custom", testData1).ToList();
233-
Assert.AreEqual(1, results1.Count);
235+
Assert.HasCount(results1, 1);
234236
Assert.AreEqual("extracted_from_custom.txt", results1[0].Name);
235237

236238
// Test with second custom format
237239
var testData2 = System.Text.Encoding.ASCII.GetBytes("CUSTOM2 data");
238240
var results2 = extractor.Extract("test2.custom", testData2).ToList();
239-
Assert.AreEqual(1, results2.Count);
241+
Assert.HasCount(results2, 1);
240242
Assert.AreEqual("extracted_from_second_custom.txt", results2[0].Name);
241243
}
242244

@@ -250,7 +252,7 @@ public void Extract_NoCustomExtractors_ReturnsOriginalFile()
250252
var results = extractor.Extract("test.custom", testData).ToList();
251253

252254
// Should return the original file since no custom extractor is registered
253-
Assert.AreEqual(1, results.Count);
255+
Assert.HasCount(results, 1);
254256
Assert.AreEqual("test.custom", results[0].Name);
255257
}
256258

@@ -267,7 +269,7 @@ public void Extract_CustomExtractorForKnownFormat_UsesBuiltInExtractor()
267269
var results = extractor.Extract(path).ToList();
268270

269271
// Should extract the ZIP normally, not use the custom extractor
270-
Assert.IsTrue(results.Count > 0);
272+
Assert.IsGreaterThan(results.Count, 0);
271273
Assert.IsTrue(results.Any(r => r.Name.Contains("EmptyFile")));
272274
}
273275
}

RecursiveExtractor.Tests/ExtractorTests/DisposeBehaviorTests.cs

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ namespace RecursiveExtractor.Tests.ExtractorTests;
1111
[TestClass]
1212
public class DisposeBehaviorTests : BaseExtractorTestClass
1313
{
14-
[DataTestMethod]
14+
[TestMethod]
1515
[DataRow("TestData.7z", 3, false)]
1616
[DataRow("TestData.tar", 6, false)]
1717
[DataRow("TestData.rar", 3, false)]
@@ -43,8 +43,6 @@ public class DisposeBehaviorTests : BaseExtractorTestClass
4343
[DataRow("EmptyFile.txt", 1, true)]
4444
[DataRow("TestDataArchivesNested.Zip", 54, true)]
4545
[DataRow("TestDataArchivesNested.Zip", 54, false)]
46-
[DataRow("TestDataArchivesNested.Zip", 54, true)]
47-
[DataRow("TestDataArchivesNested.Zip", 54, false)]
4846
public void ExtractArchiveAndDisposeWhileEnumerating(string fileName, int expectedNumFiles = 3,
4947
bool parallel = false)
5048
{
@@ -63,11 +61,11 @@ public void ExtractArchiveAndDisposeWhileEnumerating(string fileName, int expect
6361
Assert.AreEqual(expectedNumFiles, disposedResults.Count);
6462
foreach (var disposedResult in disposedResults)
6563
{
66-
Assert.ThrowsException<ObjectDisposedException>(() => disposedResult.Content.Position);
64+
Assert.ThrowsExactly<ObjectDisposedException>(() => disposedResult.Content.Position);
6765
}
6866
}
6967

70-
[DataTestMethod]
68+
[TestMethod]
7169
[DataRow("TestData.7z", 3, false)]
7270
[DataRow("TestData.tar", 6, false)]
7371
[DataRow("TestData.rar", 3, false)]
@@ -99,8 +97,6 @@ public void ExtractArchiveAndDisposeWhileEnumerating(string fileName, int expect
9997
[DataRow("EmptyFile.txt", 1, true)]
10098
[DataRow("TestDataArchivesNested.Zip", 54, true)]
10199
[DataRow("TestDataArchivesNested.Zip", 54, false)]
102-
[DataRow("TestDataArchivesNested.Zip", 54, true)]
103-
[DataRow("TestDataArchivesNested.Zip", 54, false)]
104100
public async Task ExtractArchiveAndDisposeWhileEnumeratingAsync(string fileName, int expectedNumFiles = 3,
105101
bool parallel = false)
106102
{
@@ -119,11 +115,11 @@ public async Task ExtractArchiveAndDisposeWhileEnumeratingAsync(string fileName,
119115
Assert.AreEqual(expectedNumFiles, disposedResults.Count);
120116
foreach (var disposedResult in disposedResults)
121117
{
122-
Assert.ThrowsException<ObjectDisposedException>(() => disposedResult.Content.Position);
118+
Assert.ThrowsExactly<ObjectDisposedException>(() => disposedResult.Content.Position);
123119
}
124120
}
125121

126-
[DataTestMethod]
122+
[TestMethod]
127123
[DataRow("TestData.zip")]
128124
public void EnsureDisposedWithExtractToDirectory(string fileName)
129125
{
@@ -146,7 +142,7 @@ public void EnsureDisposedWithExtractToDirectory(string fileName)
146142
}
147143
}
148144

149-
[DataTestMethod]
145+
[TestMethod]
150146
[DataRow("TestData.zip")]
151147
public async Task EnsureDisposedWithExtractToDirectoryAsync(string fileName)
152148
{

RecursiveExtractor.Tests/ExtractorTests/EncryptedArchiveTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ namespace RecursiveExtractor.Tests.ExtractorTests;
1111
[TestClass]
1212
public class EncryptedArchiveTests : BaseExtractorTestClass
1313
{
14-
[DataTestMethod]
14+
[TestMethod]
1515
[DataRow("TestDataEncryptedZipCrypto.zip")]
1616
[DataRow("TestDataEncryptedAes.zip")]
1717
[DataRow("TestDataEncrypted.7z")]
@@ -26,7 +26,7 @@ public void FileTypeSetCorrectlyForEncryptedArchives(string fileName, int expect
2626
Assert.AreEqual(FileEntryStatus.EncryptedArchive, results.First().EntryStatus);
2727
}
2828

29-
[DataTestMethod]
29+
[TestMethod]
3030
[DataRow("TestDataEncryptedZipCrypto.zip")]
3131
[DataRow("TestDataEncryptedAes.zip")]
3232
[DataRow("TestDataEncrypted.7z")]
@@ -46,7 +46,7 @@ public async Task FileTypeSetCorrectlyForEncryptedArchivesAsync(string fileName,
4646
Assert.AreEqual(FileEntryStatus.EncryptedArchive, results.First().EntryStatus);
4747
}
4848

49-
[DataTestMethod]
49+
[TestMethod]
5050
[DataRow("TestDataEncryptedZipCrypto.zip")]
5151
[DataRow("TestDataEncryptedAes.zip")]
5252
[DataRow("TestDataEncrypted.7z")]
@@ -64,7 +64,7 @@ public void ExtractEncryptedArchive(string fileName, int expectedNumFiles = 3)
6464
Assert.AreEqual(0, results.Count(x => x.EntryStatus == FileEntryStatus.EncryptedArchive || x.EntryStatus == FileEntryStatus.FailedArchive));
6565
}
6666

67-
[DataTestMethod]
67+
[TestMethod]
6868
[DataRow("TestDataEncryptedZipCrypto.zip")]
6969
[DataRow("TestDataEncryptedAes.zip")]
7070
[DataRow("TestDataEncrypted.7z")]

RecursiveExtractor.Tests/ExtractorTests/FilterTests.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace RecursiveExtractor.Tests.ExtractorTests;
1010
[TestClass]
1111
public class FilterTests : BaseExtractorTestClass
1212
{
13-
[DataTestMethod]
13+
[TestMethod]
1414
[DataRow("TestData.zip")]
1515
[DataRow("TestData.7z")]
1616
[DataRow("TestData.tar")]
@@ -42,7 +42,7 @@ public async Task ExtractArchiveAsyncAllowFiltered(string fileName, int expected
4242
Assert.AreEqual(expectedNumFiles, numResults);
4343
}
4444

45-
[DataTestMethod]
45+
[TestMethod]
4646
[DataRow("TestData.zip")]
4747
[DataRow("TestData.7z")]
4848
[DataRow("TestData.tar")]
@@ -68,7 +68,7 @@ public void ExtractArchiveAllowFiltered(string fileName, int expectedNumFiles =
6868
Assert.AreEqual(expectedNumFiles, results.Count());
6969
}
7070

71-
[DataTestMethod]
71+
[TestMethod]
7272
[DataRow("TestData.zip")]
7373
[DataRow("TestData.7z")]
7474
[DataRow("TestData.tar")]
@@ -94,7 +94,7 @@ public void ExtractArchiveParallelAllowFiltered(string fileName, int expectedNum
9494
Assert.AreEqual(expectedNumFiles, results.Count());
9595
}
9696

97-
[DataTestMethod]
97+
[TestMethod]
9898
[DataRow("TestData.zip", 4)]
9999
[DataRow("TestData.7z")]
100100
[DataRow("TestData.tar", 5)]
@@ -119,7 +119,7 @@ public void ExtractArchiveDenyFiltered(string fileName, int expectedNumFiles = 2
119119
Assert.AreEqual(expectedNumFiles, results.Count());
120120
}
121121

122-
[DataTestMethod]
122+
[TestMethod]
123123
[DataRow("TestData.zip", 4)]
124124
[DataRow("TestData.7z")]
125125
[DataRow("TestData.tar", 5)]
@@ -145,7 +145,7 @@ public void ExtractArchiveParallelDenyFiltered(string fileName, int expectedNumF
145145
Assert.AreEqual(expectedNumFiles, results.Count());
146146
}
147147

148-
[DataTestMethod]
148+
[TestMethod]
149149
[DataRow("TestData.zip", 4)]
150150
[DataRow("TestData.7z")]
151151
[DataRow("TestData.tar", 5)]
@@ -177,7 +177,7 @@ public async Task ExtractArchiveAsyncDenyFiltered(string fileName, int expectedN
177177
Assert.AreEqual(expectedNumFiles, numResults);
178178
}
179179

180-
[DataTestMethod]
180+
[TestMethod]
181181
[DataRow(ArchiveFileType.ZIP, new[] { ArchiveFileType.ZIP }, new ArchiveFileType[] { }, false)]
182182
[DataRow(ArchiveFileType.ZIP, new[] { ArchiveFileType.TAR }, new ArchiveFileType[] { }, true)]
183183
[DataRow(ArchiveFileType.ZIP, new ArchiveFileType[] { }, new[] { ArchiveFileType.ZIP }, true)]

RecursiveExtractor.Tests/ExtractorTests/MiniMagicTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace RecursiveExtractor.Tests.ExtractorTests;
77
[TestClass]
88
public class MiniMagicTests : BaseExtractorTestClass
99
{
10-
[DataTestMethod]
10+
[TestMethod]
1111
[DataRow("TestData.zip", ArchiveFileType.ZIP)]
1212
[DataRow("TestData.7z", ArchiveFileType.P7ZIP)]
1313
[DataRow("TestData.Tar", ArchiveFileType.TAR)]

0 commit comments

Comments
 (0)