LuZhouExpireTimeTest.cs 1.9 KB

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