30
30
import java .util .Map ;
31
31
32
32
import org .neo4j .driver .Logger ;
33
+ import org .neo4j .driver .Logging ;
33
34
import org .neo4j .driver .exceptions .AuthenticationException ;
34
35
import org .neo4j .driver .exceptions .DiscoveryException ;
35
36
import org .neo4j .driver .exceptions .ProtocolException ;
40
41
import org .neo4j .driver .internal .DefaultDomainNameResolver ;
41
42
import org .neo4j .driver .internal .DomainNameResolver ;
42
43
import org .neo4j .driver .internal .InternalBookmark ;
44
+ import org .neo4j .driver .internal .logging .DevNullLogging ;
43
45
import org .neo4j .driver .internal .spi .Connection ;
44
46
import org .neo4j .driver .internal .spi .ConnectionPool ;
45
47
import org .neo4j .driver .internal .util .FakeClock ;
65
67
import static org .mockito .Mockito .when ;
66
68
import static org .neo4j .driver .internal .DatabaseNameUtil .defaultDatabase ;
67
69
import static org .neo4j .driver .internal .InternalBookmark .empty ;
68
- import static org .neo4j .driver .internal .logging .DevNullLogger .DEV_NULL_LOGGER ;
69
70
import static org .neo4j .driver .internal .util .ClusterCompositionUtil .A ;
70
71
import static org .neo4j .driver .internal .util .ClusterCompositionUtil .B ;
71
72
import static org .neo4j .driver .internal .util .ClusterCompositionUtil .C ;
@@ -176,10 +177,12 @@ void shouldFailImmediatelyWhenClusterCompositionProviderReturnsFailure()
176
177
responsesByAddress .put ( B , protocolError ); // first -> fatal failure
177
178
responsesByAddress .put ( C , validComposition ); // second -> valid cluster composition
178
179
180
+ Logging logging = mock ( Logging .class );
179
181
Logger logger = mock ( Logger .class );
182
+ when ( logging .getLog ( any ( Class .class ) ) ).thenReturn ( logger );
180
183
181
184
ClusterCompositionProvider compositionProvider = compositionProviderMock ( responsesByAddress );
182
- Rediscovery rediscovery = newRediscovery ( A , compositionProvider , mock ( ServerAddressResolver .class ), logger );
185
+ Rediscovery rediscovery = newRediscovery ( A , compositionProvider , mock ( ServerAddressResolver .class ), logging );
183
186
RoutingTable table = routingTableMock ( B , C );
184
187
185
188
// When
@@ -189,6 +192,7 @@ void shouldFailImmediatelyWhenClusterCompositionProviderReturnsFailure()
189
192
ArgumentCaptor <String > warningMessageCaptor = ArgumentCaptor .forClass ( String .class );
190
193
ArgumentCaptor <String > debugMessageCaptor = ArgumentCaptor .forClass ( String .class );
191
194
ArgumentCaptor <DiscoveryException > debugThrowableCaptor = ArgumentCaptor .forClass ( DiscoveryException .class );
195
+ verify ( logging ).getLog ( RediscoveryImpl .class );
192
196
verify ( logger ).warn ( warningMessageCaptor .capture () );
193
197
verify ( logger ).debug ( debugMessageCaptor .capture (), debugThrowableCaptor .capture () );
194
198
assertNotNull ( warningMessageCaptor .getValue () );
@@ -383,7 +387,8 @@ void shouldRetryConfiguredNumberOfTimesWithDelay()
383
387
ImmediateSchedulingEventExecutor eventExecutor = new ImmediateSchedulingEventExecutor ();
384
388
RoutingSettings settings = new RoutingSettings ( maxRoutingFailures , retryTimeoutDelay , 0 );
385
389
Rediscovery rediscovery =
386
- new RediscoveryImpl ( A , settings , compositionProvider , eventExecutor , resolver , DEV_NULL_LOGGER , DefaultDomainNameResolver .getInstance () );
390
+ new RediscoveryImpl ( A , settings , compositionProvider , eventExecutor , resolver , DevNullLogging .DEV_NULL_LOGGING ,
391
+ DefaultDomainNameResolver .getInstance () );
387
392
RoutingTable table = routingTableMock ( A , B );
388
393
389
394
ClusterComposition actualComposition = await ( rediscovery .lookupClusterComposition ( table , pool , empty () ) ).getClusterComposition ();
@@ -406,16 +411,19 @@ void shouldNotLogWhenSingleRetryAttemptFails()
406
411
407
412
ImmediateSchedulingEventExecutor eventExecutor = new ImmediateSchedulingEventExecutor ();
408
413
RoutingSettings settings = new RoutingSettings ( maxRoutingFailures , retryTimeoutDelay , 0 );
414
+ Logging logging = mock ( Logging .class );
409
415
Logger logger = mock ( Logger .class );
416
+ when ( logging .getLog ( any ( Class .class ) ) ).thenReturn ( logger );
410
417
Rediscovery rediscovery =
411
- new RediscoveryImpl ( A , settings , compositionProvider , eventExecutor , resolver , logger , DefaultDomainNameResolver .getInstance () );
418
+ new RediscoveryImpl ( A , settings , compositionProvider , eventExecutor , resolver , logging , DefaultDomainNameResolver .getInstance () );
412
419
RoutingTable table = routingTableMock ( A );
413
420
414
421
ServiceUnavailableException e =
415
422
assertThrows ( ServiceUnavailableException .class , () -> await ( rediscovery .lookupClusterComposition ( table , pool , empty () ) ) );
416
423
assertThat ( e .getMessage (), containsString ( "Could not perform discovery" ) );
417
424
418
425
// rediscovery should not log about retries and should not schedule any retries
426
+ verify ( logging ).getLog ( RediscoveryImpl .class );
419
427
verify ( logger , never () ).info ( startsWith ( "Unable to fetch new routing table, will try again in " ) );
420
428
assertEquals ( 0 , eventExecutor .scheduleDelays ().size () );
421
429
}
@@ -440,14 +448,14 @@ void shouldResolveToIP() throws UnknownHostException
440
448
private Rediscovery newRediscovery ( BoltServerAddress initialRouter , ClusterCompositionProvider compositionProvider ,
441
449
ServerAddressResolver resolver )
442
450
{
443
- return newRediscovery ( initialRouter , compositionProvider , resolver , DEV_NULL_LOGGER );
451
+ return newRediscovery ( initialRouter , compositionProvider , resolver , DevNullLogging . DEV_NULL_LOGGING );
444
452
}
445
453
446
454
private Rediscovery newRediscovery ( BoltServerAddress initialRouter , ClusterCompositionProvider compositionProvider ,
447
- ServerAddressResolver resolver , Logger logger )
455
+ ServerAddressResolver resolver , Logging logging )
448
456
{
449
457
RoutingSettings settings = new RoutingSettings ( 1 , 0 , 0 );
450
- return new RediscoveryImpl ( initialRouter , settings , compositionProvider , GlobalEventExecutor .INSTANCE , resolver , logger ,
458
+ return new RediscoveryImpl ( initialRouter , settings , compositionProvider , GlobalEventExecutor .INSTANCE , resolver , logging ,
451
459
DefaultDomainNameResolver .getInstance () );
452
460
}
453
461
0 commit comments