//using Mapster; //using Microsoft.Extensions.DependencyInjection; //using DD.Persistence.Client; //using DD.Persistence.Client.Clients.Interfaces; //using DD.Persistence.Database.Model; //using System.Net; //using Xunit; //namespace DD.Persistence.IntegrationTests.Controllers; //public abstract class TimeSeriesBaseControllerTest : BaseIntegrationTest // where TEntity : class, ITimestampedData, new() // where TDto : class, new() //{ // private readonly ITimeSeriesClient timeSeriesClient; // public TimeSeriesBaseControllerTest(WebAppFactoryFixture factory) : base(factory) // { // dbContext.CleanupDbSet(); // var scope = factory.Services.CreateScope(); // var persistenceClientFactory = scope.ServiceProvider // .GetRequiredService(); // timeSeriesClient = persistenceClientFactory.GetTimeSeriesClient(); // } // public async Task InsertRangeSuccess(TDto dto) // { // //arrange // var expected = dto.Adapt(); // //act // var response = await timeSeriesClient.AddRange(new TDto[] { expected }, new CancellationToken()); // //assert // Assert.Equal(1, response); // } // public async Task GetSuccess(DateTimeOffset beginDate, DateTimeOffset endDate, TEntity entity) // { // //arrange // var dbset = dbContext.Set(); // dbset.Add(entity); // dbContext.SaveChanges(); // var response = await timeSeriesClient.Get(beginDate, endDate, new CancellationToken()); // //assert // Assert.NotNull(response); // Assert.Single(response); // } // public async Task GetDatesRangeSuccess(TEntity entity) // { // //arrange // var datesRangeExpected = 30; // var entity2 = entity.Adapt(); // entity2.Date = entity.Date.AddDays(datesRangeExpected); // var dbset = dbContext.Set(); // dbset.Add(entity); // dbset.Add(entity2); // dbContext.SaveChanges(); // var response = await timeSeriesClient.GetDatesRange(new CancellationToken()); // //assert // Assert.NotNull(response); // var datesRangeActual = (response.To - response.From).Days; // Assert.Equal(datesRangeExpected, datesRangeActual); // } // public async Task GetResampledDataSuccess(TEntity entity) // { // //arrange // var approxPointsCount = 10; // var differenceBetweenStartAndEndDays = 50; // var entities = new List(); // for (var i = 1; i <= differenceBetweenStartAndEndDays; i++) // { // var entity2 = entity.Adapt(); // entity2.Date = entity.Date.AddDays(i - 1); // entities.Add(entity2); // } // var dbset = dbContext.Set(); // dbset.AddRange(entities); // dbContext.SaveChanges(); // var response = await timeSeriesClient.GetResampledData(entity.Date.AddMinutes(-1), differenceBetweenStartAndEndDays * 24 * 60 * 60 + 60, approxPointsCount, new CancellationToken()); // //assert // Assert.NotNull(response); // var ratio = entities.Count / approxPointsCount; // if (ratio > 1) // { // var expectedResampledCount = entities // .Where((_, index) => index % ratio == 0) // .Count(); // Assert.Equal(expectedResampledCount, response.Count()); // } // else // { // Assert.Equal(entities.Count(), response.Count()); // } // } //}