package nc.api.gl.testcase.base; import java.util.Map; import nc.bs.logging.Logger; import nccloud.api.testcase.base.AbstractAPITestCase; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.json.JSONTokener; public abstract class GLBaseApiTestCase extends AbstractAPITestCase { private boolean compareFlag = true; public GLBaseApiTestCase(Map token) { super(token); } public StringBuilder compare(String preJson, String rtnJson) { StringBuilder sbmsg = null; try { Object e = (new JSONTokener(preJson)).nextValue(); Object outData = (new JSONTokener(rtnJson)).nextValue(); sbmsg = this.compareObject("ResultVO", (Object)e, (Object)outData); } catch (JSONException var6) { this.compareFlag = false; Logger.error(var6.getMessage(), var6); } super.setCompareFlag(this.compareFlag); return sbmsg; } public String getModule() { return "gl"; } private void setRowInfo(StringBuilder sbmsg, String key, Object prevalue, Object rtnvalue) { sbmsg.append("").append(key).append("").append(prevalue).append("").append(rtnvalue).append("").append(prevalue.equals(rtnvalue)?"相等":"不相等").append(""); } private StringBuilder compareArray(String title, JSONArray preData, JSONArray outputData) throws JSONException { StringBuilder msg = new StringBuilder(); int length = preData.length(); for(int i = 0; i < length; ++i) { Object preObj = preData.get(i); Object outObj = outputData.get(i); StringBuilder subMsg = this.compareObject(title + i, (Object)preObj, (Object)outObj); msg.append(subMsg); } return msg; } private StringBuilder compareObject(String title, JSONObject preObj, JSONObject outObj) throws JSONException { StringBuilder msg = new StringBuilder(); msg.append("
比较实体:").append(title).append("
"); msg.append(""); String[] keys = JSONObject.getNames(preObj); if(keys != null && keys.length > 0) { String[] var6 = keys; int var7 = keys.length; int var8; String key; Object preKeyObj; StringBuilder subMsg; for(var8 = 0; var8 < var7; ++var8) { key = var6[var8]; if(!key.equals("ts")) { preKeyObj = preObj.get(key); if(!(preKeyObj instanceof JSONArray) && !(preKeyObj instanceof JSONObject)) { subMsg = this.compareObject(key, (Object)preObj.get(key), (Object)outObj.get(key)); msg.append(subMsg); } } } msg.append("
比较属性名称期望值目的值是否相等
"); var6 = keys; var7 = keys.length; for(var8 = 0; var8 < var7; ++var8) { key = var6[var8]; if(!key.equals("ts")) { preKeyObj = preObj.get(key); if(preKeyObj instanceof JSONArray || preKeyObj instanceof JSONObject) { subMsg = this.compareObject(key, (Object)preObj.get(key), (Object)outObj.get(key)); msg.append(subMsg); } } } } return msg; } private StringBuilder compareObject(String title, Object preObj, Object outObj) throws JSONException { StringBuilder msg = new StringBuilder(); StringBuilder subMsg; if(preObj instanceof JSONArray) { subMsg = this.compareArray(title, (JSONArray)preObj, (JSONArray)outObj); msg.append(subMsg); } else if(preObj instanceof JSONObject) { subMsg = this.compareObject(title, (JSONObject)((JSONObject)preObj), (JSONObject)((JSONObject)outObj)); msg.append(subMsg); } else { this.setRowInfo(msg, title, preObj, outObj); } return msg; } }