Правки после ревью

This commit is contained in:
Степанов Дмитрий 2023-10-24 16:44:24 +05:00
parent c7a1a62bcd
commit 26f01eb236
3 changed files with 23 additions and 30 deletions

View File

@ -38,8 +38,6 @@ namespace AsbCloudInfrastructure.Services.SAUB
private static TelemetryDataCache<TDto>? instance;
public int CacheItemCount => caches.Count;
public static TelemetryDataCache<TDto> GetInstance<TEntity>(IServiceProvider provider)
where TEntity : class, AsbCloudDb.Model.ITelemetryData
{

View File

@ -9,7 +9,6 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Bogus" Version="34.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.8" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="6.0.8" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="6.0.8" />

View File

@ -6,7 +6,6 @@ using AsbCloudApp.Data.SAUB;
using AsbCloudDb.Model;
using AsbCloudInfrastructure.Background;
using AsbCloudInfrastructure.Services.SAUB;
using Bogus;
using Microsoft.Extensions.DependencyInjection;
using NSubstitute;
using Xunit;
@ -15,55 +14,52 @@ namespace AsbCloudWebApi.Tests.ServicesTests.SAUB;
public class TelemetryDataSaubCacheTests
{
private readonly IEnumerable<TelemetryDataSaubDto> fakeTelemetries = new Faker<TelemetryDataSaubDto>()
.RuleFor(t => t.DateTime, DateTime.UtcNow)
.Generate(5)
.OrderBy(t => t.DateTime);
private readonly IServiceProvider serviceProvider = Substitute.For<IServiceProvider>();
private const int idTelemetry = 1;
private readonly IEnumerable<TelemetryDataSaubDto> fakeTelemetries = new[]
{
new TelemetryDataSaubDto()
};
private readonly IServiceProvider serviceProviderMock = Substitute.For<IServiceProvider>();
private readonly TelemetryDataCache<TelemetryDataSaubDto> telemetryDataCache;
private readonly Type telemetryDataCacheType;
public TelemetryDataSaubCacheTests()
{
serviceProvider.GetService<BackgroundWorker>().Returns(new BackgroundWorker(serviceProvider));
serviceProviderMock.GetService<BackgroundWorker>().Returns(new BackgroundWorker(serviceProviderMock));
telemetryDataCache = TelemetryDataCache<TelemetryDataSaubDto>.GetInstance<TelemetryDataSaub>(serviceProvider);
telemetryDataCache = TelemetryDataCache<TelemetryDataSaubDto>.GetInstance<TelemetryDataSaub>(serviceProviderMock);
telemetryDataCacheType = telemetryDataCache.GetType();
}
[Fact]
public void AddRange_ShouldReturn_OneAddedElementToCache()
public void AddRange_ShouldReturn_AddedElementToCache()
{
//arrange
const int expectedCacheItemCount = 1;
var idTelemetry = new Random().Next(1, 100);
var telemetryDataCacheType = telemetryDataCache.GetType();
telemetryDataCacheType.GetField("isLoading", BindingFlags.NonPublic | BindingFlags.Instance)?.SetValue(telemetryDataCache, false);
//act
telemetryDataCache.AddRange(idTelemetry, fakeTelemetries);
var lastTelemetry = telemetryDataCache.GetLastOrDefault(idTelemetry);
//assert
Assert.True(telemetryDataCache.CacheItemCount == expectedCacheItemCount);
Assert.Equal(lastTelemetry, fakeTelemetries.Last());
}
[Fact]
public void AddRange_ShouldReturn_ZeroAddedElementToCache()
public void AddRange_ShouldReturn_NotAddedToCache()
{
//arrange
const int expectedCacheItemCount = 0;
var idTelemetry = new Random().Next(1, 100);
var telemetryDataCacheType = telemetryDataCache.GetType();
telemetryDataCacheType.GetField("isLoading", BindingFlags.NonPublic | BindingFlags.Instance)?.SetValue(telemetryDataCache, true);
//act
telemetryDataCache.AddRange(idTelemetry, fakeTelemetries);
var lastTelemetry = telemetryDataCache.GetLastOrDefault(idTelemetry);
//assert
Assert.True(telemetryDataCache.CacheItemCount == expectedCacheItemCount);
Assert.NotEqual(lastTelemetry, fakeTelemetries.Last());
}
}