Дополнительные проверки в юнит-тесте UpdateRange для ChangeLog

This commit is contained in:
Оля Бизюкова 2025-02-20 12:04:08 +05:00
parent c0d28efc70
commit ba9fe675ed

View File

@ -1,31 +1,22 @@
using DD.Persistence.API.Services;
using DD.Persistence.Database.Entity;
using DD.Persistence.Models;
using DD.Persistence.Models.Common;
using DD.Persistence.Models.Requests;
using DD.Persistence.Repositories;
using DD.Persistence.Services;
using Microsoft.Extensions.Caching.Memory;
using Newtonsoft.Json.Linq;
using NSubstitute;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UuidExtensions;
using static NSubstitute.Arg;
namespace DD.Persistence.Test;
public class ChangeLogTest
{
private readonly IChangeLogCommitRepository changeLogCommitRepository = Substitute.For<IChangeLogCommitRepository>();
private readonly IChangeLogRepository changeLogRepository = Substitute.For<IChangeLogRepository>();
private readonly IMemoryCache memoryCache = Substitute.For<IMemoryCache>();
private ChangeLogService service;
public ChangeLogTest()
{
var memoryCache = new MemoryCache(new MemoryCacheOptions());
service = new ChangeLogService(memoryCache, changeLogCommitRepository, changeLogRepository);
}
[Fact]
@ -40,9 +31,9 @@ public class ChangeLogTest
changeLogCommitRepository.Add(Arg.Any<ChangeLogCommitDto>(), Arg.Any<CancellationToken>()).Returns(Uuid7.Guid());
changeLogRepository
.AddRange(
Arg.Any<Guid>(),
Arg.Any<ChangeLogCommitDto>(),
Arg.Any<IEnumerable<ChangeLogValuesDto>>(),
Arg.Any<Guid>(),
Arg.Any<ChangeLogCommitDto>(),
Arg.Any<IEnumerable<ChangeLogValuesDto>>(),
Arg.Any<CancellationToken>())
.Returns(2);
@ -57,12 +48,15 @@ public class ChangeLogTest
public async Task UpdateRange()
{
var discriminatorId = Uuid7.Guid();
var expectedCommitId = Uuid7.Guid();
var comment = "Изменение нескольких значений";
var commit = new ChangeLogCommitDto(expectedCommitId, comment);
var commit = new ChangeLogCommitDto(Uuid7.Guid(), comment);
commit.Id = Uuid7.Guid();
var dtos = GenerateChangeLogValuesDto(2);
changeLogCommitRepository.Add(Arg.Any<ChangeLogCommitDto>(), Arg.Any<CancellationToken>()).Returns(Uuid7.Guid());
changeLogCommitRepository.Add(Arg.Any<ChangeLogCommitDto>(), Arg.Any<CancellationToken>()).Returns(commit.Id);
changeLogRepository
.UpdateRange(
Arg.Any<ChangeLogCommitDto>(),
@ -73,8 +67,14 @@ public class ChangeLogTest
var updateRangeResult = await service
.UpdateRange(commit, dtos, CancellationToken.None);
updateRangeResult = await service
.UpdateRange(commit, dtos, CancellationToken.None);
updateRangeResult = await service
.UpdateRange(commit, dtos, CancellationToken.None);
await changeLogCommitRepository.Received(1).Add(commit, CancellationToken.None);
await changeLogRepository.Received(1).UpdateRange(commit, dtos, CancellationToken.None);
await changeLogRepository.Received(3).UpdateRange(commit, dtos, CancellationToken.None);
}
[Fact]
@ -168,7 +168,7 @@ public class ChangeLogTest
{
var discriminatorId = Uuid7.Guid();
var dtos = GenerateChangeLogDto(5);
;
;
var dateBegin = DateTimeOffset.UtcNow.AddDays(-5);
var dateEnd = DateTimeOffset.UtcNow;
@ -198,7 +198,7 @@ public class ChangeLogTest
var dateOnlyBegin = new DateOnly(dateBegin.Year, dateBegin.Month, dateBegin.Day);
var dateOnlyEnd = new DateOnly(dateEnd.Year, dateEnd.Month, dateEnd.Day);
var dtos = new List<DateOnly>() { dateOnlyBegin, dateOnlyEnd };
var dtos = new List<DateOnly>() { dateOnlyBegin, dateOnlyEnd };
changeLogRepository
.GetDatesChange(
@ -241,7 +241,7 @@ public class ChangeLogTest
{
items.Add(new ChangeLogDto()
{
Id = Uuid7.Guid(),
Id = Uuid7.Guid(),
});
}
return items;