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 f77735c7..48d759fc 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -128,7 +128,7 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); + //services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -159,6 +159,9 @@ namespace AsbCloudInfrastructure dbSet => dbSet .Include(c => c.Wells) .Include(c => c.Deposit))); // может быть включен в сервис ClusterService + + services.AddTransient, CrudCacheServiceBase>(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); 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..7c1e60ff 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(); - - //Обновляем - 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 dto = Drillers.First(x => x.Id == 1); + dto.Name = "Edit"; + var oldCount = Drillers.Count(); + var count = await service.UpdateAsync(dto, CancellationToken.None); + Assert.Equal(oldCount, count); } } } 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) { } } }