From 1bbe6125fbe065d97f2f3df5bcae48e72c8f1c65 Mon Sep 17 00:00:00 2001
From: chenlinghy <chenlinghy@cmhi.chinamobile.com>
Date: Mon, 27 Apr 2020 17:03:30 +0800
Subject: [PATCH] =?UTF-8?q?OCT=20REM:=201.=20=E6=B7=BB=E5=8A=A0=E8=8E=B7?=
 =?UTF-8?q?=E5=8F=96=E7=89=88=E6=9C=AC=E4=BF=A1=E6=81=AF=E7=9A=84=E5=93=8D?=
 =?UTF-8?q?=E5=BA=94=E6=8A=A5=E6=96=87=E5=86=85=E5=AE=B9=E5=88=A4=E6=96=AD?=
 =?UTF-8?q?=202.=20=E6=B7=BB=E5=8A=A0=E8=8E=B7=E5=8F=96=E8=AE=BE=E5=A4=87?=
 =?UTF-8?q?=E4=BF=A1=E6=81=AF=E7=9A=84=E5=93=8D=E5=BA=94=E6=8A=A5=E6=96=87?=
 =?UTF-8?q?=E5=86=85=E5=AE=B9=E5=88=A4=E6=96=AD=203.=20=E6=B7=BB=E5=8A=A0?=
 =?UTF-8?q?=E8=8E=B7=E5=8F=96=E8=8A=82=E7=82=B9=E8=83=BD=E5=8A=9B=E7=9A=84?=
 =?UTF-8?q?=E5=93=8D=E5=BA=94=E6=8A=A5=E6=96=87=E5=86=85=E5=AE=B9=E5=88=A4?=
 =?UTF-8?q?=E6=96=AD=204.=20=E6=B7=BB=E5=8A=A0=E8=8E=B7=E5=8F=96=E9=98=B2?=
 =?UTF-8?q?=E6=8A=A4IP=E7=9A=84=E5=93=8D=E5=BA=94=E6=8A=A5=E6=96=87?=
 =?UTF-8?q?=E5=86=85=E5=AE=B9=E5=88=A4=E6=96=AD=205.=20=E6=B7=BB=E5=8A=A0?=
 =?UTF-8?q?=E8=8E=B7=E5=8F=96=E8=83=BD=E5=8A=9B=E8=8A=82=E7=82=B9=E5=88=97?=
 =?UTF-8?q?=E8=A1=A8=E7=9A=84=E5=93=8D=E5=BA=94=E6=8A=A5=E6=96=87=E5=86=85?=
 =?UTF-8?q?=E5=AE=B9=E5=88=A4=E6=96=AD=206.=20=E6=B7=BB=E5=8A=A0=E8=8E=B7?=
 =?UTF-8?q?=E5=8F=96=E8=83=BD=E5=8A=9B=E8=8A=82=E7=82=B9=E8=AF=A6=E7=BB=86?=
 =?UTF-8?q?=E4=BF=A1=E6=81=AF=E7=9A=84=E5=93=8D=E5=BA=94=E6=8A=A5=E6=96=87?=
 =?UTF-8?q?=E5=86=85=E5=AE=B9=E5=88=A4=E6=96=AD=207.=20=E6=B7=BB=E5=8A=A0?=
 =?UTF-8?q?=E8=8E=B7=E5=8F=96=E9=93=BE=E6=8E=A5=E7=8A=B6=E6=80=81=E7=9A=84?=
 =?UTF-8?q?=E5=93=8D=E5=BA=94=E6=8A=A5=E6=96=87=E5=86=85=E5=AE=B9=E5=88=A4?=
 =?UTF-8?q?=E6=96=AD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 pom.xml                                       |   7 +
 .../dispose/Global/InitTestEnvironment.java   |  53 ++
 .../DeviceNodeInfoControllerTest.java         | 821 ++++++++++++++++--
 3 files changed, 814 insertions(+), 67 deletions(-)

diff --git a/pom.xml b/pom.xml
index a6b6e257..61098b5d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -74,6 +74,13 @@
 			<artifactId>fastjson</artifactId>
 			<version>1.2.58</version>
 		</dependency>
+		<dependency>
+			<groupId>net.sf.json-lib</groupId>
+			<artifactId>json-lib</artifactId>
+			<version>2.4</version>
+			<classifier>jdk15</classifier>
+		</dependency>
+
 		<!--mysql -->
 		<dependency>
 			<groupId>mysql</groupId>
diff --git a/src/test/java/com/dispose/Global/InitTestEnvironment.java b/src/test/java/com/dispose/Global/InitTestEnvironment.java
index e9c5b25a..ec65780b 100644
--- a/src/test/java/com/dispose/Global/InitTestEnvironment.java
+++ b/src/test/java/com/dispose/Global/InitTestEnvironment.java
@@ -7,11 +7,16 @@ import com.dispose.service.UserAccountService;
 import javax.annotation.Resource;
 import lombok.Getter;
 import lombok.extern.slf4j.Slf4j;
+import org.json.JSONException;
+import org.json.JSONObject;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.springframework.test.context.ActiveProfiles;
 
+import java.util.EnumMap;
+import java.util.Iterator;
+
 /**
  * The type Init test environment.
  */
@@ -31,6 +36,10 @@ public class InitTestEnvironment {
      * The Password.
      */
     private final String PASSWORD = "c3855e6b6bb120450f160ba91134522868f89d36062f2061ebeefd80817e1d58";
+    /**
+     * The connect timeout.
+     */
+    public static final int HTTP_CONNECT_TIMEOUT = 10000;
     /**
      * The User account service.
      */
@@ -70,4 +79,48 @@ public class InitTestEnvironment {
     public String getLogToken() {
         return logToken;
     }
+
+    /**
+     * Check response body.
+     */
+    public EnumMap<ErrorCode, String> verifyRep(String data, Long reqTime) throws JSONException {
+        Long verValue = 2L;
+        ErrorCode err = ErrorCode.ERR_OK;
+        EnumMap<ErrorCode, String> ret = new EnumMap<>(ErrorCode.class);
+
+        JSONObject jsonObject = new JSONObject(data);
+        Iterator it = jsonObject.keys();
+        System.out.println();
+        while (it.hasNext()) {
+            // 获得key
+            String key = (String) it.next();
+            String value = jsonObject.getString(key);
+            System.out.println("key: " + key + ",value:" + value);
+        }
+
+        Long repTime = Long.valueOf(jsonObject.getString("timeStamp"));
+        if ((jsonObject.getString("timeStamp").length() == 0) || (repTime - reqTime) > HTTP_CONNECT_TIMEOUT) {
+            err = ErrorCode.ERR_REQTIMEOUT;
+        }
+
+        Long ver = Long.valueOf(jsonObject.getString("ver"));
+        if ((jsonObject.getString("ver").length() == 0) || (!ver.equals(verValue))) {
+            err = ErrorCode.ERR_VERSION;
+        }
+
+        long cryptoType = Long.parseLong(jsonObject.getString("cryptoType"));
+        if ((String.valueOf(cryptoType).length() == 0) || (cryptoType < 0)) {
+            err = ErrorCode.ERR_INPUTMISS;
+        }
+
+        if((jsonObject.getString("code").length() == 0) ||
+                Long.parseLong(jsonObject.getString("code")) != 200){
+            err = ErrorCode.ERR_UNKNOWNCMD;
+        }
+
+        String msgContent = jsonObject.getString("msgContent");
+
+        ret.put(err, msgContent);
+        return ret;
+    }
 }
diff --git a/src/test/java/com/dispose/controller/DeviceNodeInfoControllerTest.java b/src/test/java/com/dispose/controller/DeviceNodeInfoControllerTest.java
index 459fa4d5..ceeafcb5 100644
--- a/src/test/java/com/dispose/controller/DeviceNodeInfoControllerTest.java
+++ b/src/test/java/com/dispose/controller/DeviceNodeInfoControllerTest.java
@@ -1,15 +1,33 @@
 package com.dispose.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.dispose.Global.InitTestEnvironment;
 import com.dispose.common.ConstValue;
+import com.dispose.common.ErrorCode;
+import com.dispose.dispose.po.DeviceInfo;
 import com.dispose.mapper.DisposeDeviceMapper;
 import com.dispose.pojo.dto.ProtocolReqDTO;
 import com.dispose.pojo.entity.DisposeDevice;
+import com.dispose.pojo.po.DisposeDeviceCapacity;
+import com.dispose.pojo.vo.common.DisposeCapacity;
 import com.dispose.pojo.vo.common.IDArrayReq;
+import com.dispose.pojo.vo.information.DeviceCapacityData;
+import com.dispose.pojo.vo.information.DisposeNodeData;
+import com.dispose.service.DisposeNodeManager;
 import com.dispose.service.UserAccountService;
 import com.fasterxml.jackson.databind.ObjectMapper;
+
+import java.util.EnumMap;
+import java.util.Iterator;
 import java.util.List;
+import java.util.concurrent.atomic.AtomicReference;
 import javax.annotation.Resource;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+import net.sf.json.JsonConfig;
+import org.checkerframework.checker.units.qual.C;
+import org.junit.Assert;
 import org.junit.FixMethodOrder;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -21,9 +39,11 @@ import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.context.junit4.SpringRunner;
 import org.springframework.test.web.servlet.MockMvc;
 import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
+
+import static java.lang.Boolean.FALSE;
+import static java.lang.Boolean.TRUE;
 import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
 
 /**
  * The type Device node info controller test.
@@ -58,6 +78,12 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
     @Resource
     private UserAccountService userAccountService;
 
+    /**
+     * The  Dispose device manager.
+     */
+    @Resource
+    private DisposeNodeManager disposeNodeManager;
+
 
     /**
      * Gets exists device id.
@@ -85,13 +111,14 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
                 .id(new String[]{String.valueOf(getExistsDeviceId()), "123"})
                 .build();
 
+        Long reqTimeStamp = System.currentTimeMillis();
         ProtocolReqDTO reqInfo = new ProtocolReqDTO();
         reqInfo.setVer(ConstValue.Protocol.VERSION);
         reqInfo.setCryptoType(ConstValue.Protocol.CRYPTO_NONE);
-        reqInfo.setTimeStamp(System.currentTimeMillis());
+        reqInfo.setTimeStamp(reqTimeStamp);
         reqInfo.setMsgContent(objectMapper.writeValueAsString(reqData));
 
-        mockMvc.perform(MockMvcRequestBuilders
+        String ver = mockMvc.perform(MockMvcRequestBuilders
                 .post("/information/version")
                 .contentType(MediaType.APPLICATION_JSON)
                 .header("Authorization", "Bearer " + getLogToken())
@@ -101,8 +128,42 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
                 .andReturn()
                 .getResponse()
                 .getContentAsString();
+
+        EnumMap<ErrorCode, String> ret = new EnumMap<ErrorCode, String>(ErrorCode.class);
+        ret = verifyRep(ver, reqTimeStamp);
+        ErrorCode err = ret.keySet().iterator().next();
+        Assert.assertEquals(err, ErrorCode.ERR_OK);
+
+        String msgContent = ret.get(err);
+        System.out.print("msgContent=" + msgContent);
+
+        JSONArray json = JSONArray.fromObject(msgContent);
+        for (int i = 0; i < json.size(); i++) {
+            JSONObject Content = json.getJSONObject(i);
+            String id = Content.getString("id");
+            //判断是否存在该能力唯一标识符
+            List<DisposeDevice> decs = disposeNodeManager.getAllDisposeDevice();
+            if (decs != null && decs.size() > 0) {
+                for (DisposeDevice v : decs
+                ) {
+                    String status = Content.getString("status");
+                    String message = Content.getString("message");
+                    //Mysql存在能力节点标识符,status"0" message"成功" 有对应的设备型号
+                    if (String.valueOf(v.getId()).equals(id)) {
+                        Assert.assertEquals(status, "0");
+                        Assert.assertEquals(message, "成功");
+                        Assert.assertNotNull(Content.getString("version"));
+                    } else {
+                        Assert.assertNotEquals(status, "0");
+                        Assert.assertNotEquals(message, "成功");
+                    }
+                }
+            }
+        }
+
     }
 
+
     /**
      * T 1 get version all.
      *
@@ -114,13 +175,14 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
                 .id(new String[]{})
                 .build();
 
+        Long reqTimeStamp = System.currentTimeMillis();
         ProtocolReqDTO reqInfo = new ProtocolReqDTO();
         reqInfo.setVer(ConstValue.Protocol.VERSION);
         reqInfo.setCryptoType(ConstValue.Protocol.CRYPTO_NONE);
-        reqInfo.setTimeStamp(System.currentTimeMillis());
+        reqInfo.setTimeStamp(reqTimeStamp);
         reqInfo.setMsgContent(objectMapper.writeValueAsString(reqData));
 
-        mockMvc.perform(MockMvcRequestBuilders
+        String verAll = mockMvc.perform(MockMvcRequestBuilders
                 .post("/information/version")
                 .contentType(MediaType.APPLICATION_JSON)
                 .header("Authorization", "Bearer " + getLogToken())
@@ -130,8 +192,28 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
                 .andReturn()
                 .getResponse()
                 .getContentAsString();
+
+        EnumMap<ErrorCode, String> ret = new EnumMap<ErrorCode, String>(ErrorCode.class);
+        ret = verifyRep(verAll, reqTimeStamp);
+        ErrorCode err = ret.keySet().iterator().next();
+        Assert.assertEquals(err, ErrorCode.ERR_OK);
+
+        String msgContent = ret.get(err);
+        System.out.print("msgContent=" + msgContent);
+
+        JSONArray json = JSONArray.fromObject(msgContent);
+        for (int i = 0; i < json.size(); i++) {
+            JSONObject Content = json.getJSONObject(i);
+
+            String status = Content.getString("status");
+            String message = Content.getString("message");
+            Assert.assertEquals(status, "0");
+            Assert.assertEquals(message, "成功");
+            Assert.assertNotNull(Content.getString("version"));
+        }
     }
 
+
     /**
      * T 2 get device info.
      *
@@ -143,13 +225,14 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
                 .id(new String[]{String.valueOf(getExistsDeviceId()), "123"})
                 .build();
 
+        Long reqTimeStamp = System.currentTimeMillis();
         ProtocolReqDTO reqInfo = new ProtocolReqDTO();
         reqInfo.setVer(ConstValue.Protocol.VERSION);
         reqInfo.setCryptoType(ConstValue.Protocol.CRYPTO_NONE);
-        reqInfo.setTimeStamp(System.currentTimeMillis());
+        reqInfo.setTimeStamp(reqTimeStamp);
         reqInfo.setMsgContent(objectMapper.writeValueAsString(reqData));
 
-        mockMvc.perform(MockMvcRequestBuilders
+        String deviceInfo = mockMvc.perform(MockMvcRequestBuilders
                 .post("/information/deviceinfo")
                 .contentType(MediaType.APPLICATION_JSON)
                 .header("Authorization", "Bearer " + getLogToken())
@@ -159,6 +242,65 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
                 .andReturn()
                 .getResponse()
                 .getContentAsString();
+
+        EnumMap<ErrorCode, String> ret = new EnumMap<ErrorCode, String>(ErrorCode.class);
+        ret = verifyRep(deviceInfo, reqTimeStamp);
+        ErrorCode err = ret.keySet().iterator().next();
+        Assert.assertEquals(err, ErrorCode.ERR_OK);
+
+        String msgContent = ret.get(err);
+        System.out.print("msgContent=" + msgContent);
+
+        org.json.JSONObject jsonObject = new org.json.JSONObject(msgContent);
+        Iterator it = jsonObject.keys();
+        System.out.println();
+        while (it.hasNext()) {
+            String key = (String) it.next();
+            String value = jsonObject.getString(key);
+            System.out.println("key: " + key + ",value:" + value);
+        }
+
+        String items = jsonObject.getString("items");
+        System.out.print("items=" + items);
+
+        JSONArray json = JSONArray.fromObject(items);
+        for (int i = 0; i < json.size(); i++) {
+            JSONObject Content = json.getJSONObject(i);
+            String id = Content.getString("id");
+
+            List<DisposeDevice> decs = disposeNodeManager.getAllDisposeDevice();
+            if (decs != null && decs.size() > 0) {
+                for (DisposeDevice v : decs
+                ) {
+                    String status = Content.getString("status");
+                    String message = Content.getString("message");
+                    String memory = Content.getString("memory");
+                    String freeMemory = Content.getString("freeMemory");
+                    String cpuUsed = Content.getString("cpuUsed");
+
+                    //Mysql存在能力节点标识符,status"0" message"成功" 有对应的设备型号
+                    if (String.valueOf(v.getId()).equals(id)) {
+                        Assert.assertEquals(status, "0");
+                        Assert.assertEquals(message, "成功");
+                        Assert.assertNotEquals(memory, "0");
+                        Assert.assertNotEquals(freeMemory, "0");
+                        Assert.assertNotEquals(cpuUsed, "0");
+                        Assert.assertNotEquals(Content.getString("vendor"), null);
+                        Assert.assertNotEquals(Content.getString("model"), null);
+                        Assert.assertNotEquals(Content.getString("firmware"), null);
+                        Assert.assertNotEquals(Content.getString("os"), null);
+                        Assert.assertNotEquals(Content.getString("kernel"), null);
+                        Assert.assertNotEquals(Content.getString("arch"), null);
+                    } else {
+                        Assert.assertNotEquals(status, "0");
+                        Assert.assertNotEquals(message, "成功");
+                        Assert.assertEquals(memory, "0");
+                        Assert.assertEquals(freeMemory, "0");
+                        Assert.assertEquals(cpuUsed, "0");
+                    }
+                }
+            }
+        }
     }
 
     /**
@@ -172,13 +314,14 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
                 .id(new String[]{})
                 .build();
 
+        Long reqTimeStamp = System.currentTimeMillis();
         ProtocolReqDTO reqInfo = new ProtocolReqDTO();
         reqInfo.setVer(ConstValue.Protocol.VERSION);
         reqInfo.setCryptoType(ConstValue.Protocol.CRYPTO_NONE);
-        reqInfo.setTimeStamp(System.currentTimeMillis());
+        reqInfo.setTimeStamp(reqTimeStamp);
         reqInfo.setMsgContent(objectMapper.writeValueAsString(reqData));
 
-        mockMvc.perform(MockMvcRequestBuilders
+        String deviceInfoAll = mockMvc.perform(MockMvcRequestBuilders
                 .post("/information/deviceinfo")
                 .contentType(MediaType.APPLICATION_JSON)
                 .header("Authorization", "Bearer " + getLogToken())
@@ -188,8 +331,65 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
                 .andReturn()
                 .getResponse()
                 .getContentAsString();
+
+        EnumMap<ErrorCode, String> ret = new EnumMap<ErrorCode, String>(ErrorCode.class);
+        ret = verifyRep(deviceInfoAll, reqTimeStamp);
+        ErrorCode err = ret.keySet().iterator().next();
+        Assert.assertEquals(err, ErrorCode.ERR_OK);
+
+        String msgContent = ret.get(err);
+        System.out.print("msgContent=" + msgContent);
+
+        org.json.JSONObject jsonObject = new org.json.JSONObject(msgContent);
+        Iterator it = jsonObject.keys();
+        System.out.println();
+        while (it.hasNext()) {
+            String key = (String) it.next();
+            String value = jsonObject.getString(key);
+            System.out.println("key: " + key + ",value:" + value);
+        }
+
+        String items = jsonObject.getString("items");
+        System.out.print("items=" + items);
+
+        net.sf.json.JSONArray json = JSONArray.fromObject(items);
+        for (int i = 0; i < json.size(); i++) {
+            JSONObject Content = json.getJSONObject(i);
+            String status = Content.getString("status");
+            String message = Content.getString("message");
+            String id = Content.getString("id");
+
+            List<DisposeDevice> decs = disposeNodeManager.getAllDisposeDevice();
+            if (decs != null && decs.size() > 0) {
+                for (DisposeDevice v : decs) {
+                    if (String.valueOf(v.getId()).equals(id)) {
+                        //json字符串转成对象  解析设备信息
+                        DeviceInfo dis = (DeviceInfo) JSONObject.toBean(Content, DeviceInfo.class);
+                        System.out.println(dis);
+                        Assert.assertNotEquals(String.valueOf(dis.getVendor()), null);
+                        Assert.assertNotEquals(String.valueOf(dis.getModel()), null);
+                        Assert.assertNotEquals(String.valueOf(dis.getFirmware()), null);
+                        Assert.assertNotEquals(String.valueOf(dis.getOs()), null);
+                        Assert.assertNotEquals(String.valueOf(dis.getKernel()), null);
+                        Assert.assertNotEquals(String.valueOf(dis.getArch()), null);
+                        Assert.assertNotEquals(String.valueOf(dis.getMemory()), null);
+                        Assert.assertNotEquals(String.valueOf(dis.getFreeMemory()), null);
+                        Assert.assertNotEquals(String.valueOf(dis.getCpuUsed()), null);
+                        Assert.assertEquals(status, "0");
+                        Assert.assertEquals(message, "成功");
+                    } else {
+                        Assert.assertNotEquals(status, "0");
+                        Assert.assertNotEquals(message, "成功");
+                        Assert.assertEquals(Content.getString("memory"), "0");
+                        Assert.assertEquals(Content.getString("freeMemory"), "0");
+                        Assert.assertEquals(Content.getString("cpuUsed"), "0");
+                    }
+                }
+            }
+        }
     }
 
+
     /**
      * T 3 get device capacity.
      *
@@ -201,13 +401,14 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
                 .id(new String[]{String.valueOf(getExistsDeviceId()), "123"})
                 .build();
 
+        Long reqTimeStamp = System.currentTimeMillis();
         ProtocolReqDTO reqInfo = new ProtocolReqDTO();
         reqInfo.setVer(ConstValue.Protocol.VERSION);
         reqInfo.setCryptoType(ConstValue.Protocol.CRYPTO_NONE);
-        reqInfo.setTimeStamp(System.currentTimeMillis());
+        reqInfo.setTimeStamp(reqTimeStamp);
         reqInfo.setMsgContent(objectMapper.writeValueAsString(reqData));
 
-        mockMvc.perform(MockMvcRequestBuilders
+        String capacity = mockMvc.perform(MockMvcRequestBuilders
                 .post("/information/capacity")
                 .contentType(MediaType.APPLICATION_JSON)
                 .header("Authorization", "Bearer " + getLogToken())
@@ -217,6 +418,59 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
                 .andReturn()
                 .getResponse()
                 .getContentAsString();
+
+        EnumMap<ErrorCode, String> ret = new EnumMap<ErrorCode, String>(ErrorCode.class);
+        ret = verifyRep(capacity, reqTimeStamp);
+        ErrorCode err = ret.keySet().iterator().next();
+        Assert.assertEquals(err, ErrorCode.ERR_OK);
+
+        String msgContent = ret.get(err);
+        System.out.print("msgContent=" + msgContent);
+
+        org.json.JSONObject jsonObject = new org.json.JSONObject(msgContent);
+        Iterator it = jsonObject.keys();
+        System.out.println();
+        while (it.hasNext()) {
+            String key = (String) it.next();
+            String value = jsonObject.getString(key);
+            System.out.println("key: " + key + ",value:" + value);
+        }
+
+        String items = jsonObject.getString("items");
+        System.out.println("items=" + items);
+
+        JSONArray json = JSONArray.fromObject(items);
+        for (int i = 0; i < json.size(); i++) {
+            JSONObject Content = json.getJSONObject(i);
+            String id = Content.getString("id");
+
+            List<DisposeDevice> decs = disposeNodeManager.getAllDisposeDevice();
+            if (decs != null && decs.size() > 0) {
+                for (DisposeDevice v : decs
+                ) {
+                    String status = Content.getString("status");
+                    String message = Content.getString("message");
+                    //Mysql存在能力节点标识符,status"0" message"成功" 有对应的设备型号
+                    if (String.valueOf(v.getId()).equals(id)) {
+                        Assert.assertEquals(status, "0");
+                        Assert.assertEquals(message, "成功");
+                        String capacity1 = Content.getString("capacity");
+                        //解析capacity 数组
+                        System.out.print("capacity=" + capacity1);
+                        JSONArray json1 = JSONArray.fromObject(capacity1);
+                        for (int j = 0; j < json1.size(); j++) {
+                            JSONObject capContent = json1.getJSONObject(j);
+                            Assert.assertNotEquals(capContent.getString("type") ,"-1");
+                            Assert.assertNotEquals(capContent.getString("tolCapacity"), "-1");
+                            Assert.assertNotEquals( capContent.getString("usedCapacity"), "-1");
+                        }
+                    } else {
+                        Assert.assertNotEquals(status, "0");
+                        Assert.assertNotEquals(message, "成功");
+                    }
+                }
+            }
+        }
     }
 
     /**
@@ -230,13 +484,14 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
                 .id(new String[]{})
                 .build();
 
+        Long reqTimeStamp = System.currentTimeMillis();
         ProtocolReqDTO reqInfo = new ProtocolReqDTO();
         reqInfo.setVer(ConstValue.Protocol.VERSION);
         reqInfo.setCryptoType(ConstValue.Protocol.CRYPTO_NONE);
-        reqInfo.setTimeStamp(System.currentTimeMillis());
+        reqInfo.setTimeStamp(reqTimeStamp);
         reqInfo.setMsgContent(objectMapper.writeValueAsString(reqData));
 
-        mockMvc.perform(MockMvcRequestBuilders
+        String capacityAll = mockMvc.perform(MockMvcRequestBuilders
                 .post("/information/capacity")
                 .contentType(MediaType.APPLICATION_JSON)
                 .header("Authorization", "Bearer " + getLogToken())
@@ -246,10 +501,56 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
                 .andReturn()
                 .getResponse()
                 .getContentAsString();
+
+        EnumMap<ErrorCode, String> ret = new EnumMap<ErrorCode, String>(ErrorCode.class);
+        ret = verifyRep(capacityAll, reqTimeStamp);
+        ErrorCode err = ret.keySet().iterator().next();
+        Assert.assertEquals(err, ErrorCode.ERR_OK);
+
+        String msgContent = ret.get(err);
+        System.out.print("msgContent=" + msgContent);
+
+        org.json.JSONObject jsonObject = new org.json.JSONObject(msgContent);
+        String items = jsonObject.getString("items");
+        System.out.println("items=" + items);
+
+        net.sf.json.JSONArray json = JSONArray.fromObject(items);
+        for (int i = 0; i < json.size(); i++) {
+            JSONObject Content = json.getJSONObject(i);
+            String id = Content.getString("id");
+            String status = Content.getString("status");
+            String message = Content.getString("message");
+
+            List<DisposeDevice> decs = disposeNodeManager.getAllDisposeDevice();
+            if (decs != null && decs.size() > 0) {
+                for (DisposeDevice v : decs
+                ) {
+                    //Mysql存在能力节点标识符,status"0" message"成功" 有对应的设备型号
+                    if (String.valueOf(v.getId()).equals(id)) {
+                        Assert.assertEquals(status, "0");
+                        Assert.assertEquals(message, "成功");
+                        String cap = Content.getString("capacity");
+
+                        net.sf.json.JSONArray capArray = JSONArray.fromObject(cap);
+                        List<?> list = JSONArray.toList(capArray, new DisposeCapacity(), new JsonConfig());
+                        for (Object o : list) {
+                            DisposeCapacity dis = (DisposeCapacity) o;
+                            Assert.assertNotEquals(String.valueOf(dis.getType()), "-1");
+                            Assert.assertNotEquals(String.valueOf(dis.getTolCapacity()), "-1");
+                            Assert.assertNotEquals(String.valueOf(dis.getUsedCapacity()), "-1");
+                        }
+                    } else {
+                        Assert.assertNotEquals(status, "0");
+                        Assert.assertNotEquals(message, "成功");
+                    }
+                }
+            }
+        }
+
     }
 
     /**
-     * T 4 get device protected ip.
+     * T 3 get device protected ip.
      *
      * @throws Exception the exception
      */
@@ -259,13 +560,14 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
                 .id(new String[]{String.valueOf(getExistsDeviceId()), "123"})
                 .build();
 
+        Long reqTimeStamp = System.currentTimeMillis();
         ProtocolReqDTO reqInfo = new ProtocolReqDTO();
         reqInfo.setVer(ConstValue.Protocol.VERSION);
         reqInfo.setCryptoType(ConstValue.Protocol.CRYPTO_NONE);
-        reqInfo.setTimeStamp(System.currentTimeMillis());
+        reqInfo.setTimeStamp(reqTimeStamp);
         reqInfo.setMsgContent(objectMapper.writeValueAsString(reqData));
 
-        mockMvc.perform(MockMvcRequestBuilders
+        String protectedIp = mockMvc.perform(MockMvcRequestBuilders
                 .post("/information/protected_ip")
                 .contentType(MediaType.APPLICATION_JSON)
                 .header("Authorization", "Bearer " + getLogToken())
@@ -275,10 +577,59 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
                 .andReturn()
                 .getResponse()
                 .getContentAsString();
+
+        String regex = "\\A(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)(\\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)){3}\\z";
+        EnumMap<ErrorCode, String> ret = new EnumMap<ErrorCode, String>(ErrorCode.class);
+        ret = verifyRep(protectedIp, reqTimeStamp);
+        ErrorCode err = ret.keySet().iterator().next();
+        Assert.assertEquals(err, ErrorCode.ERR_OK);
+
+        String msgContent = ret.get(err);
+        System.out.print("msgContent=" + msgContent);
+
+        org.json.JSONObject jsonObject = new org.json.JSONObject(msgContent);
+        String items = jsonObject.getString("items");
+        System.out.println("items=" + items);
+
+        net.sf.json.JSONArray json = JSONArray.fromObject(items);
+        for (int i = 0; i < json.size(); i++) {
+            JSONObject Content = json.getJSONObject(i);
+            String id = Content.getString("id");
+            String status = Content.getString("status");
+            String message = Content.getString("message");
+
+            List<DisposeDevice> decs = disposeNodeManager.getAllDisposeDevice();
+            if (decs != null && decs.size() > 0) {
+                for (DisposeDevice v : decs
+                ) {
+                    //Mysql存在能力节点标识符,status"0" message"成功" 有对应的设备型号
+                    if (String.valueOf(v.getId()).equals(id)) {
+                        Assert.assertEquals(status, "0");
+                        Assert.assertEquals(message, "成功");
+                        String cap = Content.getString("capacity");
+
+                        net.sf.json.JSONArray capArray = JSONArray.fromObject(cap);
+                        List<?> list = JSONArray.toList(capArray, new DisposeCapacity(), new JsonConfig());
+                        for (Object o : list) {
+                            DisposeCapacity dis = (DisposeCapacity) o;
+                            Assert.assertNotEquals(String.valueOf(dis.getType()), "-1");
+                            Assert.assertNotEquals(String.valueOf(dis.getDisposeIp()), null);
+                            //String[] disposeIps = dis.getDisposeIp().split(",");
+                            //for (String disposeIp : disposeIps) {
+                                //Assert.assertTrue(disposeIp.matches(regex));
+                            //}
+                        }
+                    } else {
+                        Assert.assertNotEquals(status, "0");
+                        Assert.assertNotEquals(message, "成功");
+                    }
+                }
+            }
+        }
     }
 
     /**
-     * T 4 get device protected ip all.
+     * T 3 get device protected ip all.
      *
      * @throws Exception the exception
      */
@@ -288,13 +639,14 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
                 .id(new String[]{})
                 .build();
 
+        Long reqTimeStamp = System.currentTimeMillis();
         ProtocolReqDTO reqInfo = new ProtocolReqDTO();
         reqInfo.setVer(ConstValue.Protocol.VERSION);
         reqInfo.setCryptoType(ConstValue.Protocol.CRYPTO_NONE);
-        reqInfo.setTimeStamp(System.currentTimeMillis());
+        reqInfo.setTimeStamp(reqTimeStamp);
         reqInfo.setMsgContent(objectMapper.writeValueAsString(reqData));
 
-        mockMvc.perform(MockMvcRequestBuilders
+        String protectedIpAll = mockMvc.perform(MockMvcRequestBuilders
                 .post("/information/protected_ip")
                 .contentType(MediaType.APPLICATION_JSON)
                 .header("Authorization", "Bearer " + getLogToken())
@@ -304,25 +656,76 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
                 .andReturn()
                 .getResponse()
                 .getContentAsString();
+
+        String regex = "\\A(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)(\\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)){3}\\z";
+        EnumMap<ErrorCode, String> ret = new EnumMap<ErrorCode, String>(ErrorCode.class);
+        ret = verifyRep(protectedIpAll, reqTimeStamp);
+        ErrorCode err = ret.keySet().iterator().next();
+        Assert.assertEquals(err, ErrorCode.ERR_OK);
+
+        String msgContent = ret.get(err);
+        System.out.print("msgContent=" + msgContent);
+
+        org.json.JSONObject jsonObject = new org.json.JSONObject(msgContent);
+        String items = jsonObject.getString("items");
+        System.out.println("items=" + items);
+
+        net.sf.json.JSONArray json = JSONArray.fromObject(items);
+        for (int i = 0; i < json.size(); i++) {
+            JSONObject Content = json.getJSONObject(i);
+            String id = Content.getString("id");
+            String status = Content.getString("status");
+            String message = Content.getString("message");
+
+            List<DisposeDevice> decs = disposeNodeManager.getAllDisposeDevice();
+            if (decs != null && decs.size() > 0) {
+                for (DisposeDevice v : decs
+                ) {
+                    //Mysql存在能力节点标识符,status"0" message"成功" 有对应的设备型号
+                    if (String.valueOf(v.getId()).equals(id)) {
+                        Assert.assertEquals(status, "0");
+                        Assert.assertEquals(message, "成功");
+                        String cap = Content.getString("capacity");
+
+                        net.sf.json.JSONArray capArray = JSONArray.fromObject(cap);
+                        List<?> list = JSONArray.toList(capArray, new DisposeCapacity(), new JsonConfig());
+                        for (Object o : list) {
+                            DisposeCapacity dis = (DisposeCapacity) o;
+                            Assert.assertNotEquals(String.valueOf(dis.getType()), "-1");
+                            Assert.assertNotEquals(String.valueOf(dis.getDisposeIp()), null);
+                            //String[] disposeIps = dis.getDisposeIp().split(",");
+                            //for (String disposeIp : disposeIps) {
+                            //Assert.assertTrue(disposeIp.matches(regex));
+                            //}
+                        }
+                    } else {
+                        Assert.assertNotEquals(status, "0");
+                        Assert.assertNotEquals(message, "成功");
+                    }
+                }
+            }
+        }
     }
 
     /**
-     * T 5 get dispose node list.
+     * T 3 get dispose node list.
      *
      * @throws Exception the exception
      */
     @Test
     public void t5_getDisposeNodeList() throws Exception {
         IDArrayReq reqData = IDArrayReq.builder()
+                .id(new String[]{String.valueOf(getExistsDeviceId()), "123"})
                 .build();
 
+        Long reqTimeStamp = System.currentTimeMillis();
         ProtocolReqDTO reqInfo = new ProtocolReqDTO();
         reqInfo.setVer(ConstValue.Protocol.VERSION);
         reqInfo.setCryptoType(ConstValue.Protocol.CRYPTO_NONE);
-        reqInfo.setTimeStamp(System.currentTimeMillis());
+        reqInfo.setTimeStamp(reqTimeStamp);
         reqInfo.setMsgContent(objectMapper.writeValueAsString(reqData));
 
-        mockMvc.perform(MockMvcRequestBuilders
+        String nodeList = mockMvc.perform(MockMvcRequestBuilders
                 .post("/information/node_list")
                 .contentType(MediaType.APPLICATION_JSON)
                 .header("Authorization", "Bearer " + getLogToken())
@@ -332,10 +735,59 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
                 .andReturn()
                 .getResponse()
                 .getContentAsString();
+
+        String regex = "\\A(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)(\\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)){3}\\z";
+        EnumMap<ErrorCode, String> ret = new EnumMap<ErrorCode, String>(ErrorCode.class);
+        ret = verifyRep(nodeList, reqTimeStamp);
+        ErrorCode err = ret.keySet().iterator().next();
+        Assert.assertEquals(err, ErrorCode.ERR_OK);
+
+        String msgContent = ret.get(err);
+        System.out.print("msgContent=" + msgContent);
+
+        org.json.JSONObject jsonObject = new org.json.JSONObject(msgContent);
+        Iterator it = jsonObject.keys();
+        System.out.println();
+        while (it.hasNext()) {
+            String key = (String) it.next();
+            String value = jsonObject.getString(key);
+            System.out.println("key: " + key + ",value:" + value);
+        }
+
+        String items = jsonObject.getString("items");
+        System.out.print("items=" + items);
+
+        net.sf.json.JSONArray json = JSONArray.fromObject(items);
+        for (int i = 0; i < json.size(); i++) {
+            JSONObject Content = json.getJSONObject(i);
+            String status = Content.getString("status");
+            String message = Content.getString("message");
+            String id = Content.getString("id");
+
+            List<DisposeDevice> decs = disposeNodeManager.getAllDisposeDevice();
+            if (decs != null && decs.size() > 0) {
+                for (DisposeDevice v : decs) {
+                    if (String.valueOf(v.getId()).equals(id)) {
+                        //json字符串转成对象  解析设备信息
+                        DisposeNodeData dis = (DisposeNodeData) JSONObject.toBean(Content, DisposeNodeData.class);
+                        System.out.println(dis);
+                        Assert.assertNotEquals(dis.getName(), null);
+                        Assert.assertNotEquals(dis.getType(), -1);
+                        Assert.assertNotEquals(dis.getIp(), null);
+                        Assert.assertTrue(dis.getIp().matches(regex));
+                        Assert.assertEquals(status, "0");
+                        Assert.assertEquals(message, "成功");
+                    } else {
+                        Assert.assertNotEquals(status, "0");
+                        Assert.assertNotEquals(message, "成功");
+                    }
+                }
+            }
+        }
     }
 
     /**
-     * T 5 get dispose node list all.
+     * T 3 get dispose node list all.
      *
      * @throws Exception the exception
      */
@@ -345,13 +797,14 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
                 .id(new String[]{})
                 .build();
 
+        Long reqTimeStamp = System.currentTimeMillis();
         ProtocolReqDTO reqInfo = new ProtocolReqDTO();
         reqInfo.setVer(ConstValue.Protocol.VERSION);
         reqInfo.setCryptoType(ConstValue.Protocol.CRYPTO_NONE);
-        reqInfo.setTimeStamp(System.currentTimeMillis());
+        reqInfo.setTimeStamp(reqTimeStamp);
         reqInfo.setMsgContent(objectMapper.writeValueAsString(reqData));
 
-        mockMvc.perform(MockMvcRequestBuilders
+        String nodeListAll = mockMvc.perform(MockMvcRequestBuilders
                 .post("/information/node_list")
                 .contentType(MediaType.APPLICATION_JSON)
                 .header("Authorization", "Bearer " + getLogToken())
@@ -361,10 +814,59 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
                 .andReturn()
                 .getResponse()
                 .getContentAsString();
+
+        String regex = "\\A(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)(\\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)){3}\\z";
+        EnumMap<ErrorCode, String> ret = new EnumMap<ErrorCode, String>(ErrorCode.class);
+        ret = verifyRep(nodeListAll, reqTimeStamp);
+        ErrorCode err = ret.keySet().iterator().next();
+        Assert.assertEquals(err, ErrorCode.ERR_OK);
+
+        String msgContent = ret.get(err);
+        System.out.print("msgContent=" + msgContent);
+
+        org.json.JSONObject jsonObject = new org.json.JSONObject(msgContent);
+        Iterator it = jsonObject.keys();
+        System.out.println();
+        while (it.hasNext()) {
+            String key = (String) it.next();
+            String value = jsonObject.getString(key);
+            System.out.println("key: " + key + ",value:" + value);
+        }
+
+        String items = jsonObject.getString("items");
+        System.out.print("items=" + items);
+
+        net.sf.json.JSONArray json = JSONArray.fromObject(items);
+        for (int i = 0; i < json.size(); i++) {
+            JSONObject Content = json.getJSONObject(i);
+            String status = Content.getString("status");
+            String message = Content.getString("message");
+            String id = Content.getString("id");
+
+            List<DisposeDevice> decs = disposeNodeManager.getAllDisposeDevice();
+            if (decs != null && decs.size() > 0) {
+                for (DisposeDevice v : decs) {
+                    if (String.valueOf(v.getId()).equals(id)) {
+                        //json字符串转成对象  解析设备信息
+                        DisposeNodeData dis = (DisposeNodeData) JSONObject.toBean(Content, DisposeNodeData.class);
+                        System.out.println(dis);
+                        Assert.assertNotEquals(dis.getName(), null);
+                        Assert.assertNotEquals(dis.getType(), -1);
+                        Assert.assertNotEquals(dis.getIp(), null);
+                        Assert.assertTrue(dis.getIp().matches(regex));
+                        Assert.assertEquals(status, "0");
+                        Assert.assertEquals(message, "成功");
+                    } else {
+                        Assert.assertNotEquals(status, "0");
+                        Assert.assertNotEquals(message, "成功");
+                    }
+                }
+            }
+        }
     }
 
     /**
-     * T 6 get dispose node details.
+     * T 3 get dispose node details.
      *
      * @throws Exception the exception
      */
@@ -374,13 +876,14 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
                 .id(new String[]{String.valueOf(getExistsDeviceId()), "123"})
                 .build();
 
+        Long reqTimeStamp = System.currentTimeMillis();
         ProtocolReqDTO reqInfo = new ProtocolReqDTO();
         reqInfo.setVer(ConstValue.Protocol.VERSION);
         reqInfo.setCryptoType(ConstValue.Protocol.CRYPTO_NONE);
-        reqInfo.setTimeStamp(System.currentTimeMillis());
+        reqInfo.setTimeStamp(reqTimeStamp);
         reqInfo.setMsgContent(objectMapper.writeValueAsString(reqData));
 
-        mockMvc.perform(MockMvcRequestBuilders
+        String disposeNodeDetails = mockMvc.perform(MockMvcRequestBuilders
                 .post("/information/node_details")
                 .contentType(MediaType.APPLICATION_JSON)
                 .header("Authorization", "Bearer " + getLogToken())
@@ -390,10 +893,85 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
                 .andReturn()
                 .getResponse()
                 .getContentAsString();
+
+        String cap = null;
+        String regex = "\\A(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)(\\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)){3}\\z";
+        EnumMap<ErrorCode, String> ret = new EnumMap<ErrorCode, String>(ErrorCode.class);
+        ret = verifyRep(disposeNodeDetails, reqTimeStamp);
+        ErrorCode err = ret.keySet().iterator().next();
+        Assert.assertEquals(err, ErrorCode.ERR_OK);
+
+        String msgContent = ret.get(err);
+        System.out.print("msgContent=" + msgContent);
+
+        org.json.JSONObject jsonObject = new org.json.JSONObject(msgContent);
+        Iterator it = jsonObject.keys();
+        System.out.println();
+        while (it.hasNext()) {
+            String key = (String) it.next();
+            String value = jsonObject.getString(key);
+            System.out.println("key: " + key + ",value:" + value);
+        }
+
+        String items = jsonObject.getString("items");
+        System.out.print("items=" + items);
+
+        net.sf.json.JSONArray json = JSONArray.fromObject(items);
+        for (int i = 0; i < json.size(); i++) {
+            JSONObject Content = json.getJSONObject(i);
+            String status = Content.getString("status");
+            String message = Content.getString("message");
+            String id = Content.getString("id");
+            String type = Content.getString("type");
+
+            List<DisposeDevice> decs = disposeNodeManager.getAllDisposeDevice();
+            if (decs != null && decs.size() > 0) {
+                for (DisposeDevice v : decs) {
+                    if (String.valueOf(v.getId()).equals(id)) {
+                        Assert.assertNotEquals(Content.getString("name"), null);
+                        Assert.assertNotEquals(Content.getString("ip"), null);
+                        Assert.assertTrue(Content.getString("ip").matches(regex));
+                        Assert.assertNotNull(Content.getString("areaCode"));
+                        Assert.assertNotNull(Content.getString("manufacturer"));
+                        Assert.assertNotNull(Content.getString("model"));
+                        Assert.assertNotNull(Content.getString("version"));
+                        Assert.assertNotNull(Content.getString("readme"));
+
+                        //解析capacity 数组
+                        if (Content.getString("capacity") != null) {
+                            cap = Content.getString("capacity");
+                        }
+
+                        net.sf.json.JSONArray capArray = JSONArray.fromObject(cap);
+                        List<?> list = JSONArray.toList(capArray, new DisposeCapacity(), new JsonConfig());
+                        for (Object o : list) {
+                            DisposeCapacity d = (DisposeCapacity) o;
+                            Assert.assertNotEquals(String.valueOf(d.getType()), "-1");
+                            Assert.assertNotEquals(String.valueOf(d.getDisposeIp()), null);
+                            //String[] disposeIps = dis.getDisposeIp().split(",");
+                            //for (String disposeIp : disposeIps) {
+                            //Assert.assertTrue(disposeIp.matches(regex));
+                            //}
+
+                            Assert.assertNotNull(String.valueOf(d.getTolCapacity()));
+                            Assert.assertNotNull(String.valueOf(d.getUsedCapacity()));
+                        }
+
+                        Assert.assertEquals(status, "0");
+                        Assert.assertEquals(message, "成功");
+                        Assert.assertNotEquals(type, "-1");
+                    } else {
+                        Assert.assertNotEquals(status, "0");
+                        Assert.assertNotEquals(message, "成功");
+                        Assert.assertNotEquals(type, "-1");
+                    }
+                }
+            }
+        }
     }
 
     /**
-     * T 6 get dispose node details all.
+     * T 3 get dispose node details all.
      *
      * @throws Exception the exception
      */
@@ -403,13 +981,14 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
                 .id(new String[]{})
                 .build();
 
+        Long reqTimeStamp = System.currentTimeMillis();
         ProtocolReqDTO reqInfo = new ProtocolReqDTO();
         reqInfo.setVer(ConstValue.Protocol.VERSION);
         reqInfo.setCryptoType(ConstValue.Protocol.CRYPTO_NONE);
-        reqInfo.setTimeStamp(System.currentTimeMillis());
+        reqInfo.setTimeStamp(reqTimeStamp);
         reqInfo.setMsgContent(objectMapper.writeValueAsString(reqData));
 
-        mockMvc.perform(MockMvcRequestBuilders
+        String disposeNodeDetailsAll = mockMvc.perform(MockMvcRequestBuilders
                 .post("/information/node_details")
                 .contentType(MediaType.APPLICATION_JSON)
                 .header("Authorization", "Bearer " + getLogToken())
@@ -419,26 +998,97 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
                 .andReturn()
                 .getResponse()
                 .getContentAsString();
+
+        String cap = null;
+        String regex = "\\A(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)(\\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)){3}\\z";
+        EnumMap<ErrorCode, String> ret = new EnumMap<ErrorCode, String>(ErrorCode.class);
+        ret = verifyRep(disposeNodeDetailsAll, reqTimeStamp);
+        ErrorCode err = ret.keySet().iterator().next();
+        Assert.assertEquals(err, ErrorCode.ERR_OK);
+
+        String msgContent = ret.get(err);
+        System.out.print("msgContent=" + msgContent);
+
+        org.json.JSONObject jsonObject = new org.json.JSONObject(msgContent);
+        Iterator it = jsonObject.keys();
+        System.out.println();
+        while (it.hasNext()) {
+            String key = (String) it.next();
+            String value = jsonObject.getString(key);
+            System.out.println("key: " + key + ",value:" + value);
+        }
+
+        String items = jsonObject.getString("items");
+        System.out.print("items=" + items);
+
+        net.sf.json.JSONArray json = JSONArray.fromObject(items);
+        for (int i = 0; i < json.size(); i++) {
+            JSONObject Content = json.getJSONObject(i);
+            String status = Content.getString("status");
+            String message = Content.getString("message");
+            String id = Content.getString("id");
+            String type = Content.getString("type");
+
+            List<DisposeDevice> decs = disposeNodeManager.getAllDisposeDevice();
+            if (decs != null && decs.size() > 0) {
+                for (DisposeDevice v : decs) {
+                    if (String.valueOf(v.getId()).equals(id)) {
+                        Assert.assertNotEquals(Content.getString("name"), null);
+                        Assert.assertNotEquals(Content.getString("ip"), null);
+                        Assert.assertTrue(Content.getString("ip").matches(regex));
+                        Assert.assertNotNull(Content.getString("areaCode"));
+                        Assert.assertNotNull(Content.getString("manufacturer"));
+                        Assert.assertNotNull(Content.getString("model"));
+                        Assert.assertNotNull(Content.getString("version"));
+                        Assert.assertNotNull(Content.getString("readme"));
+
+                        //解析capacity 数组
+                        if (Content.getString("capacity") != null) {
+                            cap = Content.getString("capacity");
+                        }
+
+                        net.sf.json.JSONArray capArray = JSONArray.fromObject(cap);
+                        List<?> list = JSONArray.toList(capArray, new DisposeCapacity(), new JsonConfig());
+                        for (Object o : list) {
+                            DisposeCapacity d = (DisposeCapacity) o;
+                            Assert.assertNotEquals(String.valueOf(d.getType()), "-1");
+                            Assert.assertNotEquals(String.valueOf(d.getDisposeIp()), null);
+                            //String[] disposeIps = dis.getDisposeIp().split(",");
+                            //for (String disposeIp : disposeIps) {
+                            //Assert.assertTrue(disposeIp.matches(regex));
+                            //}
+
+                            Assert.assertNotNull(String.valueOf(d.getTolCapacity()));
+                            Assert.assertNotNull(String.valueOf(d.getUsedCapacity()));
+                        }
+
+                        Assert.assertEquals(status, "0");
+                        Assert.assertEquals(message, "成功");
+                        Assert.assertNotEquals(type, "-1");
+                    } else {
+                        Assert.assertNotEquals(status, "0");
+                        Assert.assertNotEquals(message, "成功");
+                        Assert.assertNotEquals(type, "-1");
+                    }
+                }
+            }
+        }
     }
 
-    /**
-     * T 7 get link status.
-     *
-     * @throws Exception the exception
-     */
     @Test
     public void t7_getLinkStatus() throws Exception {
         IDArrayReq reqData = IDArrayReq.builder()
                 .id(new String[]{String.valueOf(getExistsDeviceId()), "123"})
                 .build();
 
+        Long reqTimeStamp = System.currentTimeMillis();
         ProtocolReqDTO reqInfo = new ProtocolReqDTO();
         reqInfo.setVer(ConstValue.Protocol.VERSION);
         reqInfo.setCryptoType(ConstValue.Protocol.CRYPTO_NONE);
-        reqInfo.setTimeStamp(System.currentTimeMillis());
+        reqInfo.setTimeStamp(reqTimeStamp);
         reqInfo.setMsgContent(objectMapper.writeValueAsString(reqData));
 
-        mockMvc.perform(MockMvcRequestBuilders
+        String linkstatus = mockMvc.perform(MockMvcRequestBuilders
                 .post("/information/linkstatus")
                 .contentType(MediaType.APPLICATION_JSON)
                 .header("Authorization", "Bearer " + getLogToken())
@@ -448,26 +1098,55 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
                 .andReturn()
                 .getResponse()
                 .getContentAsString();
+
+        EnumMap<ErrorCode, String> ret = new EnumMap<ErrorCode, String>(ErrorCode.class);
+        ret = verifyRep(linkstatus, reqTimeStamp);
+        ErrorCode err = ret.keySet().iterator().next();
+        Assert.assertEquals(err, ErrorCode.ERR_OK);
+
+        String msgContent = ret.get(err);
+        System.out.print("msgContent=" + msgContent);
+
+        net.sf.json.JSONArray json = JSONArray.fromObject(msgContent);
+        for (int i = 0; i < json.size(); i++) {
+            JSONObject Content = json.getJSONObject(i);
+            String status = Content.getString("status");
+            String message = Content.getString("message");
+            String id = Content.getString("id");
+            String online = Content.getString("online");
+
+            List<DisposeDevice> decs = disposeNodeManager.getAllDisposeDevice();
+            if (decs != null && decs.size() > 0) {
+                for (DisposeDevice v : decs) {
+                    if (String.valueOf(v.getId()).equals(id)) {
+                        Assert.assertEquals(status, "0");
+                        Assert.assertEquals(message, "成功");
+                        Assert.assertEquals(online, "1");
+                    }
+                }
+            } else {
+                Assert.assertNotEquals(status, "0");
+                Assert.assertNotEquals(message, "成功");
+                Assert.assertEquals(online, "0");
+            }
+        }
     }
 
-    /**
-     * T 7 get link status all.
-     *
-     * @throws Exception the exception
-     */
+
     @Test
     public void t7_getLinkStatusAll() throws Exception {
         IDArrayReq reqData = IDArrayReq.builder()
                 .id(new String[]{})
                 .build();
 
+        Long reqTimeStamp = System.currentTimeMillis();
         ProtocolReqDTO reqInfo = new ProtocolReqDTO();
         reqInfo.setVer(ConstValue.Protocol.VERSION);
         reqInfo.setCryptoType(ConstValue.Protocol.CRYPTO_NONE);
-        reqInfo.setTimeStamp(System.currentTimeMillis());
+        reqInfo.setTimeStamp(reqTimeStamp);
         reqInfo.setMsgContent(objectMapper.writeValueAsString(reqData));
 
-        mockMvc.perform(MockMvcRequestBuilders
+        String linkStatusAll = mockMvc.perform(MockMvcRequestBuilders
                 .post("/information/linkstatus")
                 .contentType(MediaType.APPLICATION_JSON)
                 .header("Authorization", "Bearer " + getLogToken())
@@ -477,30 +1156,38 @@ public class DeviceNodeInfoControllerTest extends InitTestEnvironment {
                 .andReturn()
                 .getResponse()
                 .getContentAsString();
-    }
 
-    @Test
-    public void t8_getNodeAllRunTask() throws Exception {
-        IDArrayReq reqData = IDArrayReq.builder()
-                .id(new String[]{String.valueOf(getExistsDeviceId()), "123"})
-                .build();
+        EnumMap<ErrorCode, String> ret = new EnumMap<ErrorCode, String>(ErrorCode.class);
+        ret = verifyRep(linkStatusAll, reqTimeStamp);
+        ErrorCode err = ret.keySet().iterator().next();
+        Assert.assertEquals(err, ErrorCode.ERR_OK);
 
-        ProtocolReqDTO reqInfo = new ProtocolReqDTO();
-        reqInfo.setVer(ConstValue.Protocol.VERSION);
-        reqInfo.setCryptoType(ConstValue.Protocol.CRYPTO_NONE);
-        reqInfo.setTimeStamp(System.currentTimeMillis());
-        reqInfo.setMsgContent(objectMapper.writeValueAsString(reqData));
+        String msgContent = ret.get(err);
+        System.out.print("msgContent=" + msgContent);
 
-        mockMvc.perform(MockMvcRequestBuilders
-                .post("/information/run_task")
-                .contentType(MediaType.APPLICATION_JSON)
-                .header("Authorization", "Bearer " + getLogToken())
-                .content(objectMapper.writeValueAsString(reqInfo)))
-                .andDo(print()).andExpect(status().isOk())
-                .andExpect(jsonPath("$.code").value(200))
-                .andReturn()
-                .getResponse()
-                .getContentAsString();
+        net.sf.json.JSONArray json = JSONArray.fromObject(msgContent);
+        for (int i = 0; i < json.size(); i++) {
+            JSONObject Content = json.getJSONObject(i);
+            String status = Content.getString("status");
+            String message = Content.getString("message");
+            String id = Content.getString("id");
+            String online = Content.getString("online");
+
+            List<DisposeDevice> decs = disposeNodeManager.getAllDisposeDevice();
+            if (decs != null && decs.size() > 0) {
+                for (DisposeDevice v : decs) {
+                    if (String.valueOf(v.getId()).equals(id)) {
+                        Assert.assertEquals(status, "0");
+                        Assert.assertEquals(message, "成功");
+                        Assert.assertEquals(online, "1");
+                    }
+                }
+            } else {
+                Assert.assertNotEquals(status, "0");
+                Assert.assertNotEquals(message, "成功");
+                Assert.assertEquals(online, "0");
+            }
+        }
     }
 
     @Test