From 3ab5048856bc486dceb50719960264000500259f Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 24 Aug 2023 14:30:44 +0800 Subject: [PATCH] Add a new unit test for `ReadOnlyRepository`. --- .../Repositories/ReadOnlyRepository_Tests.cs | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/Repositories/ReadOnlyRepository_Tests.cs b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/Repositories/ReadOnlyRepository_Tests.cs index bd073ce15a..393b54dbe3 100644 --- a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/Repositories/ReadOnlyRepository_Tests.cs +++ b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/Repositories/ReadOnlyRepository_Tests.cs @@ -2,6 +2,7 @@ using System; using System.Linq; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.DependencyInjection; using Shouldly; using Volo.Abp.Data; using Volo.Abp.Domain.Repositories; @@ -9,6 +10,7 @@ using Volo.Abp.Domain.Repositories.EntityFrameworkCore; using Volo.Abp.TestApp.Domain; using Volo.Abp.TestApp.EntityFrameworkCore; using Volo.Abp.TestApp.Testing; +using Volo.Abp.Uow; using Xunit; namespace Volo.Abp.EntityFrameworkCore.Repositories; @@ -72,4 +74,39 @@ public class ReadOnlyRepository_Tests : TestAppTestBase>(); + var readonlyRepository = GetRequiredService>(); + + await WithUnitOfWorkAsync(async () => + { + await repository.InsertAsync(new Person(Guid.NewGuid(), "people1", 18)); + await repository.InsertAsync(new Person(Guid.NewGuid(), "people2", 19)); + }); + + using (var uow = GetRequiredService().Begin()) + { + var p1 = await repository.FirstOrDefaultAsync(x => x.Name == "people1"); + p1.ShouldNotBeNull(); + p1.ChangeName("people1-updated"); + + var p2 = await readonlyRepository.FirstOrDefaultAsync(x => x.Name == "people2"); + p2.ShouldNotBeNull(); + p2.ChangeName("people2-updated"); + + await uow.CompleteAsync(); + } + + await WithUnitOfWorkAsync(async () => + { + (await repository.FirstOrDefaultAsync(x => x.Name == "people1")).ShouldBeNull(); + (await repository.FirstOrDefaultAsync(x => x.Name == "people1-updated")).ShouldNotBeNull(); + + (await readonlyRepository.FirstOrDefaultAsync(x => x.Name == "people2")).ShouldNotBeNull(); + (await readonlyRepository.FirstOrDefaultAsync(x => x.Name == "people2-updated")).ShouldBeNull(); + }); + } }