diff options
| -rw-r--r-- | build.gradle | 2 | ||||
| -rw-r--r-- | src/test/java/pl/edu/mimuw/cloudatlas/client/ClientTest.java | 70 | 
2 files changed, 72 insertions, 0 deletions
| diff --git a/build.gradle b/build.gradle index 82a430e..9ef400c 100644 --- a/build.gradle +++ b/build.gradle @@ -33,6 +33,8 @@ dependencies {      implementation 'org.springframework.boot:spring-boot-starter-thymeleaf:2.2.1.RELEASE' +    implementation 'org.springframework.boot:spring-boot-starter-test:2.2.1.RELEASE' +      // Use JUnit test framework      testImplementation 'junit:junit:4.12' diff --git a/src/test/java/pl/edu/mimuw/cloudatlas/client/ClientTest.java b/src/test/java/pl/edu/mimuw/cloudatlas/client/ClientTest.java new file mode 100644 index 0000000..750e2cb --- /dev/null +++ b/src/test/java/pl/edu/mimuw/cloudatlas/client/ClientTest.java @@ -0,0 +1,70 @@ +package pl.edu.mimuw.cloudatlas.client; + +import org.hamcrest.CoreMatchers; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.web.client.TestRestTemplate; +import org.springframework.boot.web.server.LocalServerPort; +import org.springframework.test.context.junit4.SpringRunner; +import pl.edu.mimuw.cloudatlas.api.Api; + +import java.rmi.registry.LocateRegistry; +import java.rmi.registry.Registry; + +import static org.junit.Assert.assertThat; + +@RunWith(SpringRunner.class) +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +public class ClientTest { +    private static Process registryProcess; +    private static Process agentProcess; +    private static Process clientProcess; + +    private static Registry registry; +    private static Api api; + +    @BeforeClass +    public static void bindApi() throws Exception { +        registryProcess = Runtime.getRuntime().exec("./scripts/registry"); +        Thread.sleep(10000); +        agentProcess = Runtime.getRuntime().exec("./gradlew runAgent -Dhostname=localhost"); +        Thread.sleep(10000); + +        registry = LocateRegistry.getRegistry("localhost"); +        api = (Api) registry.lookup("Api"); +    } + +    @AfterClass +    public static void killProcesses() throws Exception { +        try { +            registryProcess.destroy(); +            agentProcess.destroy(); +        } catch (Exception e) { +            System.out.println("Caught exception: " + e); +        } +    } + +    @LocalServerPort +    private int port; + +    @Autowired +    private TestRestTemplate restTemplate; + +    @Test +    public void homeMessageCheck() throws Exception { +        Thread.sleep(100); +        String response = this.restTemplate.getForObject("http://localhost:" + port + "/", String.class); +        assertThat(response, CoreMatchers.containsString("Welcome to CloudaAtlas client interface")); +    } + +    @Test +    public void attributeValuesMessageCheck() throws Exception { +        Thread.sleep(100); +        String response = this.restTemplate.getForObject("http://localhost:" + port + "/values", String.class); +        assertThat(response, CoreMatchers.containsString("Attribute values")); +    } +} |