单元测试实现样例
Change-Id: Ia90dbc163c19a033ed26d3551e7b4c40051ac4f6
diff --git a/src/main/java/tracker/Tracker.java b/src/main/java/tracker/Tracker.java
index d53c258..6334ebb 100644
--- a/src/main/java/tracker/Tracker.java
+++ b/src/main/java/tracker/Tracker.java
@@ -11,10 +11,10 @@
import com.querydsl.jpa.impl.JPAUpdateClause;
+import entity.QUserPT;
import entity.TTorent;
import entity.TransRecord;
import entity.config;
-import entity.QUserPT;
public class Tracker implements TrackerInterface {
private final EntityManagerFactory emf;
@@ -80,32 +80,92 @@
}
@Override
- public boolean AddDownload(String userid,int download){
- return true;
- };//给用户增加下载量,返回0成功,返回1失败;
+ public boolean AddDownload(String userid, int download) {
+ EntityManager em = emf.createEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+ QUserPT q = QUserPT.userPT;
+ long updated = new JPAUpdateClause(em, q)
+ .where(q.userid.eq(userid))
+ .set(q.download, q.download.add(download))
+ .execute();
+ tx.commit();
+ return updated <= 0;
+ } catch(Exception e) {
+ if (tx.isActive()) tx.rollback();
+ return true;
+ } finally {
+ em.close();
+ }
+ }
@Override
- public boolean ReduceDownload(String userid,int download){
- return true;
- };//给用户减少下载量,返回0成功,返回1失败;
+ public boolean ReduceDownload(String userid, int download) {
+ EntityManager em = emf.createEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+ QUserPT q = QUserPT.userPT;
+ long updated = new JPAUpdateClause(em, q)
+ .where(q.userid.eq(userid))
+ .set(q.download, q.download.subtract(download))
+ .execute();
+ tx.commit();
+ return updated <= 0;
+ } catch(Exception e) {
+ if (tx.isActive()) tx.rollback();
+ return true;
+ } finally {
+ em.close();
+ }
+ }
@Override
- public boolean AddMagic(String userid,int magic){
- return true;
- };//给用户增加魔力值,返回0成功,返回1失败;
+ public boolean AddMagic(String userid, int magic) {
+ EntityManager em = emf.createEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+ QUserPT q = QUserPT.userPT;
+ long updated = new JPAUpdateClause(em, q)
+ .where(q.userid.eq(userid))
+ .set(q.magic, q.magic.add(magic))
+ .execute();
+ tx.commit();
+ return updated <= 0;
+ } catch(Exception e) {
+ if (tx.isActive()) tx.rollback();
+ return true;
+ } finally {
+ em.close();
+ }
+ }
@Override
- public boolean ReduceMagic(String userid,int magic){
- return true;
- };//给用户减少魔力值,返回0成功,返回1失败;
+ public boolean ReduceMagic(String userid, int magic) {
+ EntityManager em = emf.createEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+ QUserPT q = QUserPT.userPT;
+ long updated = new JPAUpdateClause(em, q)
+ .where(q.userid.eq(userid))
+ .set(q.magic, q.magic.subtract(magic))
+ .execute();
+ tx.commit();
+ return updated <= 0;
+ } catch(Exception e) {
+ if (tx.isActive()) tx.rollback();
+ return true;
+ } finally {
+ em.close();
+ }
+ }
+
@Override
- public TTorent ReadTorrent(File torrent){
- return new TTorent();
- };//传入torrent文件,解析后返回TTorent类
-
- @Override
- public int SaveTorrent(TTorent seed,String seedid){
+ public int SaveTorrent(File TTorent){
return 0;
};//保存seedid对应的ttorent信息
@@ -116,7 +176,20 @@
@Override
- public int AddRecord(String seedid,TransRecord rd){
- return 0;
- };//新增一个seedid对应的种子的传输任务记录
+ public int AddRecord(TransRecord rd){
+ EntityManager em = emf.createEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+ em.persist(rd);
+ tx.commit();
+ // 持久化成功,返回1表示插入成功
+ return 1;
+ } catch (Exception e) {
+ if (tx.isActive()) tx.rollback();
+ return -1;
+ } finally {
+ em.close();
+ }
+ }
}