From 9eb5e64cd0708f1e7b9ea85eb7b01c9151ed17ff Mon Sep 17 00:00:00 2001 From: David Liu Date: Mon, 15 Oct 2018 06:13:28 -0700 Subject: [PATCH] Use the appname and id from in mem instanceInfo object instead of raw config (#3212) --- .../EurekaServiceRegistry.java | 8 ++--- .../EurekaServiceRegistryTests.java | 31 +++++++++++++------ 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/serviceregistry/EurekaServiceRegistry.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/serviceregistry/EurekaServiceRegistry.java index 47b4ddbbc..84f3f3d96 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/serviceregistry/EurekaServiceRegistry.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/serviceregistry/EurekaServiceRegistry.java @@ -39,7 +39,7 @@ public class EurekaServiceRegistry implements ServiceRegistry status = new HashMap<>(); diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/serviceregistry/EurekaServiceRegistryTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/serviceregistry/EurekaServiceRegistryTests.java index eba2ce617..d97376442 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/serviceregistry/EurekaServiceRegistryTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/serviceregistry/EurekaServiceRegistryTests.java @@ -31,6 +31,7 @@ import com.netflix.appinfo.ApplicationInfoManager; import com.netflix.appinfo.InstanceInfo; import static com.netflix.appinfo.InstanceInfo.InstanceStatus.DOWN; +import static com.netflix.appinfo.InstanceInfo.InstanceStatus.OUT_OF_SERVICE; import static com.netflix.appinfo.InstanceInfo.InstanceStatus.UNKNOWN; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; @@ -70,20 +71,29 @@ public class EurekaServiceRegistryTests { config.setAppname("myapp"); config.setInstanceId("1234"); - CloudEurekaClient eurekaClient = mock(CloudEurekaClient.class); - - InstanceInfo instanceInfo = InstanceInfo.Builder.newBuilder() + InstanceInfo local = InstanceInfo.Builder.newBuilder() .setAppName("myapp") .setInstanceId("1234") .setStatus(DOWN) - .setOverriddenStatus(UNKNOWN) .build(); - when(eurekaClient.getInstanceInfo("myapp", "1234")) - .thenReturn(instanceInfo); + + InstanceInfo remote = InstanceInfo.Builder.newBuilder() + .setAppName("myapp") + .setInstanceId("1234") + .setStatus(DOWN) + .setOverriddenStatus(OUT_OF_SERVICE) + .build(); + + CloudEurekaClient eurekaClient = mock(CloudEurekaClient.class); + when(eurekaClient.getInstanceInfo(local.getAppName(), local.getId())) + .thenReturn(remote); + + ApplicationInfoManager applicationInfoManager = mock(ApplicationInfoManager.class); + when(applicationInfoManager.getInfo()).thenReturn(local); EurekaRegistration registration = EurekaRegistration.builder(config) .with(eurekaClient) - .with(mock(ApplicationInfoManager.class)) + .with(applicationInfoManager) .with(new EurekaClientConfigBean(), mock(ApplicationEventPublisher.class)) .build(); @@ -95,7 +105,7 @@ public class EurekaServiceRegistryTests { assertThat(map).hasSize(2) .containsEntry("status", DOWN.toString()) - .containsEntry("overriddenStatus", UNKNOWN.toString()); + .containsEntry("overriddenStatus", OUT_OF_SERVICE.toString()); } @@ -112,9 +122,12 @@ public class EurekaServiceRegistryTests { when(eurekaClient.getInstanceInfo("myapp", "1234")) .thenReturn(null); + ApplicationInfoManager applicationInfoManager = mock(ApplicationInfoManager.class); + when(applicationInfoManager.getInfo()).thenReturn(mock(InstanceInfo.class)); + EurekaRegistration registration = EurekaRegistration.builder(config) .with(eurekaClient) - .with(mock(ApplicationInfoManager.class)) + .with(applicationInfoManager) .with(new EurekaClientConfigBean(), mock(ApplicationEventPublisher.class)) .build();