From dd469a0f9ad7e164bf639f2902dbd9c5c9ecc54c Mon Sep 17 00:00:00 2001 From: "ai.astrakhantsev" Date: Wed, 19 Oct 2022 15:31:53 +0500 Subject: [PATCH 1/3] =?UTF-8?q?#7053070=20=D0=9F=D0=B5=D1=80=D0=B5=D0=BD?= =?UTF-8?q?=D0=BE=D1=81=20=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BE=D1=87=D0=BD?= =?UTF-8?q?=D0=B8=D0=BA=D0=B0=20=D0=B1=D1=83=D1=80=D0=B8=D0=BB=D1=8C=D1=89?= =?UTF-8?q?=D0=B8=D0=BA=D0=BE=D0=B2=20=D0=B2=20=D1=80=D0=B5=D0=BF=D0=BE?= =?UTF-8?q?=D0=B7=D0=B8=D1=82=D0=BE=D1=80=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AsbCloudApp/Services/IDrillerService.cs | 12 --- AsbCloudInfrastructure/DependencyInjection.cs | 8 +- .../Services/DrillerService.cs | 14 --- .../ServicesTests/DrillerServiceTest.cs | 96 +++++++++++-------- .../Controllers/DrillerController.cs | 6 +- 5 files changed, 67 insertions(+), 69 deletions(-) delete mode 100644 AsbCloudApp/Services/IDrillerService.cs delete mode 100644 AsbCloudInfrastructure/Services/DrillerService.cs diff --git a/AsbCloudApp/Services/IDrillerService.cs b/AsbCloudApp/Services/IDrillerService.cs deleted file mode 100644 index 79de46c4..00000000 --- a/AsbCloudApp/Services/IDrillerService.cs +++ /dev/null @@ -1,12 +0,0 @@ -using AsbCloudApp.Data; - -namespace AsbCloudApp.Services -{ - /// - /// Сервис добавления бурильщиков - /// - public interface IDrillerService : ICrudService - { - - } -} diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 3f089a0c..eb110218 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -129,7 +129,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + //services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -160,6 +160,12 @@ namespace AsbCloudInfrastructure dbSet => dbSet .Include(c => c.Wells) .Include(c => c.Deposit))); // может быть включен в сервис ClusterService + + services.AddTransient, CrudServiceBase>(s => + new CrudCacheServiceBase( + s.GetService(), + dbSet => dbSet)); + services.AddTransient(); services.AddTransient(); // Subsystem service diff --git a/AsbCloudInfrastructure/Services/DrillerService.cs b/AsbCloudInfrastructure/Services/DrillerService.cs deleted file mode 100644 index d309f4af..00000000 --- a/AsbCloudInfrastructure/Services/DrillerService.cs +++ /dev/null @@ -1,14 +0,0 @@ -using AsbCloudApp.Data; -using AsbCloudApp.Services; -using AsbCloudDb.Model; -using AsbCloudInfrastructure.Repository; - -namespace AsbCloudInfrastructure.Services -{ - public class DrillerService : CrudServiceBase, IDrillerService - { - public DrillerService(IAsbCloudDbContext context) : base(context) - { - } - } -} diff --git a/AsbCloudWebApi.Tests/ServicesTests/DrillerServiceTest.cs b/AsbCloudWebApi.Tests/ServicesTests/DrillerServiceTest.cs index a79e577f..644eecc9 100644 --- a/AsbCloudWebApi.Tests/ServicesTests/DrillerServiceTest.cs +++ b/AsbCloudWebApi.Tests/ServicesTests/DrillerServiceTest.cs @@ -1,7 +1,12 @@ using AsbCloudApp.Data; +using AsbCloudApp.Repositories; +using AsbCloudApp.Services; using AsbCloudDb.Model; +using AsbCloudInfrastructure.Repository; using AsbCloudInfrastructure.Services; using AsbCloudInfrastructure.Services.Cache; +using Moq; +using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; @@ -11,31 +16,49 @@ namespace AsbCloudWebApi.Tests.ServicesTests { public class DrillerServiceTest { - private readonly AsbCloudDbContext context; - private readonly CacheDb cacheDb; - private Driller driller = new Driller - { - Id = 1, - Name = "Тестовый", - Patronymic = "Тест", - Surname = "Тестович" + private static List Drillers = new List { + new DrillerDto + { + Id = 1, + Name = "Тестовый", + Patronymic = "Тест", + Surname = "Тестович" + }, + new DrillerDto + { + Id = 1, + Name = "Тестовый", + Patronymic = "Тест", + Surname = "Тестович" + } }; - private DrillerDto drillerObj = new DrillerDto - { - Id = 0, - Name = "Тестовый", - Patronymic = "Тест", - Surname = "Тестович" - }; - private DrillerService service; + private ICrudService service; public DrillerServiceTest() { + var repositoryMock = RepositoryFactory.Make, DrillerDto>(Drillers); - context = TestHelpter.MakeTestContext(); - cacheDb = new CacheDb(); - context.SaveChanges(); - service = new DrillerService(context); + repositoryMock.Setup(x => x.GetAllAsync(It.IsAny())) + .Returns(() => { + var data = Drillers; + return Task.FromResult(data.AsEnumerable()); + }); + repositoryMock.Setup(x => x.InsertAsync(It.IsAny(), It.IsAny())) + .Returns((DrillerDto dto, CancellationToken token) => { + Drillers.Add(dto); + return Task.FromResult(Drillers.Count()); + }); + repositoryMock.Setup(x => x.UpdateAsync(It.IsAny(), It.IsAny())) + .Returns((DrillerDto dto, CancellationToken token) => { + var baseDto = Drillers.First(x => x.Id == dto.Id); + + Drillers.Remove(baseDto); + Drillers.Add(dto); + + return Task.FromResult(Drillers.Count()); + }); + + service = repositoryMock.Object; } ~DrillerServiceTest() @@ -45,36 +68,31 @@ namespace AsbCloudWebApi.Tests.ServicesTests [Fact] public async Task GetListAsync_count() { - - ///Добавляем элемент - var id = await service.InsertAsync(drillerObj, CancellationToken.None); - id = await service.InsertAsync(drillerObj, CancellationToken.None); - id = await service.InsertAsync(drillerObj, CancellationToken.None); - - var newCount = (await service.GetAllAsync(CancellationToken.None)).Count(); - Assert.Equal(3, newCount); + var data = await service.GetAllAsync(CancellationToken.None); + Assert.Equal(2, data.Count()); } [Fact] public async Task InsertAsync_returns_id() { - var id = await service.InsertAsync(drillerObj, CancellationToken.None); - Assert.NotEqual(0, id); + var dto = new DrillerDto { + Id = 3, + Name = "Тестовый", + Patronymic = "Тест", + Surname = "Тестович" + }; + var cnt = await service.InsertAsync(dto, CancellationToken.None); + Assert.Equal(3, cnt); } [Fact] public async Task UpdateAsync_not_add_if_exists() { - ///Добавляем элемент - context.Drillers.Add(driller); - var oldCount = (await service.GetAllAsync(CancellationToken.None)).Count(); + var dto = Drillers.First(x => x.Id == 1); + dto.Name = "Edit"; - //Обновляем - drillerObj.Id = driller.Id; - drillerObj.Name = "Исправлено"; - await service.UpdateAsync(drillerObj, CancellationToken.None); - var newCount = (await service.GetAllAsync(CancellationToken.None)).Count(); - Assert.Equal(newCount, oldCount); + var cnt = await service.UpdateAsync(dto, CancellationToken.None); + Assert.Equal(2, cnt); } } } diff --git a/AsbCloudWebApi/Controllers/DrillerController.cs b/AsbCloudWebApi/Controllers/DrillerController.cs index 8f85e934..2175c1ce 100644 --- a/AsbCloudWebApi/Controllers/DrillerController.cs +++ b/AsbCloudWebApi/Controllers/DrillerController.cs @@ -11,10 +11,10 @@ namespace AsbCloudWebApi.Controllers [Route("api/driller")] [ApiController] [Authorize] - public class DrillerController : CrudController + public class DrillerController : CrudController> { - public DrillerController(IDrillerService drillerService) - : base(drillerService) + public DrillerController(ICrudService service) + : base(service) { } } } From b1512f7de3e85f36aff2cae753049fac388030b4 Mon Sep 17 00:00:00 2001 From: "ai.astrakhantsev" Date: Wed, 19 Oct 2022 15:37:41 +0500 Subject: [PATCH 2/3] #7053070 fix --- AsbCloudInfrastructure/DependencyInjection.cs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index eb110218..c7e57d20 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -161,10 +161,7 @@ namespace AsbCloudInfrastructure .Include(c => c.Wells) .Include(c => c.Deposit))); // может быть включен в сервис ClusterService - services.AddTransient, CrudServiceBase>(s => - new CrudCacheServiceBase( - s.GetService(), - dbSet => dbSet)); + services.AddTransient, CrudCacheServiceBase>(); services.AddTransient(); services.AddTransient(); From cab11d368e3da106f7fbfa450b6008e178921fcc Mon Sep 17 00:00:00 2001 From: ngfrolov Date: Wed, 19 Oct 2022 15:59:53 +0500 Subject: [PATCH 3/3] fix tests --- AsbCloudWebApi.Tests/ServicesTests/DrillerServiceTest.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/AsbCloudWebApi.Tests/ServicesTests/DrillerServiceTest.cs b/AsbCloudWebApi.Tests/ServicesTests/DrillerServiceTest.cs index 644eecc9..7c1e60ff 100644 --- a/AsbCloudWebApi.Tests/ServicesTests/DrillerServiceTest.cs +++ b/AsbCloudWebApi.Tests/ServicesTests/DrillerServiceTest.cs @@ -90,9 +90,9 @@ namespace AsbCloudWebApi.Tests.ServicesTests { var dto = Drillers.First(x => x.Id == 1); dto.Name = "Edit"; - - var cnt = await service.UpdateAsync(dto, CancellationToken.None); - Assert.Equal(2, cnt); + var oldCount = Drillers.Count(); + var count = await service.UpdateAsync(dto, CancellationToken.None); + Assert.Equal(oldCount, count); } } }