LuZhouExpireTimeTest.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using Hotline.Orders;
  2. using Hotline.Settings;
  3. using Hotline.Settings.TimeLimitDomain;
  4. using Hotline.Share.Dtos.Settings;
  5. using Hotline.Share.Enums.Settings;
  6. using Shouldly;
  7. using XF.Domain.Repository;
  8. namespace Hotline.Tests.Domain;
  9. public class LuZhouExpireTimeTest
  10. {
  11. private readonly LuZhouExpireTimeLimit _calcExpireTime;
  12. private readonly IRepository<Order> _orderRepository;
  13. private readonly IRepository<TimeLimitSetting> _timeLimitSettingRepository;
  14. public LuZhouExpireTimeTest(IRepository<TimeLimitSetting> timeLimitSettingRepository, IRepository<Order> orderRepository, LuZhouExpireTimeLimit calcExpireTime)
  15. {
  16. _timeLimitSettingRepository = timeLimitSettingRepository;
  17. _orderRepository = orderRepository;
  18. _calcExpireTime = calcExpireTime;
  19. }
  20. [Theory]
  21. [InlineData("2024-09-04 14:00:00", 2, "10", "2024-09-06 13:59:59", "2024/9/6 10:24:00", "2024/9/5 14:00:00", "2个工作日")]
  22. [InlineData("2024-09-04 14:01:01", 3, "10", "2024-09-09 14:01:00", "2024/9/6 17:37:01", "2024/9/6 9:31:01", "3个工作日")]
  23. public async Task CalcEndTime_Test(string begin, int count, string busCode, string expiredTime, string nearlyExpiredTime, string nearlyExpiredTimeOne, string timeText)
  24. {
  25. var beginTime = DateTime.Parse(begin);
  26. var result = await _calcExpireTime.CalcEndTime(beginTime, beginTime, new TimeConfig(count, ETimeType.WorkDay), busCode);
  27. result.ShouldNotBeNull();
  28. result.ExpiredTime.ShouldBe(DateTime.Parse(expiredTime));
  29. result.NearlyExpiredTime.ShouldBe(DateTime.Parse(nearlyExpiredTime));
  30. result.NearlyExpiredTimeOne.ShouldBe(DateTime.Parse(nearlyExpiredTimeOne));
  31. result.Count.ShouldBe(count);
  32. result.TimeText.ShouldBe(timeText);
  33. }
  34. }