增加流量监测和假种检测功能
Change-Id: I808ce14b6f08565f797f4681a6f72db9c730d011
diff --git a/src/test/java/trackertest/TrackerTest.java b/src/test/java/trackertest/TrackerTest.java
index 2aeffdb..0d324db 100644
--- a/src/test/java/trackertest/TrackerTest.java
+++ b/src/test/java/trackertest/TrackerTest.java
@@ -83,60 +83,64 @@
if (em != null && em.isOpen()) em.close();
if (emf != null && emf.isOpen()) emf.close();
}
- /*
- @TestFactory
- Collection<DynamicTest> testAddUpLoad() {
- Random rnd = new Random();
- String ih = infoHashes.get(0);
- return userIds.stream()
- .map(uid -> DynamicTest.dynamicTest("AddUpLoad for user " + uid, () -> {
- EntityTransaction tx = em.getTransaction();
- tx.begin();
- try {
- // 获取该用户当前的总上传量
- Long currentUserUpload = em.createQuery(
- "SELECT COALESCE(u.upload,0) FROM UserPT u WHERE u.userid = :uid", Long.class
- ).setParameter("uid", uid).getSingleResult();
-
- // 获取该用户在该种子上的当前上传量
- Long currentSeedUpload = em.createQuery(
- "SELECT COALESCE(SUM(t.upload),0) FROM TransRecord t WHERE t.uploaduserid = :uid AND t.seedid = " +
- "(SELECT s.seedId FROM SeedHash s WHERE s.infoHash = :ih)", Long.class
- ).setParameter("uid", uid).setParameter("ih", ih).getSingleResult();
-
- int delta = rnd.nextInt(1000) + 1;
- long newSeedTotal = currentSeedUpload + delta;
-
- Assertions.assertFalse(tracker.AddUpLoad(uid, (int)newSeedTotal, ih),
- "AddUpLoad should return false on successful operation");
- em.clear();
+
+// @TestFactory
+// Collection<DynamicTest> testAddUpLoad() {
+// Random rnd = new Random();
+// String ih = infoHashes.get(0);
+// return userIds.stream()
+// .map(uid -> DynamicTest.dynamicTest("AddUpLoad for user " + uid, () -> {
+// // 1) 获取该用户当前的总上传量
+// Long currentUserUpload = em.createQuery(
+// "SELECT u.upload FROM UserPT u WHERE u.userid = :uid", Long.class)
+// .setParameter("uid", uid)
+// .getSingleResult();
- // commit & restart test TX so we see the data that tracker committed
- tx.commit();
- em.clear();
- tx.begin();
+// // 2) 获取该用户在该种子上的当前上传量
+// Long currentSeedUpload = em.createQuery(
+// "SELECT COALESCE(SUM(t.upload),0) FROM TransRecord t " +
+// "WHERE t.uploaduserid = :uid AND t.seedid = " +
+// "(SELECT s.seedId FROM SeedHash s WHERE s.infoHash = :ih)", Long.class)
+// .setParameter("uid", uid)
+// .setParameter("ih", ih)
+// .getSingleResult();
- // 验证 UserPT.upload 是否等于 TransRecord 表中该用户的实际总和
- Long actualTransRecordSum = em.createQuery(
- "SELECT COALESCE(SUM(t.upload),0) FROM TransRecord t WHERE t.uploaduserid = :uid", Long.class
- ).setParameter("uid", uid).getSingleResult();
-
- Long userPTUpload = em.createQuery(
- "SELECT u.upload FROM UserPT u WHERE u.userid = :uid", Long.class
- ).setParameter("uid", uid).getSingleResult();
-
- Assertions.assertEquals(actualTransRecordSum, userPTUpload,
- "UserPT.upload should equal sum of TransRecord.upload for this user");
- Assertions.assertEquals(currentUserUpload + delta, userPTUpload.longValue(),
- "User total upload should increase by delta");
- } finally {
- tx.rollback();
- em.clear();
- }
- }))
- .collect(Collectors.toList());
- }
- */
+// int delta = rnd.nextInt(1000) + 1;
+// long newSeedTotal = currentSeedUpload + delta;
+
+// // 调用业务方法(内部自管理事务)
+// Assertions.assertFalse(
+// tracker.AddUpLoad(uid, (int)newSeedTotal, ih),
+// "AddUpLoad should return false on successful operation"
+// );
+// em.clear();
+
+// // 验证 TransRecord 表中的实际总和
+// Long actualTransRecordSum = em.createQuery(
+// "SELECT COALESCE(SUM(t.upload),0) FROM TransRecord t WHERE t.uploaduserid = :uid", Long.class)
+// .setParameter("uid", uid)
+// .getSingleResult();
+// // 验证 UserPT.upload
+// Long userPTUpload = em.createQuery(
+// "SELECT u.upload FROM UserPT u WHERE u.userid = :uid", Long.class)
+// .setParameter("uid", uid)
+// .getSingleResult();
+
+// Assertions.assertEquals(
+// actualTransRecordSum, userPTUpload,
+// "UserPT.upload 应等于 TransRecord 中的总和"
+// );
+// Assertions.assertEquals(
+// currentUserUpload + delta, userPTUpload.longValue(),
+// "UserPT.upload 应增加 delta"
+// );
+
+// // 恢复原始上传量,避免测试污染
+// Assertions.assertFalse(tracker.ReduceUpLoad(uid, delta));
+// }))
+// .collect(Collectors.toList());
+// }
+
// @TestFactory