Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
P
Pcap-Net
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
Pcap-Net
Commits
a2b06200
Commit
a2b06200
authored
May 29, 2010
by
Brickner_cp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Better comparison to Wireshark.
Improved Ethernet FCS.
parent
cdf717f9
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
81 additions
and
45 deletions
+81
-45
LivePacketDeviceTests.cs
PcapDotNet/src/PcapDotNet.Core.Test/LivePacketDeviceTests.cs
+14
-13
WiresharkCompareTests.cs
PcapDotNet/src/PcapDotNet.Core.Test/WiresharkCompareTests.cs
+55
-27
EthernetDatagram.cs
...otNet/src/PcapDotNet.Packets/Ethernet/EthernetDatagram.cs
+1
-1
MoreAssert.cs
PcapDotNet/src/PcapDotNet.TestUtils/MoreAssert.cs
+11
-4
No files found.
PcapDotNet/src/PcapDotNet.Core.Test/LivePacketDeviceTests.cs
View file @
a2b06200
...
@@ -2,6 +2,7 @@ using System;
...
@@ -2,6 +2,7 @@ using System;
using
System.Collections.Generic
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Linq
;
using
System.Threading
;
using
System.Threading
;
using
PcapDotNet.Base
;
using
PcapDotNet.Core.Extensions
;
using
PcapDotNet.Core.Extensions
;
using
PcapDotNet.Packets
;
using
PcapDotNet.Packets
;
using
Microsoft.VisualStudio.TestTools.UnitTesting
;
using
Microsoft.VisualStudio.TestTools.UnitTesting
;
...
@@ -160,7 +161,7 @@ namespace PcapDotNet.Core.Test
...
@@ -160,7 +161,7 @@ namespace PcapDotNet.Core.Test
TestReceivePackets
(
NumPacketsToSend
,
NumPacketsToSend
/
2
,
int
.
MaxValue
,
2
,
PacketSize
,
PacketCommunicatorReceiveResult
.
Ok
,
NumPacketsToSend
/
2
,
0
,
0.02
);
TestReceivePackets
(
NumPacketsToSend
,
NumPacketsToSend
/
2
,
int
.
MaxValue
,
2
,
PacketSize
,
PacketCommunicatorReceiveResult
.
Ok
,
NumPacketsToSend
/
2
,
0
,
0.02
);
// Wait for more packets
// Wait for more packets
TestReceivePackets
(
NumPacketsToSend
,
0
,
int
.
MaxValue
,
2
,
PacketSize
,
PacketCommunicatorReceiveResult
.
None
,
NumPacketsToSend
,
2
,
2.
071
);
TestReceivePackets
(
NumPacketsToSend
,
0
,
int
.
MaxValue
,
2
,
PacketSize
,
PacketCommunicatorReceiveResult
.
None
,
NumPacketsToSend
,
2
,
2.
14
);
TestReceivePackets
(
NumPacketsToSend
,
-
1
,
int
.
MaxValue
,
2
,
PacketSize
,
PacketCommunicatorReceiveResult
.
None
,
NumPacketsToSend
,
2
,
2.3
);
TestReceivePackets
(
NumPacketsToSend
,
-
1
,
int
.
MaxValue
,
2
,
PacketSize
,
PacketCommunicatorReceiveResult
.
None
,
NumPacketsToSend
,
2
,
2.3
);
TestReceivePackets
(
NumPacketsToSend
,
NumPacketsToSend
+
1
,
int
.
MaxValue
,
2
,
PacketSize
,
PacketCommunicatorReceiveResult
.
None
,
NumPacketsToSend
,
2
,
2.051
);
TestReceivePackets
(
NumPacketsToSend
,
NumPacketsToSend
+
1
,
int
.
MaxValue
,
2
,
PacketSize
,
PacketCommunicatorReceiveResult
.
None
,
NumPacketsToSend
,
2
,
2.051
);
...
@@ -570,30 +571,30 @@ namespace PcapDotNet.Core.Test
...
@@ -570,30 +571,30 @@ namespace PcapDotNet.Core.Test
communicator
.
SetSamplingMethod
(
new
SamplingMethodFirstAfterInterval
(
TimeSpan
.
FromSeconds
(
1
)));
communicator
.
SetSamplingMethod
(
new
SamplingMethodFirstAfterInterval
(
TimeSpan
.
FromSeconds
(
1
)));
int
numPacketsGot
;
int
numPacketsGot
;
communicator
.
ReceiveSomePackets
(
out
numPacketsGot
,
100
,
p
=>
{
});
communicator
.
ReceiveSomePackets
(
out
numPacketsGot
,
100
,
p
=>
{
});
Packet
expectedPacket
=
_random
.
NextEthernetPacket
(
60
,
sourceMac
,
destinationMac
);
Packet
[]
packetsToSend
=
new
Packet
[
11
];
packetsToSend
[
0
]
=
_random
.
NextEthernetPacket
(
60
,
sourceMac
,
destinationMac
);
for
(
int
i
=
0
;
i
!=
10
;
++
i
)
packetsToSend
[
i
+
1
]
=
_random
.
NextEthernetPacket
(
60
*
(
i
+
2
),
sourceMac
,
destinationMac
);
List
<
Packet
>
packets
=
new
List
<
Packet
>(
6
);
List
<
Packet
>
packets
=
new
List
<
Packet
>(
6
);
Thread
thread
=
new
Thread
(()
=>
packets
.
AddRange
(
communicator
.
ReceivePackets
(
6
)));
Thread
thread
=
new
Thread
(()
=>
packets
.
AddRange
(
communicator
.
ReceivePackets
(
6
)));
thread
.
Start
();
thread
.
Start
();
communicator
.
SendPacket
(
expectedPacket
);
Thread
.
Sleep
(
TimeSpan
.
FromSeconds
(
0.75
));
communicator
.
SendPacket
(
packetsToSend
[
0
]);
Thread
.
Sleep
(
TimeSpan
.
FromSeconds
(
0.7
));
for
(
int
i
=
0
;
i
!=
10
;
++
i
)
for
(
int
i
=
0
;
i
!=
10
;
++
i
)
{
{
expectedPacket
=
_random
.
NextEthernetPacket
(
60
*
(
i
+
2
),
sourceMac
,
destinationMac
);
communicator
.
SendPacket
(
packetsToSend
[
i
+
1
]);
communicator
.
SendPacket
(
expectedPacket
);
Thread
.
Sleep
(
TimeSpan
.
FromSeconds
(
0.55
));
Thread
.
Sleep
(
TimeSpan
.
FromSeconds
(
0.5
));
}
}
if
(!
thread
.
Join
(
TimeSpan
.
FromSeconds
(
10
)))
if
(!
thread
.
Join
(
TimeSpan
.
FromSeconds
(
10
)))
thread
.
Abort
();
thread
.
Abort
();
Assert
.
AreEqual
(
6
,
packets
.
Count
);
Assert
.
AreEqual
(
6
,
packets
.
Count
,
packets
.
Select
(
p
=>
(
p
.
Timestamp
-
packets
[
0
].
Timestamp
).
TotalSeconds
+
"("
+
p
.
Length
+
")"
).
SequenceToString
(
", "
)
);
Packet
packet
;
Packet
packet
;
for
(
int
i
=
0
;
i
!=
6
;
++
i
)
for
(
int
i
=
0
;
i
!=
6
;
++
i
)
{
// result = communicator.ReceivePacket(out packet);
// Assert.AreEqual(PacketCommunicatorReceiveResult.Ok, result);
// Assert.AreEqual(60 * (i * 2 + 1), packet.Length, i.ToString());
Assert
.
AreEqual
(
60
*
(
i
*
2
+
1
),
packets
[
i
].
Length
,
i
.
ToString
());
Assert
.
AreEqual
(
60
*
(
i
*
2
+
1
),
packets
[
i
].
Length
,
i
.
ToString
());
}
PacketCommunicatorReceiveResult
result
=
communicator
.
ReceivePacket
(
out
packet
);
PacketCommunicatorReceiveResult
result
=
communicator
.
ReceivePacket
(
out
packet
);
Assert
.
AreEqual
(
PacketCommunicatorReceiveResult
.
Timeout
,
result
);
Assert
.
AreEqual
(
PacketCommunicatorReceiveResult
.
Timeout
,
result
);
Assert
.
IsNull
(
packet
);
Assert
.
IsNull
(
packet
);
...
...
PcapDotNet/src/PcapDotNet.Core.Test/WiresharkCompareTests.cs
View file @
a2b06200
...
@@ -213,7 +213,7 @@ namespace PcapDotNet.Core.Test
...
@@ -213,7 +213,7 @@ namespace PcapDotNet.Core.Test
}
}
else
else
{
{
const
byte
RetryNumber
=
244
;
const
byte
RetryNumber
=
89
;
pcapFilename
=
Path
.
GetTempPath
()
+
"temp."
+
RetryNumber
+
".pcap"
;
pcapFilename
=
Path
.
GetTempPath
()
+
"temp."
+
RetryNumber
+
".pcap"
;
List
<
Packet
>
packetsList
=
new
List
<
Packet
>();
List
<
Packet
>
packetsList
=
new
List
<
Packet
>();
new
OfflinePacketDevice
(
pcapFilename
).
Open
().
ReceivePackets
(
1000
,
packetsList
.
Add
);
new
OfflinePacketDevice
(
pcapFilename
).
Open
().
ReceivePackets
(
1000
,
packetsList
.
Add
);
...
@@ -630,6 +630,7 @@ namespace PcapDotNet.Core.Test
...
@@ -630,6 +630,7 @@ namespace PcapDotNet.Core.Test
field
.
Show
().
StartsWith
(
"Stream identifier (with option length = "
)
||
field
.
Show
().
StartsWith
(
"Stream identifier (with option length = "
)
||
field
.
Show
().
Contains
(
"with too"
)
||
field
.
Show
().
Contains
(
"with too"
)
||
field
.
Show
().
Contains
(
" bytes says option goes past end of options"
)
||
field
.
Show
().
Contains
(
" bytes says option goes past end of options"
)
||
field
.
Show
().
Contains
(
"(length byte past end of options)"
)
||
field
.
Fields
().
First
().
Show
().
StartsWith
(
"Pointer: "
)
&&
field
.
Fields
().
First
().
Show
().
EndsWith
(
" (points to middle of address)"
)
||
field
.
Fields
().
First
().
Show
().
StartsWith
(
"Pointer: "
)
&&
field
.
Fields
().
First
().
Show
().
EndsWith
(
" (points to middle of address)"
)
||
field
.
Fields
().
Where
(
value
=>
value
.
Show
()
==
"(suboption would go past end of option)"
).
Count
()
!=
0
,
field
.
Show
());
field
.
Fields
().
Where
(
value
=>
value
.
Show
()
==
"(suboption would go past end of option)"
).
Count
()
!=
0
,
field
.
Show
());
break
;
break
;
...
@@ -803,15 +804,28 @@ namespace PcapDotNet.Core.Test
...
@@ -803,15 +804,28 @@ namespace PcapDotNet.Core.Test
break
;
break
;
case
"data"
:
case
"data"
:
field
.
AssertValue
(((
IcmpIpV4HeaderPlus64BitsPayloadDatagram
)
icmpDatagram
).
IpV4
.
Payload
);
var
casted1
=
icmpDatagram
as
IcmpIpV4HeaderPlus64BitsPayloadDatagram
;
if
(
casted1
!=
null
)
field
.
AssertValue
(
casted1
.
IpV4
.
Payload
);
else
field
.
AssertValue
(
icmpDatagram
.
Payload
);
break
;
break
;
case
"data.data"
:
case
"data.data"
:
field
.
AssertShow
(((
IcmpIpV4HeaderPlus64BitsPayloadDatagram
)
icmpDatagram
).
IpV4
.
Payload
);
var
casted2
=
icmpDatagram
as
IcmpIpV4HeaderPlus64BitsPayloadDatagram
;
if
(
casted2
!=
null
)
field
.
AssertShow
(
casted2
.
IpV4
.
Payload
);
else
field
.
AssertShow
(
icmpDatagram
.
Payload
);
break
;
break
;
case
"data.len"
:
case
"data.len"
:
field
.
AssertShowDecimal
(((
IcmpIpV4HeaderPlus64BitsPayloadDatagram
)
icmpDatagram
).
IpV4
.
Payload
.
Length
);
var
casted3
=
icmpDatagram
as
IcmpIpV4HeaderPlus64BitsPayloadDatagram
;
if
(
casted3
!=
null
)
field
.
AssertShowDecimal
(
casted3
.
IpV4
.
Payload
.
Length
);
else
field
.
AssertShowDecimal
(
icmpDatagram
.
Payload
.
Length
);
break
;
break
;
case
""
:
case
""
:
...
@@ -924,19 +938,24 @@ namespace PcapDotNet.Core.Test
...
@@ -924,19 +938,24 @@ namespace PcapDotNet.Core.Test
int
currentInnerFieldIndex
=
0
;
int
currentInnerFieldIndex
=
0
;
innerFields
[
currentInnerFieldIndex
++].
AssertShow
(
string
.
Format
(
"{0}... .... .... .... = {1}"
,
greDatagram
.
ChecksumPresent
.
ToInt
(),
innerFields
[
currentInnerFieldIndex
++].
AssertShow
(
string
.
Format
(
"{0}... .... .... .... = {1}"
,
greDatagram
.
ChecksumPresent
.
ToInt
(),
(
greDatagram
.
ChecksumPresent
?
"Checksum"
:
"No checksum"
)));
(
greDatagram
.
ChecksumPresent
?
"Checksum"
:
"No checksum"
)));
innerFields
[
currentInnerFieldIndex
++].
AssertShow
(
string
.
Format
(
".{0}.. .... .... .... = {1}"
,
greDatagram
.
RoutingPresent
.
ToInt
(),
innerFields
[
currentInnerFieldIndex
++].
AssertShow
(
string
.
Format
(
".{0}.. .... .... .... = {1}"
,
greDatagram
.
RoutingPresent
.
ToInt
(),
(
greDatagram
.
RoutingPresent
?
"Routing"
:
"No routing"
)));
(
greDatagram
.
RoutingPresent
?
"Routing"
:
"No routing"
)));
innerFields
[
currentInnerFieldIndex
++].
AssertShow
(
string
.
Format
(
"..{0}. .... .... .... = {1}"
,
greDatagram
.
KeyPresent
.
ToInt
(),
innerFields
[
currentInnerFieldIndex
++].
AssertShow
(
string
.
Format
(
"..{0}. .... .... .... = {1}"
,
greDatagram
.
KeyPresent
.
ToInt
(),
(
greDatagram
.
KeyPresent
?
"Key"
:
"No key"
)));
(
greDatagram
.
KeyPresent
?
"Key"
:
"No key"
)));
innerFields
[
currentInnerFieldIndex
++].
AssertShow
(
string
.
Format
(
"...{0} .... .... .... = {1}"
,
greDatagram
.
SequenceNumberPresent
.
ToInt
(),
innerFields
[
currentInnerFieldIndex
++].
AssertShow
(
string
.
Format
(
"...{0} .... .... .... = {1}"
,
(
greDatagram
.
SequenceNumberPresent
?
"Sequence number"
:
"No sequence number"
)));
greDatagram
.
SequenceNumberPresent
.
ToInt
(),
(
greDatagram
.
SequenceNumberPresent
?
"Sequence number"
:
"No sequence number"
)));
innerFields
[
currentInnerFieldIndex
++].
AssertShow
(
string
.
Format
(
".... {0}... .... .... = {1}"
,
greDatagram
.
StrictSourceRoute
.
ToInt
(),
innerFields
[
currentInnerFieldIndex
++].
AssertShow
(
string
.
Format
(
".... {0}... .... .... = {1}"
,
greDatagram
.
StrictSourceRoute
.
ToInt
(),
(
greDatagram
.
StrictSourceRoute
?
"Strict source route"
:
"No strict source route"
)));
(
greDatagram
.
StrictSourceRoute
?
"Strict source route"
:
"No strict source route"
)));
innerFields
[
currentInnerFieldIndex
++].
AssertShow
(
string
.
Format
(
".... .{0} .... .... = Recursion control: {1}"
,
innerFields
[
currentInnerFieldIndex
++].
AssertShow
(
string
.
Format
(
".... .{0} .... .... = Recursion control: {1}"
,
greDatagram
.
RecursionControl
.
ToBits
().
Skip
(
5
).
Select
(
b
=>
b
.
ToInt
()).
greDatagram
.
RecursionControl
.
ToBits
().
Skip
(
5
).
Select
(
b
=>
b
.
ToInt
()).
SequenceToString
(),
SequenceToString
(),
greDatagram
.
RecursionControl
));
greDatagram
.
RecursionControl
));
if
(
isEnhanced
)
if
(
isEnhanced
)
{
{
innerFields
[
currentInnerFieldIndex
++].
AssertShow
(
string
.
Format
(
".... .... {0}... .... = {1}"
,
innerFields
[
currentInnerFieldIndex
++].
AssertShow
(
string
.
Format
(
".... .... {0}... .... = {1}"
,
...
@@ -946,10 +965,11 @@ namespace PcapDotNet.Core.Test
...
@@ -946,10 +965,11 @@ namespace PcapDotNet.Core.Test
:
"No acknowledgment number"
)));
:
"No acknowledgment number"
)));
innerFields
[
currentInnerFieldIndex
++].
AssertShow
(
string
.
Format
(
".... .... .{0}... = Flags: {1}"
,
innerFields
[
currentInnerFieldIndex
++].
AssertShow
(
string
.
Format
(
".... .... .{0}... = Flags: {1}"
,
greDatagram
.
FutureUseBits
.
ToBits
().
Skip
(
3
).
Take
(
4
).
Select
(
b
=>
b
.
ToInt
()).
greDatagram
.
FutureUseBits
.
ToBits
().
Skip
(
3
).
Take
(
4
).
Select
(
SequenceToString
().
b
=>
b
.
ToInt
()).
Insert
(
3
,
" "
),
SequenceToString
().
greDatagram
.
FutureUseBits
));
Insert
(
3
,
" "
),
greDatagram
.
FutureUseBits
));
}
}
else
else
{
{
...
@@ -961,9 +981,9 @@ namespace PcapDotNet.Core.Test
...
@@ -961,9 +981,9 @@ namespace PcapDotNet.Core.Test
fullFlags
));
fullFlags
));
}
}
innerFields
[
currentInnerFieldIndex
++].
AssertShow
(
string
.
Format
(
".... .... .... .{0} = Version: {1}"
,
innerFields
[
currentInnerFieldIndex
++].
AssertShow
(
string
.
Format
(
".... .... .... .{0} = Version: {1}"
,
((
byte
)
greDatagram
.
Version
).
ToBits
().
Skip
(
5
).
Select
(
b
=>
b
.
ToInt
()).
((
byte
)
greDatagram
.
Version
).
ToBits
().
Skip
(
5
).
Select
(
b
=>
b
.
ToInt
()).
SequenceToString
(),
SequenceToString
(),
(
byte
)
greDatagram
.
Version
));
(
byte
)
greDatagram
.
Version
));
}
}
else
if
(
field
.
Show
().
StartsWith
(
"Checksum: "
))
else
if
(
field
.
Show
().
StartsWith
(
"Checksum: "
))
{
{
...
@@ -1022,19 +1042,21 @@ namespace PcapDotNet.Core.Test
...
@@ -1022,19 +1042,21 @@ namespace PcapDotNet.Core.Test
case
"data"
:
case
"data"
:
case
"data.data"
:
case
"data.data"
:
if
(
greDatagram
.
Version
!=
GreVersion
.
EnhancedGre
&&
if
(
greDatagram
.
AcknowledgmentSequenceNumberPresent
&&
greDatagram
.
AcknowledgmentSequenceNumberPresent
)
(
greDatagram
.
Version
!=
GreVersion
.
EnhancedGre
||
!
greDatagram
.
SequenceNumberPresent
)
)
{
{
Assert
.
AreEqual
(
field
.
Value
().
Skip
(
8
).
SequenceToString
(),
greDatagram
.
Payload
.
BytesSequenceToHexadecimalString
(),
"GRE data.data"
);
Assert
.
AreEqual
(
field
.
Value
().
Skip
(
8
).
SequenceToString
(),
greDatagram
.
Payload
.
BytesSequenceToHexadecimalString
(),
"GRE data.data"
);
}
}
else
else
{
field
.
AssertValue
(
greDatagram
.
Payload
,
"GRE data.data"
);
field
.
AssertValue
(
greDatagram
.
Payload
,
"GRE data.data"
);
}
break
;
break
;
case
"data.len"
:
case
"data.len"
:
field
.
AssertShowDecimal
(
field
.
AssertShowDecimal
(
greDatagram
.
Payload
.
Length
+
(
greDatagram
.
Version
!=
GreVersion
.
EnhancedGre
&&
greDatagram
.
Payload
.
Length
+
(
greDatagram
.
AcknowledgmentSequenceNumberPresent
&&
greDatagram
.
AcknowledgmentSequenceNumberPresent
(
greDatagram
.
Version
!=
GreVersion
.
EnhancedGre
||
!
greDatagram
.
SequenceNumberPresent
)
?
4
?
4
:
0
),
"GRE data.len"
);
:
0
),
"GRE data.len"
);
break
;
break
;
...
@@ -1234,9 +1256,15 @@ namespace PcapDotNet.Core.Test
...
@@ -1234,9 +1256,15 @@ namespace PcapDotNet.Core.Test
{
{
if
(
currentOptionIndex
>=
options
.
Count
)
if
(
currentOptionIndex
>=
options
.
Count
)
{
{
Assert
.
IsFalse
(
options
.
IsValid
);
Assert
.
IsFalse
(
options
.
IsValid
,
"Options IsValid"
);
Assert
.
IsTrue
(
field
.
Show
().
Contains
(
"bytes says option goes past end of options"
));
// if (field.Show().StartsWith("Unknown ("))
Assert
.
AreEqual
(
options
.
Count
,
currentOptionIndex
);
// {
// int.Parse()
// }
Assert
.
IsTrue
(
// field.Show().StartsWith("Unknown (") || // Unknown in Wireshark but known (and invalid) in Pcap.Net
field
.
Show
().
Contains
(
"bytes says option goes past end of options"
),
"Options show: "
+
field
.
Show
());
Assert
.
AreEqual
(
options
.
Count
,
currentOptionIndex
,
"Options Count"
);
return
;
return
;
}
}
...
...
PcapDotNet/src/PcapDotNet.Packets/Ethernet/EthernetDatagram.cs
View file @
a2b06200
...
@@ -129,7 +129,7 @@ namespace PcapDotNet.Packets.Ethernet
...
@@ -129,7 +129,7 @@ namespace PcapDotNet.Packets.Ethernet
if
(
payloadByEtherType
==
null
)
if
(
payloadByEtherType
==
null
)
return
null
;
return
null
;
if
(
Length
-
payloadByEtherType
.
Length
>=
4
&&
Length
>=
68
)
if
(
Length
-
HeaderLength
-
payloadByEtherType
.
Length
>=
4
&&
Length
>=
68
)
return
new
Datagram
(
Buffer
,
Length
-
4
,
4
);
return
new
Datagram
(
Buffer
,
Length
-
4
,
4
);
return
null
;
return
null
;
}
}
...
...
PcapDotNet/src/PcapDotNet.TestUtils/MoreAssert.cs
View file @
a2b06200
...
@@ -11,21 +11,21 @@ namespace PcapDotNet.TestUtils
...
@@ -11,21 +11,21 @@ namespace PcapDotNet.TestUtils
public
static
void
IsBigger
<
T
>(
T
expectedMinimum
,
T
actual
)
where
T
:
IComparable
<
T
>
public
static
void
IsBigger
<
T
>(
T
expectedMinimum
,
T
actual
)
where
T
:
IComparable
<
T
>
{
{
if
(
expectedMinimum
.
CompareTo
(
actual
)
>=
0
)
if
(
expectedMinimum
.
CompareTo
(
actual
)
>=
0
)
throw
new
AssertFailedException
(
"Assert.IsBigger failed. Expected minimum: <"
+
expectedMinimum
+
throw
new
AssertFailedException
(
"
More
Assert.IsBigger failed. Expected minimum: <"
+
expectedMinimum
+
"> Actual: <"
+
actual
+
">."
);
"> Actual: <"
+
actual
+
">."
);
}
}
public
static
void
IsSmaller
<
T
>(
T
expectedMaximum
,
T
actual
)
where
T
:
IComparable
<
T
>
public
static
void
IsSmaller
<
T
>(
T
expectedMaximum
,
T
actual
)
where
T
:
IComparable
<
T
>
{
{
if
(
expectedMaximum
.
CompareTo
(
actual
)
<=
0
)
if
(
expectedMaximum
.
CompareTo
(
actual
)
<=
0
)
throw
new
AssertFailedException
(
"Assert.IsSmaller failed. Expected maximum: <"
+
expectedMaximum
+
throw
new
AssertFailedException
(
"
More
Assert.IsSmaller failed. Expected maximum: <"
+
expectedMaximum
+
"> Actual: <"
+
actual
+
">."
);
"> Actual: <"
+
actual
+
">."
);
}
}
public
static
void
IsBiggerOrEqual
<
T
>(
T
expectedMinimum
,
T
actual
,
string
message
)
where
T
:
IComparable
<
T
>
public
static
void
IsBiggerOrEqual
<
T
>(
T
expectedMinimum
,
T
actual
,
string
message
)
where
T
:
IComparable
<
T
>
{
{
if
(
expectedMinimum
.
CompareTo
(
actual
)
>
0
)
if
(
expectedMinimum
.
CompareTo
(
actual
)
>
0
)
throw
new
AssertFailedException
(
"Assert.IsBiggerOrEqual failed. Expected minimum: <"
+
expectedMinimum
+
throw
new
AssertFailedException
(
"
More
Assert.IsBiggerOrEqual failed. Expected minimum: <"
+
expectedMinimum
+
"> Actual: <"
+
actual
+
">. "
+
message
);
"> Actual: <"
+
actual
+
">. "
+
message
);
}
}
...
@@ -37,7 +37,7 @@ namespace PcapDotNet.TestUtils
...
@@ -37,7 +37,7 @@ namespace PcapDotNet.TestUtils
public
static
void
IsSmallerOrEqual
<
T
>(
T
expectedMaximum
,
T
actual
,
string
message
)
where
T
:
IComparable
<
T
>
public
static
void
IsSmallerOrEqual
<
T
>(
T
expectedMaximum
,
T
actual
,
string
message
)
where
T
:
IComparable
<
T
>
{
{
if
(
expectedMaximum
.
CompareTo
(
actual
)
<
0
)
if
(
expectedMaximum
.
CompareTo
(
actual
)
<
0
)
throw
new
AssertFailedException
(
"Assert.IsSmallerOrEqual failed. Expected maximum: <"
+
expectedMaximum
+
throw
new
AssertFailedException
(
"
More
Assert.IsSmallerOrEqual failed. Expected maximum: <"
+
expectedMaximum
+
"> Actual: <"
+
actual
+
">. "
+
message
);
"> Actual: <"
+
actual
+
">. "
+
message
);
}
}
...
@@ -57,6 +57,13 @@ namespace PcapDotNet.TestUtils
...
@@ -57,6 +57,13 @@ namespace PcapDotNet.TestUtils
IsInRange
(
expectedMinimum
,
expectedMaximum
,
actual
,
string
.
Empty
);
IsInRange
(
expectedMinimum
,
expectedMaximum
,
actual
,
string
.
Empty
);
}
}
public
static
void
IsContains
(
string
expectedContained
,
string
actualValue
,
string
message
=
""
)
{
if
(!
actualValue
.
Contains
(
expectedContained
))
throw
new
AssertFailedException
(
string
.
Format
(
"MoreAssert.IsContains failed. Expected contained: <{0}> Actual: <{1}>. {2}"
,
expectedContained
,
actualValue
,
message
));
}
public
static
void
IsMatch
(
string
expectedPattern
,
string
actualValue
)
public
static
void
IsMatch
(
string
expectedPattern
,
string
actualValue
)
{
{
Assert
.
IsTrue
(
Regex
.
IsMatch
(
actualValue
,
expectedPattern
),
"Expected pattern: <"
+
expectedPattern
+
">. Actual value: <"
+
actualValue
+
">."
);
Assert
.
IsTrue
(
Regex
.
IsMatch
(
actualValue
,
expectedPattern
),
"Expected pattern: <"
+
expectedPattern
+
">. Actual value: <"
+
actualValue
+
">."
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment