@@ -9,13 +9,19 @@ namespace Stravaig.Extensions.Logging.Diagnostics.Tests
99 public class TestCaptureLoggerProviderTests
1010 {
1111 [ Test ]
12- public void GetAllLogEntriesReturnsLogsInCorrectSequence ( )
12+ [ TestCase ( false ) ]
13+ [ TestCase ( true ) ]
14+ public void GetAllLogEntriesReturnsLogsInCorrectSequence ( bool useTyped )
1315 {
1416 var provider = new TestCaptureLoggerProvider ( ) ;
1517
16- var logger1 = provider . CreateLogger ( "logger1" ) ;
17- var logger2 = provider . CreateLogger ( "logger2" ) ;
18-
18+ ITestCaptureLogger logger1 = useTyped
19+ ? provider . CreateLogger < Logger1 > ( )
20+ : provider . CreateLogger ( "logger1" ) ;
21+ ITestCaptureLogger logger2 = useTyped
22+ ? provider . CreateLogger < Logger2 > ( )
23+ : provider . CreateLogger ( "logger2" ) ;
24+
1925 logger1 . LogInformation ( "One" ) ;
2026 logger2 . LogInformation ( "Two" ) ;
2127 logger1 . LogInformation ( "Three" ) ;
@@ -29,15 +35,21 @@ public void GetAllLogEntriesReturnsLogsInCorrectSequence()
2935 allLogs [ 3 ] . OriginalMessage . ShouldBe ( "Four" ) ;
3036 allLogs [ 4 ] . OriginalMessage . ShouldBe ( "Five" ) ;
3137 }
32-
38+
3339 [ Test ]
34- public void GetAllLogEntriesWithExceptionsReturnsLogsInCorrectSequence ( )
40+ [ TestCase ( false ) ]
41+ [ TestCase ( true ) ]
42+ public void GetAllLogEntriesWithExceptionsReturnsLogsInCorrectSequence ( bool useTyped )
3543 {
3644 var provider = new TestCaptureLoggerProvider ( ) ;
3745
38- var logger1 = provider . CreateLogger ( "logger1" ) ;
39- var logger2 = provider . CreateLogger ( "logger2" ) ;
40-
46+ ITestCaptureLogger logger1 = useTyped
47+ ? provider . CreateLogger < Logger1 > ( )
48+ : provider . CreateLogger ( "logger1" ) ;
49+ ITestCaptureLogger logger2 = useTyped
50+ ? provider . CreateLogger < Logger2 > ( )
51+ : provider . CreateLogger ( "logger2" ) ;
52+
4153 logger1 . LogInformation ( new Exception ( ) , "One" ) ;
4254 logger2 . LogInformation ( "Two" ) ;
4355 logger1 . LogInformation ( "Three" ) ;
@@ -49,7 +61,7 @@ public void GetAllLogEntriesWithExceptionsReturnsLogsInCorrectSequence()
4961 allLogsWithExceptions [ 1 ] . OriginalMessage . ShouldBe ( "Four" ) ;
5062 allLogsWithExceptions [ 2 ] . OriginalMessage . ShouldBe ( "Five" ) ;
5163 }
52-
64+
5365 [ Test ]
5466 public void GetCategoriesReturnsListOfCategoryNames ( )
5567 {
@@ -60,64 +72,91 @@ public void GetCategoriesReturnsListOfCategoryNames()
6072 provider . CreateLogger ( "logger1" ) ;
6173 provider . CreateLogger ( "logger2" ) ;
6274 factory . CreateLogger < TestCaptureLoggerTests > ( ) ;
63-
75+
6476 var categories = provider . GetCategories ( ) ;
6577 categories . Count . ShouldBe ( 3 ) ;
6678 categories . ShouldContain ( "logger1" ) ;
6779 categories . ShouldContain ( "logger2" ) ;
6880 categories . ShouldContain ( typeof ( TestCaptureLoggerTests ) . FullName ) ;
6981 }
70-
82+
7183 [ Test ]
72- public void ResetAfterLoggingReturnsZeroLogs ( )
84+ [ TestCase ( false ) ]
85+ [ TestCase ( true ) ]
86+ public void ResetAfterLoggingReturnsZeroLogs ( bool useTyped )
7387 {
7488 var provider = new TestCaptureLoggerProvider ( ) ;
7589
76- var logger1 = provider . CreateLogger ( "logger1" ) ;
77- var logger2 = provider . CreateLogger ( "logger2" ) ;
78-
90+ ITestCaptureLogger logger1 = useTyped
91+ ? provider . CreateLogger < Logger1 > ( )
92+ : provider . CreateLogger ( "logger1" ) ;
93+ ITestCaptureLogger logger2 = useTyped
94+ ? provider . CreateLogger < Logger2 > ( )
95+ : provider . CreateLogger ( "logger2" ) ;
96+
7997 logger1 . LogInformation ( "One" ) ;
8098 logger2 . LogInformation ( "Two" ) ;
8199 logger1 . LogInformation ( "Three" ) ;
82100 logger1 . LogInformation ( "Four" ) ;
83101 logger2 . LogInformation ( "Five" ) ;
84102
85103 provider . Reset ( ) ;
86-
104+
87105 provider . GetAllLogEntries ( ) . ShouldBeEmpty ( ) ;
88106 }
89-
107+
90108 [ Test ]
91- public void ReuseAfterResetReturnsOnlyNewLogs ( )
109+ [ TestCase ( false ) ]
110+ [ TestCase ( true ) ]
111+ public void ReuseAfterResetReturnsOnlyNewLogs ( bool useTyped )
92112 {
93113 var provider = new TestCaptureLoggerProvider ( ) ;
94114
95- var logger1 = provider . CreateLogger ( "logger1" ) ;
96- var logger2 = provider . CreateLogger ( "logger2" ) ;
97-
115+ ITestCaptureLogger logger1 = useTyped
116+ ? provider . CreateLogger < Logger1 > ( )
117+ : provider . CreateLogger ( "Logger1" ) ;
118+ ITestCaptureLogger logger2 = useTyped
119+ ? provider . CreateLogger < Logger2 > ( )
120+ : provider . CreateLogger ( "Logger2" ) ;
121+
98122 logger1 . LogInformation ( "Old-One" ) ;
99123 logger2 . LogInformation ( "Old-Two" ) ;
100124
101125 provider . Reset ( ) ;
102126
103- var loggerNew1 = provider . CreateLogger ( "logger1" ) ;
104- var loggerNew2 = provider . CreateLogger ( "logger2" ) ;
105- var logger3 = provider . CreateLogger ( "logger3" ) ;
106-
127+ ITestCaptureLogger loggerNew1 = useTyped
128+ ? provider . CreateLogger < Logger1 > ( )
129+ : provider . CreateLogger ( "Logger1" ) ;
130+ ITestCaptureLogger loggerNew2 = useTyped
131+ ? provider . CreateLogger < Logger2 > ( )
132+ : provider . CreateLogger ( "Logger2" ) ;
133+ ITestCaptureLogger logger3 = useTyped
134+ ? provider . CreateLogger < Logger3 > ( )
135+ : provider . CreateLogger ( "Logger3" ) ;
136+
107137 loggerNew1 . LogInformation ( "One" ) ;
108138 loggerNew2 . LogInformation ( "Two" ) ;
109139 logger3 . LogInformation ( "Three" ) ;
110-
140+
111141 var allLogs = provider . GetAllLogEntries ( ) ;
112142 allLogs [ 0 ] . OriginalMessage . ShouldBe ( "One" ) ;
113- allLogs [ 0 ] . CategoryName . ShouldBe ( "logger1 ") ;
143+ allLogs [ 0 ] . CategoryName . ShouldContain ( "Logger1 ") ;
114144 allLogs [ 1 ] . OriginalMessage . ShouldBe ( "Two" ) ;
115- allLogs [ 1 ] . CategoryName . ShouldBe ( "logger2 ") ;
145+ allLogs [ 1 ] . CategoryName . ShouldContain ( "Logger2 ") ;
116146 allLogs [ 2 ] . OriginalMessage . ShouldBe ( "Three" ) ;
117- allLogs [ 2 ] . CategoryName . ShouldBe ( "logger3 ") ;
147+ allLogs [ 2 ] . CategoryName . ShouldContain ( "Logger3 ") ;
118148
119149 logger1 . ShouldBeSameAs ( loggerNew1 ) ;
120150 logger2 . ShouldBeSameAs ( loggerNew2 ) ;
121151 }
152+
153+ // Classes exist for to attach a logger.
154+ // ReSharper disable ClassNeverInstantiated.Local
155+ private class Logger1 ;
156+
157+ private class Logger2 ;
158+
159+ private class Logger3 ;
160+ // ReSharper restore ClassNeverInstantiated.Local
122161 }
123- }
162+ }
0 commit comments