diff --git a/AsbCloudWebApi.Tests/ServicesTests/CrudServiceTest.cs b/AsbCloudWebApi.Tests/ServicesTests/CrudServiceTest.cs new file mode 100644 index 00000000..0b94eaf1 --- /dev/null +++ b/AsbCloudWebApi.Tests/ServicesTests/CrudServiceTest.cs @@ -0,0 +1,106 @@ +using AsbCloudApp.Data; +using AsbCloudApp.Services; +using AsbCloudDb.Model; +using AsbCloudInfrastructure.Services; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using Xunit; + +namespace AsbCloudWebApi.Tests.ServicesTests +{ + public class DepositCrudServiceTest : CrudServiceTestAbstract + { + protected override DepositDto MakeNewItem() + { + var item = new DepositDto + { + Caption = "test deposit", + Latitude = 1, + Longitude = 2, + Timezone = new SimpleTimezoneDto { Hours = 5, TimezoneId = "test Never-land"} + }; + return item; + } + + protected override ICrudService MakeService() + { + var dbContext = TestHelpter.MakeTestContext(); + return new CrudCacheServiceBase(dbContext); + } + } + + public abstract class CrudServiceTestAbstract + where TDto: AsbCloudApp.Data.IId + { + private readonly ICrudService service; + + public CrudServiceTestAbstract() + { + service = MakeService(); + } + + protected abstract ICrudService MakeService(); + protected abstract TDto MakeNewItem(); + + [Fact] + public async Task Insert() + { + var newItem = MakeNewItem(); + var id = await service.InsertAsync(newItem, CancellationToken.None); + Assert.True(id > 0); + } + + [Fact] + public async Task InsertRange() + { + var items = new TDto[2]; + items[0] = MakeNewItem(); + items[1] = MakeNewItem(); + var count = await service.InsertRangeAsync(items, CancellationToken.None); + Assert.Equal(2, count); + } + + [Fact] + public async Task GetById() + { + var newItem = MakeNewItem(); + var id = await service.InsertAsync(newItem, CancellationToken.None); + var gotItem = await service.GetAsync(id, CancellationToken.None); + Assert.True(id > 0); + Assert.Equal(id, gotItem.Id); + } + + [Fact] + public async Task GetAll() + { + var items = await service.GetAllAsync(CancellationToken.None); + var count = items.Count(); + await Insert(); + var newItems = await service.GetAllAsync(CancellationToken.None); + var newCount = newItems.Count(); + Assert.True(newCount > 0); + Assert.Equal(count + 1, newCount); + } + + [Fact] + public async Task UpdateAsync() + { + var newItem = MakeNewItem(); + var id = await service.InsertAsync(newItem, CancellationToken.None); + var updatedId = await service.UpdateAsync(newItem, CancellationToken.None); + Assert.True(id > 0); + Assert.Equal(id, updatedId); + } + + [Fact] + public async Task DeleteAsync() + { + var newItem = MakeNewItem(); + var id = await service.InsertAsync(newItem, CancellationToken.None); + var deletedId = await service.DeleteAsync(id, CancellationToken.None); + Assert.True(id > 0); + Assert.Equal(id, deletedId); + } + } +} diff --git a/AsbCloudWebApi.Tests/ServicesTests/DrillerServiceTest.cs b/AsbCloudWebApi.Tests/ServicesTests/DrillerServiceTest.cs index b54291b8..61cb6d49 100644 --- a/AsbCloudWebApi.Tests/ServicesTests/DrillerServiceTest.cs +++ b/AsbCloudWebApi.Tests/ServicesTests/DrillerServiceTest.cs @@ -76,7 +76,7 @@ namespace AsbCloudWebApi.Tests.ServicesTests //Обновляем drillerObj.Id = driller.Id; drillerObj.Name = "Исправлено"; - await service.UpdateAsync(driller.Id, drillerObj, CancellationToken.None); + await service.UpdateAsync(drillerObj, CancellationToken.None); var newCount = (await service.GetAllAsync(CancellationToken.None)).Count(); Assert.Equal(newCount, oldCount); } diff --git a/AsbCloudWebApi.Tests/ServicesTests/ScheduleServiceTest.cs b/AsbCloudWebApi.Tests/ServicesTests/ScheduleServiceTest.cs index 19da37c9..eec54e0c 100644 --- a/AsbCloudWebApi.Tests/ServicesTests/ScheduleServiceTest.cs +++ b/AsbCloudWebApi.Tests/ServicesTests/ScheduleServiceTest.cs @@ -34,8 +34,8 @@ namespace AsbCloudWebApi.Tests.ServicesTests { IdWell = dto?.IdWell ?? 1, IdDriller = dto?.IdDriller ?? 1, - ShiftStart = dto?.ShiftStart ?? new TimeOnly(10, 00), - ShiftEnd = dto?.ShiftEnd ?? new TimeOnly(18, 00), + ShiftStart = dto?.ShiftStart ?? new TimeDto(10, 00), + ShiftEnd = dto?.ShiftEnd ?? new TimeDto(18, 00), DrillStart = dto?.DrillStart ?? DateTime.Parse("2022-05-16T10:00:00.286Z"), DrillEnd = dto?.DrillEnd ?? DateTime.Parse("2022-05-16T18:00:00.286Z") }; @@ -105,7 +105,7 @@ namespace AsbCloudWebApi.Tests.ServicesTests var dto = MakeScheduleDto(); dto.Id = 1; dto.DrillEnd = dto.DrillEnd.AddHours(-3); - await scheduleService.UpdateAsync(dto.Id, dto, CancellationToken.None); + await scheduleService.UpdateAsync(dto, CancellationToken.None); var newCount = (await scheduleService.GetAllAsync(CancellationToken.None)).Count(); Assert.Equal(newCount, oldCount); } @@ -114,8 +114,8 @@ namespace AsbCloudWebApi.Tests.ServicesTests public async Task GetDriller_by_workTime_shift1() { var dto = MakeScheduleDto(); - dto.ShiftStart = new TimeOnly(8, 00); - dto.ShiftEnd = new TimeOnly(20, 00); + dto.ShiftStart = new TimeDto(8, 00); + dto.ShiftEnd = new TimeDto(20, 00); var id = await scheduleService.InsertAsync(dto, CancellationToken.None); var drillerWorkTime = new DateTime( dto.DrillStart.Year, @@ -130,8 +130,8 @@ namespace AsbCloudWebApi.Tests.ServicesTests public async Task GetDriller_by_workTime_shift2() { var dto = MakeScheduleDto(); - dto.ShiftStart = new TimeOnly(20, 00); - dto.ShiftEnd = new TimeOnly(8, 00); + dto.ShiftStart = new TimeDto(20, 00); + dto.ShiftEnd = new TimeDto(8, 00); var id = await scheduleService.InsertAsync(dto, CancellationToken.None); var drillerWorkTime = new DateTime( dto.DrillStart.Year, diff --git a/AsbCloudWebApi.Tests/ServicesTests/UserRoleServiceTest.cs b/AsbCloudWebApi.Tests/ServicesTests/UserRoleServiceTest.cs index ea3095fb..00bf86c9 100644 --- a/AsbCloudWebApi.Tests/ServicesTests/UserRoleServiceTest.cs +++ b/AsbCloudWebApi.Tests/ServicesTests/UserRoleServiceTest.cs @@ -148,7 +148,7 @@ namespace AsbCloudWebApi.Tests.ServicesTests Id = updateId, Caption = "role 2 level 1" }; - var id = await service.UpdateAsync(1_000_002, modRole, CancellationToken.None); + var id = await service.UpdateAsync(modRole, CancellationToken.None); Assert.Equal(updateId, id); } @@ -163,7 +163,7 @@ namespace AsbCloudWebApi.Tests.ServicesTests Caption = "role 2 level 1", Permissions = new[] { new PermissionDto { Id = 2_000_001 } }, }; - var id = await service.UpdateAsync(1_000_002, modRole, CancellationToken.None); + var id = await service.UpdateAsync(modRole, CancellationToken.None); var entity = await service.GetAsync(id); Assert.Equal(modRole.Permissions.Count(), entity.Permissions.Count()); } @@ -179,7 +179,7 @@ namespace AsbCloudWebApi.Tests.ServicesTests Caption = "role 2 level 1", Roles = new[] { new UserRoleDto { Id = 1_000_001 } } }; - var id = await service.UpdateAsync(1_000_002, modRole, CancellationToken.None); + var id = await service.UpdateAsync(modRole, CancellationToken.None); var entity = await service.GetAsync(id); Assert.Equal(modRole.Roles.Count(), entity.Roles.Count()); }