单元测试实现样例
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();
+ }
+ }
}
diff --git a/src/main/java/tracker/TrackerInterface.java b/src/main/java/tracker/TrackerInterface.java
index 0c2df5c..1496a26 100644
--- a/src/main/java/tracker/TrackerInterface.java
+++ b/src/main/java/tracker/TrackerInterface.java
@@ -1,8 +1,8 @@
package tracker;
import java.io.File;
-import entity.TTorent;
import entity.TransRecord;
+
public interface TrackerInterface{
public boolean AddUpLoad(String userid,int upload);//给用户新增上传量,返回0成功,返回1失败;
public boolean ReduceUpLoad(String userid,int upload);//给用户减上传量,返回0成功,返回1失败;
@@ -11,9 +11,8 @@
public boolean AddMagic(String userid,int magic);//给用户增加魔力值,返回0成功,返回1失败;
public boolean ReduceMagic(String userid,int magic);//给用户减少魔力值,返回0成功,返回1失败;
- public TTorent ReadTorrent(File torrent);//传入torrent文件,解析后返回TTorent类
- public int SaveTorrent(TTorent seed,String seedid);//保存seedid对应的ttorent信息
+ public int SaveTorrent(File TTorent);//保存seedid对应的ttorent信息
public File GetTTorent(String seedid,String userid);//根据种子id获得ttorent信息然后构建Ttorent文件并返回,同时记录用户的下载行为
-
- public int AddRecord(String seedid,TransRecord rd);//新增一个seedid对应的种子的传输任务记录
+
+ public int AddRecord(TransRecord rd);//新增一个seedid对应的种子的传输任务记录
}
\ No newline at end of file