Fixed unit test
authoro.abakumov <alexander.abakumov@gmail.com>
Tue, 11 Jul 2017 11:47:56 +0000 (14:47 +0300)
committero.abakumov <alexander.abakumov@gmail.com>
Tue, 11 Jul 2017 11:49:57 +0000 (14:49 +0300)
server/src/test/java/com/samsung/dsm/restapi/DeviceApiTest.java
server/src/test/java/com/samsung/dsm/utils/CustomMatchers.java [new file with mode: 0644]

index 5b9ae9b..c790a55 100644 (file)
@@ -17,7 +17,7 @@ import org.springframework.test.web.servlet.ResultActions;
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
 import org.springframework.web.context.WebApplicationContext;
 
-import static org.hamcrest.CoreMatchers.equalTo;
+import static com.samsung.dsm.utils.CustomMatchers.containsJson;
 import static org.junit.Assert.assertThat;
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
 import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@@ -59,7 +59,7 @@ public class DeviceApiTest {
     public void deviceByUUIDOk() throws Exception {
         ResultActions result = mockMvc.perform(get("/restapi/device/1234")).andExpect(status().isOk());
         String content = result.andReturn().getResponse().getContentAsString();
-        assertThat(content, equalTo("{\"id\":1,\"uuid\":\"1234\",\"name\":\"s8\",\"type\":\"smartphone\",\"model\":\"samsung s8 edge\",\"status\":\"on\",\"statusText\":\"Connected\",\"agents\":null,\"reports\":null}"));
+        assertThat(content, containsJson("{\"uuid\":\"1234\",\"name\":\"s8\",\"type\":\"smartphone\",\"model\":\"samsung s8 edge\",\"status\":\"on\",\"statusText\":\"Connected\",\"agents\":null,\"reports\":null"));
     }
 
     @Test
diff --git a/server/src/test/java/com/samsung/dsm/utils/CustomMatchers.java b/server/src/test/java/com/samsung/dsm/utils/CustomMatchers.java
new file mode 100644 (file)
index 0000000..7e61a1d
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * In Samsung Ukraine R&D Center (SRK under a contract between)
+ * LLC "Samsung Electronics Co", Ltd (Seoul, Republic of Korea)
+ * Copyright: (c) Samsung Electronics Co, Ltd 2017. All rights reserved.
+ */
+package com.samsung.dsm.utils;
+
+
+/**
+ * Custom Hamcrest Matchers
+ * <p>
+ * Convenient matchers that help us to write concise tests
+ *
+ * @author <A HREF="mailto:o.abakumov@samsung.com">Oleksandr Abakumov</A>
+ * @version 1.0
+ * @since 2017-07-11
+ */
+public class CustomMatchers {
+
+    /**
+     * Strips '{' '}' , trims whitespaces before comparing
+     *
+     * @param json json as string
+     * @return matcher
+     */
+    public static org.hamcrest.Matcher<java.lang.String> containsJson(String json) {
+        String cleanString = json.replaceAll("\\{", "").replaceAll("}", "").trim();
+        return org.hamcrest.core.StringContains.containsString(cleanString);
+    }
+}