Автотесты (начало)
This commit is contained in:
parent
ebd2cff40d
commit
7c2ab3f6e2
108
DD.Persistence.Repository.Test/ChangeLogRepositoryTest.cs
Normal file
108
DD.Persistence.Repository.Test/ChangeLogRepositoryTest.cs
Normal file
@ -0,0 +1,108 @@
|
||||
using DD.Persistence.Database.Model;
|
||||
using DD.Persistence.Database.Postgres.Repositories;
|
||||
using DD.Persistence.Database.Repositories;
|
||||
using DD.Persistence.Models.Common;
|
||||
using DD.Persistence.Models.Requests;
|
||||
using DD.Persistence.Models;
|
||||
using DD.Persistence.Repositories;
|
||||
using Shouldly;
|
||||
using System.Text.Json;
|
||||
using UuidExtensions;
|
||||
|
||||
namespace DD.Persistence.Repository.Test;
|
||||
public class ChangeLogRepositoryTest : IClassFixture<RepositoryTestFixture>
|
||||
{
|
||||
private readonly PersistencePostgresContext context;
|
||||
private readonly IChangeLogRepository repo;
|
||||
|
||||
public ChangeLogRepositoryTest(RepositoryTestFixture fixture)
|
||||
{
|
||||
context = fixture.GetDbContext();
|
||||
repo = new ChangeLogRepository(context);
|
||||
}
|
||||
|
||||
//Task<int> MarkAsDeleted(Guid idEditor, IEnumerable<Guid> ids, string comment, CancellationToken token);
|
||||
|
||||
//Task<int> MarkAsDeleted(Guid idEditor, Guid idDiscriminator, string comment, CancellationToken token);
|
||||
//Task<int> ClearAndAddRange(Guid idDiscriminator, ChangeLogCommitDto commitDto, CancellationToken token);
|
||||
|
||||
private async Task<ChangeLogCommitDto> ChangeLogItem(Guid idDiscriminator)
|
||||
{
|
||||
var idAuthor = Uuid7.Guid();
|
||||
var changeLogItems = new List<ChangeLogValuesDto>()
|
||||
{
|
||||
new ChangeLogValuesDto(){
|
||||
Id = Uuid7.Guid(),
|
||||
Value = new Dictionary<string, object>(){
|
||||
{ "1", 1 },
|
||||
{ "2", 2 },
|
||||
{ "3", 3 }
|
||||
}
|
||||
}
|
||||
};
|
||||
var commit = new ChangeLogCommitDto(idAuthor, "Комментарий 1", changeLogItems);
|
||||
return commit;
|
||||
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task AddRangeReturnSuccess()
|
||||
{
|
||||
//act
|
||||
var idDiscriminator = Uuid7.Guid();
|
||||
var commit = await ChangeLogItem(idDiscriminator);
|
||||
var result = await repo.AddRange(idDiscriminator, commit, CancellationToken.None);
|
||||
|
||||
//assert
|
||||
Assert.Equal(2, result);
|
||||
}
|
||||
|
||||
|
||||
[Fact]
|
||||
public async Task UpdateRangeReturnSuccess()
|
||||
{
|
||||
var idDiscriminator = Uuid7.Guid();
|
||||
var commit1 = await ChangeLogItem(idDiscriminator);
|
||||
var commit2 = await ChangeLogItem(idDiscriminator);
|
||||
|
||||
var items = await repo.GetGtDate(idDiscriminator, DateTimeOffset.UtcNow.AddDays(-1), CancellationToken.None);
|
||||
|
||||
if (items == null)
|
||||
Assert.Fail("Не найдены элементы changeLog");
|
||||
|
||||
var updated = items.ToArray();
|
||||
foreach (var item in updated)
|
||||
{
|
||||
item.Value.Add("4", 4);
|
||||
}
|
||||
|
||||
//act
|
||||
var commit = new ChangeLogCommitDto(Uuid7.Guid(), "Комментарий 2", updated);
|
||||
result = await repo.UpdateRange(commit, CancellationToken.None);
|
||||
|
||||
//assert
|
||||
//изменены 2 старые записи,
|
||||
//добавлены 2 новые записи
|
||||
//добавлен общий коммит
|
||||
//итого = 2+2+1 = 5
|
||||
Assert.Equal(5, result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ClearAndAddRangeReturnSuccess()
|
||||
{
|
||||
var idDiscriminator = Uuid7.Guid();
|
||||
await ChangeLogItem(idDiscriminator);
|
||||
await ChangeLogItem(idDiscriminator);
|
||||
await ChangeLogItem(idDiscriminator);
|
||||
|
||||
//act
|
||||
var result = await repo.ClearAndAddRange(idDiscriminator, commit, CancellationToken.None);
|
||||
|
||||
//assert
|
||||
Assert.Equal(2, result);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user