From 757f5199040bf9534f3b81732613e824eeee1b27 Mon Sep 17 00:00:00 2001
From: "DESKTOP-G961P6V\\Zhh" <839860190@qq.com>
Date: Mon, 4 Sep 2023 10:03:19 +0800
Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=B5=8B=E8=AF=95=E7=94=A8?=
=?UTF-8?q?=E4=BE=8B=EF=BC=8C=E4=BF=AE=E6=94=B9=E4=BA=86=E5=88=A0=E9=99=A4?=
=?UTF-8?q?=E6=A3=80=E6=9F=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../GuideTypes/GuideTypeAppService.cs | 6 +-
.../PeisApplicationModule.cs | 2 +-
.../GuideTypes/GuideTypeManager.cs | 17 ++++-
.../GuideTypeAppServiceTest.cs | 76 +++++++++++++++++--
.../GuideTypeManagerTest.cs | 64 +++++++++++++---
.../PeisTestBaseModule.cs | 2 +-
6 files changed, 144 insertions(+), 23 deletions(-)
diff --git a/src/Shentun.Peis.Application/GuideTypes/GuideTypeAppService.cs b/src/Shentun.Peis.Application/GuideTypes/GuideTypeAppService.cs
index 89af012..cfc43a4 100644
--- a/src/Shentun.Peis.Application/GuideTypes/GuideTypeAppService.cs
+++ b/src/Shentun.Peis.Application/GuideTypes/GuideTypeAppService.cs
@@ -149,9 +149,11 @@ namespace Shentun.Peis.GuideTypes
///
///
///
- public override Task DeleteAsync(Guid id)
+ public override async Task DeleteAsync(Guid id)
{
- return base.DeleteAsync(id);
+ var entity = await Repository.GetAsync(id);
+ await _manager.CheckDeleteAsync(entity);
+ await base.DeleteAsync(id);
}
diff --git a/src/Shentun.Peis.Application/PeisApplicationModule.cs b/src/Shentun.Peis.Application/PeisApplicationModule.cs
index 8fe31cb..71d2508 100644
--- a/src/Shentun.Peis.Application/PeisApplicationModule.cs
+++ b/src/Shentun.Peis.Application/PeisApplicationModule.cs
@@ -40,7 +40,7 @@ public class PeisApplicationModule : AbpModule
//context.Services.AddTransient();
context.Services.AddTransient();
context.Services.AddTransient();
-
+
}
diff --git a/src/Shentun.Peis.Domain/GuideTypes/GuideTypeManager.cs b/src/Shentun.Peis.Domain/GuideTypes/GuideTypeManager.cs
index 5dc6103..bce9c33 100644
--- a/src/Shentun.Peis.Domain/GuideTypes/GuideTypeManager.cs
+++ b/src/Shentun.Peis.Domain/GuideTypes/GuideTypeManager.cs
@@ -22,9 +22,12 @@ namespace Shentun.Peis.GuidTypes
public class GuideTypeManager : DomainService
{
private readonly IRepository _repository;
- public GuideTypeManager(IRepository repository)
+ private readonly IRepository _itemTypeRepository;
+ public GuideTypeManager(IRepository repository,
+ IRepository itemTypeRepository)
{
_repository = repository;
+ _itemTypeRepository = itemTypeRepository;
}
///
@@ -110,6 +113,16 @@ namespace Shentun.Peis.GuidTypes
}
-
+ public async Task CheckDeleteAsync(GuideType entity )
+ {
+
+ var queryable = await _itemTypeRepository.GetQueryableAsync();
+ var item = queryable.Where(o => o.GuidTypeId.Equals(entity.Id)).FirstOrDefault();
+ if (item != null)
+ {
+ throw new BusinessException("",$"指引类别\"{entity.DisplayName}\"已有项目类别\"{item.DisplayName}\"在使用,不能删除");
+ }
+
+ }
}
}
diff --git a/test/Shentun.Peis.Application.Tests/GuideTypeAppServiceTest.cs b/test/Shentun.Peis.Application.Tests/GuideTypeAppServiceTest.cs
index 7b2d60c..5507544 100644
--- a/test/Shentun.Peis.Application.Tests/GuideTypeAppServiceTest.cs
+++ b/test/Shentun.Peis.Application.Tests/GuideTypeAppServiceTest.cs
@@ -1,4 +1,6 @@
-using Shentun.Peis.GuideTypes;
+using Microsoft.EntityFrameworkCore;
+using Shentun.Peis.GuideTypes;
+using Shentun.Peis.Models;
using Shouldly;
using System;
using System.Collections.Generic;
@@ -6,6 +8,8 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
+using Volo.Abp.Domain.Repositories;
+using Volo.Abp.Uow;
using Xunit;
using Xunit.Abstractions;
@@ -13,14 +17,56 @@ namespace Shentun.Peis
{
public class GuideTypeAppServiceTest: PeisApplicationTestBase
{
+ private readonly IRepository _repository;
private readonly GuideTypeAppService _guideTypeAppService;
- private readonly ITestOutputHelper _testOutputHelper;
+ private readonly ITestOutputHelper _output;
+ private readonly IUnitOfWorkManager _unitOfWorkManager;
public GuideTypeAppServiceTest(ITestOutputHelper testOutputHelper)
{
- _testOutputHelper = testOutputHelper;
+ _output = testOutputHelper;
+ _unitOfWorkManager = GetRequiredService();
+ _repository = GetRequiredService>();
_guideTypeAppService = GetRequiredService();
}
+ [Fact]
+ public async Task GetQueryListAsync()
+ {
+ using (var uow = _unitOfWorkManager.Begin())
+ {
+ IQueryable queryable = await _repository.GetQueryableAsync();
+ var itemTypes = (from item in queryable
+
+ select item).ToList();
+ foreach (var item in itemTypes)
+ {
+
+ _output.WriteLine(item.DisplayName);
+ }
+ await uow.CompleteAsync();
+ }
+
+
+ }
+ [Fact]
+ public async Task GetListAsync()
+ {
+ PagedAndSortedResultRequestDto qc = new PagedAndSortedResultRequestDto()
+ {
+ Sorting = "displayorder"
+ };
+ var result = await _guideTypeAppService.GetListAsync(qc);
+
+
+ _output.WriteLine(result.TotalCount.ToString());
+ foreach (var item in result.Items)
+ {
+ Console.WriteLine(item.DisplayName);
+ _output.WriteLine(item.DisplayName);
+ }
+
+ }
+
[Fact]
public async Task GetList()
{
@@ -29,11 +75,11 @@ namespace Shentun.Peis
var result = await _guideTypeAppService.GetListAsync(qc);
result.TotalCount.ShouldBeGreaterThanOrEqualTo(4);
Console.WriteLine(result.TotalCount);
- _testOutputHelper.WriteLine(result.TotalCount.ToString());
+ _output.WriteLine(result.TotalCount.ToString());
foreach (var item in result.Items)
{
Console.WriteLine(item.DisplayName);
- _testOutputHelper.WriteLine(item.DisplayName);
+ _output.WriteLine(item.DisplayName);
}
}
@@ -46,10 +92,28 @@ namespace Shentun.Peis
{
DisplayName = "Foo",
});
- _testOutputHelper.WriteLine(result.Id.ToString());
+ _output.WriteLine(result.Id.ToString());
}
+ [Fact]
+ public async Task DeleteAsync()
+ {
+ try
+ {
+ using (var uow = _unitOfWorkManager.Begin())
+ {
+ await _guideTypeAppService.DeleteAsync(new Guid("3a0d6dfb-300b-fe76-15b6-f0398bee2f50"));
+ _output.WriteLine("删除成功");
+ }
+ }
+ catch (Exception ex)
+ {
+ _output.WriteLine(ex.Message);
+ }
+
+ }
+
}
}
diff --git a/test/Shentun.Peis.Domain.Tests/GuideTypeManagerTest.cs b/test/Shentun.Peis.Domain.Tests/GuideTypeManagerTest.cs
index a5271ec..8abd873 100644
--- a/test/Shentun.Peis.Domain.Tests/GuideTypeManagerTest.cs
+++ b/test/Shentun.Peis.Domain.Tests/GuideTypeManagerTest.cs
@@ -6,12 +6,16 @@ using Shentun.Peis.Models;
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
+using Volo.Abp;
using Volo.Abp.Domain.Repositories;
-using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.Uow;
+using Volo.Abp.Linq;
using Xunit;
+using Xunit.Abstractions;
+using TencentCloud.Tci.V20190318.Models;
namespace Shentun.Peis
{
@@ -19,15 +23,21 @@ namespace Shentun.Peis
{
private readonly IRepository _repository;
private readonly GuideTypeManager _manager;
- private readonly IDbContextProvider _dbContextProvider;
+ //private readonly IDbContextProvider _dbContextProvider;
+ private readonly ITestOutputHelper _output;
+ private readonly IRepository _itemTypeRepository;
private readonly IUnitOfWorkManager _unitOfWorkManager;
- public GuideTypeManagerTest()
+ public GuideTypeManagerTest( ITestOutputHelper output)
{
- _repository = Substitute.For>();
- //_repository = GetRequiredService>();
- _manager = GetRequiredService();
+ _output = output;
//_dbContextProvider = GetRequiredService>();
- //_unitOfWorkManager = GetRequiredService();
+ //_dbContextProvider = dbContextProvider;
+ //_repository = Substitute.For>();
+ _repository = GetRequiredService>();
+ _itemTypeRepository = GetRequiredService>();
+ _manager = GetRequiredService();
+
+ _unitOfWorkManager = GetRequiredService();
}
[Fact]
public async Task Should_Set_CanAdd()
@@ -52,15 +62,47 @@ namespace Shentun.Peis
Console.WriteLine(item.Id.ToString());
}
[Fact]
- public async Task TestDataBase()
+ public async Task GetListAsync()
{
- var db = await _dbContextProvider.GetDbContextAsync();
- var items = db.Users.ToList();
+
+ var items = await _repository.GetListAsync();
items.ForEach(o =>
{
- Console.WriteLine(o.Id.ToString());
+ _output.WriteLine(o.DisplayName.ToString());
});
}
+ [Fact]
+ [UnitOfWork]
+ public virtual async Task CheckDeleteAsync()
+ {
+ try
+ {
+ using (var uow = _unitOfWorkManager.Begin())
+ {
+ var entity = await _repository.GetAsync(new Guid("3a0d6c49-cecf-19d9-0f4b-0923a28a3889"));
+
+ await _manager.CheckDeleteAsync(entity);
+ }
+ }
+ catch (Exception ex)
+ {
+ _output.WriteLine(ex.Message);
+ }
+
+
+ }
+
+ [Fact]
+ public async Task TestDataBase()
+ {
+ //var db = await _dbContextProvider.GetDbContextAsync();
+ //var items = db.Users.ToList();
+ //items.ForEach(o =>
+ //{
+ // Console.WriteLine(o.Id.ToString());
+ //});
+ }
+
}
}
diff --git a/test/Shentun.Peis.TestBase/PeisTestBaseModule.cs b/test/Shentun.Peis.TestBase/PeisTestBaseModule.cs
index 09e7c2e..99a67b2 100644
--- a/test/Shentun.Peis.TestBase/PeisTestBaseModule.cs
+++ b/test/Shentun.Peis.TestBase/PeisTestBaseModule.cs
@@ -34,7 +34,7 @@ public class PeisTestBaseModule : AbpModule
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
- SeedTestData(context);
+ //SeedTestData(context);
}
private static void SeedTestData(ApplicationInitializationContext context)