1
1
using System ;
2
2
using System . Collections . Generic ;
3
+ using System . Collections . ObjectModel ;
3
4
using System . Diagnostics . CodeAnalysis ;
4
5
using System . Linq ;
5
- using PcapDotNet . Base ;
6
6
using PcapDotNet . Packets . Ethernet ;
7
7
using PcapDotNet . Packets . Igmp ;
8
8
using PcapDotNet . Packets . IpV4 ;
@@ -22,10 +22,10 @@ public class IgmpTests
22
22
public void RandomIgmpTest ( )
23
23
{
24
24
EthernetLayer ethernetLayer = new EthernetLayer
25
- {
26
- Source = new MacAddress ( "00:01:02:03:04:05" ) ,
27
- Destination = new MacAddress ( "A0:A1:A2:A3:A4:A5" )
28
- } ;
25
+ {
26
+ Source = new MacAddress ( "00:01:02:03:04:05" ) ,
27
+ Destination = new MacAddress ( "A0:A1:A2:A3:A4:A5" )
28
+ } ;
29
29
30
30
int seed = new Random ( ) . Next ( ) ;
31
31
Console . WriteLine ( "Seed: " + seed ) ;
@@ -166,10 +166,10 @@ public void IgmpQueryVersion3BigMaxResponseTimeTest()
166
166
{
167
167
Assert . Throws < ArgumentOutOfRangeException > ( ( ) => PacketBuilder . Build ( DateTime . Now , new EthernetLayer ( ) , new IpV4Layer ( ) ,
168
168
new IgmpQueryVersion3Layer
169
- {
170
- MaxResponseTime = TimeSpan . FromHours ( 1 ) ,
171
- QueryInterval = TimeSpan . FromSeconds ( 1 )
172
- } ) ) ;
169
+ {
170
+ MaxResponseTime = TimeSpan . FromHours ( 1 ) ,
171
+ QueryInterval = TimeSpan . FromSeconds ( 1 )
172
+ } ) ) ;
173
173
}
174
174
175
175
[ Fact ]
@@ -200,29 +200,29 @@ public void IgmpQueryVersion2SmallMaxResponseTimeTest()
200
200
Assert . Throws < ArgumentOutOfRangeException > ( ( ) => PacketBuilder . Build ( DateTime . Now ,
201
201
new EthernetLayer ( ) , new IpV4Layer ( ) ,
202
202
new IgmpQueryVersion2Layer
203
- {
204
- MaxResponseTime = TimeSpan . FromSeconds ( - 1 )
205
- } ) ) ;
203
+ {
204
+ MaxResponseTime = TimeSpan . FromSeconds ( - 1 )
205
+ } ) ) ;
206
206
}
207
207
208
208
[ Fact ]
209
209
public void IgmpQueryVersion2BigMaxResponseTimeTest ( )
210
210
{
211
211
Assert . Throws < ArgumentOutOfRangeException > ( ( ) => PacketBuilder . Build ( DateTime . Now , new EthernetLayer ( ) , new IpV4Layer ( ) ,
212
212
new IgmpQueryVersion2Layer
213
- {
214
- MaxResponseTime = TimeSpan . FromMinutes ( 5 )
215
- } ) ) ;
213
+ {
214
+ MaxResponseTime = TimeSpan . FromMinutes ( 5 )
215
+ } ) ) ;
216
216
}
217
217
218
218
[ Fact ]
219
219
public void IgmpInvalidTest ( )
220
220
{
221
221
Packet queryVersion2 = PacketBuilder . Build ( DateTime . Now , new EthernetLayer ( ) , new IpV4Layer ( ) ,
222
222
new IgmpQueryVersion2Layer
223
- {
224
- MaxResponseTime = TimeSpan . FromSeconds ( 1 ) ,
225
- } ) ;
223
+ {
224
+ MaxResponseTime = TimeSpan . FromSeconds ( 1 ) ,
225
+ } ) ;
226
226
227
227
Assert . True ( queryVersion2 . IsValid ) ;
228
228
Assert . True ( queryVersion2 . Ethernet . IpV4 . Igmp . IsChecksumCorrect ) ;
@@ -244,10 +244,10 @@ public void IgmpInvalidTest()
244
244
// Big query version 3
245
245
Packet queryVersion3 = PacketBuilder . Build ( DateTime . Now , new EthernetLayer ( ) , new IpV4Layer ( ) ,
246
246
new IgmpQueryVersion3Layer
247
- {
248
- MaxResponseTime = TimeSpan . FromSeconds ( 1 ) ,
249
- QueryInterval = TimeSpan . FromSeconds ( 1 ) ,
250
- } ) ;
247
+ {
248
+ MaxResponseTime = TimeSpan . FromSeconds ( 1 ) ,
249
+ QueryInterval = TimeSpan . FromSeconds ( 1 ) ,
250
+ } ) ;
251
251
Assert . True ( queryVersion3 . IsValid , "IsValid" ) ;
252
252
buffer = new byte [ queryVersion3 . Length + 2 ] ;
253
253
queryVersion3 . Buffer . BlockCopy ( 0 , buffer , 0 , queryVersion3 . Length ) ;
@@ -283,9 +283,9 @@ public void IgmpInvalidTest()
283
283
// Big report version 2
284
284
Packet reportVersion2 = PacketBuilder . Build ( DateTime . Now , new EthernetLayer ( ) , new IpV4Layer ( ) ,
285
285
new IgmpReportVersion2Layer
286
- {
287
- MaxResponseTime = TimeSpan . FromSeconds ( 1 )
288
- } ) ;
286
+ {
287
+ MaxResponseTime = TimeSpan . FromSeconds ( 1 )
288
+ } ) ;
289
289
290
290
buffer = new byte [ reportVersion2 . Length + 2 ] ;
291
291
reportVersion2 . Buffer . BlockCopy ( 0 , buffer , 0 , reportVersion2 . Length ) ;
@@ -300,14 +300,14 @@ public void IgmpInvalidTest()
300
300
Packet reportVersion3 = PacketBuilder . Build ( DateTime . Now , new EthernetLayer ( ) , new IpV4Layer ( ) ,
301
301
new IgmpReportVersion3Layer
302
302
{
303
- GroupRecords = new [ ]
303
+ GroupRecords = new ReadOnlyCollection < IgmpGroupRecord > ( new [ ]
304
304
{
305
305
new IgmpGroupRecord (
306
306
IgmpRecordType . CurrentStateRecordModeIsExclude ,
307
307
IpV4Address . Zero , new List < IpV4Address > ( ) , Datagram . Empty )
308
- } . AsReadOnly ( )
308
+ } )
309
309
} ) ;
310
-
310
+
311
311
buffer = new byte [ reportVersion3 . Length ] ;
312
312
reportVersion3 . Buffer . BlockCopy ( 0 , buffer , 0 , buffer . Length ) ;
313
313
buffer . Write ( EthernetDatagram . HeaderLengthValue + IpV4Datagram . HeaderMinimumLength + 1 , 1 ) ;
@@ -373,7 +373,7 @@ public void IgmpIllegalQueryVersionTest()
373
373
public void IgmpGroupRecordBadAuxiliaryDataLengthTest ( )
374
374
{
375
375
Assert . Throws < ArgumentException > ( ( ) => new IgmpGroupRecord ( IgmpRecordType . SourceListChangeAllowNewSources , IpV4Address . Zero , new List < IpV4Address > ( ) ,
376
- new Datagram ( new byte [ ] { 1 } ) ) ) ;
376
+ new Datagram ( new byte [ ] { 1 } ) ) ) ;
377
377
}
378
378
379
379
[ Fact ]
@@ -387,7 +387,7 @@ public void IgmpGroupRecordTest()
387
387
Assert . False ( record . Equals ( null ) ) ;
388
388
Assert . NotEqual ( record , new IgmpGroupRecord ( IgmpRecordType . CurrentStateRecordModeIsExclude , record . MulticastAddress , record . SourceAddresses , record . AuxiliaryData ) ) ;
389
389
Assert . NotEqual ( record , new IgmpGroupRecord ( record . RecordType , new IpV4Address ( "1.2.3.4" ) , record . SourceAddresses , record . AuxiliaryData ) ) ;
390
- Assert . NotEqual ( record , new IgmpGroupRecord ( record . RecordType , record . MulticastAddress , new List < IpV4Address > ( new [ ] { new IpV4Address ( "2.3.4.5" ) } ) , record . AuxiliaryData ) ) ;
390
+ Assert . NotEqual ( record , new IgmpGroupRecord ( record . RecordType , record . MulticastAddress , new List < IpV4Address > ( new [ ] { new IpV4Address ( "2.3.4.5" ) } ) , record . AuxiliaryData ) ) ;
391
391
Assert . NotEqual ( record , new IgmpGroupRecord ( record . RecordType , record . MulticastAddress , record . SourceAddresses , new Datagram ( new byte [ 12 ] ) ) ) ;
392
392
Assert . NotEqual ( record . ToString ( ) , new IgmpGroupRecord ( record . RecordType , record . MulticastAddress , record . SourceAddresses , new Datagram ( new byte [ 12 ] ) ) . ToString ( ) ) ;
393
393
}
@@ -408,23 +408,23 @@ public void IgmpExtractLayerBadMessageTypeTest()
408
408
public void IgmpTooBigQueryRobustnessVariableTest ( )
409
409
{
410
410
Assert . Throws < ArgumentOutOfRangeException > ( ( ) => PacketBuilder . Build ( DateTime . Now , new EthernetLayer ( ) , new IpV4Layer ( ) , new IgmpQueryVersion3Layer
411
- {
412
- QueryRobustnessVariable = 255
413
- } ) ) ;
411
+ {
412
+ QueryRobustnessVariable = 255
413
+ } ) ) ;
414
414
}
415
415
416
416
[ Fact ]
417
417
public void DifferentIgmpSimpleLayersTest ( )
418
418
{
419
419
IgmpVersion1PlusSimpleLayer layer1 = new IgmpQueryVersion1Layer
420
- {
421
- GroupAddress = new IpV4Address ( "1.2.3.4" )
422
- } ;
420
+ {
421
+ GroupAddress = new IpV4Address ( "1.2.3.4" )
422
+ } ;
423
423
IgmpVersion1PlusSimpleLayer layer2 = new IgmpQueryVersion2Layer
424
- {
425
- GroupAddress = new IpV4Address ( "1.2.3.4" ) ,
426
- MaxResponseTime = TimeSpan . FromMinutes ( 55 )
427
- } ;
424
+ {
425
+ GroupAddress = new IpV4Address ( "1.2.3.4" ) ,
426
+ MaxResponseTime = TimeSpan . FromMinutes ( 55 )
427
+ } ;
428
428
Assert . False ( layer1 . Equals ( layer2 ) ) ;
429
429
}
430
430
@@ -476,7 +476,7 @@ public void IgmpDatagramRetryInThisManySecondsForReplyCodeThatIsNotRequestPendin
476
476
[ Fact ]
477
477
public void IgmpReplyVersion0LayerSetInvalidType ( )
478
478
{
479
- Assert . Throws < ArgumentOutOfRangeException > ( ( ) => new IgmpReplyVersion0Layer { MessageType = IgmpMessageType . LeaveGroupVersion2 } ) ;
479
+ Assert . Throws < ArgumentOutOfRangeException > ( ( ) => new IgmpReplyVersion0Layer { MessageType = IgmpMessageType . LeaveGroupVersion2 } ) ;
480
480
}
481
481
482
482
[ Fact ]
@@ -485,4 +485,4 @@ public void IgmpRequestVersion0LayerSetInvalidType()
485
485
Assert . Throws < ArgumentOutOfRangeException > ( ( ) => new IgmpRequestVersion0Layer { MessageType = IgmpMessageType . LeaveGroupVersion2 } ) ;
486
486
}
487
487
}
488
- }
488
+ }
0 commit comments