fix(test): 更新InviteService测试用例,适配COS存储重构
All checks were successful
continuous-integration/drone/push Build is passing

- 替换IRedisService mock为IUploadConfigService mock
- 修复User实体属性名:HeadImg→Avatar, Pid→ParentUserId, CreatedAt→CreateTime, UpdatedAt→UpdateTime
- 修复User.Id类型从int转为long
This commit is contained in:
zpc 2026-03-25 01:39:10 +08:00
parent be1fb78d6b
commit 6e19d3c821

View File

@ -1,4 +1,4 @@
using System.Net.Http;
using System.Net.Http;
using FsCheck;
using FsCheck.Xunit;
using Microsoft.EntityFrameworkCore;
@ -21,7 +21,7 @@ public class InviteServicePropertyTests
private readonly Mock<ILogger<InviteService>> _mockLogger = new();
private readonly Mock<IWechatService> _mockWechatService = new();
private readonly HttpClient _httpClient = new();
private readonly Mock<IRedisService> _mockRedisService = new();
private readonly Mock<IUploadConfigService> _mockUploadConfigService = new();
#region Property 3: <EFBFBD>?- GetRecordListAsync
@ -49,13 +49,13 @@ public class InviteServicePropertyTests
for (int i = 0; i < invitedUserCount; i++)
{
var invitedUser = CreateUser(userId + 1000 + i, seed.Get + 1000 + i);
invitedUser.Pid = (int)userId; // 设置为当前用户的下级
invitedUser.ParentUserId = (long)userId; // 设置为当前用户的下级
dbContext.Users.Add(invitedUser);
}
dbContext.SaveChanges();
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockRedisService.Object);
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockUploadConfigService.Object);
// Act
var result = service.GetRecordListAsync(userId, 1, pageSize).GetAwaiter().GetResult();
@ -92,7 +92,7 @@ public class InviteServicePropertyTests
for (int i = 0; i < userInvitedCount; i++)
{
var invitedUser = CreateUser(userId + 1000 + i, seed.Get + 1000 + i);
invitedUser.Pid = (int)userId;
invitedUser.ParentUserId = (long)userId;
dbContext.Users.Add(invitedUser);
}
@ -100,13 +100,13 @@ public class InviteServicePropertyTests
for (int i = 0; i < 5; i++)
{
var otherInvitedUser = CreateUser(otherUserId + 1000 + i, seed.Get + 60000 + i);
otherInvitedUser.Pid = (int)otherUserId;
otherInvitedUser.ParentUserId = (long)otherUserId;
dbContext.Users.Add(otherInvitedUser);
}
dbContext.SaveChanges();
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockRedisService.Object);
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockUploadConfigService.Object);
// Act
var result = service.GetRecordListAsync(userId, 1, 20).GetAwaiter().GetResult();
@ -140,14 +140,14 @@ public class InviteServicePropertyTests
for (int i = 0; i < totalRecords; i++)
{
var invitedUser = CreateUser(userId + 1000 + i, seed.Get + 1000 + i);
invitedUser.Pid = (int)userId;
invitedUser.ParentUserId = (long)userId;
dbContext.Users.Add(invitedUser);
expectedIds.Add(invitedUser.Id);
}
dbContext.SaveChanges();
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockRedisService.Object);
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockUploadConfigService.Object);
// Act: 遍历所有页<E69C89>?
var allRetrievedIds = new HashSet<long>();
@ -196,13 +196,13 @@ public class InviteServicePropertyTests
for (int i = 0; i < totalRecords; i++)
{
var invitedUser = CreateUser(userId + 1000 + i, seed.Get + 1000 + i);
invitedUser.Pid = (int)userId;
invitedUser.ParentUserId = (long)userId;
dbContext.Users.Add(invitedUser);
}
dbContext.SaveChanges();
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockRedisService.Object);
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockUploadConfigService.Object);
// Act
var result = service.GetRecordListAsync(userId, 1, pageSize).GetAwaiter().GetResult();
@ -236,13 +236,13 @@ public class InviteServicePropertyTests
for (int i = 0; i < totalRecords; i++)
{
var invitedUser = CreateUser(userId + 1000 + i, seed.Get + 1000 + i);
invitedUser.Pid = (int)userId;
invitedUser.ParentUserId = (long)userId;
dbContext.Users.Add(invitedUser);
}
dbContext.SaveChanges();
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockRedisService.Object);
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockUploadConfigService.Object);
// Act: 获取前两<E5898D>?
var page1 = service.GetRecordListAsync(userId, 1, pageSize).GetAwaiter().GetResult();
@ -287,7 +287,7 @@ public class InviteServicePropertyTests
dbContext.SaveChanges();
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockRedisService.Object);
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockUploadConfigService.Object);
// Act
var result = service.GetWithdrawListAsync(userId, 1, pageSize).GetAwaiter().GetResult();
@ -342,7 +342,7 @@ public class InviteServicePropertyTests
dbContext.SaveChanges();
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockRedisService.Object);
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockUploadConfigService.Object);
// Act
var result = service.GetWithdrawListAsync(userId, 1, 20).GetAwaiter().GetResult();
@ -382,7 +382,7 @@ public class InviteServicePropertyTests
dbContext.SaveChanges();
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockRedisService.Object);
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockUploadConfigService.Object);
// Act: 遍历所有页<E69C89>?
var allRetrievedIds = new HashSet<long>();
@ -435,7 +435,7 @@ public class InviteServicePropertyTests
dbContext.SaveChanges();
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockRedisService.Object);
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockUploadConfigService.Object);
// Act
var result = service.GetWithdrawListAsync(userId, 1, pageSize).GetAwaiter().GetResult();
@ -473,7 +473,7 @@ public class InviteServicePropertyTests
dbContext.SaveChanges();
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockRedisService.Object);
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockUploadConfigService.Object);
// Act: 获取前两<E5898D>?
var page1 = service.GetWithdrawListAsync(userId, 1, pageSize).GetAwaiter().GetResult();
@ -525,7 +525,7 @@ public class InviteServicePropertyTests
dbContext.SaveChanges();
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockRedisService.Object);
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockUploadConfigService.Object);
// Act
var result = service.GetWithdrawListAsync(userId, 1, 20).GetAwaiter().GetResult();
@ -562,7 +562,7 @@ public class InviteServicePropertyTests
dbContext.Users.Add(user);
dbContext.SaveChanges();
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockRedisService.Object);
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockUploadConfigService.Object);
// Act
var result = service.GetRecordListAsync(1, 1, 20).GetAwaiter().GetResult();
@ -589,7 +589,7 @@ public class InviteServicePropertyTests
dbContext.Users.Add(user);
dbContext.SaveChanges();
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockRedisService.Object);
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockUploadConfigService.Object);
// Act
var result = service.GetWithdrawListAsync(1, 1, 20).GetAwaiter().GetResult();
@ -620,13 +620,13 @@ public class InviteServicePropertyTests
for (int i = 0; i < 5; i++)
{
var invitedUser = CreateUser(userId + 1000 + i, seed.Get + 1000 + i);
invitedUser.Pid = (int)userId;
invitedUser.ParentUserId = (long)userId;
dbContext.Users.Add(invitedUser);
}
dbContext.SaveChanges();
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockRedisService.Object);
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockUploadConfigService.Object);
// Act: 测试边界<E8BEB9>?- page=0 应该被处理为 page=1
var result = service.GetRecordListAsync(userId, 0, 10).GetAwaiter().GetResult();
@ -660,7 +660,7 @@ public class InviteServicePropertyTests
dbContext.SaveChanges();
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockRedisService.Object);
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockUploadConfigService.Object);
// Act: 测试边界<E8BEB9>?- page=0 应该被处理为 page=1
var result = service.GetWithdrawListAsync(userId, 0, 10).GetAwaiter().GetResult();
@ -698,7 +698,7 @@ public class InviteServicePropertyTests
dbContext.Users.Add(user);
dbContext.SaveChanges();
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockRedisService.Object);
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockUploadConfigService.Object);
// Act
var result = service.ApplyWithdrawAsync(userId, withdrawAmount).GetAwaiter().GetResult();
@ -707,7 +707,7 @@ public class InviteServicePropertyTests
if (!result.Success) return false;
// 重新查询用户余额
var updatedUser = dbContext.Users.Find((int)userId);
var updatedUser = dbContext.Users.Find(userId);
if (updatedUser == null) return false;
var expectedBalance = originalBalance - withdrawAmount;
@ -739,7 +739,7 @@ public class InviteServicePropertyTests
dbContext.Users.Add(user);
dbContext.SaveChanges();
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockRedisService.Object);
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockUploadConfigService.Object);
// Act
var result = service.ApplyWithdrawAsync(userId, withdrawAmount).GetAwaiter().GetResult();
@ -789,7 +789,7 @@ public class InviteServicePropertyTests
dbContext.Users.Add(user);
dbContext.SaveChanges();
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockRedisService.Object);
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockUploadConfigService.Object);
// Act
var result = service.ApplyWithdrawAsync(userId, withdrawAmount).GetAwaiter().GetResult();
@ -799,7 +799,7 @@ public class InviteServicePropertyTests
if (string.IsNullOrEmpty(result.ErrorMessage)) return false;
// 验证用户余额未变<E69CAA>?
var updatedUser = dbContext.Users.Find((int)userId);
var updatedUser = dbContext.Users.Find(userId);
if (updatedUser == null) return false;
return updatedUser.Balance == balance;
@ -830,7 +830,7 @@ public class InviteServicePropertyTests
dbContext.Users.Add(user);
dbContext.SaveChanges();
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockRedisService.Object);
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockUploadConfigService.Object);
// Act
var result = service.ApplyWithdrawAsync(userId, withdrawAmount).GetAwaiter().GetResult();
@ -841,7 +841,7 @@ public class InviteServicePropertyTests
if (!result.ErrorMessage.Contains("1元")) return false;
// 验证用户余额未变化
var updatedUser = dbContext.Users.Find((int)userId);
var updatedUser = dbContext.Users.Find(userId);
if (updatedUser == null) return false;
return updatedUser.Balance == balance;
@ -874,7 +874,7 @@ public class InviteServicePropertyTests
dbContext.Users.Add(user);
dbContext.SaveChanges();
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockRedisService.Object);
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockUploadConfigService.Object);
// Act
var result = service.ApplyWithdrawAsync(userId, withdrawAmount).GetAwaiter().GetResult();
@ -885,7 +885,7 @@ public class InviteServicePropertyTests
if (!result.ErrorMessage.Contains("整数")) return false;
// 验证用户余额未变<E69CAA>?
var updatedUser = dbContext.Users.Find((int)userId);
var updatedUser = dbContext.Users.Find(userId);
if (updatedUser == null) return false;
return updatedUser.Balance == balance;
@ -919,7 +919,7 @@ public class InviteServicePropertyTests
// 记录提现前的提现记录<E8AEB0>?
var beforeCount = dbContext.Withdrawals.Count(w => w.UserId == userId);
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockRedisService.Object);
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockUploadConfigService.Object);
// Act
var result = service.ApplyWithdrawAsync(userId, withdrawAmount).GetAwaiter().GetResult();
@ -959,7 +959,7 @@ public class InviteServicePropertyTests
// 记录提现前的提现记录<E8AEB0>?
var beforeCount = dbContext.Withdrawals.Count(w => w.UserId == userId);
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockRedisService.Object);
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockUploadConfigService.Object);
// Act
var result = service.ApplyWithdrawAsync(userId, withdrawAmount).GetAwaiter().GetResult();
@ -972,7 +972,7 @@ public class InviteServicePropertyTests
if (afterCount != beforeCount) return false;
// 验证用户余额未变<E69CAA>?
var updatedUser = dbContext.Users.Find((int)userId);
var updatedUser = dbContext.Users.Find(userId);
if (updatedUser == null) return false;
return updatedUser.Balance == balance;
@ -1001,7 +1001,7 @@ public class InviteServicePropertyTests
dbContext.Users.Add(user);
dbContext.SaveChanges();
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockRedisService.Object);
var service = new InviteService(dbContext, _mockLogger.Object, _mockWechatService.Object, _httpClient, _mockUploadConfigService.Object);
// Act: 进行多次提现
var withdrawAmounts = new List<decimal>();
@ -1022,7 +1022,7 @@ public class InviteServicePropertyTests
var totalWithdrawn = withdrawAmounts.Sum();
var expectedBalance = originalBalance - totalWithdrawn;
var updatedUser = dbContext.Users.Find((int)userId);
var updatedUser = dbContext.Users.Find(userId);
if (updatedUser == null) return false;
return updatedUser.Balance == expectedBalance;
@ -1052,20 +1052,20 @@ public class InviteServicePropertyTests
{
return new User
{
Id = (int)id,
Id = id,
OpenId = $"openid_{seed}",
Uid = $"UID{seed:D6}",
Nickname = $"Test User {seed}",
HeadImg = $"https://example.com/avatar_{seed}.jpg",
Avatar = $"https://example.com/avatar_{seed}.jpg",
InviteCode = $"INV{seed:D6}",
Balance = 100.00m + (seed % 100),
TotalIncome = 200.00m + (seed % 100),
WithdrawnAmount = 50.00m + (seed % 50),
Status = 1,
Pid = 0,
ParentUserId = null,
UserLevel = 1,
CreatedAt = DateTime.Now.AddDays(-seed % 30),
UpdatedAt = DateTime.Now
CreateTime = DateTime.Now.AddDays(-seed % 30),
UpdateTime = DateTime.Now
};
}