@@ -8,34 +8,34 @@ namespace IISParser.Tests;
88
99public class ParserEngineTests {
1010 [ Fact ]
11- public void ParseLog_ReturnsEvents ( ) {
11+ public void ParseLog_ReturnsRecords ( ) {
1212 var path = Path . Combine ( AppContext . BaseDirectory , "TestData" , "sample.log" ) ;
1313 var engine = new ParserEngine ( path ) ;
14- var eventsList = engine . ParseLog ( ) . ToList ( ) ;
15- Assert . Single ( eventsList ) ;
16- var evt = eventsList [ 0 ] ;
17- Assert . Equal ( "/index.html" , evt . csUriStem ) ;
18- Assert . Equal ( 200 , evt . scStatus ) ;
19- Assert . Equal ( "192.168.0.1" , evt . Fields [ "X-Forwarded-For" ] ) ;
14+ var recordsList = engine . ParseLog ( ) . ToList ( ) ;
15+ Assert . Single ( recordsList ) ;
16+ var record = recordsList [ 0 ] ;
17+ Assert . Equal ( "/index.html" , record . UriPath ) ;
18+ Assert . Equal ( 200 , record . StatusCode ) ;
19+ Assert . Equal ( "192.168.0.1" , record . Fields [ "X-Forwarded-For" ] ) ;
2020 }
2121
2222 [ Fact ]
2323 public void ParseLog_RemovesKnownFieldsFromDictionary ( ) {
2424 var path = Path . Combine ( AppContext . BaseDirectory , "TestData" , "sample.log" ) ;
2525 var engine = new ParserEngine ( path ) ;
26- var evt = engine . ParseLog ( ) . Single ( ) ;
27- Assert . False ( evt . Fields . ContainsKey ( "cs-uri-stem" ) ) ;
28- Assert . False ( evt . Fields . ContainsKey ( "date" ) ) ;
26+ var record = engine . ParseLog ( ) . Single ( ) ;
27+ Assert . False ( record . Fields . ContainsKey ( "cs-uri-stem" ) ) ;
28+ Assert . False ( record . Fields . ContainsKey ( "date" ) ) ;
2929 }
3030
3131 [ Fact ]
3232 public void ParseLog_HandlesValuesAboveIntMax ( ) {
3333 var path = Path . Combine ( AppContext . BaseDirectory , "TestData" , "large_values.log" ) ;
3434 var engine = new ParserEngine ( path ) ;
35- var evt = engine . ParseLog ( ) . Single ( ) ;
36- Assert . Equal ( 3000000000L , evt . scBytes ) ;
37- Assert . Equal ( 4000000000L , evt . csBytes ) ;
38- Assert . Equal ( 5000000000L , evt . timeTaken ) ;
35+ var record = engine . ParseLog ( ) . Single ( ) ;
36+ Assert . Equal ( 3000000000L , record . BytesSent ) ;
37+ Assert . Equal ( 4000000000L , record . BytesReceived ) ;
38+ Assert . Equal ( 5000000000L , record . TimeTakenMs ) ;
3939 }
4040
4141 [ Fact ]
@@ -45,8 +45,8 @@ public void ParseLog_ParsesDateTimeUnderDifferentCulture() {
4545 CultureInfo . CurrentCulture = CultureInfo . GetCultureInfo ( "fr-FR" ) ;
4646 var path = Path . Combine ( AppContext . BaseDirectory , "TestData" , "sample.log" ) ;
4747 var engine = new ParserEngine ( path ) ;
48- var evt = engine . ParseLog ( ) . Single ( ) ;
49- Assert . Equal ( new DateTime ( 2024 , 1 , 1 , 0 , 0 , 0 ) , evt . DateTimeEvent ) ;
48+ var record = engine . ParseLog ( ) . Single ( ) ;
49+ Assert . Equal ( new DateTime ( 2024 , 1 , 1 , 0 , 0 , 0 ) , record . Timestamp ) ;
5050 } finally {
5151 CultureInfo . CurrentCulture = originalCulture ;
5252 }
@@ -58,34 +58,45 @@ public void ParseLog_YieldsEventsLazily() {
5858 var engine = new ParserEngine ( path ) ;
5959 using var enumerator = engine . ParseLog ( ) . GetEnumerator ( ) ;
6060 Assert . True ( enumerator . MoveNext ( ) ) ;
61- Assert . Equal ( "/index0.html" , enumerator . Current . csUriStem ) ;
61+ Assert . Equal ( "/index0.html" , enumerator . Current . UriPath ) ;
6262 Assert . Equal ( 1 , engine . CurrentFileRecord ) ;
63- }
63+ }
6464
6565 [ Fact ]
6666 public void ParseLog_HandlesShortLogLineGracefully ( ) {
6767 var path = Path . Combine ( AppContext . BaseDirectory , "TestData" , "short_line.log" ) ;
6868 var engine = new ParserEngine ( path ) ;
69- var evt = engine . ParseLog ( ) . Single ( ) ;
70- Assert . True ( evt . Fields . ContainsKey ( "X-Forwarded-For" ) ) ;
71- Assert . Null ( evt . Fields [ "X-Forwarded-For" ] ) ;
69+ var record = engine . ParseLog ( ) . Single ( ) ;
70+ Assert . True ( record . Fields . ContainsKey ( "X-Forwarded-For" ) ) ;
71+ Assert . Null ( record . Fields [ "X-Forwarded-For" ] ) ;
7272 }
7373
7474 [ Fact ]
7575 public void ParseLog_MalformedDateTime_ReturnsMinValue ( ) {
7676 var path = Path . Combine ( AppContext . BaseDirectory , "TestData" , "malformed_datetime.log" ) ;
7777 var engine = new ParserEngine ( path ) ;
78- var evt = engine . ParseLog ( ) . Single ( ) ;
79- Assert . Equal ( DateTime . MinValue , evt . DateTimeEvent ) ;
80- Assert . Equal ( "/index.html" , evt . csUriStem ) ;
78+ var record = engine . ParseLog ( ) . Single ( ) ;
79+ Assert . Equal ( DateTime . MinValue , record . Timestamp ) ;
80+ Assert . Equal ( "/index.html" , record . UriPath ) ;
8181 }
8282
8383 [ Fact ]
8484 public void ParseLog_MissingDateTime_ReturnsMinValue ( ) {
8585 var path = Path . Combine ( AppContext . BaseDirectory , "TestData" , "missing_datetime.log" ) ;
8686 var engine = new ParserEngine ( path ) ;
87- var evt = engine . ParseLog ( ) . Single ( ) ;
88- Assert . Equal ( DateTime . MinValue , evt . DateTimeEvent ) ;
87+ var record = engine . ParseLog ( ) . Single ( ) ;
88+ Assert . Equal ( DateTime . MinValue , record . Timestamp ) ;
89+ Assert . Equal ( "/index.html" , record . UriPath ) ;
90+ }
91+
92+ [ Fact ]
93+ public void ParseLogLegacy_ReturnsEvents ( ) {
94+ var path = Path . Combine ( AppContext . BaseDirectory , "TestData" , "sample.log" ) ;
95+ var engine = new ParserEngine ( path ) ;
96+ var eventsList = engine . ParseLogLegacy ( ) . ToList ( ) ;
97+ Assert . Single ( eventsList ) ;
98+ var evt = eventsList [ 0 ] ;
8999 Assert . Equal ( "/index.html" , evt . csUriStem ) ;
100+ Assert . Equal ( 200 , evt . scStatus ) ;
90101 }
91102}
0 commit comments