1. package com.tree.autotest.testcase.IAuditBillDetailService;
  2.  
  3. 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;
  4.  
  5. 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;
  6.  
  7. /**
    * Created by lyh on 17/2/23.
    */
    public class Test06 extends BaseJunit4Test{
    @Autowired
    private IAuditBillDetailService iAuditBillDetailService;
  8.  
  9. 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;
  10.  
  11. private Map<Short, String> bankMap = Maps.newHashMap();
  12.  
  13. @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, "浙商银行");
    }
  14.  
  15. @Before
    public void setUp() throws SQLException {
    excel = "src/main/resources/case/IAuditBillDetailService/TestT06.xlsx";
    allCases = CommonUtil_2.getAllCases(excel);
    }
  16.  
  17. @Test
    public void test_case_1() throws Exception {
  18.  
  19. //获取用户ID
    TestCase testcase = CommonUtil_2.getTestCaseBean(allCases, "case1", "case1-1");
    testuser = Integer.valueOf(testcase.param1);
    billid = Integer.valueOf(testcase.param2);
    spare = testcase.param3;
  20.  
  21. //获取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;
  22.  
  23. //删除,添加数据
    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();
  24.  
  25. // System.out.println("DateUtils.getDateTimeNow().toDate()" + specialDeadline);
  26.  
  27. //预期值列表
    List<BankBillDetail_test> excepted_detaillist = get_excepted_details(testuser);
  28.  
  29. //++++++++++++++实际值+++++++++++++
    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++) {
  30.  
  31. 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());
    }
  32.  
  33. }
  34.  
  35. @After
    public void tearDown() throws SQLException {
    handleOk &= deleteData(testuser,spare);
    }
  36.  
  37. //定义数据清理
    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;
    }
  38.  
  39. 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. 学习struts2

    有部分内容转载牛人的博客: http://blog.csdn.net/hudie1234567/article/details/6730481 http://blog.csdn.net/lishuan ...

  2. DRF的限流功能

    限流,可以对接口访问的频次进行限制,以减轻服务器压力. 全局配置 在settings.py上添加 REST_FRAMEWORK = { 'DEFAULT_THROTTLE_CLASSES': ( 'r ...

  3. 【计算机网络】wireshark抓包分析2

    在分析1中,大概的看到了一个包中的信息.这里,看看这些包究竟在做什么 这是我的电脑跟某个网站交互的前4个包. 其中前三个包可以明显看出是TCP的三次握手. 那么,问题来了: 为什么第三个包的长度比前两 ...

  4. 洛谷——P1589 泥泞路

    P1589 泥泞路 题目描述 暴雨过后,FJ的农场到镇上的公路上有一些泥泞路,他有若干块长度为L的木板可以铺在这些泥泞路上,问他至少需要多少块木板,才能把所有的泥泞路覆盖住. 输入输出格式 输入格式: ...

  5. 理解XML-RPC

    有关XML-RPC http://baike.baidu.com/link?url=ejidFtjelUzPv75VBm5_XrzSbHtFgArYY47S1s1NK2_m-auOr10sTeRh6U ...

  6. Java 反射调用的一种优化

    写一些Java框架的时候,经常需要通过反射get或者set某个bean的field,比较普通的做法是获取field后调用java.lang.reflect.Field.get(Object),但每次都 ...

  7. POJ 3532 Resistance(高斯消元+基尔霍夫定理)

    [题目链接] http://poj.org/problem?id=3532 [题目大意] 给出n个点,一些点之间有电阻相连,求1~n的等效电阻 [题解] 有基尔霍夫定理:任何一个点(除起点和终点)发出 ...

  8. [CF865C]Gotta Go Fast

    题目大意: 一个游戏关卡有$n(n\le50)$个任务,若在$m$秒内按顺序完成所有任务则算作通过当前关卡.每个关卡有三个属性$a_i,b_i,p_i(1\le a_i<b_i\le100,80 ...

  9. 1.4(Mybatis学习笔记)关联映射

    一.一对一 mybatis处理一对一主要通过<resultMap>中的<association>元素来处理. <association>元素主要使用方方式有两种: ...

  10. 1.5(java学习笔记)this关键字

    this关键字主要有三个作用 1.调用本类中的属性. public class TextThis { public static void main(String[] args){ Person p1 ...