1919import java .util .concurrent .Executor ;
2020
2121import static org .junit .jupiter .api .Assertions .assertEquals ;
22+ import static org .junit .jupiter .api .Assertions .assertFalse ;
23+ import static org .junit .jupiter .api .Assertions .assertNotNull ;
2224import static org .junit .jupiter .api .Assertions .assertNull ;
2325import static org .junit .jupiter .api .Assertions .assertTrue ;
2426import static org .mockito .ArgumentMatchers .any ;
2527import static org .mockito .Mockito .doReturn ;
28+ import static org .mockito .Mockito .lenient ;
29+ import static org .mockito .Mockito .verify ;
2630
2731@ ExtendWith (MockitoExtension .class )
2832class SolverRemoteTest {
@@ -45,7 +49,8 @@ class SolverRemoteTest {
4549
4650 @ BeforeEach
4751 void beforeEach (){
48- doReturn (Executors .newThreadExecutor ())
52+ lenient ()
53+ .doReturn (Executors .newThreadExecutor ())
4954 .when (this .resolvers )
5055 .getExecutor ();
5156 }
@@ -162,4 +167,48 @@ void mustReturnRaEvenWhenRemoteServerDoesntReturnsRA() throws Exception {
162167 assertEquals (Response .DEFAULT_SUCCESS_TTL , result .getDpsTtl ());
163168 }
164169
170+ @ Test
171+ void mustPingRemoteServerWhileQueryingWhenFeatureIsActive (){
172+
173+ // arrange
174+ final var query = MessageTemplates .acmeAQuery ();
175+ final var answer = MessageTemplates .buildAAnswer (query );
176+
177+ doReturn (true ).when (this .solverRemote ).isPingWhileGettingQueryResponseActive ();
178+
179+ doReturn (InetSocketAddressTemplates ._8_8_8_8 ())
180+ .when (this .resolver )
181+ .getAddress ()
182+ ;
183+
184+ doReturn (CompletableFuture .completedFuture (answer ))
185+ .when (this .resolver )
186+ .sendAsync (any (), any (Executor .class ));
187+
188+ doReturn (List .of (this .resolver ))
189+ .when (this .resolvers )
190+ .resolvers ()
191+ ;
192+
193+ // act
194+ final var res = this .solverRemote .handle (query );
195+
196+ // assert
197+ assertNotNull (res );
198+ verify (this .solverRemote ).pingWhileGettingQueryResponse (any (), any ());
199+
200+ }
201+
202+ @ Test
203+ void pingRemoteServerWhileQueryingDisabledByDefault (){
204+
205+ // act
206+ final var active = this .solverRemote .isPingWhileGettingQueryResponseActive ();
207+
208+ // assert
209+ assertFalse (active );
210+
211+ }
212+
213+
165214}
0 commit comments