@@ -12,6 +12,8 @@ namespace RecursiveExtractor.Tests.ExtractorTests;
1212[ TestClass ]
1313public 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 }
0 commit comments