123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- using Hotline.Application.Orders;
- using Hotline.Caching.Interfaces;
- using Hotline.Orders;
- using Hotline.Push.FWMessage;
- using Hotline.Push.Notifies;
- using Hotline.Settings;
- using Hotline.Share.Dtos.FlowEngine;
- using Hotline.Share.Dtos.Order;
- using Hotline.Share.Enums.FlowEngine;
- using Hotline.Share.Enums.Order;
- using Mapster;
- using Shouldly;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using XF.Domain.Repository;
- namespace Hotline.Application.Tests.Application;
- public class OrderApplicationTest
- {
- private readonly IOrderApplication _orderApplication;
- private readonly ISystemDicDataCacheManager _systemDicDataCacheManager;
- private readonly IRepository<OrderVisit> _orderVisitRepository;
- private readonly IRepository<Order> _orderRepository;
- private readonly IRepository<Message> _messageRepository;
- public OrderApplicationTest(IOrderApplication orderApplication, IRepository<OrderVisit> orderVisitRepository, IRepository<Message> messageRepository)
- {
- _orderApplication = orderApplication;
- _orderVisitRepository = orderVisitRepository;
- _orderRepository = orderRepository;
- _systemDicDataCacheManager = systemDicDataCacheManager;
- _messageRepository = messageRepository;
- }
- [Theory]
- [InlineData(1)]
- [InlineData(2)]
- [InlineData(3)]
- [InlineData(4)]
- [InlineData(5)]
- [InlineData(6)]
- [InlineData(7)]
- public async Task VisitPushSMS_Test(int count)
- {
- var orderVisit = await _orderVisitRepository.Queryable()
- .Where(m => m.VisitState == EVisitState.WaitForVisit)
- .OrderByDescending(m => m.CreationTime)
- .FirstAsync();
- orderVisit.ShouldNotBeNull("缺少 回访单 (order_visit) VisitState = 10 的数据.");
- var dto = new VisitSmsInDto
- {
- Ids = new List<string> { orderVisit.Id }
- };
- await _orderApplication.VisitPushSMSAsync(dto, new CancellationToken());
- var visit = await _orderVisitRepository.Queryable().Where(m => m.Id == orderVisit.Id).FirstAsync();
- visit.VisitState.ShouldBe(EVisitState.SMSVisiting);
- visit.VisitType.ShouldBe(EVisitType.SmsVisit);
- }
- [Theory]
- [InlineData("08dcd937-5800-4e44-81d7-68a318dbc251", "沟通地点", "张三", "13666666666", "63344B7C-D2CB-4B40-8B13-009923393573")]
- public async Task SaveOrderWorkflowInfo_Test(string workflowId,
- string realCommunicationAddress,
- string realHandlerName,
- string realHandlerPhone,
- string transpondCityId
- )
- {
- await _orderRepository.Updateable()
- .SetColumns(m => m.RealCommunicationAddress == null)
- .Where(m => m.WorkflowId == workflowId)
- .ExecuteCommandAsync();
- var time = DateTime.Now;
- var dicSystem = _systemDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.TranspondCity).First();
- var dto = new NextWorkflowDto
- {
- RealCommunicationAddress = realCommunicationAddress,
- WorkflowId = workflowId,
- RealHandlerName = realHandlerName,
- RealHandlerPhone = realHandlerPhone,
- RealCommunicationMode = ERealCommunicationMode.Locale,
- RealCommunicationTime = time,
- RealIsContacted = true,
- RealContactLocale = true,
- IsOther = true,
- OtherRemark = "备注",
- TranspondCityId = dicSystem.Id,
- TranspondCityName = dicSystem.DicDataName,
- TranspondCityValue = dicSystem.DicDataValue,
- };
- var order = await _orderApplication.SaveOrderWorkflowInfo(dto, new CancellationToken());
- order = await _orderRepository.GetAsync(order.Id);
- order.RealCommunicationAddress.ShouldBe(realCommunicationAddress);
- order.RealHandlerPhone.ShouldBe(realHandlerPhone);
- order.RealHandlerName.ShouldBe(realHandlerName);
- order.RealCommunicationMode.ShouldBe(ERealCommunicationMode.Locale);
- order.RealCommunicationTime.Value.ToString("yyyy-MM-dd hh:mm:ss").ShouldBe(time.ToString("yyyy-MM-dd hh:mm:ss"));
- order.RealIsContacted.ShouldBe(true);
- order.RealContactLocale.ShouldBe(true);
- order.IsOther.ShouldBe(true);
- order.OtherRemark.ShouldBe("备注");
- order.TranspondCityId.ShouldBe(dicSystem.Id);
- order.TranspondCityName.ShouldBe(dicSystem.DicDataName);
- order.TranspondCityValue.ShouldBe(dicSystem.DicDataValue);
- }
- [Fact]
- public async Task MapConfig_Test()
- {
- var data = await _messageRepository.Queryable().OrderByDescending(m => m.CreationTime)
- .FirstAsync();
- var m = data.Adapt<ReceiveMessageNotify>();
- m.NotifyDto.Name.ShouldBe(data.Name);
- m.NotifyDto.PushBusiness.ShouldBe(data.PushBusiness);
- }
- }
|