123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- using Hotline.Tests.Mock;
- using System.Diagnostics;
- using Hotline.Api.Controllers;
- using Hotline.Api.Controllers.OrderApi;
- using Hotline.Identity.Accounts;
- using Hotline.Identity.Roles;
- using Hotline.Settings;
- using Hotline.ThirdAccountDomainServices;
- using Hotline.ThirdAccountDomainServices.Interfaces;
- using Hotline.Users;
- using Microsoft.AspNetCore.Http;
- using Microsoft.Extensions.DependencyInjection;
- using XF.Domain.Cache;
- using XF.Domain.Repository;
- using Hotline.Orders;
- using Hotline.Share.Dtos.FlowEngine;
- using Hotline.Share.Dtos.FlowEngine.Workflow;
- using Hotline.Share.Dtos.Order;
- using Hotline.Share.Dtos.Order.OrderDelay;
- using Hotline.Share.Enums.FlowEngine;
- using Hotline.Share.Enums.Order;
- using MapsterMapper;
- using Xunit.Abstractions;
- using Microsoft.AspNetCore.Mvc;
- namespace Hotline.Tests.Controller
- {
- public class OrderDelayControllerTest : TestBase
- {
- private readonly OrderController _orderController;
- private readonly OrderDelayController _orderDelayController;
- private readonly OrderServiceMock _orderServiceMock;
- private readonly IOrderDelayRepository _orderDelayRepository;
- private readonly IOrderRepository _orderRepository;
- private readonly IMapper _mapper;
- private readonly ITestOutputHelper _testOutputHelper;
- public OrderDelayControllerTest(IAccountRepository accountRepository, IRepository<Role> roleRepository,
- UserController userController, IServiceScopeFactory scopeFactory, IRepository<User> userRepository,
- IHttpContextAccessor httpContextAccessor, IThirdIdentiyService thirdIdentiyService,
- IThirdAccountRepository thirdAccountRepository, ITypedCache<SystemSetting> cacheSettingData,
- ThirdAccounSupplierFactory thirdAccountDomainFactory,
- OrderController orderController,
- OrderDelayController orderDelayController,
- OrderServiceMock orderServiceMock,
- IOrderDelayRepository orderDelayRepository,
- IOrderRepository orderRepository,
- IMapper mapper,
- ITestOutputHelper testOutputHelper, IServiceProvider serviceProvider) : base(accountRepository, roleRepository,
- userController, scopeFactory, userRepository, httpContextAccessor, thirdIdentiyService,
- thirdAccountRepository, cacheSettingData, thirdAccountDomainFactory, serviceProvider)
- {
- _orderController = orderController;
- _orderDelayController = orderDelayController;
- _orderServiceMock = orderServiceMock;
- _orderDelayRepository = orderDelayRepository;
- _orderRepository = orderRepository;
- _mapper = mapper;
- _testOutputHelper = testOutputHelper;
- _orderController.ControllerContext = new ControllerContext
- {
- HttpContext = new DefaultHttpContext
- {
- RequestAborted = CancellationToken.None
- }
- };
- _orderDelayController.ControllerContext = new ControllerContext
- {
- HttpContext = new DefaultHttpContext
- {
- RequestAborted = CancellationToken.None
- }
- };
- }
- [Fact]
- public async Task OrderDelayBatchReviewTest()
- {
- SetZuoXi();
- var delayIds = new List<string>();
- for (int i = 0; i < 6; i++)
- {
- var order = _orderServiceMock.CreateOrder()
- .办理到一级部门()
- //.办理到二级部门(Set一级部门)
- //.办理一级部门汇总(Set二级部门)
- //.办理到归档(Set一级部门)
- //.发布工单(SetZuoXi)
- .GetCreateResult();
- //var order = await _orderRepository.Queryable()
- // .FirstAsync(o => o.Id == orderId);
- var delayId = _orderServiceMock.申请延期(Set一级部门);
- delayIds.Add(delayId);
- }
- Set班长();
- var delays = await _orderDelayController.QueryWaited(new DelayListDto
- {
- IsApply = false,
- });
- var delayWithIds = delays
- .Where(d => delayIds.Contains(d.Id))
- .Select(d => new DelayWithStepId
- {
- DelayId = d.Id,
- StepId = d.StepId,
- WorkflowId = d.WorkflowId
- }).ToList();
- var delay = delays.First();
- var option = _orderController.OrderDelayNextsteps(delay.WorkflowId).Result as NextStepsWithOpinionDto<NextStepOption>;
- var step = option.Steps.First(d=>d.StepType == EStepType.End);
- //var req = new BatchDelayNextFlowDto
- //{
- // DelayId = delayIds.ToArray(),
- // IsPass = true,
- // NextWorkflow = new NextWorkflowDto
- // {
- // NextStepCode = step.Key,
- // NextStepName = step.Value,
- // }
- //};
- var req = new BatchOrderDelayReviewRequest
- {
- IsPass = true,
- DelayWithStepIds = delayWithIds,
- NextWorkflow = new NextWorkflowDto
- {
- NextStepCode = step.Key,
- NextStepName = step.Value
- }
- };
- _testOutputHelper.WriteLine($"开始审批");
- var sw = new Stopwatch();
- sw.Start();
- await _orderDelayController.BatchReview(req);
- sw.Stop();
- _testOutputHelper.WriteLine($"耗时:{sw.ElapsedMilliseconds}ms");
- //var delay = await _orderDelayRepository.Queryable()
- // .Includes(d => d.Order)
- // .FirstAsync(d => d.Id == delayId);
- //Assert.Equal(EDelayState.Pass, delay.DelayState);
- //Assert.True(delay.Order.ExpiredTime > order.ExpiredTime);
- //Console.WriteLine(delay.Id);
- }
- [Fact]
- public void QueryWaitForApproveDelaysTest()
- {
- _testOutputHelper.WriteLine("123");
- }
- }
- }
|