package com.tree.autotest.testcase.IAuditBillDetailService;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.datatrees.basisdata.bankbill.service.IAuditBillDetailService;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Maps;
import com.tree.autotest.BaseJunit4Test;
import com.tree.autotest.commons.CommonUtil_2;
import com.tree.autotest.commons.TestCase;
import com.tree.autotest.jdbc.DBIdConstant;
import com.tree.autotest.jdbc.ManagedSqlUtil;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.PostConstruct;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map; /**
* Created by lyh on 17/2/23.
*/
public class Test06 extends BaseJunit4Test{
@Autowired
private IAuditBillDetailService iAuditBillDetailService; private boolean handleOk;
private String insertSql1,insertSql2,insertSql3,insertSql4;
private static String excel;
private static Map allCases;
private Integer testuser;
private Integer billid;
private String spare; private Map<Short, String> bankMap = Maps.newHashMap(); @PostConstruct
public void init() {
bankMap.put((short)1, "招商银行");
bankMap.put((short)2, "广发银行");
bankMap.put((short)3, "光大银行");
bankMap.put((short)4, "华夏银行");
bankMap.put((short)5, "建设银行");
bankMap.put((short)6, "民生银行");
bankMap.put((short)7, "农业银行");
bankMap.put((short)8, "浦发银行");
bankMap.put((short)9, "兴业银行");
bankMap.put((short)10, "中国银行");
bankMap.put((short)11, "中信银行");
bankMap.put((short)12, "工商银行");
bankMap.put((short)13, "交通银行");
bankMap.put((short)14, "平安银行");
bankMap.put((short)15, "邮政储蓄银行");
bankMap.put((short)16, "广州农商银行");
bankMap.put((short)17, "浙江农信");
bankMap.put((short)18, "上海银行");
bankMap.put((short)19, "广州银行");
bankMap.put((short)20, "北京银行");
bankMap.put((short)21, "南京银行");
bankMap.put((short)22, "徽商银行");
bankMap.put((short)23, "天津银行");
bankMap.put((short)24, "苏州银行");
bankMap.put((short)25, "江苏银行");
bankMap.put((short)26, "宁波银行");
bankMap.put((short)27, "杭州银行");
bankMap.put((short)28, "重庆银行");
bankMap.put((short)29, "长沙银行");
bankMap.put((short)30, "民泰银行");
bankMap.put((short)31, "台州银行");
bankMap.put((short)32, "浙商银行");
} @Before
public void setUp() throws SQLException {
excel = "src/main/resources/case/IAuditBillDetailService/TestT06.xlsx";
allCases = CommonUtil_2.getAllCases(excel);
} @Test
public void test_case_1() throws Exception { //获取用户ID
TestCase testcase = CommonUtil_2.getTestCaseBean(allCases, "case1", "case1-1");
testuser = Integer.valueOf(testcase.param1);
billid = Integer.valueOf(testcase.param2);
spare = testcase.param3; //获取SQL
insertSql1 = testcase.stepSql;
insertSql2 = CommonUtil_2.getTestCaseBean(allCases, "case1", "case1-2").stepSql;
insertSql3 = CommonUtil_2.getTestCaseBean(allCases, "case1", "case1-3").stepSql;
insertSql4 = CommonUtil_2.getTestCaseBean(allCases, "case1", "case1-4").stepSql; //删除,添加数据
handleOk &= deleteData(testuser,spare);
handleOk &= ManagedSqlUtil.insertBySql(insertSql1, DBIdConstant.MySql_Basisdata_ID);
handleOk &= ManagedSqlUtil.insertBySql(insertSql2,DBIdConstant.MySql_Basisdata_ID);
handleOk &= ManagedSqlUtil.insertBySql(insertSql3,DBIdConstant.MySql_Basisdata_ID);
handleOk &= ManagedSqlUtil.insertBySql(insertSql4,DBIdConstant.MySql_Basisdata_ID);
//更新数据
handleOk &=updateBillId(testuser,spare);
// Date date =DateTime.now().toDate();
// DateTime deadline = new DateTime(date).plusMonths(-18);
// DateTime specialDeadline = deadline.dayOfMonth().withMinimumValue(); // System.out.println("DateUtils.getDateTimeNow().toDate()" + specialDeadline); //预期值列表
List<BankBillDetail_test> excepted_detaillist = get_excepted_details(testuser); //++++++++++++++实际值+++++++++++++
String actual_value =
iAuditBillDetailService.T06(testuser);
System.out.println("actual_value值:" + actual_value);
//字符串解析
String summary = JSON.parseObject(actual_value).getString("Summary");
String Detail = JSON.parseObject(actual_value).getString("Detail");
JSONArray list =JSON.parseArray(Detail);
//断言
Assert.assertEquals("List", summary);
Assert.assertNotNull(list);
for(int i =0;i<list.size();i++) { String st = list.get(i).toString();//list单个元素转换为字符串
ObjectMapper objectMapper = new ObjectMapper();
Map map = objectMapper.readValue(st, Map.class);//将字符串转换为Map.
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date=sdf.parse(map.get("PostDate").toString());//将字符串转换为Date类型
Assert.assertEquals(bankMap.get(excepted_detaillist.get(i).getBankId()), map.get("BankName"));
Assert.assertEquals(excepted_detaillist.get(i).getCardNo(), map.get("CardNo"));
Assert.assertEquals(excepted_detaillist.get(i).getTransTypeLevel1(), map.get("Type"));
Assert.assertEquals(excepted_detaillist.get(i).getDescription(), map.get("Description"));
Assert.assertEquals(excepted_detaillist.get(i).getPostDate().getTime(),date.getTime());
} } @After
public void tearDown() throws SQLException {
handleOk &= deleteData(testuser,spare);
} //定义数据清理
public boolean deleteData(Integer userid,String spare) {
String deleteSql1 = "delete from t_bill where userid="+userid+" ;";
String deleteSql2 = "delete from t_bill_detail where spare1='"+spare+"';";
String deleteSql3 = "delete from t_bill_extrainfo where userid = "+userid+";";
String deleteSql4 = "delete from t_bill_installment_summary where spare1='"+spare+"' ;";
handleOk &= ManagedSqlUtil.deleteBySql(deleteSql1, DBIdConstant.MySql_Basisdata_ID);
handleOk &= ManagedSqlUtil.deleteBySql(deleteSql2, DBIdConstant.MySql_Basisdata_ID);
handleOk &= ManagedSqlUtil.deleteBySql(deleteSql3, DBIdConstant.MySql_Basisdata_ID);
handleOk &= ManagedSqlUtil.deleteBySql(deleteSql4, DBIdConstant.MySql_Basisdata_ID);
return handleOk;
} public Boolean updateBillId(Integer userId,String Spare) throws SQLException{
String searchSql="select Id from t_bill where userid="+userId+";";
ResultSet rs =ManagedSqlUtil.selectBySql(searchSql,DBIdConstant.MySql_Basisdata_ID);
List<Integer> list = new ArrayList<Integer>();
while(rs.next()){
list.add(rs.getInt(1));
}
//更新t_bill_detail
String updateSql1="update t_bill_detail set billid="+list.get(0)+" where spare1='"+Spare+"';";
handleOk &= ManagedSqlUtil.updateBySql(updateSql1,DBIdConstant.MySql_Basisdata_ID);
//更新t_bill_extrainfo
String updateSql2="update t_bill_extrainfo set billid="+list.get(0)+" where userid="+userId+";";
handleOk &= ManagedSqlUtil.updateBySql(updateSql2, DBIdConstant.MySql_Basisdata_ID);
//更新t_bill_installment_summary
String updateSql3="update t_bill_installment_summary set billid="+list.get(0)+" where spare1='"+Spare+"';";
handleOk &= ManagedSqlUtil.updateBySql(updateSql3, DBIdConstant.MySql_Basisdata_ID);
return handleOk;
}
public List<BankBillDetail_test> get_excepted_details(Integer userid) throws SQLException {
String searchSql = "select BankId,CardNo,Level1TransType,Description,AmountMoney,PostDate from t_bill_detail where level1TransType='Level1_Comsumption' and TransactionTypeId =8 and billid in (select id from t_bill where userid="+userid+");";
ResultSet rs =ManagedSqlUtil.selectBySql(searchSql,DBIdConstant.MySql_Basisdata_ID);
List<BankBillDetail_test> list = new ArrayList<BankBillDetail_test>();
while(rs.next()){
BankBillDetail_test bankBillDetail = new BankBillDetail_test();
bankBillDetail.setBankId(rs.getShort("BankId"));
bankBillDetail.setCardNo(rs.getString("CardNo"));
bankBillDetail.setTransTypeLevel1(rs.getString("Level1TransType"));
bankBillDetail.setDescription(rs.getString("Description"));
bankBillDetail.setAmountManey(rs.getDouble("AmountMoney"));
bankBillDetail.setPostDate(rs.getDate("PostDate"));
list.add(bankBillDetail);
}
return list;
}
}

JSON,字符串,MAP转换的更多相关文章

  1. Android项目开发全程(四)-- 将网络返回的json字符串轻松转换成listview列表

    前面几篇博文介绍了从项目搭建到获取网络字符串,对一个项目的前期整体工作进行了详细的介绍,本篇接着上篇介绍一下怎么样优雅将网络返回的json字符串轻松转换成listview列表. 先上图,看一下效果. ...

  2. JSON字符串自动转换

    package com.zkn.newlearn.json; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObj ...

  3. Java对象与Json字符串的转换

    Java对象与Json字符串的转换 JSON是一种轻量级的数据交换格式,常用于前后端的数据交流 后端 : 前端 Java对象 > JsonString Java对象 < jsonStrin ...

  4. JAVA中使用alibaba fastjson实现JSONObject、Object、Json字符串的转换

    JAVA中使用alibaba fastjson实现JSONObject.Object.Json字符串的转换 Object转JSON字符串:String jsonStr = JSONObject.toJ ...

  5. C# 对象与JSON字符串互相转换的三种方式

    C# 对象与JSON字符串互相转换的三种方式 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式. 关于内存对象和JSON字符串的相互转换, ...

  6. JSON字符串互相转换的三种方式和性能比较

    C# 对象与JSON字符串互相转换的三种方式 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式. 关于内存对象和JSON字符串的相互转换, ...

  7. Java实现JSONObject对象与Json字符串互相转换

    Java实现JSONObject对象与Json字符串互相转换 JSONObject 转 JSON 字符串 Java代码: JSONObject jsonObject = new JSONObject( ...

  8. JAVA中JSON字符串格式转换

    alibabab版本  即com.alibaba.fastjson *以下Node为实体类 //JSON字符串->Map Map map1 = (Map)JSON.parse(strJson); ...

  9. js-jquery-对象与JSON字符串互相转换

    1:jQuery插件支持的转换方式 代码如下: String→Object$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转 ...

  10. Json序列化与反序列化(对象与Json字符串的转换)--C#

    public class JsonHelper { #region Json序列化与反序列化 /// <summary> /// 将json转化为对象 /// (需要提前构造好结构一致的M ...

随机推荐

  1. [ python ] 使用sys模块实现进度条

    在写网络IO传输的时候, 有时候需要进度条来显示当前传输进度,使用 sys 模块就可以实现: sys.stdout.write() 这个函数在在控制台输出字符串不会带任何结尾,这就意味着这个输出还没有 ...

  2. hdu 1513(滚动数组)

    Palindrome Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  3. AC日记——[Ahoi2013]作业 bzoj 3236

    3236 思路: 莫队+树状数组维护: 代码: #include <cmath> #include <cstdio> #include <cstring> #inc ...

  4. Cookie和session的简单理解和应用

    一.COOKIE 1.http协议建立连接后,无法保持状态:但实际情况,网站和服务器要进行通讯,需要“保持状态”,因此cookie应运而生:浏览器登陆web服务器后, Web 服务器产生包含有关用户的 ...

  5. ACM数论-欧几里得与拓展欧几里得算法

    欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数. 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b). ...

  6. Lightoj-1356 Prime Independence(质因子分解)(Hopcroft-Karp优化的最大匹配)

    题意: 找出一个集合中的最大独立集,任意两数字之间不能是素数倍数的关系. 思路: 最大独立集,必然是二分图. 最大数字50w,考虑对每个数质因子分解,然后枚举所有除去一个质因子后的数是否存在,存在则建 ...

  7. 实现tomcat与IIS共用80端口

    一.80端口被system占用的问题 目前生产环境的需要两种方式网站发布: [1].使用IIS发布.net开发的网站: [2].使用tomcat发布java开发的网站: 启动tomcat的时候发现无法 ...

  8. sqlserver用于统计表索引情况

    /*eg: --调用该过程实例 --1 创建临时表 IF OBJECT_ID('tempdb..#index_sql_text') IS NOT NULL DROP TABLE #index_sql_ ...

  9. webstorm9 License Key

    用户名 oschina 注册码 ===== LICENSE BEGIN ===== 7362-D18089T 00000xmyY1VfVxjkElWULKcA5XHbfN 5qjOh3fgGZvNXH ...

  10. csharp 面向对象编程

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Shap ...