11package org .tron .common .backup ;
22
3- import static org .mockito .Mockito .mockStatic ;
4-
53import java .lang .reflect .Field ;
64import java .lang .reflect .Method ;
75import java .net .InetAddress ;
1311import java .util .Set ;
1412import java .util .concurrent .ExecutorService ;
1513import java .util .concurrent .ScheduledExecutorService ;
14+ import java .util .function .BiFunction ;
1615import org .junit .After ;
1716import org .junit .Assert ;
1817import org .junit .Before ;
1918import org .junit .Rule ;
2019import org .junit .Test ;
2120import org .junit .rules .TemporaryFolder ;
22- import org .mockito .MockedStatic ;
2321import org .tron .common .TestConstants ;
2422import org .tron .common .backup .BackupManager .BackupStatusEnum ;
2523import org .tron .common .backup .message .KeepAliveMessage ;
2826import org .tron .common .parameter .CommonParameter ;
2927import org .tron .common .utils .PublicMethod ;
3028import org .tron .core .config .args .Args ;
31- import org .tron .p2p . dns . lookup . LookUpTxt ;
29+ import org .tron .core . config . args . InetUtil ;
3230
3331public class BackupManagerTest {
3432
3533 @ Rule
3634 public TemporaryFolder temporaryFolder = new TemporaryFolder ();
3735 private BackupManager manager ;
3836 private BackupServer backupServer ;
37+ private BiFunction <String , Boolean , InetAddress > savedLookup ;
3938
4039 @ Before
4140 public void setUp () throws Exception {
@@ -44,10 +43,12 @@ public void setUp() throws Exception {
4443 CommonParameter .getInstance ().setBackupPort (PublicMethod .chooseRandomPort ());
4544 manager = new BackupManager ();
4645 backupServer = new BackupServer (manager );
46+ savedLookup = InetUtil .dnsLookup ;
4747 }
4848
4949 @ After
5050 public void tearDown () {
51+ InetUtil .dnsLookup = savedLookup ;
5152 Args .clearParam ();
5253 }
5354
@@ -157,10 +158,9 @@ public void testInitResolvesDomainsToMembers() throws Exception {
157158 CommonParameter .getInstance ().setBackupMembers (
158159 Collections .singletonList ("node.example.com" ));
159160 InetAddress resolved = InetAddress .getByName ("1.2.3.4" );
160- try (MockedStatic <LookUpTxt > mock = mockStatic (LookUpTxt .class )) {
161- mock .when (() -> LookUpTxt .lookUpIp ("node.example.com" , true )).thenReturn (resolved );
162- manager .init ();
163- }
161+ InetUtil .dnsLookup = (host , ipv4 ) ->
162+ ("node.example.com" .equals (host ) && ipv4 ) ? resolved : null ;
163+ manager .init ();
164164 Set <String > members = getField (manager , "members" );
165165 Map <String , String > cache = getField (manager , "domainIpCache" );
166166 Assert .assertTrue (members .contains ("1.2.3.4" ));
@@ -172,11 +172,8 @@ public void testInitResolvesDomainsToMembers() throws Exception {
172172 public void testInitSkipsUnresolvableDomain () throws Exception {
173173 CommonParameter .getInstance ().setBackupMembers (
174174 Collections .singletonList ("bad.invalid.domain" ));
175- try (MockedStatic <LookUpTxt > mock = mockStatic (LookUpTxt .class )) {
176- mock .when (() -> LookUpTxt .lookUpIp ("bad.invalid.domain" , true )).thenReturn (null );
177- mock .when (() -> LookUpTxt .lookUpIp ("bad.invalid.domain" , false )).thenReturn (null );
178- manager .init ();
179- }
175+ InetUtil .dnsLookup = (host , ipv4 ) -> null ;
176+ manager .init ();
180177 Set <String > members = getField (manager , "members" );
181178 Map <String , String > cache = getField (manager , "domainIpCache" );
182179 Assert .assertTrue ("unresolvable domain should be silently dropped" , members .isEmpty ());
@@ -190,10 +187,9 @@ public void testInitSkipsDomainResolvingToLocalIp() throws Exception {
190187 CommonParameter .getInstance ().setBackupMembers (
191188 Collections .singletonList ("self.local.host" ));
192189 InetAddress selfAddr = InetAddress .getByName (localIp );
193- try (MockedStatic <LookUpTxt > mock = mockStatic (LookUpTxt .class )) {
194- mock .when (() -> LookUpTxt .lookUpIp ("self.local.host" , true )).thenReturn (selfAddr );
195- manager .init ();
196- }
190+ InetUtil .dnsLookup = (host , ipv4 ) ->
191+ ("self.local.host" .equals (host ) && ipv4 ) ? selfAddr : null ;
192+ manager .init ();
197193 Set <String > members = getField (manager , "members" );
198194 Assert .assertFalse ("domain resolving to local IP should not be in members" ,
199195 members .contains (localIp ));
@@ -210,10 +206,9 @@ public void testRefreshMemberIpsIpChanged() throws Exception {
210206 cache .put ("peer.tron.network" , "1.1.1.1" );
211207
212208 InetAddress newAddr = InetAddress .getByName ("2.2.2.2" );
213- try (MockedStatic <LookUpTxt > mock = mockStatic (LookUpTxt .class )) {
214- mock .when (() -> LookUpTxt .lookUpIp ("peer.tron.network" , true )).thenReturn (newAddr );
215- invokeRefreshMemberIps (manager );
216- }
209+ InetUtil .dnsLookup = (host , ipv4 ) ->
210+ ("peer.tron.network" .equals (host ) && ipv4 ) ? newAddr : null ;
211+ invokeRefreshMemberIps (manager );
217212 Assert .assertFalse (members .contains ("1.1.1.1" ));
218213 Assert .assertTrue (members .contains ("2.2.2.2" ));
219214 Assert .assertEquals ("2.2.2.2" , cache .get ("peer.tron.network" ));
@@ -227,10 +222,9 @@ public void testRefreshMemberIpsIpUnchanged() throws Exception {
227222 cache .put ("peer.tron.network" , "1.1.1.1" );
228223
229224 InetAddress sameAddr = InetAddress .getByName ("1.1.1.1" );
230- try (MockedStatic <LookUpTxt > mock = mockStatic (LookUpTxt .class )) {
231- mock .when (() -> LookUpTxt .lookUpIp ("peer.tron.network" , true )).thenReturn (sameAddr );
232- invokeRefreshMemberIps (manager );
233- }
225+ InetUtil .dnsLookup = (host , ipv4 ) ->
226+ ("peer.tron.network" .equals (host ) && ipv4 ) ? sameAddr : null ;
227+ invokeRefreshMemberIps (manager );
234228 Assert .assertTrue (members .contains ("1.1.1.1" ));
235229 Assert .assertEquals ("1.1.1.1" , cache .get ("peer.tron.network" ));
236230 }
@@ -242,11 +236,8 @@ public void testRefreshMemberIpsDnsFailure() throws Exception {
242236 members .add ("1.1.1.1" );
243237 cache .put ("peer.tron.network" , "1.1.1.1" );
244238
245- try (MockedStatic <LookUpTxt > mock = mockStatic (LookUpTxt .class )) {
246- mock .when (() -> LookUpTxt .lookUpIp ("peer.tron.network" , true )).thenReturn (null );
247- mock .when (() -> LookUpTxt .lookUpIp ("peer.tron.network" , false )).thenReturn (null );
248- invokeRefreshMemberIps (manager );
249- }
239+ InetUtil .dnsLookup = (host , ipv4 ) -> null ;
240+ invokeRefreshMemberIps (manager );
250241 Assert .assertTrue ("old IP should be kept on DNS failure" , members .contains ("1.1.1.1" ));
251242 Assert .assertEquals ("1.1.1.1" , cache .get ("peer.tron.network" ));
252243 }
0 commit comments