]> git.somenet.org - pub/jan/dst18.git/blob - ass2-service/auth/src/test/java/dst/ass2/service/auth/tests/GrpcServerRunnerTest.java
Add template for assignment 2
[pub/jan/dst18.git] / ass2-service / auth / src / test / java / dst / ass2 / service / auth / tests / GrpcServerRunnerTest.java
1 package dst.ass2.service.auth.tests;
2
3 import java.net.Socket;
4
5 import org.junit.Test;
6 import org.junit.runner.RunWith;
7 import org.slf4j.Logger;
8 import org.slf4j.LoggerFactory;
9 import org.springframework.beans.factory.annotation.Value;
10 import org.springframework.boot.test.context.SpringBootTest;
11 import org.springframework.test.context.junit4.SpringRunner;
12
13 import dst.ass2.service.auth.AuthenticationServiceApplication;
14
15 @RunWith(SpringRunner.class)
16 @SpringBootTest(classes = AuthenticationServiceApplication.class)
17 public class GrpcServerRunnerTest {
18
19     private static final Logger LOG = LoggerFactory.getLogger(GrpcServerRunnerTest.class);
20
21     @Value("${grpc.port}")
22     private int port;
23
24     @Test
25     public void canConnectToGrpcSocketAfterApplicationInitialization() throws Exception {
26         int n = 4;
27
28         while (true) {
29             LOG.info("Tyring to connect to TCP socket on localhost:{}", port);
30             try (Socket socket = new Socket("localhost", port)) {
31                 return;
32             } catch (Exception e) {
33                 if (n == 0) {
34                     throw new AssertionError("Expected gRPC server to run on port " + port, e);
35                 } else {
36                     Thread.sleep(250);
37                 }
38             }
39             n--;
40         }
41
42     }
43 }