Правки после ревью
This commit is contained in:
parent
4b7f55c3c8
commit
a796024c69
@ -33,7 +33,7 @@ public class ChangeLogController : ControllerBase, IChangeLogApi
|
|||||||
CancellationToken token)
|
CancellationToken token)
|
||||||
{
|
{
|
||||||
var userId = User.GetUserId<Guid>();
|
var userId = User.GetUserId<Guid>();
|
||||||
var changeLogCommit = new ChangeLogCommitDto(Uuid7.Guid(), comment);
|
var changeLogCommit = new ChangeLogCommitRequest(Uuid7.Guid(), comment);
|
||||||
var result = await service.AddRange(idDiscriminator, changeLogCommit, dtos, token);
|
var result = await service.AddRange(idDiscriminator, changeLogCommit, dtos, token);
|
||||||
|
|
||||||
return CreatedAtAction(nameof(AddRange), result);
|
return CreatedAtAction(nameof(AddRange), result);
|
||||||
@ -44,7 +44,7 @@ public class ChangeLogController : ControllerBase, IChangeLogApi
|
|||||||
public async Task<IActionResult> DeleteRange(IEnumerable<Guid> ids, string comment, CancellationToken token)
|
public async Task<IActionResult> DeleteRange(IEnumerable<Guid> ids, string comment, CancellationToken token)
|
||||||
{
|
{
|
||||||
var userId = User.GetUserId<Guid>();
|
var userId = User.GetUserId<Guid>();
|
||||||
var changeLogCommit = new ChangeLogCommitDto(userId, comment);
|
var changeLogCommit = new ChangeLogCommitRequest(userId, comment);
|
||||||
var result = await service.MarkAsDeleted(ids, changeLogCommit, token);
|
var result = await service.MarkAsDeleted(ids, changeLogCommit, token);
|
||||||
|
|
||||||
return Ok(result);
|
return Ok(result);
|
||||||
@ -59,7 +59,7 @@ public class ChangeLogController : ControllerBase, IChangeLogApi
|
|||||||
CancellationToken token)
|
CancellationToken token)
|
||||||
{
|
{
|
||||||
var userId = User.GetUserId<Guid>();
|
var userId = User.GetUserId<Guid>();
|
||||||
var changeLogCommit = new ChangeLogCommitDto(userId, comment);
|
var changeLogCommit = new ChangeLogCommitRequest(userId, comment);
|
||||||
var result = await service.ClearAndAddRange(idDiscriminator, changeLogCommit, dtos, token);
|
var result = await service.ClearAndAddRange(idDiscriminator, changeLogCommit, dtos, token);
|
||||||
return Ok(result);
|
return Ok(result);
|
||||||
}
|
}
|
||||||
@ -72,7 +72,7 @@ public class ChangeLogController : ControllerBase, IChangeLogApi
|
|||||||
CancellationToken token)
|
CancellationToken token)
|
||||||
{
|
{
|
||||||
var userId = User.GetUserId<Guid>();
|
var userId = User.GetUserId<Guid>();
|
||||||
var changeLogCommit = new ChangeLogCommitDto(userId, comment);
|
var changeLogCommit = new ChangeLogCommitRequest(userId, comment);
|
||||||
var result = await service.UpdateRange(changeLogCommit, dtos, token);
|
var result = await service.UpdateRange(changeLogCommit, dtos, token);
|
||||||
|
|
||||||
return Ok(result);
|
return Ok(result);
|
||||||
|
@ -39,7 +39,7 @@ public class ChangeLogService
|
|||||||
/// <param name="commitDto"></param>
|
/// <param name="commitDto"></param>
|
||||||
/// <param name="token"></param>
|
/// <param name="token"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
private async Task<Guid> GetOrCreateCommitAsync(ChangeLogCommitDto commitDto, CancellationToken token)
|
private async Task<Guid> GetOrCreateCommitAsync(ChangeLogCommitRequest commitDto, CancellationToken token)
|
||||||
{
|
{
|
||||||
var key = (commitDto.IdAuthor, commitDto.Comment);
|
var key = (commitDto.IdAuthor, commitDto.Comment);
|
||||||
var commitId = await memoryCache.GetOrCreateAsync(key, async (cacheEntry) =>
|
var commitId = await memoryCache.GetOrCreateAsync(key, async (cacheEntry) =>
|
||||||
@ -57,14 +57,14 @@ public class ChangeLogService
|
|||||||
/// Добавление записи в журнал изменений
|
/// Добавление записи в журнал изменений
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="idDiscriminator"></param>
|
/// <param name="idDiscriminator"></param>
|
||||||
/// <param name="commitDto"></param>
|
/// <param name="commitRequestDto"></param>
|
||||||
/// <param name="dtos"></param>
|
/// <param name="dtos"></param>
|
||||||
/// <param name="token"></param>
|
/// <param name="token"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<int> AddRange(Guid idDiscriminator, ChangeLogCommitDto commitDto, IEnumerable<ChangeLogValuesDto> dtos, CancellationToken token)
|
public async Task<int> AddRange(Guid idDiscriminator, ChangeLogCommitRequest commitRequestDto, IEnumerable<ChangeLogValuesDto> dtos, CancellationToken token)
|
||||||
{
|
{
|
||||||
var commitId = await GetOrCreateCommitAsync(commitDto, token);
|
var commitId = await GetOrCreateCommitAsync(commitRequestDto, token);
|
||||||
commitDto.Id = commitId;
|
var commitDto = new ChangeLogCommitDto(commitId, commitRequestDto);
|
||||||
|
|
||||||
var result = await repository.AddRange(idDiscriminator, commitDto, dtos, token);
|
var result = await repository.AddRange(idDiscriminator, commitDto, dtos, token);
|
||||||
return result;
|
return result;
|
||||||
@ -74,13 +74,13 @@ public class ChangeLogService
|
|||||||
/// Пометить запись журнала изменений как удаленную
|
/// Пометить запись журнала изменений как удаленную
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="ids"></param>
|
/// <param name="ids"></param>
|
||||||
/// <param name="commitDto"></param>
|
/// <param name="commitRequestDto"></param>
|
||||||
/// <param name="token"></param>
|
/// <param name="token"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<int> MarkAsDeleted(IEnumerable<Guid> ids, ChangeLogCommitDto commitDto, CancellationToken token)
|
public async Task<int> MarkAsDeleted(IEnumerable<Guid> ids, ChangeLogCommitRequest commitRequestDto, CancellationToken token)
|
||||||
{
|
{
|
||||||
var commitId = await GetOrCreateCommitAsync(commitDto, token);
|
var commitId = await GetOrCreateCommitAsync(commitRequestDto, token);
|
||||||
commitDto.Id = commitId;
|
var commitDto = new ChangeLogCommitDto(commitId, commitRequestDto);
|
||||||
|
|
||||||
var result = await repository.MarkAsDeleted(commitId, ids, commitDto.Creation, token);
|
var result = await repository.MarkAsDeleted(commitId, ids, commitDto.Creation, token);
|
||||||
|
|
||||||
@ -91,14 +91,14 @@ public class ChangeLogService
|
|||||||
/// Очистить старые и добавить новые записи в журнал изменений
|
/// Очистить старые и добавить новые записи в журнал изменений
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="idDiscriminator"></param>
|
/// <param name="idDiscriminator"></param>
|
||||||
/// <param name="commitDto"></param>
|
/// <param name="commitRequestDto"></param>
|
||||||
/// <param name="dtos"></param>
|
/// <param name="dtos"></param>
|
||||||
/// <param name="token"></param>
|
/// <param name="token"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<int> ClearAndAddRange(Guid idDiscriminator, ChangeLogCommitDto commitDto, IEnumerable<ChangeLogValuesDto> dtos, CancellationToken token)
|
public async Task<int> ClearAndAddRange(Guid idDiscriminator, ChangeLogCommitRequest commitRequestDto, IEnumerable<ChangeLogValuesDto> dtos, CancellationToken token)
|
||||||
{
|
{
|
||||||
var commitId = await GetOrCreateCommitAsync(commitDto, token);
|
var commitId = await GetOrCreateCommitAsync(commitRequestDto, token);
|
||||||
commitDto.Id = commitId;
|
var commitDto = new ChangeLogCommitDto(commitId, commitRequestDto);
|
||||||
|
|
||||||
var result = await repository.ClearAndAddRange(idDiscriminator, commitDto, dtos, token);
|
var result = await repository.ClearAndAddRange(idDiscriminator, commitDto, dtos, token);
|
||||||
|
|
||||||
@ -108,16 +108,16 @@ public class ChangeLogService
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Обновить записи в журнале изменений
|
/// Обновить записи в журнале изменений
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="changeLogCommit"></param>
|
/// <param name="commitRequestDto"></param>
|
||||||
/// <param name="dtos"></param>
|
/// <param name="dtos"></param>
|
||||||
/// <param name="token"></param>
|
/// <param name="token"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<int> UpdateRange(ChangeLogCommitDto changeLogCommit, IEnumerable<ChangeLogValuesDto> dtos, CancellationToken token)
|
public async Task<int> UpdateRange(ChangeLogCommitRequest commitRequestDto, IEnumerable<ChangeLogValuesDto> dtos, CancellationToken token)
|
||||||
{
|
{
|
||||||
var commitId = await GetOrCreateCommitAsync(changeLogCommit, token);
|
var commitId = await GetOrCreateCommitAsync(commitRequestDto, token);
|
||||||
changeLogCommit.Id = commitId;
|
var commitDto = new ChangeLogCommitDto(commitId, commitRequestDto);
|
||||||
|
|
||||||
var result = await repository.UpdateRange(changeLogCommit, dtos, token);
|
var result = await repository.UpdateRange(commitDto, dtos, token);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
|||||||
namespace DD.Persistence.Database.Postgres.Migrations
|
namespace DD.Persistence.Database.Postgres.Migrations
|
||||||
{
|
{
|
||||||
[DbContext(typeof(PersistencePostgresContext))]
|
[DbContext(typeof(PersistencePostgresContext))]
|
||||||
[Migration("20250218121851_Init")]
|
[Migration("20250221053248_Init")]
|
||||||
partial class Init
|
partial class Init
|
||||||
{
|
{
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
@ -41,10 +41,6 @@ namespace DD.Persistence.Database.Postgres.Migrations
|
|||||||
.HasColumnType("uuid")
|
.HasColumnType("uuid")
|
||||||
.HasComment("Дискриминатор таблицы");
|
.HasComment("Дискриминатор таблицы");
|
||||||
|
|
||||||
b.Property<Guid>("IdAuthor")
|
|
||||||
.HasColumnType("uuid")
|
|
||||||
.HasComment("Автор изменения");
|
|
||||||
|
|
||||||
b.Property<Guid>("IdCreatedCommit")
|
b.Property<Guid>("IdCreatedCommit")
|
||||||
.HasColumnType("uuid")
|
.HasColumnType("uuid")
|
||||||
.HasComment("Id коммита на создание записи");
|
.HasComment("Id коммита на создание записи");
|
@ -100,7 +100,6 @@ namespace DD.Persistence.Database.Postgres.Migrations
|
|||||||
{
|
{
|
||||||
Id = table.Column<Guid>(type: "uuid", nullable: false, comment: "Ключ записи"),
|
Id = table.Column<Guid>(type: "uuid", nullable: false, comment: "Ключ записи"),
|
||||||
DiscriminatorId = table.Column<Guid>(type: "uuid", nullable: false, comment: "Дискриминатор таблицы"),
|
DiscriminatorId = table.Column<Guid>(type: "uuid", nullable: false, comment: "Дискриминатор таблицы"),
|
||||||
IdAuthor = table.Column<Guid>(type: "uuid", nullable: false, comment: "Автор изменения"),
|
|
||||||
Creation = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, comment: "Дата создания записи"),
|
Creation = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false, comment: "Дата создания записи"),
|
||||||
Obsolete = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true, comment: "Дата устаревания (например при удалении)"),
|
Obsolete = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true, comment: "Дата устаревания (например при удалении)"),
|
||||||
IdNext = table.Column<Guid>(type: "uuid", nullable: true, comment: "Id заменяющей записи"),
|
IdNext = table.Column<Guid>(type: "uuid", nullable: true, comment: "Id заменяющей записи"),
|
@ -38,10 +38,6 @@ namespace DD.Persistence.Database.Postgres.Migrations
|
|||||||
.HasColumnType("uuid")
|
.HasColumnType("uuid")
|
||||||
.HasComment("Дискриминатор таблицы");
|
.HasComment("Дискриминатор таблицы");
|
||||||
|
|
||||||
b.Property<Guid>("IdAuthor")
|
|
||||||
.HasColumnType("uuid")
|
|
||||||
.HasComment("Автор изменения");
|
|
||||||
|
|
||||||
b.Property<Guid>("IdCreatedCommit")
|
b.Property<Guid>("IdCreatedCommit")
|
||||||
.HasColumnType("uuid")
|
.HasColumnType("uuid")
|
||||||
.HasComment("Id коммита на создание записи");
|
.HasComment("Id коммита на создание записи");
|
||||||
|
@ -20,15 +20,15 @@ public class ChangeLogCommitRepository : IChangeLogCommitRepository
|
|||||||
this.db = db;
|
this.db = db;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Guid> Add(ChangeLogCommitDto commitDto, CancellationToken token)
|
public async Task<Guid> Add(ChangeLogCommitRequest commitRequestDto, CancellationToken token)
|
||||||
{
|
{
|
||||||
|
|
||||||
var commit = new ChangeLogCommit()
|
var commit = new ChangeLogCommit()
|
||||||
{
|
{
|
||||||
Id = Uuid7.Guid(),
|
Id = Uuid7.Guid(),
|
||||||
IdAuthor = commitDto.IdAuthor,
|
IdAuthor = commitRequestDto.IdAuthor,
|
||||||
Comment = commitDto.Comment,
|
Comment = commitRequestDto.Comment,
|
||||||
Creation = commitDto.Creation,
|
Creation = commitRequestDto.Creation,
|
||||||
};
|
};
|
||||||
|
|
||||||
db.Add(commit);
|
db.Add(commit);
|
||||||
|
@ -75,7 +75,7 @@ public class ChangeLogRepository : IChangeLogRepository
|
|||||||
foreach (var entity in entities)
|
foreach (var entity in entities)
|
||||||
{
|
{
|
||||||
entity.Obsolete = updateTime;
|
entity.Obsolete = updateTime;
|
||||||
entity.DiscriminatorId = idDiscriminator;
|
entity.DiscriminatorId = idCommit;
|
||||||
}
|
}
|
||||||
|
|
||||||
return await db.SaveChangesAsync(token);
|
return await db.SaveChangesAsync(token);
|
||||||
@ -91,7 +91,7 @@ public class ChangeLogRepository : IChangeLogRepository
|
|||||||
|
|
||||||
using var transaction = await db.Database.BeginTransactionAsync(token);
|
using var transaction = await db.Database.BeginTransactionAsync(token);
|
||||||
|
|
||||||
result += await MarkAsDeleted(idDiscriminator, commitDto.Id, commitDto.Creation, token);
|
result += await MarkAsDeleted(commitDto.Id, changeLogIds, commitDto.Creation, token);
|
||||||
result += await AddRange(idDiscriminator, commitDto, dtos, token);
|
result += await AddRange(idDiscriminator, commitDto, dtos, token);
|
||||||
|
|
||||||
await transaction.CommitAsync(token);
|
await transaction.CommitAsync(token);
|
||||||
@ -104,17 +104,15 @@ public class ChangeLogRepository : IChangeLogRepository
|
|||||||
var dbSet = db.Set<ChangeLog>();
|
var dbSet = db.Set<ChangeLog>();
|
||||||
|
|
||||||
var updatedIds = dtos.Select(d => d.Id);
|
var updatedIds = dtos.Select(d => d.Id);
|
||||||
var updatedEntities = await dbSet
|
var updatedEntities = dbSet
|
||||||
.Where(s => updatedIds.Contains(s.Id))
|
.Where(s => updatedIds.Contains(s.Id))
|
||||||
.ToArrayAsync(token);
|
.ToDictionary(s => s.Id);
|
||||||
|
|
||||||
var updatedEntitiesDict = updatedEntities.ToDictionary(s => s.Id);
|
|
||||||
|
|
||||||
using var transaction = await db.Database.BeginTransactionAsync(token);
|
using var transaction = await db.Database.BeginTransactionAsync(token);
|
||||||
|
|
||||||
foreach (var dto in dtos)
|
foreach (var dto in dtos)
|
||||||
{
|
{
|
||||||
var updatedEntity = updatedEntitiesDict.GetValueOrDefault(dto.Id);
|
var updatedEntity = updatedEntities.GetValueOrDefault(dto.Id);
|
||||||
if (updatedEntity is null)
|
if (updatedEntity is null)
|
||||||
{
|
{
|
||||||
throw new ArgumentException($"Entity with id = {dto.Id} doesn't exist in Db", nameof(dto));
|
throw new ArgumentException($"Entity with id = {dto.Id} doesn't exist in Db", nameof(dto));
|
||||||
|
21
DD.Persistence.Models/ChangeLogCommitDto.cs
Normal file
21
DD.Persistence.Models/ChangeLogCommitDto.cs
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
namespace DD.Persistence.Models.Requests;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Модель коммита с изменениями
|
||||||
|
/// </summary>
|
||||||
|
public class ChangeLogCommitDto : ChangeLogCommitRequest
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Id
|
||||||
|
/// </summary>
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public ChangeLogCommitDto(Guid id, ChangeLogCommitRequest request) : base(request.IdAuthor, request.Comment)
|
||||||
|
{
|
||||||
|
Id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -3,13 +3,8 @@
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Модель коммита с изменениями
|
/// Модель коммита с изменениями
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class ChangeLogCommitDto
|
public class ChangeLogCommitRequest
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Id
|
|
||||||
/// </summary>
|
|
||||||
public Guid Id { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Дата создания
|
/// Дата создания
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -28,7 +23,7 @@ public class ChangeLogCommitDto
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ChangeLogCommitDto(Guid idAuthor, string comment)
|
public ChangeLogCommitRequest(Guid idAuthor, string comment)
|
||||||
{
|
{
|
||||||
IdAuthor = idAuthor;
|
IdAuthor = idAuthor;
|
||||||
Comment = comment;
|
Comment = comment;
|
@ -26,10 +26,11 @@ public class ChangeLogTest
|
|||||||
var discriminatorId = Uuid7.Guid();
|
var discriminatorId = Uuid7.Guid();
|
||||||
var expectedCommitId = Uuid7.Guid();
|
var expectedCommitId = Uuid7.Guid();
|
||||||
var comment = "Добавление нескольких значений";
|
var comment = "Добавление нескольких значений";
|
||||||
var commit = new ChangeLogCommitDto(expectedCommitId, comment);
|
var commitRequest = new ChangeLogCommitRequest(Uuid7.Guid(), comment);
|
||||||
|
var commit = new ChangeLogCommitDto(expectedCommitId, commitRequest);
|
||||||
var dtos = GenerateChangeLogValuesDto(2);
|
var dtos = GenerateChangeLogValuesDto(2);
|
||||||
|
|
||||||
changeLogCommitRepository.Add(Arg.Any<ChangeLogCommitDto>(), Arg.Any<CancellationToken>()).Returns(Uuid7.Guid());
|
changeLogCommitRepository.Add(Arg.Any<ChangeLogCommitRequest>(), Arg.Any<CancellationToken>()).Returns(Uuid7.Guid());
|
||||||
changeLogRepository
|
changeLogRepository
|
||||||
.AddRange(
|
.AddRange(
|
||||||
Arg.Any<Guid>(),
|
Arg.Any<Guid>(),
|
||||||
@ -40,13 +41,13 @@ public class ChangeLogTest
|
|||||||
|
|
||||||
//act
|
//act
|
||||||
var addRangeResult = await service
|
var addRangeResult = await service
|
||||||
.AddRange(discriminatorId, commit, dtos, CancellationToken.None);
|
.AddRange(discriminatorId, commitRequest, dtos, CancellationToken.None);
|
||||||
addRangeResult = await service
|
addRangeResult = await service
|
||||||
.AddRange(discriminatorId, commit, dtos, CancellationToken.None);
|
.AddRange(discriminatorId, commitRequest, dtos, CancellationToken.None);
|
||||||
|
|
||||||
//assert
|
//assert
|
||||||
await changeLogCommitRepository.Received(1).Add(commit, CancellationToken.None);
|
await changeLogCommitRepository.Received(1).Add(commitRequest, CancellationToken.None);
|
||||||
await changeLogRepository.Received(2).AddRange(discriminatorId, commit, dtos, CancellationToken.None);
|
await changeLogRepository.Received(2).AddRange(discriminatorId, Arg.Any<ChangeLogCommitDto>(), dtos, CancellationToken.None);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -54,14 +55,14 @@ public class ChangeLogTest
|
|||||||
{
|
{
|
||||||
//arrange
|
//arrange
|
||||||
var discriminatorId = Uuid7.Guid();
|
var discriminatorId = Uuid7.Guid();
|
||||||
|
var expectedCommitId = Uuid7.Guid();
|
||||||
var comment = "Изменение нескольких значений";
|
var comment = "Изменение нескольких значений";
|
||||||
var commit = new ChangeLogCommitDto(Uuid7.Guid(), comment);
|
var commitRequest = new ChangeLogCommitRequest(Uuid7.Guid(), comment);
|
||||||
commit.Id = Uuid7.Guid();
|
var commit = new ChangeLogCommitDto(expectedCommitId, commitRequest);
|
||||||
|
|
||||||
var dtos = GenerateChangeLogValuesDto(2);
|
var dtos = GenerateChangeLogValuesDto(2);
|
||||||
|
|
||||||
changeLogCommitRepository.Add(Arg.Any<ChangeLogCommitDto>(), Arg.Any<CancellationToken>()).Returns(commit.Id);
|
changeLogCommitRepository.Add(Arg.Any<ChangeLogCommitRequest>(), Arg.Any<CancellationToken>()).Returns(commit.Id);
|
||||||
|
|
||||||
changeLogRepository
|
changeLogRepository
|
||||||
.UpdateRange(
|
.UpdateRange(
|
||||||
@ -69,19 +70,20 @@ public class ChangeLogTest
|
|||||||
Arg.Any<IEnumerable<ChangeLogValuesDto>>(),
|
Arg.Any<IEnumerable<ChangeLogValuesDto>>(),
|
||||||
Arg.Any<CancellationToken>())
|
Arg.Any<CancellationToken>())
|
||||||
.Returns(2);
|
.Returns(2);
|
||||||
|
|
||||||
//act
|
//act
|
||||||
var updateRangeResult = await service
|
var updateRangeResult = await service
|
||||||
.UpdateRange(commit, dtos, CancellationToken.None);
|
.UpdateRange(commitRequest, dtos, CancellationToken.None);
|
||||||
|
|
||||||
updateRangeResult = await service
|
updateRangeResult = await service
|
||||||
.UpdateRange(commit, dtos, CancellationToken.None);
|
.UpdateRange(commitRequest, dtos, CancellationToken.None);
|
||||||
|
|
||||||
updateRangeResult = await service
|
updateRangeResult = await service
|
||||||
.UpdateRange(commit, dtos, CancellationToken.None);
|
.UpdateRange(commitRequest, dtos, CancellationToken.None);
|
||||||
|
|
||||||
//assert
|
//assert
|
||||||
await changeLogCommitRepository.Received(1).Add(commit, CancellationToken.None);
|
await changeLogCommitRepository.Received(1).Add(commitRequest, CancellationToken.None);
|
||||||
await changeLogRepository.Received(3).UpdateRange(commit, dtos, CancellationToken.None);
|
await changeLogRepository.Received(3).UpdateRange(Arg.Any<ChangeLogCommitDto>(), dtos, CancellationToken.None);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -91,11 +93,12 @@ public class ChangeLogTest
|
|||||||
var discriminatorId = Uuid7.Guid();
|
var discriminatorId = Uuid7.Guid();
|
||||||
var expectedCommitId = Uuid7.Guid();
|
var expectedCommitId = Uuid7.Guid();
|
||||||
var comment = "Удаление нескольких значений";
|
var comment = "Удаление нескольких значений";
|
||||||
var commit = new ChangeLogCommitDto(expectedCommitId, comment);
|
var commitRequest = new ChangeLogCommitRequest(Uuid7.Guid(), comment);
|
||||||
|
var commit = new ChangeLogCommitDto(expectedCommitId, commitRequest);
|
||||||
var dtos = GenerateChangeLogValuesDto(2);
|
var dtos = GenerateChangeLogValuesDto(2);
|
||||||
var dtoIds = dtos.Select(d => d.Id);
|
var dtoIds = dtos.Select(d => d.Id);
|
||||||
|
|
||||||
changeLogCommitRepository.Add(Arg.Any<ChangeLogCommitDto>(), Arg.Any<CancellationToken>()).Returns(Uuid7.Guid());
|
changeLogCommitRepository.Add(Arg.Any<ChangeLogCommitRequest>(), Arg.Any<CancellationToken>()).Returns(expectedCommitId);
|
||||||
changeLogRepository
|
changeLogRepository
|
||||||
.MarkAsDeleted(
|
.MarkAsDeleted(
|
||||||
Arg.Any<Guid>(),
|
Arg.Any<Guid>(),
|
||||||
@ -106,13 +109,13 @@ public class ChangeLogTest
|
|||||||
|
|
||||||
//act
|
//act
|
||||||
var markAsDeletedResult = await service
|
var markAsDeletedResult = await service
|
||||||
.MarkAsDeleted(dtoIds, commit, CancellationToken.None);
|
.MarkAsDeleted(dtoIds, commitRequest, CancellationToken.None);
|
||||||
markAsDeletedResult = await service
|
markAsDeletedResult = await service
|
||||||
.MarkAsDeleted(dtoIds, commit, CancellationToken.None);
|
.MarkAsDeleted(dtoIds, commitRequest, CancellationToken.None);
|
||||||
|
|
||||||
//assert
|
//assert
|
||||||
await changeLogCommitRepository.Received(1).Add(commit, CancellationToken.None);
|
await changeLogCommitRepository.Received(1).Add(commitRequest, CancellationToken.None);
|
||||||
await changeLogRepository.Received(2).MarkAsDeleted(commit.Id, dtoIds, commit.Creation, CancellationToken.None);
|
await changeLogRepository.Received(2).MarkAsDeleted(commit.Id, dtoIds, Arg.Any<DateTimeOffset>(), CancellationToken.None);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -122,11 +125,12 @@ public class ChangeLogTest
|
|||||||
var discriminatorId = Uuid7.Guid();
|
var discriminatorId = Uuid7.Guid();
|
||||||
var expectedCommitId = Uuid7.Guid();
|
var expectedCommitId = Uuid7.Guid();
|
||||||
var comment = "Удаление и добавление нескольких значений";
|
var comment = "Удаление и добавление нескольких значений";
|
||||||
var commit = new ChangeLogCommitDto(expectedCommitId, comment);
|
var commitRequest = new ChangeLogCommitRequest(expectedCommitId, comment);
|
||||||
|
var commit = new ChangeLogCommitDto(expectedCommitId, commitRequest);
|
||||||
var dtos = GenerateChangeLogValuesDto(2);
|
var dtos = GenerateChangeLogValuesDto(2);
|
||||||
var dtoIds = dtos.Select(d => d.Id);
|
var dtoIds = dtos.Select(d => d.Id);
|
||||||
|
|
||||||
changeLogCommitRepository.Add(Arg.Any<ChangeLogCommitDto>(), Arg.Any<CancellationToken>()).Returns(Uuid7.Guid());
|
changeLogCommitRepository.Add(Arg.Any<ChangeLogCommitRequest>(), Arg.Any<CancellationToken>()).Returns(Uuid7.Guid());
|
||||||
changeLogRepository
|
changeLogRepository
|
||||||
.ClearAndAddRange(
|
.ClearAndAddRange(
|
||||||
Arg.Any<Guid>(),
|
Arg.Any<Guid>(),
|
||||||
@ -137,13 +141,13 @@ public class ChangeLogTest
|
|||||||
|
|
||||||
//act
|
//act
|
||||||
var clearAndAddResult = await service
|
var clearAndAddResult = await service
|
||||||
.ClearAndAddRange(discriminatorId, commit, dtos, CancellationToken.None);
|
.ClearAndAddRange(discriminatorId, commitRequest, dtos, CancellationToken.None);
|
||||||
clearAndAddResult = await service
|
clearAndAddResult = await service
|
||||||
.ClearAndAddRange(discriminatorId, commit, dtos, CancellationToken.None);
|
.ClearAndAddRange(discriminatorId, commitRequest, dtos, CancellationToken.None);
|
||||||
|
|
||||||
//assert
|
//assert
|
||||||
await changeLogCommitRepository.Received(1).Add(commit, CancellationToken.None);
|
await changeLogCommitRepository.Received(1).Add(commitRequest, CancellationToken.None);
|
||||||
await changeLogRepository.Received(2).ClearAndAddRange(discriminatorId, commit, dtos, CancellationToken.None);
|
await changeLogRepository.Received(2).ClearAndAddRange(discriminatorId, Arg.Any<ChangeLogCommitDto>(), dtos, CancellationToken.None);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
@ -18,5 +18,5 @@ public interface IChangeLogCommitRepository
|
|||||||
/// <param name="commitDto"></param>
|
/// <param name="commitDto"></param>
|
||||||
/// <param name="token"></param>
|
/// <param name="token"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<Guid> Add(ChangeLogCommitDto commitDto, CancellationToken token);
|
Task<Guid> Add(ChangeLogCommitRequest commitDto, CancellationToken token);
|
||||||
}
|
}
|
||||||
|
@ -44,11 +44,11 @@ public interface IChangeLogRepository : ISyncWithDiscriminatorRepository<ChangeL
|
|||||||
/// Очистить и добавить новые
|
/// Очистить и добавить новые
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="idDiscriminator"></param>
|
/// <param name="idDiscriminator"></param>
|
||||||
/// <param name="commitDto">коммит с изменениями</param>
|
/// <param name="dto">коммит с изменениями</param>
|
||||||
/// <param name="dtos"></param>
|
/// <param name="dtos"></param>
|
||||||
/// <param name="token"></param>
|
/// <param name="token"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<int> ClearAndAddRange(Guid idDiscriminator, ChangeLogCommitDto commitDto, IEnumerable<ChangeLogValuesDto> dtos, CancellationToken token);
|
Task<int> ClearAndAddRange(Guid idDiscriminator, ChangeLogCommitDto dto, IEnumerable<ChangeLogValuesDto> dtos, CancellationToken token);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Редактирование записей
|
/// Редактирование записей
|
||||||
|
Loading…
Reference in New Issue
Block a user