From 09f78fb71884d9036828bd48081bc99d375e7c5e Mon Sep 17 00:00:00 2001
From: Keiichi Watanabe <udon.watanabe@gmail.com>
Date: Sun, 13 Aug 2017 05:24:39 +0900
Subject: [PATCH] fix integration tests for /admin/dict/*

---
 .../org/codelibs/fess/it/CrudTestBase.java     | 18 ++++++++----------
 .../fess/it/admin/dict/DictCrudTestBase.java   | 12 ++++++++++++
 .../fess/it/admin/dict/KuromojiTests.java      |  3 ---
 .../fess/it/admin/dict/MappingTests.java       |  1 -
 .../fess/it/admin/dict/ProtwordsTests.java     |  8 ++++----
 .../fess/it/admin/dict/SeunjeonTests.java      |  8 ++++----
 .../fess/it/admin/dict/SynonymTests.java       |  1 -
 7 files changed, 28 insertions(+), 23 deletions(-)

diff --git a/src/test/java/org/codelibs/fess/it/CrudTestBase.java b/src/test/java/org/codelibs/fess/it/CrudTestBase.java
index 085bf0141..23d1590c0 100644
--- a/src/test/java/org/codelibs/fess/it/CrudTestBase.java
+++ b/src/test/java/org/codelibs/fess/it/CrudTestBase.java
@@ -30,9 +30,9 @@ import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 import io.restassured.RestAssured;
 import io.restassured.path.json.JsonPath;
 import io.restassured.response.Response;
@@ -100,7 +100,7 @@ public abstract class CrudTestBase extends ITBase {
         for (int i = 0; i < NUM; i++) {
             final Map<String, Object> requestBody = createTestParam(i);
             checkPutMethod(requestBody, getItemEndpointSuffix()).then().body("response.created", equalTo(true))
-            .body("response.status", equalTo(0));
+                    .body("response.status", equalTo(0));
 
             //logger.info("create " + i + checkPutMethod(requestBody, getItemEndpointSuffix()).asString()); // for debugging
             refresh();
@@ -126,7 +126,7 @@ public abstract class CrudTestBase extends ITBase {
         idList.forEach(id -> {
             // Test: get setting api
             checkGetMethod(searchBody, getItemEndpointSuffix() + "/" + id).then()
-            //.body("response." + getItemEndpointSuffix() + ".id", equalTo(id))
+                    .body("response." + getItemEndpointSuffix() + "." + getIdKey(), equalTo(id))
                     .body("response." + getItemEndpointSuffix() + "." + getKeyProperty(), startsWith(getNamePrefix()));
         });
 
@@ -180,14 +180,12 @@ public abstract class CrudTestBase extends ITBase {
 
     protected void testDelete() {
         final Map<String, Object> searchBody = createSearchBody(SEARCH_ALL_NUM);
-        List<String> idList = getIdList(searchBody);
-
-        idList.forEach(id -> {
-            //Test: delete setting api
-            checkDeleteMethod(getItemEndpointSuffix() + "/" + id).then().body("response.status", equalTo(0));
-        });
 
-        refresh();
+        for (int count = 0; count < NUM; count++) {
+            final String id = getIdList(searchBody).get(0);
+            checkDeleteMethod(getItemEndpointSuffix() + "/" + id.toString()).then().body("response.status", equalTo(0));
+            refresh();
+        }
 
         // Test: number of settings.
         checkGetMethod(searchBody, getListEndpointSuffix()).then().body(getJsonPath() + ".size()", equalTo(0));
diff --git a/src/test/java/org/codelibs/fess/it/admin/dict/DictCrudTestBase.java b/src/test/java/org/codelibs/fess/it/admin/dict/DictCrudTestBase.java
index d7c992372..ef1811c31 100644
--- a/src/test/java/org/codelibs/fess/it/admin/dict/DictCrudTestBase.java
+++ b/src/test/java/org/codelibs/fess/it/admin/dict/DictCrudTestBase.java
@@ -18,6 +18,7 @@ package org.codelibs.fess.it.admin.dict;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -68,6 +69,17 @@ public abstract class DictCrudTestBase extends CrudTestBase {
         return "response." + LIST_ENDPOINT_SUFFIX + ".findAll {it." + getKeyProperty() + ".startsWith(\"" + getNamePrefix() + "\")}";
     }
 
+    @Override
+    protected List<String> getIdList(final Map<String, Object> body) {
+        String response = checkGetMethod(body, getListEndpointSuffix()).asString();
+        List<Object> objList = JsonPath.from(response).getList(getJsonPath() + "." + getIdKey());
+        List<String> ret = new ArrayList<>();
+        for (Object obj : objList) {
+            ret.add(obj.toString());
+        }
+        return ret;
+    }
+
     @Override
     protected void testRead() {
         final Map<String, Object> searchBody = new HashMap<>();
diff --git a/src/test/java/org/codelibs/fess/it/admin/dict/KuromojiTests.java b/src/test/java/org/codelibs/fess/it/admin/dict/KuromojiTests.java
index 26cc0574e..c9cd1294e 100644
--- a/src/test/java/org/codelibs/fess/it/admin/dict/KuromojiTests.java
+++ b/src/test/java/org/codelibs/fess/it/admin/dict/KuromojiTests.java
@@ -76,10 +76,7 @@ public class KuromojiTests extends DictCrudTestBase {
     @Override
     protected Map<String, Object> getUpdateMap() {
         final Map<String, Object> updateMap = new HashMap<>();
-        updateMap.put(KEY_PROPERTY, "new_token");
         updateMap.put("segmentation", "new_segment");
-        updateMap.put("reading", "new_reading");
-        updateMap.put("pos", "new_pos");
         return updateMap;
     }
 
diff --git a/src/test/java/org/codelibs/fess/it/admin/dict/MappingTests.java b/src/test/java/org/codelibs/fess/it/admin/dict/MappingTests.java
index 206cbeb4c..7111aea10 100644
--- a/src/test/java/org/codelibs/fess/it/admin/dict/MappingTests.java
+++ b/src/test/java/org/codelibs/fess/it/admin/dict/MappingTests.java
@@ -74,7 +74,6 @@ public class MappingTests extends DictCrudTestBase {
     @Override
     protected Map<String, Object> getUpdateMap() {
         final Map<String, Object> updateMap = new HashMap<>();
-        updateMap.put(KEY_PROPERTY, "new_inputs_mapping");
         updateMap.put("output", "new_output");
         return updateMap;
     }
diff --git a/src/test/java/org/codelibs/fess/it/admin/dict/ProtwordsTests.java b/src/test/java/org/codelibs/fess/it/admin/dict/ProtwordsTests.java
index 53b2ff9a6..438386ab4 100644
--- a/src/test/java/org/codelibs/fess/it/admin/dict/ProtwordsTests.java
+++ b/src/test/java/org/codelibs/fess/it/admin/dict/ProtwordsTests.java
@@ -15,6 +15,8 @@
  */
 package org.codelibs.fess.it.admin.dict;
 
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
 import java.util.HashMap;
 import java.util.Map;
 
@@ -72,16 +74,14 @@ public class ProtwordsTests extends DictCrudTestBase {
 
     @Override
     protected Map<String, Object> getUpdateMap() {
-        final Map<String, Object> updateMap = new HashMap<>();
-        updateMap.put(KEY_PROPERTY, "new_input_protwords");
-        return updateMap;
+        assertTrue(false); // Unreachable
+        return null;
     }
 
     @Test
     void crudTest() {
         testCreate();
         testRead();
-        testUpdate();
         testDelete();
     }
 }
diff --git a/src/test/java/org/codelibs/fess/it/admin/dict/SeunjeonTests.java b/src/test/java/org/codelibs/fess/it/admin/dict/SeunjeonTests.java
index ed69cbbf4..bb7be6eb3 100644
--- a/src/test/java/org/codelibs/fess/it/admin/dict/SeunjeonTests.java
+++ b/src/test/java/org/codelibs/fess/it/admin/dict/SeunjeonTests.java
@@ -15,6 +15,8 @@
  */
 package org.codelibs.fess.it.admin.dict;
 
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
 import java.util.HashMap;
 import java.util.Map;
 
@@ -72,16 +74,14 @@ public class SeunjeonTests extends DictCrudTestBase {
 
     @Override
     protected Map<String, Object> getUpdateMap() {
-        final Map<String, Object> updateMap = new HashMap<>();
-        updateMap.put(KEY_PROPERTY, "new_inputs_Seunjeon");
-        return updateMap;
+        assertTrue(false); // Unreachable
+        return null;
     }
 
     @Test
     void crudTest() {
         testCreate();
         testRead();
-        testUpdate();
         testDelete();
     }
 }
diff --git a/src/test/java/org/codelibs/fess/it/admin/dict/SynonymTests.java b/src/test/java/org/codelibs/fess/it/admin/dict/SynonymTests.java
index 56bb1bebd..5551ea321 100644
--- a/src/test/java/org/codelibs/fess/it/admin/dict/SynonymTests.java
+++ b/src/test/java/org/codelibs/fess/it/admin/dict/SynonymTests.java
@@ -74,7 +74,6 @@ public class SynonymTests extends DictCrudTestBase {
     @Override
     protected Map<String, Object> getUpdateMap() {
         final Map<String, Object> updateMap = new HashMap<>();
-        updateMap.put(KEY_PROPERTY, "new_inputs_Synonym");
         updateMap.put("outputs", "new_outputs");
         return updateMap;
     }
-- 
GitLab