From f51288ab6ac7b968be99a19784cd9c8de068f18c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Magdalena=20Grodzi=C5=84ska?= <mag.grodzinska@gmail.com>
Date: Wed, 25 Dec 2019 16:04:58 +0100
Subject: Extend client tests

---
 .../pl/edu/mimuw/cloudatlas/client/ClientTest.java | 66 ++++++++++++++++++++--
 1 file changed, 62 insertions(+), 4 deletions(-)

(limited to 'src/test/java/pl/edu')

diff --git a/src/test/java/pl/edu/mimuw/cloudatlas/client/ClientTest.java b/src/test/java/pl/edu/mimuw/cloudatlas/client/ClientTest.java
index 13b9fd7..431122b 100644
--- a/src/test/java/pl/edu/mimuw/cloudatlas/client/ClientTest.java
+++ b/src/test/java/pl/edu/mimuw/cloudatlas/client/ClientTest.java
@@ -6,18 +6,24 @@ 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.autoconfigure.web.servlet.AutoConfigureMockMvc;
 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.http.MediaType;
 import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.test.web.servlet.MockMvc;
 import pl.edu.mimuw.cloudatlas.api.Api;
 
 import java.rmi.registry.LocateRegistry;
 import java.rmi.registry.Registry;
 
 import static org.junit.Assert.assertThat;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
 
 @RunWith(SpringRunner.class)
+@AutoConfigureMockMvc
 @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
 public class ClientTest {
     private static Process registryProcess;
@@ -51,6 +57,9 @@ public class ClientTest {
     @LocalServerPort
     private int port;
 
+    @Autowired
+    private MockMvc mvc;
+
     @Autowired
     private TestRestTemplate restTemplate;
 
@@ -68,21 +77,70 @@ public class ClientTest {
 
     @Test
     public void queryInstallationCheck() throws Exception {
-        // TODO
+        this.mvc.perform(post("/installQuery")
+                        .param("name", "&sampleQuery")
+                        .param("value", "SELECT 1 AS one"))
+                .andExpect(status().isOk()).andExpect(content()
+                .contentType("text/html;charset=UTF-8"))
+                .andExpect(content().string(CoreMatchers.containsString("Query installed successfully")));
     }
 
     @Test
     public void queryUninstallationCheck() throws Exception {
-        // TODO
+        this.mvc.perform(post("/installQuery")
+                .param("name", "&sampleQuery")
+                .param("value", "SELECT 1 AS one"))
+                .andExpect(status().isOk()).andExpect(content()
+                .contentType("text/html;charset=UTF-8"))
+                .andExpect(content().string(CoreMatchers.containsString("Query installed successfully")));
+
+        this.mvc.perform(post("/uninstallQuery")
+                .param("name", "&sampleQuery"))
+                .andExpect(status().isOk()).andExpect(content()
+                .contentType("text/html;charset=UTF-8"))
+                .andExpect(content().string(CoreMatchers.containsString("Query uninstalled successfully")));
+    }
+
+    @Test
+    public void attributeInstallationCheck() throws Exception {
+        this.mvc.perform(post("/attribs")
+                .param("zoneName", "/")
+                .param("attributeName", "a")
+                .param("attributeType", "Int")
+                .param("valueString", "1"))
+                .andExpect(status().isOk()).andExpect(content()
+                .contentType("text/html;charset=UTF-8"))
+                .andExpect(content().string(CoreMatchers.containsString("Attribute submitted successfully")));
+    }
+
+    @Test
+    public void complexAttributeInstallationCheck() throws Exception {
+        this.mvc.perform(post("/attribs")
+                .param("zoneName", "/")
+                .param("attributeName", "a")
+                .param("attributeType", "List")
+                .param("attributeComplexType", "List, Set, Int")
+                .param("valueString", "[[1]]"))
+                .andExpect(status().isOk())
+                .andExpect(content().contentType("text/html;charset=UTF-8"))
+                .andExpect(content().string(CoreMatchers.containsString("Attribute submitted successfully")));
     }
 
     @Test
     public void numericalRESTApiCheck() throws Exception {
-        // TODO
+        Thread.sleep(10000);
+        this.mvc.perform(get("/attribNumValues")
+                .accept(MediaType.TEXT_PLAIN))
+                .andExpect(status().isOk())
+                .andExpect(content().string(CoreMatchers.containsString("num_processes")));
     }
 
     @Test
     public void allValuesRESTApiCheck() throws Exception {
-        // TODO
+        Thread.sleep(10000);
+        mvc.perform(get("/attribAllValues")
+                .accept(MediaType.TEXT_PLAIN))
+                .andExpect(status().isOk())
+                .andExpect(content().string(CoreMatchers.containsString("contacts")));
     }
 }
-- 
cgit v1.2.3