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, "China Merchants Bank");
Bankmap.put (short) 2, "GF Bank");
Bankmap.put (short) 3, "Everbright Bank");
Bankmap.put (short) 4, "Huaxia Bank");
Bankmap.put (short) 5, "CCB");
Bankmap.put (short) 6, "Minsheng Bank");
Bankmap.put (short) 7, "ABC");
Bankmap.put (short) 8, "Pune Bank");
Bankmap.put (short) 9, "Henyep Bank");
Bankmap.put ((short) 10, "Bank of China");
Bankmap.put (short) 11, "Citic Bank");
Bankmap.put (short) 12, "ICBC");
Bankmap.put (short) 13, "Bank of Communications");
Bankmap.put (short) 14, "Ping An Bank");
Bankmap.put (short) 15, "Postal Savings Bank");
Bankmap.put (short) 16, "Guangzhou Agricultural Business Bank");
Bankmap.put (short) 17, "Zhejiang Rural Credit");
Bankmap.put (short) 18, "Shanghai Bank");
Bankmap.put (short) 19, "Bank of Guangzhou");
Bankmap.put (short) 20, "Bank of Beijing");
Bankmap.put (short) 21, "Nanjing Bank");
Bankmap.put (short) 22, "Huizhou Merchants Bank");
Bankmap.put (short) 23, "Tianjin Bank");
Bankmap.put (short) 24, "Suzhou Bank");
Bankmap.put (short) 25, "Bank of Jiangsu");
Bankmap.put (short) 26, "Ningbo Bank");
Bankmap.put (short) 27, "Bank of Hangzhou");
Bankmap.put (short) 28, "Bank of Chongqing");
Bankmap.put (short) 29, "Changsha Bank");
Bankmap.put (short) 30, "Min Tai Bank");
Bankmap.put (short) 31, "Taizhou Bank");
Bankmap.put (short) 32, "Zhejiang Merchants Bank");
}
@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 {
Get User ID
TestCase TestCase = Commonutil_2.gettestcasebean (allcases, "Case1", "case1-1");
TestUser = integer.valueof (testcase.param1);
billID = integer.valueof (TESTCASE.PARAM2);
Spare = TESTCASE.PARAM3;
Get 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;
Delete, add data
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);
Update data
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 of expected values
list<bankbilldetail_test> excepted_detaillist = get_excepted_details (testuser);
++++++++++++++ Actual value +++++++++++++
String Actual_value =
iauditbilldetailservice.t06 (testuser);
System.out.println ("Actual_value value:" + actual_value);
String parsing
String Summary = Json.parseobject (Actual_value). GetString ("Summary");
String Detail = Json.parseobject (actual_value). getString ("Detail");
jsonarray list =json.parsearray (Detail);
Assertion
Assert.assertequals ("List", summary);
Assert.assertnotnull (list);
for (int i =0;i<list.size (); i++) {
String st = List.get (i). toString ();//list a single element into a string
objectmapper objectmapper = new Objectmapper ();
map map = Objectmapper.readvalue (St, Map.class);//convert String to Map.
SimpleDateFormat sdf = new SimpleDateFormat ("Yyyy-mm-dd HH:mm:ss");
Date Date=sdf.parse (Map.get ("Postdate"). toString ());//convert String to Date type
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);
}
Define Data Cleansing
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));
}
Update 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);
Update 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);
Update 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, string, map conversion