Skip to content

Commit 3194e73

Browse files
author
Alexander Furer
committed
tests fixes
1 parent 03248ac commit 3194e73

File tree

4 files changed

+18
-8
lines changed

4 files changed

+18
-8
lines changed

grpc-spring-boot-starter-demo/src/test/java/org/lognet/springboot/grpc/health/CustomManagedHealthStatusServiceTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import org.springframework.boot.test.context.SpringBootTest;
1414
import org.springframework.boot.test.context.TestConfiguration;
1515
import org.springframework.boot.test.mock.mockito.SpyBean;
16+
import org.springframework.test.annotation.DirtiesContext;
1617
import org.springframework.test.context.ActiveProfiles;
1718
import org.springframework.test.context.junit4.SpringRunner;
1819

@@ -26,6 +27,7 @@
2627
@RunWith(SpringRunner.class)
2728
@SpringBootTest(classes = {DemoApp.class, CustomManagedHealthStatusServiceTest.Cfg.class}, webEnvironment = NONE)
2829
@ActiveProfiles("disable-security")
30+
2931
public class CustomManagedHealthStatusServiceTest extends GrpcServerTestBase {
3032
@TestConfiguration
3133
static class Cfg{
@@ -38,11 +40,13 @@ static class MyCustomHealthStatusService extends DefaultHealthStatusService {}
3840
private ManagedHealthStatusService healthStatusManager;
3941

4042
@Test
43+
@DirtiesContext
4144
public void contextLoads() {
4245
assertThat(healthStatusManager,isA(Cfg.MyCustomHealthStatusService.class));
4346
}
4447

4548
@Test
49+
@DirtiesContext
4650
public void testHealthCheck() throws ExecutionException, InterruptedException {
4751
final HealthCheckRequest healthCheckRequest = HealthCheckRequest.newBuilder().setService(GreeterGrpc.getServiceDescriptor().getName()).build();
4852
final HealthGrpc.HealthFutureStub healthFutureStub = HealthGrpc.newFutureStub(channel);

grpc-spring-boot-starter/src/main/java/org/lognet/springboot/grpc/GRpcServerRunner.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,11 @@ public void start() {
9898
HealthGrpc.HealthImplBase.class.getName()
9999
));
100100
}
101-
healthStatusManager = Optional.of((ManagedHealthStatusService)srv);
101+
if(healthStatusManager.isPresent()){
102+
throw new FatalBeanException(String.format("Only 1 single %s service instance is allowed",ManagedHealthStatusService.class.getName()));
103+
}else {
104+
healthStatusManager = Optional.of((ManagedHealthStatusService) srv);
105+
}
102106
} else {
103107
serviceNames.add(serviceDefinition.getServiceDescriptor().getName());
104108
}

grpc-spring-boot-starter/src/main/java/org/lognet/springboot/grpc/autoconfigure/GRpcAutoConfiguration.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import org.lognet.springboot.grpc.GRpcServerRunner;
77
import org.lognet.springboot.grpc.GRpcService;
88
import org.lognet.springboot.grpc.health.DefaultHealthStatusService;
9-
import org.lognet.springboot.grpc.health.ManagedHealthStatusService;
109
import org.springframework.beans.factory.BeanCreationException;
1110
import org.springframework.beans.factory.annotation.Autowired;
1211
import org.springframework.beans.factory.annotation.Qualifier;
@@ -37,7 +36,8 @@
3736
@ConditionalOnBean(annotation = GRpcService.class)
3837
@EnableConfigurationProperties({GRpcServerProperties.class})
3938
@Import({GRpcValidationConfiguration.class,
40-
NettyServerBuilderSelector.class
39+
NettyServerBuilderSelector.class,
40+
DefaultHealthStatusService.class
4141
})
4242
public class GRpcAutoConfiguration {
4343

@@ -58,11 +58,7 @@ public GRpcServerRunner grpcInprocessServerRunner(@Qualifier("grpcInternalConfig
5858
return new GRpcServerRunner(configurator, InProcessServerBuilder.forName(grpcServerProperties.getInProcessServerName()));
5959
}
6060

61-
@Bean
62-
@ConditionalOnMissingBean
63-
public ManagedHealthStatusService healthStatusManager() {
64-
return new DefaultHealthStatusService();
65-
}
61+
6662

6763
@Bean
6864
@ConditionalOnMissingBean(GRpcServerBuilderConfigurer.class)

grpc-spring-boot-starter/src/main/java/org/lognet/springboot/grpc/health/DefaultHealthStatusService.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,13 @@
55
import io.grpc.health.v1.HealthGrpc;
66
import io.grpc.protobuf.services.HealthStatusManager;
77
import io.grpc.stub.StreamObserver;
8+
import org.lognet.springboot.grpc.GRpcService;
9+
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
10+
import org.springframework.context.annotation.Configuration;
811

12+
@GRpcService
13+
@Configuration
14+
@ConditionalOnMissingBean(ManagedHealthStatusService.class)
915
public class DefaultHealthStatusService extends ManagedHealthStatusService {
1016
private final HealthStatusManager healthStatusManager = new HealthStatusManager();
1117
private final HealthGrpc.HealthImplBase service = (HealthGrpc.HealthImplBase) healthStatusManager.getHealthService();

0 commit comments

Comments
 (0)