diff --git a/EstateReportingAPI.BusinessLogic/ReportingManager.cs b/EstateReportingAPI.BusinessLogic/ReportingManager.cs index ff28d64..3333b38 100644 --- a/EstateReportingAPI.BusinessLogic/ReportingManager.cs +++ b/EstateReportingAPI.BusinessLogic/ReportingManager.cs @@ -5,6 +5,7 @@ namespace EstateReportingAPI.BusinessLogic{ using Microsoft.EntityFrameworkCore; using Models; + using Shared.EntityFramework; using System.Linq; using System.Threading; using Calendar = Models.Calendar; @@ -12,18 +13,15 @@ namespace EstateReportingAPI.BusinessLogic{ using Operator = Models.Operator; public class ReportingManager : IReportingManager{ - #region Fields - - private readonly Shared.EntityFramework.IDbContextFactory ContextFactory; + private readonly IDbContextResolver Resolver; + private Guid Id; - - #endregion - + private static readonly String EstateManagementDatabaseName = "TransactionProcessorReadModel"; #region Constructors - public ReportingManager(Shared.EntityFramework.IDbContextFactory contextFactory){ - this.ContextFactory = contextFactory; + public ReportingManager(IDbContextResolver resolver) { + this.Resolver = resolver; } #endregion @@ -32,7 +30,8 @@ public ReportingManager(Shared.EntityFramework.IDbContextFactory> GetUnsettledFees(Guid estateId, DateTime startDate, DateTime endDate, List merchantIds, List operatorIds, List productIds, GroupByOption? groupByOption, CancellationToken cancellationToken){ - EstateManagementContext? context = await this.ContextFactory.GetContext(estateId, ReportingManager.ConnectionStringIdentifier, cancellationToken); + using ResolvedDbContext? resolvedContext = this.Resolver.Resolve(EstateManagementDatabaseName, estateId.ToString()); + await using EstateManagementContext context = resolvedContext.Context; var fees = (from merchantSettlementFee in context.MerchantSettlementFees join transaction in context.Transactions @@ -132,7 +131,8 @@ into grouped } public async Task> GetCalendarComparisonDates(Guid estateId, CancellationToken cancellationToken){ - EstateManagementContext? context = await this.ContextFactory.GetContext(estateId, ReportingManager.ConnectionStringIdentifier, cancellationToken); + using ResolvedDbContext? resolvedContext = this.Resolver.Resolve(EstateManagementDatabaseName, estateId.ToString()); + await using EstateManagementContext context = resolvedContext.Context; DateTime startOfYear = new DateTime(DateTime.Now.Year, 1, 1); @@ -159,7 +159,8 @@ public async Task> GetCalendarComparisonDates(Guid estateId, Canc } public async Task> GetCalendarDates(Guid estateId, CancellationToken cancellationToken){ - EstateManagementContext? context = await this.ContextFactory.GetContext(estateId, ReportingManager.ConnectionStringIdentifier, cancellationToken); + using ResolvedDbContext? resolvedContext = this.Resolver.Resolve(EstateManagementDatabaseName, estateId.ToString()); + await using EstateManagementContext context = resolvedContext.Context; List entities = context.Calendar.Where(c => c.Date <= DateTime.Now.Date).ToList(); @@ -184,15 +185,17 @@ public async Task> GetCalendarDates(Guid estateId, CancellationTo } public async Task> GetCalendarYears(Guid estateId, CancellationToken cancellationToken){ - EstateManagementContext? context = await this.ContextFactory.GetContext(estateId, ReportingManager.ConnectionStringIdentifier, cancellationToken); - + using ResolvedDbContext? resolvedContext = this.Resolver.Resolve(EstateManagementDatabaseName, estateId.ToString()); + await using EstateManagementContext context = resolvedContext.Context; + List years = context.Calendar.Where(c => c.Date <= DateTime.Now.Date).GroupBy(c => c.Year).Select(y => y.Key).ToList(); return years; } public async Task GetLastSettlement(Guid estateId, CancellationToken cancellationToken){ - EstateManagementContext? context = await this.ContextFactory.GetContext(estateId, ReportingManager.ConnectionStringIdentifier, cancellationToken); + using ResolvedDbContext? resolvedContext = this.Resolver.Resolve(EstateManagementDatabaseName, estateId.ToString()); + await using EstateManagementContext context = resolvedContext.Context; DateTime settlementDate = await context.SettlementSummary.Where(s => s.IsCompleted).OrderByDescending(s => s.SettlementDate).Select(s => s.SettlementDate).FirstOrDefaultAsync(cancellationToken); @@ -217,7 +220,8 @@ public async Task GetLastSettlement(Guid estateId, CancellationT } public async Task GetMerchantsTransactionKpis(Guid estateId, CancellationToken cancellationToken){ - EstateManagementContext? context = await this.ContextFactory.GetContext(estateId, ReportingManager.ConnectionStringIdentifier, cancellationToken); + using ResolvedDbContext? resolvedContext = this.Resolver.Resolve(EstateManagementDatabaseName, estateId.ToString()); + await using EstateManagementContext context = resolvedContext.Context; Int32 merchantsWithSaleInLastHour = (from m in context.Merchants where m.LastSaleDate == DateTime.Now.Date @@ -242,7 +246,8 @@ public async Task GetMerchantsTransactionKpis(Guid estateId, Cancel } public async Task> GetMerchantsByLastSale(Guid estateId, DateTime startDateTime, DateTime endDateTime, CancellationToken cancellationToken){ - EstateManagementContext? context = await this.ContextFactory.GetContext(estateId, ReportingManager.ConnectionStringIdentifier, cancellationToken); + using ResolvedDbContext? resolvedContext = this.Resolver.Resolve(EstateManagementDatabaseName, estateId.ToString()); + await using EstateManagementContext context = resolvedContext.Context; List response = new(); @@ -292,7 +297,8 @@ public async Task> GetMerchantsByLastSale(Guid estateId, DateTime } public async Task> GetResponseCodes(Guid estateId, CancellationToken cancellationToken){ - EstateManagementContext? context = await this.ContextFactory.GetContext(estateId, ReportingManager.ConnectionStringIdentifier, cancellationToken); + using ResolvedDbContext? resolvedContext = this.Resolver.Resolve(EstateManagementDatabaseName, estateId.ToString()); + await using EstateManagementContext context = resolvedContext.Context; List response = new List(); List responseCodes = await context.ResponseCodes.ToListAsync(cancellationToken); @@ -306,7 +312,8 @@ public async Task> GetResponseCodes(Guid estateId, Cancellati } public async Task GetTodaysFailedSales(Guid estateId, DateTime comparisonDate, String responseCode, CancellationToken cancellationToken){ - EstateManagementContext? context = await this.ContextFactory.GetContext(estateId, ReportingManager.ConnectionStringIdentifier, cancellationToken); + using ResolvedDbContext? resolvedContext = this.Resolver.Resolve(EstateManagementDatabaseName, estateId.ToString()); + await using EstateManagementContext context = resolvedContext.Context; List todaysSales = await (from t in context.TodayTransactions where t.IsAuthorised == false @@ -377,7 +384,8 @@ private async Task> GetSalesForDate(EstateManagem } public async Task GetTodaysSales(Guid estateId, Int32 merchantReportingId, Int32 operatorReportingId, DateTime comparisonDate, CancellationToken cancellationToken){ - EstateManagementContext? context = await this.ContextFactory.GetContext(estateId, ReportingManager.ConnectionStringIdentifier, cancellationToken); + using ResolvedDbContext? resolvedContext = this.Resolver.Resolve(EstateManagementDatabaseName, estateId.ToString()); + await using EstateManagementContext context = resolvedContext.Context; IQueryable todaysSales = await GetTodaysSales(context, merchantReportingId, operatorReportingId, cancellationToken); IQueryable comparisonSales = await GetSalesForDate(context, comparisonDate, merchantReportingId, operatorReportingId, cancellationToken); @@ -399,7 +407,8 @@ public async Task GetTodaysSales(Guid estateId, Int32 merchantRepor } public async Task> GetTodaysSalesCountByHour(Guid estateId, Int32 merchantReportingId, Int32 operatorReportingId, DateTime comparisonDate, CancellationToken cancellationToken){ - EstateManagementContext? context = await this.ContextFactory.GetContext(estateId, ReportingManager.ConnectionStringIdentifier, cancellationToken); + using ResolvedDbContext? resolvedContext = this.Resolver.Resolve(EstateManagementDatabaseName, estateId.ToString()); + await using EstateManagementContext context = resolvedContext.Context; IQueryable todaysSales = await GetTodaysSales(context, merchantReportingId, operatorReportingId, cancellationToken); IQueryable comparisonSales = await GetSalesForDate(context, comparisonDate, merchantReportingId, operatorReportingId, cancellationToken); @@ -435,7 +444,8 @@ on today.Hour equals comparison.Hour } public async Task> GetTodaysSalesValueByHour(Guid estateId, Int32 merchantReportingId, Int32 operatorReportingId, DateTime comparisonDate, CancellationToken cancellationToken){ - EstateManagementContext? context = await this.ContextFactory.GetContext(estateId, ReportingManager.ConnectionStringIdentifier, cancellationToken); + using ResolvedDbContext? resolvedContext = this.Resolver.Resolve(EstateManagementDatabaseName, estateId.ToString()); + await using EstateManagementContext context = resolvedContext.Context; IQueryable todaysSales = await GetTodaysSales(context, merchantReportingId, operatorReportingId, cancellationToken); IQueryable comparisonSales = await GetSalesForDate(context, comparisonDate, merchantReportingId, operatorReportingId, cancellationToken); @@ -520,7 +530,8 @@ join t in context.TodayTransactions on f.TransactionId equals t.TransactionId } public async Task GetTodaysSettlement(Guid estateId, Int32 merchantReportingId, Int32 operatorReportingId, DateTime comparisonDate, CancellationToken cancellationToken){ - EstateManagementContext? context = await this.ContextFactory.GetContext(estateId, ReportingManager.ConnectionStringIdentifier, cancellationToken); + using ResolvedDbContext? resolvedContext = this.Resolver.Resolve(EstateManagementDatabaseName, estateId.ToString()); + await using EstateManagementContext context = resolvedContext.Context; IQueryable todaySettlementData = await GetTodaysSettlement(context, merchantReportingId, operatorReportingId, cancellationToken); IQueryable comparisonSettlementData = await GetSettlementDataForDate(context, merchantReportingId, operatorReportingId, comparisonDate, cancellationToken); @@ -560,7 +571,8 @@ group f by f.IsSettled into grouped } public async Task> GetTopBottomData(Guid estateId, TopBottom direction, Int32 resultCount, Dimension dimension, CancellationToken cancellationToken){ - EstateManagementContext? context = await this.ContextFactory.GetContext(estateId, ReportingManager.ConnectionStringIdentifier, cancellationToken); + using ResolvedDbContext? resolvedContext = this.Resolver.Resolve(EstateManagementDatabaseName, estateId.ToString()); + await using EstateManagementContext context = resolvedContext.Context; IQueryable mainQuery = context.TodayTransactions .Where(joined => joined.IsAuthorised == true @@ -642,7 +654,8 @@ public async Task> GetTopBottomData(Guid estateId, TopBottom } public async Task GetMerchantPerformance(Guid estateId, DateTime comparisonDate, List merchantReportingIds, CancellationToken cancellationToken){ - EstateManagementContext? context = await this.ContextFactory.GetContext(estateId, ReportingManager.ConnectionStringIdentifier, cancellationToken); + using ResolvedDbContext? resolvedContext = this.Resolver.Resolve(EstateManagementDatabaseName, estateId.ToString()); + await using EstateManagementContext context = resolvedContext.Context; // First we need to get a value of todays sales var todaysSalesQuery = (from t in context.TodayTransactions @@ -700,7 +713,8 @@ private Decimal SafeDivide(Decimal number, Int32 divisor) public async Task GetProductPerformance(Guid estateId, DateTime comparisonDate, List productReportingIds, CancellationToken cancellationToken) { - EstateManagementContext? context = await this.ContextFactory.GetContext(estateId, ReportingManager.ConnectionStringIdentifier, cancellationToken); + using ResolvedDbContext? resolvedContext = this.Resolver.Resolve(EstateManagementDatabaseName, estateId.ToString()); + await using EstateManagementContext context = resolvedContext.Context; // First we need to get a value of todays sales var todaysSalesQuery = (from t in context.TodayTransactions @@ -738,7 +752,8 @@ public async Task GetProductPerformance(Guid estateId, DateTime com } public async Task GetOperatorPerformance(Guid estateId, DateTime comparisonDate, List operatorReportingIds, CancellationToken cancellationToken){ - EstateManagementContext? context = await this.ContextFactory.GetContext(estateId, ReportingManager.ConnectionStringIdentifier, cancellationToken); + using ResolvedDbContext? resolvedContext = this.Resolver.Resolve(EstateManagementDatabaseName, estateId.ToString()); + await using EstateManagementContext context = resolvedContext.Context; // First we need to get a value of todays sales var todaysSalesQuery = (from t in context.TodayTransactions @@ -777,7 +792,8 @@ public async Task GetOperatorPerformance(Guid estateId, DateTime co public async Task> TransactionSearch(Guid estateId, TransactionSearchRequest searchRequest, PagingRequest pagingRequest, SortingRequest sortingRequest, CancellationToken cancellationToken){ // Base query before any filtering is added - EstateManagementContext? context = await this.ContextFactory.GetContext(estateId, ReportingManager.ConnectionStringIdentifier, cancellationToken); + using ResolvedDbContext? resolvedContext = this.Resolver.Resolve(EstateManagementDatabaseName, estateId.ToString()); + await using EstateManagementContext context = resolvedContext.Context; var mainQuery = (from txn in context.Transactions join merchant in context.Merchants on txn.MerchantId equals merchant.MerchantId @@ -875,7 +891,8 @@ join product in context.ContractProducts on txn.ContractProductId equals product } public async Task> GetMerchants(Guid estateId, CancellationToken cancellationToken){ - EstateManagementContext? context = await this.ContextFactory.GetContext(estateId, ReportingManager.ConnectionStringIdentifier, cancellationToken); + using ResolvedDbContext? resolvedContext = this.Resolver.Resolve(EstateManagementDatabaseName, estateId.ToString()); + await using EstateManagementContext context = resolvedContext.Context; var merchants = context.Merchants .Select(m => new @@ -931,7 +948,8 @@ public async Task> GetMerchants(Guid estateId, CancellationToken } public async Task> GetOperators(Guid estateId, CancellationToken cancellationToken){ - EstateManagementContext? context = await this.ContextFactory.GetContext(estateId, ReportingManager.ConnectionStringIdentifier, cancellationToken); + using ResolvedDbContext? resolvedContext = this.Resolver.Resolve(EstateManagementDatabaseName, estateId.ToString()); + await using EstateManagementContext context = resolvedContext.Context; List operators = await (from o in context.Operators select new Operator diff --git a/EstateReportingAPI.IntegrationTests/ControllerTestsBase.cs b/EstateReportingAPI.IntegrationTests/ControllerTestsBase.cs index 54f38be..2b1a445 100644 --- a/EstateReportingAPI.IntegrationTests/ControllerTestsBase.cs +++ b/EstateReportingAPI.IntegrationTests/ControllerTestsBase.cs @@ -36,13 +36,13 @@ public virtual async Task InitializeAsync() await this.StartSqlContainer(); - String dbConnString = GetLocalConnectionString($"EstateReportingReadModel{this.TestId}"); + String dbConnString = GetLocalConnectionString($"TransactionProcessorReadModel-{this.TestId}"); this.factory = new CustomWebApplicationFactory(dbConnString); this.Client = this.factory.CreateClient(); this.ApiClient = new EstateReportingApiClient((s) => "http://localhost", this.Client); - this.context = new EstateManagementContext(GetLocalConnectionString($"EstateReportingReadModel{this.TestId.ToString()}")); + this.context = new EstateManagementContext(GetLocalConnectionString($"TransactionProcessorReadModel-{this.TestId.ToString()}")); this.helper = new DatabaseHelper(context); await this.helper.CreateStoredProcedures(CancellationToken.None); diff --git a/EstateReportingAPI.IntegrationTests/CustomWebApplicationFactory.cs b/EstateReportingAPI.IntegrationTests/CustomWebApplicationFactory.cs index 8b9db1e..2f7c46c 100644 --- a/EstateReportingAPI.IntegrationTests/CustomWebApplicationFactory.cs +++ b/EstateReportingAPI.IntegrationTests/CustomWebApplicationFactory.cs @@ -2,6 +2,8 @@ using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; +using Microsoft.Data.SqlClient; +using Microsoft.Extensions.Configuration; using Shared.Repositories; using TransactionProcessor.Database.Contexts; @@ -24,7 +26,7 @@ namespace EstateReportingAPI.IntegrationTests; public class CustomWebApplicationFactory : WebApplicationFactory where TStartup : class { - private readonly string DatabaseConnectionString; + private string DatabaseConnectionString; public CustomWebApplicationFactory(string databaseConnectionString) { @@ -38,12 +40,33 @@ protected override void ConfigureWebHost(IWebHostBuilder builder) { builder.ConfigureServices(containerBuilder => { + var createcontext = new EstateManagementContext(DatabaseConnectionString); + bool b = createcontext.Database.EnsureCreated(); + b.ShouldBeTrue(); + + SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(DatabaseConnectionString) + { + InitialCatalog = "TransactionProcessorReadModel", + }; + this.DatabaseConnectionString = builder.ToString(); + var context = new EstateManagementContext(DatabaseConnectionString); Func f = connectionString => context; - IDbContextFactory factory = new DbContextFactory(new TestConnectionStringConfigurationRepository(DatabaseConnectionString), f); + containerBuilder.AddTransient(_ => context); + var serviceProvider = containerBuilder.BuildServiceProvider(); + + var inMemorySettings = new Dictionary + { + { "ConnectionStrings:TransactionProcessorReadModel", DatabaseConnectionString } + }; + + IConfiguration configuration = new ConfigurationBuilder() + .AddInMemoryCollection(inMemorySettings) + .Build(); - IReportingManager manager = new ReportingManager(factory); + IDbContextResolver resolver = new DbContextResolver(serviceProvider, configuration); + IReportingManager manager = new ReportingManager(resolver); containerBuilder.AddSingleton(manager); @@ -52,42 +75,13 @@ protected override void ConfigureWebHost(IWebHostBuilder builder) containerBuilder.AddAuthentication(TestAuthHandler.AuthenticationScheme) .AddScheme(TestAuthHandler.AuthenticationScheme, options => { }); - bool b = context.Database.EnsureCreated(); - b.ShouldBeTrue(); }); } } -public class TestConnectionStringConfigurationRepository : IConnectionStringConfigurationRepository -{ - private readonly string DbConnectionString; - - public TestConnectionStringConfigurationRepository(String dbConnectionString) - { - DbConnectionString = dbConnectionString; - } - public Task DeleteConnectionStringConfiguration(string externalIdentifier, string connectionStringIdentifier, - CancellationToken cancellationToken) - { - throw new NotImplementedException(); - } - - public async Task GetConnectionString(string externalIdentifier, string connectionStringIdentifier, - CancellationToken cancellationToken) - { - return DbConnectionString; - } - - public Task CreateConnectionString(string externalIdentifier, string connectionStringIdentifier, string connectionString, - CancellationToken cancellationToken) - { - throw new NotImplementedException(); - } -} - public class TestAuthHandlerOptions : AuthenticationSchemeOptions { public string DefaultUserId { get; set; } = null!; diff --git a/EstateReportingAPI.IntegrationTests/DimensionControllerTests.cs b/EstateReportingAPI.IntegrationTests/DimensionControllerTests.cs index ffd99fa..9746795 100644 --- a/EstateReportingAPI.IntegrationTests/DimensionControllerTests.cs +++ b/EstateReportingAPI.IntegrationTests/DimensionControllerTests.cs @@ -20,7 +20,7 @@ public class DimensionsControllerTests : ControllerTestsBase [Fact] public async Task DimensionsController_GetCalendarYears_NoDataInDatabase() { - var yearsResult = await ApiClient.GetCalendarYears(string.Empty, Guid.NewGuid(), CancellationToken.None); + var yearsResult = await ApiClient.GetCalendarYears(string.Empty, this.TestId, CancellationToken.None); yearsResult.IsFailed.ShouldBeTrue(); } @@ -40,7 +40,7 @@ public async Task DimensionsController_GetCalendarYears_YearsReturned() await helper.AddCalendarYear(year); } - var result = await ApiClient.GetCalendarYears(string.Empty, Guid.NewGuid(), CancellationToken.None); + var result = await ApiClient.GetCalendarYears(string.Empty, this.TestId, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); var years = result.Data; years.ShouldNotBeNull(); @@ -53,7 +53,7 @@ public async Task DimensionsController_GetCalendarComparisonDates_DatesReturned( List datesInYear = helper.GetDatesForYear(DateTime.Now.Year); await helper.AddCalendarDates(datesInYear); - Result> result = await ApiClient.GetComparisonDates(string.Empty, Guid.NewGuid(), CancellationToken.None); + Result> result = await ApiClient.GetComparisonDates(string.Empty, this.TestId, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); List dates = result.Data; List expectedDates = datesInYear.Where(d => d <= DateTime.Now.Date.AddDays(-1)).ToList(); @@ -73,7 +73,7 @@ public async Task DimensionsController_GetCalendarComparisonDates_DatesReturned( [Fact] public async Task DimensionsController_GetCalendarComparisonDates_NoDataInDatabase() { - var result= await ApiClient.GetComparisonDates(string.Empty, Guid.NewGuid(), CancellationToken.None); + var result= await ApiClient.GetComparisonDates(string.Empty, this.TestId, CancellationToken.None); result.IsFailed.ShouldBeTrue();; } @@ -83,7 +83,7 @@ public async Task DimensionsController_GetCalendarDates_DatesReturned() List datesInYear = helper.GetDatesForYear(2023); await helper.AddCalendarDates(datesInYear); - var datesResult = await ApiClient.GetCalendarDates(string.Empty, Guid.NewGuid(), 2023, CancellationToken.None); + var datesResult = await ApiClient.GetCalendarDates(string.Empty, this.TestId, 2023, CancellationToken.None); datesResult.IsSuccess.ShouldBeTrue(); var dates = datesResult.Data; @@ -100,13 +100,13 @@ public async Task DimensionsController_GetCalendarDates_DatesReturned() [Fact] public async Task DimensionsController_GetCalendarDates_NoDataInDatabase() { - var datesResult = await ApiClient.GetCalendarDates(string.Empty, Guid.NewGuid(), 2023, CancellationToken.None); + var datesResult = await ApiClient.GetCalendarDates(string.Empty, this.TestId, 2023, CancellationToken.None); datesResult.IsFailed.ShouldBeTrue(); } [Fact] public async Task DimensionsController_GetMerchants_NoData_NoMerchantsReturned() { - var result = await ApiClient.GetMerchants(string.Empty, Guid.NewGuid(), CancellationToken.None); + var result = await ApiClient.GetMerchants(string.Empty, this.TestId, CancellationToken.None); result.IsFailed.ShouldBeTrue(); } @@ -120,7 +120,7 @@ public async Task DimensionsController_GetMerchants_NoAddresses_MerchantsReturne await helper.AddMerchant("Test Estate", $"Test Merchant {i}", DateTime.Now); } - var result = await ApiClient.GetMerchants(string.Empty, Guid.NewGuid(), CancellationToken.None); + var result = await ApiClient.GetMerchants(string.Empty, this.TestId, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); var merchants = result.Data; @@ -150,7 +150,7 @@ public async Task DimensionsController_GetMerchants_EachMerchantHasOneAddress_Me await helper.AddMerchant("Test Estate", $"Test Merchant {i}", DateTime.Now, addressList); } - var result = await ApiClient.GetMerchants(string.Empty, Guid.NewGuid(), CancellationToken.None); + var result = await ApiClient.GetMerchants(string.Empty, this.TestId, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); var merchants = result.Data; @@ -181,7 +181,7 @@ public async Task DimensionsController_GetMerchants_EachMerchantHasTwoAddress_Me await helper.AddMerchant("Test Estate", $"Test Merchant {i}", DateTime.Now, addressList); } - var result = await ApiClient.GetMerchants(string.Empty, Guid.NewGuid(), CancellationToken.None); + var result = await ApiClient.GetMerchants(string.Empty, this.TestId, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); var merchants = result.Data; @@ -200,7 +200,7 @@ public async Task DimensionsController_GetMerchants_EachMerchantHasTwoAddress_Me [Fact] public async Task DimensionsController_GetOperators_NoData_NoOperatorsReturned() { - Result> result = await ApiClient.GetOperators(string.Empty, Guid.NewGuid(), CancellationToken.None); + Result> result = await ApiClient.GetOperators(string.Empty, this.TestId, CancellationToken.None); result.IsFailed.ShouldBeTrue(); } @@ -213,7 +213,7 @@ public async Task DimensionsController_GetOperators_OperatorsReturned() Int32 operator2ReportingId = await this.helper.AddOperator("Test Estate", "Operator2"); Int32 operator3ReportingId = await this.helper.AddOperator("Test Estate", "Operator3"); - var result = await ApiClient.GetOperators(string.Empty, Guid.NewGuid(), CancellationToken.None); + var result = await ApiClient.GetOperators(string.Empty, this.TestId, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); var operators = result.Data; @@ -244,7 +244,7 @@ public async Task DimensionsController_GetResponseCodes_ResponseCodesReturned() await helper.AddResponseCode(1002, "Unknown Merchant"); await helper.AddResponseCode(1003, "No Devices Configured"); - var result = await ApiClient.GetResponseCodes(string.Empty, Guid.NewGuid(), CancellationToken.None); + var result = await ApiClient.GetResponseCodes(string.Empty, this.TestId, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); var responseCodes = result.Data; @@ -261,7 +261,7 @@ public async Task DimensionsController_GetResponseCodes_ResponseCodesReturned() [Fact] public async Task DimensionsController_GetResponseCodes_NoData_NoResponseCodesReturned() { - var result = await ApiClient.GetResponseCodes(string.Empty, Guid.NewGuid(), CancellationToken.None); + var result = await ApiClient.GetResponseCodes(string.Empty, this.TestId, CancellationToken.None); result.IsFailed.ShouldBeTrue(); } diff --git a/EstateReportingAPI.IntegrationTests/FactSettlementsControllerTests.cs b/EstateReportingAPI.IntegrationTests/FactSettlementsControllerTests.cs index 4fceaf2..cb0de31 100644 --- a/EstateReportingAPI.IntegrationTests/FactSettlementsControllerTests.cs +++ b/EstateReportingAPI.IntegrationTests/FactSettlementsControllerTests.cs @@ -107,7 +107,7 @@ public async Task FactSettlementsController_TodaysSettlement_SettlementReturned( await helper.RunTodaysTransactionsSummaryProcessing(todaysDate.Date.AddDays(-1)); await helper.RunSettlementSummaryProcessing(comparisonDate.Date); - var result = await ApiClient.GetTodaysSettlement(string.Empty, Guid.NewGuid(), 0, 0, DateTime.Now.AddDays(-1), CancellationToken.None); + var result = await ApiClient.GetTodaysSettlement(string.Empty, this.TestId, 0, 0, DateTime.Now.AddDays(-1), CancellationToken.None); result.IsSuccess.ShouldBeTrue(); var todaysSettlement = result.Data; todaysSettlement.ShouldNotBeNull(); @@ -192,7 +192,7 @@ public async Task FactSettlementsController_TodaysSettlement_MerchantFilter_Sett await helper.RunTodaysTransactionsSummaryProcessing(todaysDate.Date.AddDays(-1)); await helper.RunSettlementSummaryProcessing(comparisonDate.Date); - var result = await ApiClient.GetTodaysSettlement(string.Empty, Guid.NewGuid(), 1, 0, DateTime.Now.AddDays(-1), CancellationToken.None); + var result = await ApiClient.GetTodaysSettlement(string.Empty, this.TestId, 1, 0, DateTime.Now.AddDays(-1), CancellationToken.None); result.IsSuccess.ShouldBeTrue(); var todaysSettlement = result.Data; todaysSettlement.ShouldNotBeNull(); @@ -280,7 +280,7 @@ public async Task FactSettlementsController_TodaysSettlement_OperatorFilter_Sett await helper.RunTodaysTransactionsSummaryProcessing(todaysDate.Date.AddDays(-1)); await helper.RunSettlementSummaryProcessing(comparisonDate.Date); - var result = await ApiClient.GetTodaysSettlement(string.Empty, Guid.NewGuid(), 0, 1, DateTime.Now.AddDays(-1), CancellationToken.None); + var result = await ApiClient.GetTodaysSettlement(string.Empty, this.TestId, 0, 1, DateTime.Now.AddDays(-1), CancellationToken.None); result.IsSuccess.ShouldBeTrue(); var todaysSettlement = result.Data; todaysSettlement.ShouldNotBeNull(); @@ -297,7 +297,7 @@ public async Task FactSettlementsController_TodaysSettlement_OperatorFilter_Sett [Fact] public async Task FactSettlementsController_LastSettlement_SettlementReturned() { - EstateManagementContext context = new EstateManagementContext(GetLocalConnectionString($"EstateReportingReadModel{TestId.ToString()}")); + EstateManagementContext context = new EstateManagementContext(GetLocalConnectionString($"TransactionProcessorReadModel-{TestId.ToString()}")); DatabaseHelper helper = new DatabaseHelper(context); @@ -329,7 +329,7 @@ public async Task FactSettlementsController_LastSettlement_SettlementReturned() await helper.RunSettlementSummaryProcessing(DateTime.Now.AddDays(-1)); - var result = await ApiClient.GetLastSettlement(string.Empty, Guid.NewGuid(), CancellationToken.None); + var result = await ApiClient.GetLastSettlement(string.Empty, this.TestId, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); var lastSettlement = result.Data; @@ -341,13 +341,13 @@ public async Task FactSettlementsController_LastSettlement_SettlementReturned() [Fact] public async Task FactSettlementsController_LastSettlement_NoSettlementRecords_SettlementReturned() { - EstateManagementContext context = new EstateManagementContext(GetLocalConnectionString($"EstateReportingReadModel{TestId.ToString()}")); + EstateManagementContext context = new EstateManagementContext(GetLocalConnectionString($"TransactionProcessorReadModel-{TestId.ToString()}")); DatabaseHelper helper = new DatabaseHelper(context); await helper.RunSettlementSummaryProcessing(DateTime.Now.AddDays(-1)); - var result = await ApiClient.GetLastSettlement(string.Empty, Guid.NewGuid(), CancellationToken.None); + var result = await ApiClient.GetLastSettlement(string.Empty, this.TestId, CancellationToken.None); result.IsFailed.ShouldBeTrue(); } @@ -355,7 +355,7 @@ public async Task FactSettlementsController_LastSettlement_NoSettlementRecords_S [Fact] public async Task FactSettlementsController_UnsettledFees_ByOperator_SettlementReturned() { // Add some fees over a date range for multiple operators - EstateManagementContext context = new EstateManagementContext(GetLocalConnectionString($"EstateReportingReadModel{TestId.ToString()}")); + EstateManagementContext context = new EstateManagementContext(GetLocalConnectionString($"TransactionProcessorReadModel-{TestId.ToString()}")); DatabaseHelper helper = new DatabaseHelper(context); @@ -382,7 +382,7 @@ public async Task FactSettlementsController_UnsettledFees_ByOperator_SettlementR DateTime startDate = dates.Min(); DateTime endDate = dates.Max(); - var result = await ApiClient.GetUnsettledFees(string.Empty, Guid.NewGuid(), startDate, endDate, null, null, null, GroupByOption.Operator, CancellationToken.None); + var result = await ApiClient.GetUnsettledFees(string.Empty, this.TestId, startDate, endDate, null, null, null, GroupByOption.Operator, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); var unsettledFees = result.Data; @@ -407,7 +407,7 @@ public async Task FactSettlementsController_UnsettledFees_ByOperator_SettlementR [Fact] public async Task FactSettlementsController_UnsettledFees_ByOperator_OperatorFilter_SettlementReturned() { // Add some fees over a date range for multiple operators - EstateManagementContext context = new EstateManagementContext(GetLocalConnectionString($"EstateReportingReadModel{TestId.ToString()}")); + EstateManagementContext context = new EstateManagementContext(GetLocalConnectionString($"TransactionProcessorReadModel-{TestId.ToString()}")); DatabaseHelper helper = new DatabaseHelper(context); @@ -434,7 +434,7 @@ public async Task FactSettlementsController_UnsettledFees_ByOperator_OperatorFil DateTime startDate = dates.Min(); DateTime endDate = dates.Max(); - var result = await ApiClient.GetUnsettledFees(string.Empty, Guid.NewGuid(), startDate, endDate, null, [1], null, GroupByOption.Operator, CancellationToken.None); + var result = await ApiClient.GetUnsettledFees(string.Empty, this.TestId, startDate, endDate, null, [1], null, GroupByOption.Operator, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); var unsettledFees = result.Data; @@ -458,7 +458,7 @@ public async Task FactSettlementsController_UnsettledFees_ByOperator_OperatorFil [Fact] public async Task FactSettlementsController_UnsettledFees_ByMerchant_SettlementReturned() { // Add some fees over a date range for multiple operators - EstateManagementContext context = new EstateManagementContext(GetLocalConnectionString($"EstateReportingReadModel{TestId.ToString()}")); + EstateManagementContext context = new EstateManagementContext(GetLocalConnectionString($"TransactionProcessorReadModel-{TestId.ToString()}")); DatabaseHelper helper = new DatabaseHelper(context); @@ -484,7 +484,7 @@ public async Task FactSettlementsController_UnsettledFees_ByMerchant_SettlementR DateTime startDate = dates.Min(); DateTime endDate = dates.Max(); - var result = await ApiClient.GetUnsettledFees(string.Empty, Guid.NewGuid(), startDate, endDate, null, null, null, GroupByOption.Merchant, CancellationToken.None); + var result = await ApiClient.GetUnsettledFees(string.Empty, this.TestId, startDate, endDate, null, null, null, GroupByOption.Merchant, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); var unsettledFees = result.Data; unsettledFees.ShouldNotBeNull(); @@ -504,7 +504,7 @@ public async Task FactSettlementsController_UnsettledFees_ByMerchant_SettlementR [Fact] public async Task FactSettlementsController_UnsettledFees_ByMerchant_MerchantFilter_SettlementReturned() { // Add some fees over a date range for multiple operators - EstateManagementContext context = new EstateManagementContext(GetLocalConnectionString($"EstateReportingReadModel{TestId.ToString()}")); + EstateManagementContext context = new EstateManagementContext(GetLocalConnectionString($"TransactionProcessorReadModel-{TestId.ToString()}")); DatabaseHelper helper = new DatabaseHelper(context); @@ -530,7 +530,7 @@ public async Task FactSettlementsController_UnsettledFees_ByMerchant_MerchantFil DateTime startDate = dates.Min(); DateTime endDate = dates.Max(); - var result = await ApiClient.GetUnsettledFees(string.Empty, Guid.NewGuid(), startDate, endDate, [1], null, null, GroupByOption.Merchant, CancellationToken.None); + var result = await ApiClient.GetUnsettledFees(string.Empty, this.TestId, startDate, endDate, [1], null, null, GroupByOption.Merchant, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); var unsettledFees = result.Data; unsettledFees.ShouldNotBeNull(); @@ -549,7 +549,7 @@ public async Task FactSettlementsController_UnsettledFees_ByMerchant_MerchantFil [Fact] public async Task FactSettlementsController_UnsettledFees_ByProduct_SettlementReturned() { // Add some fees over a date range for multiple operators - EstateManagementContext context = new EstateManagementContext(GetLocalConnectionString($"EstateReportingReadModel{TestId.ToString()}")); + EstateManagementContext context = new EstateManagementContext(GetLocalConnectionString($"TransactionProcessorReadModel-{TestId.ToString()}")); DatabaseHelper helper = new DatabaseHelper(context); @@ -575,7 +575,7 @@ public async Task FactSettlementsController_UnsettledFees_ByProduct_SettlementRe DateTime startDate = dates.Min(); DateTime endDate = dates.Max(); - var result = await ApiClient.GetUnsettledFees(string.Empty, Guid.NewGuid(), startDate, endDate, null, null, null, GroupByOption.Product, CancellationToken.None); + var result = await ApiClient.GetUnsettledFees(string.Empty, this.TestId, startDate, endDate, null, null, null, GroupByOption.Product, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); var unsettledFees = result.Data; @@ -609,7 +609,7 @@ public async Task FactSettlementsController_UnsettledFees_ByProduct_SettlementRe [Fact] public async Task FactSettlementsController_UnsettledFees_ByProduct_ProductFilter_SettlementReturned() { // Add some fees over a date range for multiple operators - EstateManagementContext context = new EstateManagementContext(GetLocalConnectionString($"EstateReportingReadModel{TestId.ToString()}")); + EstateManagementContext context = new EstateManagementContext(GetLocalConnectionString($"TransactionProcessorReadModel-{TestId.ToString()}")); DatabaseHelper helper = new DatabaseHelper(context); @@ -635,7 +635,7 @@ public async Task FactSettlementsController_UnsettledFees_ByProduct_ProductFilte DateTime startDate = dates.Min(); DateTime endDate = dates.Max(); - var result = await ApiClient.GetUnsettledFees(string.Empty, Guid.NewGuid(), startDate, endDate, null, null, [1], GroupByOption.Product, CancellationToken.None); + var result = await ApiClient.GetUnsettledFees(string.Empty, this.TestId, startDate, endDate, null, null, [1], GroupByOption.Product, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); var unsettledFees = result.Data; diff --git a/EstateReportingAPI.IntegrationTests/FactTransactionsControllerTests.cs b/EstateReportingAPI.IntegrationTests/FactTransactionsControllerTests.cs index 6de2635..7d21fa9 100644 --- a/EstateReportingAPI.IntegrationTests/FactTransactionsControllerTests.cs +++ b/EstateReportingAPI.IntegrationTests/FactTransactionsControllerTests.cs @@ -180,7 +180,7 @@ public async Task FactTransactionsController_GetTopBottomOperatorsByValue_Bottom await helper.RunTodaysTransactionsSummaryProcessing(todaysDateTime.Date); - var result = await ApiClient.GetTopBottomOperatorData(string.Empty, Guid.NewGuid(), DataTransferObjects.TopBottom.Bottom, 3, CancellationToken.None); + var result = await ApiClient.GetTopBottomOperatorData(string.Empty, this.TestId, DataTransferObjects.TopBottom.Bottom, 3, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); List? topBottomOperatorData = result.Data; topBottomOperatorData.ShouldNotBeNull(); @@ -227,7 +227,7 @@ public async Task FactTransactionsController_GetTopBottomOperatorsByValue_TopOpe await helper.RunTodaysTransactionsSummaryProcessing(todaysDateTime.Date); - var result = await ApiClient.GetTopBottomOperatorData(string.Empty, Guid.NewGuid(), DataTransferObjects.TopBottom.Top, 3, CancellationToken.None); + var result = await ApiClient.GetTopBottomOperatorData(string.Empty, this.TestId, DataTransferObjects.TopBottom.Top, 3, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); List? topBottomOperatorData = result.Data; topBottomOperatorData[0].OperatorName.ShouldBe("Safaricom"); @@ -291,7 +291,7 @@ public async Task FactTransactionsControllerController_OperatorPerformance_Singl await helper.RunHistoricTransactionsSummaryProcessing(comparisonDate.Date); await helper.RunTodaysTransactionsSummaryProcessing(todaysDateTime.Date); - var result = await ApiClient.GetOperatorPerformance(string.Empty, Guid.NewGuid(), comparisonDate, operatorFilterList, CancellationToken.None); + var result = await ApiClient.GetOperatorPerformance(string.Empty, this.TestId, comparisonDate, operatorFilterList, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); DataTransferObjects.TodaysSales? todaysSales = result.Data; todaysSales.ShouldNotBeNull(); @@ -355,7 +355,7 @@ public async Task FactTransactionsControllerController_OperatorPerformance_Multi await helper.RunHistoricTransactionsSummaryProcessing(comparisonDate.Date); await helper.RunTodaysTransactionsSummaryProcessing(todaysDateTime.Date); - var result = await ApiClient.GetOperatorPerformance(string.Empty, Guid.NewGuid(), comparisonDate, operatorFilterList, CancellationToken.None); + var result = await ApiClient.GetOperatorPerformance(string.Empty, this.TestId, comparisonDate, operatorFilterList, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); DataTransferObjects.TodaysSales? todaysSales = result.Data; todaysSales.ShouldNotBeNull(); @@ -414,7 +414,7 @@ public async Task FactTransactionsControllerController_ProductPerformance_AllPro await helper.RunHistoricTransactionsSummaryProcessing(comparisonDate.Date); await helper.RunTodaysTransactionsSummaryProcessing(todaysDateTime.Date); - var result = await ApiClient.GetProductPerformance(string.Empty, Guid.NewGuid(), comparisonDate, new List(), CancellationToken.None); + var result = await ApiClient.GetProductPerformance(string.Empty, this.TestId, comparisonDate, new List(), CancellationToken.None); result.IsSuccess.ShouldBeTrue(); DataTransferObjects.TodaysSales? todaysSales = result.Data; todaysSales.ShouldNotBeNull(); @@ -475,7 +475,7 @@ public async Task FactTransactionsControllerController_ProductPerformance_Single string serializedArray = string.Join(",", productFilterList); - var result = await ApiClient.GetProductPerformance(string.Empty, Guid.NewGuid(), comparisonDate, productFilterList, CancellationToken.None); + var result = await ApiClient.GetProductPerformance(string.Empty, this.TestId, comparisonDate, productFilterList, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); DataTransferObjects.TodaysSales? todaysSales = result.Data; todaysSales.ShouldNotBeNull(); @@ -533,7 +533,7 @@ public async Task FactTransactionsControllerController_ProductPerformance_Multip await helper.RunHistoricTransactionsSummaryProcessing(comparisonDate.Date); await helper.RunTodaysTransactionsSummaryProcessing(todaysDateTime.Date); - var result = await ApiClient.GetProductPerformance(string.Empty, Guid.NewGuid(), comparisonDate, productFilterList, CancellationToken.None); + var result = await ApiClient.GetProductPerformance(string.Empty, this.TestId, comparisonDate, productFilterList, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); DataTransferObjects.TodaysSales? todaysSales = result.Data; todaysSales.ShouldNotBeNull(); @@ -575,7 +575,7 @@ public async Task FactTransactionsController_GetTopBottomProductsByValue_BottomP await helper.RunTodaysTransactionsSummaryProcessing(todaysDateTime.Date); - var result = await ApiClient.GetTopBottomProductData(string.Empty, Guid.NewGuid(), DataTransferObjects.TopBottom.Bottom, 3, CancellationToken.None); + var result = await ApiClient.GetTopBottomProductData(string.Empty, this.TestId, DataTransferObjects.TopBottom.Bottom, 3, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); List? topBottomProductData = result.Data; @@ -621,7 +621,7 @@ public async Task FactTransactionsController_GetTopBottomProductsByValue_TopProd await helper.RunTodaysTransactionsSummaryProcessing(todaysDateTime.Date); - var result = await ApiClient.GetTopBottomProductData(string.Empty, Guid.NewGuid(), DataTransferObjects.TopBottom.Top, 3, CancellationToken.None); + var result = await ApiClient.GetTopBottomProductData(string.Empty, this.TestId, DataTransferObjects.TopBottom.Top, 3, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); List? topBottomProductData = result.Data; topBottomProductData[0].ProductName.ShouldBe("200 KES Topup"); @@ -677,7 +677,7 @@ public async Task FactTransactionsControllerController_GetMerchantsByLastDaleDat // Test 1 - sale in last hour startDate = DateTime.Now.AddHours(-1); endDate = DateTime.Now; - var result = await this.ApiClient.GetMerchantsByLastSaleDate(String.Empty, Guid.NewGuid(), startDate, endDate, CancellationToken.None); + var result = await this.ApiClient.GetMerchantsByLastSaleDate(String.Empty, this.TestId, startDate, endDate, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); var searchResult = result.Data; searchResult.ShouldNotBeNull(); @@ -690,7 +690,7 @@ public async Task FactTransactionsControllerController_GetMerchantsByLastDaleDat // Test 2 - sale in last day but over an hour ago startDate = DateTime.Now.Date.AddDays(-1); endDate = DateTime.Now.AddHours(-1); - result = await this.ApiClient.GetMerchantsByLastSaleDate(String.Empty, Guid.NewGuid(), startDate, endDate, CancellationToken.None); + result = await this.ApiClient.GetMerchantsByLastSaleDate(String.Empty, this.TestId, startDate, endDate, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); searchResult = result.Data; searchResult.ShouldNotBeNull(); @@ -705,7 +705,7 @@ public async Task FactTransactionsControllerController_GetMerchantsByLastDaleDat // Test 3 - sale in last 7 days but non yesterday startDate = DateTime.Now.Date.AddDays(-7); endDate = DateTime.Now.Date.AddDays(-1); - result = await this.ApiClient.GetMerchantsByLastSaleDate(String.Empty, Guid.NewGuid(), startDate, endDate, CancellationToken.None); + result = await this.ApiClient.GetMerchantsByLastSaleDate(String.Empty, this.TestId, startDate, endDate, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); searchResult = result.Data; searchResult.ShouldNotBeNull(); @@ -717,7 +717,7 @@ public async Task FactTransactionsControllerController_GetMerchantsByLastDaleDat // Test 4 - sale more than 7 days ago startDate = DateTime.Now.Date.AddYears(-1); endDate = DateTime.Now.Date.AddDays(-7); - result = await this.ApiClient.GetMerchantsByLastSaleDate(String.Empty, Guid.NewGuid(), startDate, endDate, CancellationToken.None); + result = await this.ApiClient.GetMerchantsByLastSaleDate(String.Empty, this.TestId, startDate, endDate, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); searchResult = result.Data; searchResult.ShouldNotBeNull(); @@ -759,7 +759,7 @@ public async Task FactTransactionsControllerController_GetMerchantsTransactionKp await helper.AddMerchant("Test Estate", "Merchant 17", todaysDateTime.AddDays(-10)); await helper.AddMerchant("Test Estate", "Merchant 18", todaysDateTime.AddDays(-10)); - var result = await ApiClient.GetMerchantKpi(string.Empty, Guid.NewGuid(), CancellationToken.None); + var result = await ApiClient.GetMerchantKpi(string.Empty, this.TestId, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); DataTransferObjects.MerchantKpi? merchantKpi = result.Data; merchantKpi.ShouldNotBeNull(); @@ -793,7 +793,7 @@ public async Task FactTransactionsController_GetTopBottomMerchantsByValue_Bottom await helper.RunTodaysTransactionsSummaryProcessing(todaysDateTime.Date); - var result = await ApiClient.GetTopBottomMerchantData(string.Empty, Guid.NewGuid(), DataTransferObjects.TopBottom.Bottom, 3, CancellationToken.None); + var result = await ApiClient.GetTopBottomMerchantData(string.Empty, this.TestId, DataTransferObjects.TopBottom.Bottom, 3, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); List? topBottomMerchantData = result.Data; topBottomMerchantData.ShouldNotBeNull(); @@ -829,7 +829,7 @@ public async Task FactTransactionsController_GetTopBottomMerchantsByValue_TopMer await this.helper.AddTransactionsX(transactionsDictionary.Values.SelectMany(t => t).ToList()); await helper.RunTodaysTransactionsSummaryProcessing(todaysDateTime.Date); - var result = await ApiClient.GetTopBottomMerchantData(string.Empty, Guid.NewGuid(), DataTransferObjects.TopBottom.Top, 3, CancellationToken.None); + var result = await ApiClient.GetTopBottomMerchantData(string.Empty, this.TestId, DataTransferObjects.TopBottom.Top, 3, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); List? topBottomMerchantData = result.Data; topBottomMerchantData.ShouldNotBeNull(); @@ -890,7 +890,7 @@ public async Task FactTransactionsControllerController_MerchantPerformance_AllMe await helper.RunHistoricTransactionsSummaryProcessing(comparisonDate.Date); await helper.RunTodaysTransactionsSummaryProcessing(todaysDateTime.Date); - var result = await ApiClient.GetMerchantPerformance(string.Empty, Guid.NewGuid(), comparisonDate, new List(), CancellationToken.None); + var result = await ApiClient.GetMerchantPerformance(string.Empty, this.TestId, comparisonDate, new List(), CancellationToken.None); result.IsSuccess.ShouldBeTrue(); DataTransferObjects.TodaysSales? todaysSales = result.Data; todaysSales.ShouldNotBeNull(); @@ -956,7 +956,7 @@ public async Task FactTransactionsControllerController_MerchantPerformance_Singl await helper.RunHistoricTransactionsSummaryProcessing(comparisonDate.Date); await helper.RunTodaysTransactionsSummaryProcessing(todaysDateTime.Date); - var result = await ApiClient.GetMerchantPerformance(string.Empty, Guid.NewGuid(), comparisonDate, merchantFilterList, CancellationToken.None); + var result = await ApiClient.GetMerchantPerformance(string.Empty, this.TestId, comparisonDate, merchantFilterList, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); DataTransferObjects.TodaysSales? todaysSales = result.Data; todaysSales.ShouldNotBeNull(); @@ -1022,7 +1022,7 @@ public async Task FactTransactionsControllerController_TodaysSales_SalesReturned await helper.RunHistoricTransactionsSummaryProcessing(comparisonDate.Date); await helper.RunTodaysTransactionsSummaryProcessing(todaysDateTime.Date); - var result = await ApiClient.GetTodaysSales(string.Empty, Guid.NewGuid(), 0, 0, comparisonDate, CancellationToken.None); + var result = await ApiClient.GetTodaysSales(string.Empty, this.TestId, 0, 0, comparisonDate, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); var todaysSales = result.Data; @@ -1080,7 +1080,7 @@ public async Task FactTransactionsControllerController_TodaysSales_OperatorFilte await helper.RunHistoricTransactionsSummaryProcessing(comparisonDate.Date); await helper.RunTodaysTransactionsSummaryProcessing(todaysDateTime.Date); - var result = await ApiClient.GetTodaysSales(string.Empty, Guid.NewGuid(), 0, 1, comparisonDate, CancellationToken.None); + var result = await ApiClient.GetTodaysSales(string.Empty, this.TestId, 0, 1, comparisonDate, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); var todaysSales = result.Data; @@ -1140,7 +1140,7 @@ public async Task FactTransactionsControllerController_TodaysSales_MerchantFilte await helper.RunHistoricTransactionsSummaryProcessing(comparisonDate.Date); await helper.RunTodaysTransactionsSummaryProcessing(todaysDateTime.Date); - var result = await ApiClient.GetTodaysSales(string.Empty, Guid.NewGuid(), 1, 0, comparisonDate, CancellationToken.None); + var result = await ApiClient.GetTodaysSales(string.Empty, this.TestId, 1, 0, comparisonDate, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); var todaysSales = result.Data; @@ -1226,7 +1226,7 @@ public async Task FactTransactionsControllerController_TodaysSalesCountByHour_Sa this.TestOutputHelper.WriteLine($"Setup Summaries {sw.ElapsedMilliseconds}ms"); sw.Restart(); - var result = await ApiClient.GetTodaysSalesCountByHour(string.Empty, Guid.NewGuid(), 0, 0, comparisonDate, CancellationToken.None); + var result = await ApiClient.GetTodaysSalesCountByHour(string.Empty, this.TestId, 0, 0, comparisonDate, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); var todaysSalesCountByHour = result.Data; @@ -1289,7 +1289,7 @@ public async Task FactTransactionsControllerController_TodaysSalesValueByHour_Sa await helper.RunHistoricTransactionsSummaryProcessing(comparisonDate.Date); await helper.RunTodaysTransactionsSummaryProcessing(todaysDateTime.Date); - var result = await ApiClient.GetTodaysSalesValueByHour(string.Empty, Guid.NewGuid(), 0, 0, comparisonDate, CancellationToken.None); + var result = await ApiClient.GetTodaysSalesValueByHour(string.Empty, this.TestId, 0, 0, comparisonDate, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); List? todaysSalesValueByHour = result.Data; foreach (DataTransferObjects.TodaysSalesValueByHour salesValueByHour in todaysSalesValueByHour) { @@ -1305,13 +1305,14 @@ public async Task FactTransactionsControllerController_TodaysSalesValueByHour_Sa [Fact] public async Task FactTransactionsControllerController_TodaysFailedSales_SalesReturned() { - EstateManagementContext context = new EstateManagementContext(GetLocalConnectionString($"EstateReportingReadModel{TestId.ToString()}")); - var todaysTransactions = new List(); + + EstateManagementContext context = new EstateManagementContext(GetLocalConnectionString($"TransactionProcessorReadModel-{TestId.ToString()}")); + var todaysTransactions = new List(); var comparisonDateTransactions = new List(); - DatabaseHelper helper = new DatabaseHelper(context); + DatabaseHelper helper1 = new DatabaseHelper(context); // TODO: make counts dynamic - DateTime todaysDateTime = DateTime.Now.Date; - todaysDateTime = todaysDateTime.AddHours(12).AddMinutes(30); + DateTime todaysDateTime = DateTime.Now; + //todaysDateTime = todaysDateTime.AddHours(12).AddMinutes(30); Dictionary transactionCounts = new() { { "Test Merchant 1", 3 }, { "Test Merchant 2", 6 }, { "Test Merchant 3", 2 }, { "Test Merchant 4", 0 } }; @@ -1323,14 +1324,14 @@ public async Task FactTransactionsControllerController_TodaysFailedSales_SalesRe foreach ((Guid productId, String productName, Decimal? productValue) product in productList) { var transactionCount = transactionCounts.Single(m => m.Key == merchant.Name).Value; for (int i = 0; i < transactionCount; i++) { - Transaction transaction = await helper.BuildTransactionX(todaysDateTime.AddHours(-1), merchant.MerchantId, contract.operatorId, contract.contractId, product.productId, "1009", product.productValue); + Transaction transaction = await helper1.BuildTransactionX(todaysDateTime.AddHours(-1), merchant.MerchantId, contract.operatorId, contract.contractId, product.productId, "1009", product.productValue); todaysTransactions.Add(transaction); } } } } - await this.helper.AddTransactionsX(todaysTransactions); + await helper1.AddTransactionsX(todaysTransactions); // Comparison Date sales foreach (var merchant in merchantsList) { @@ -1339,21 +1340,21 @@ public async Task FactTransactionsControllerController_TodaysFailedSales_SalesRe foreach ((Guid productId, String productName, Decimal? productValue) product in productList) { var transactionCount = transactionCounts.Single(m => m.Key == merchant.Name).Value; for (int i = 0; i < transactionCount; i++) { - Transaction transaction = await helper.BuildTransactionX(comparisonDate.AddHours(-1), merchant.MerchantId, contract.operatorId, contract.contractId, product.productId, "1009", product.productValue); + Transaction transaction = await helper1.BuildTransactionX(comparisonDate.AddHours(-1), merchant.MerchantId, contract.operatorId, contract.contractId, product.productId, "1009", product.productValue); comparisonDateTransactions.Add(transaction); } } } } - await this.helper.AddTransactionsX(comparisonDateTransactions); + await helper1.AddTransactionsX(comparisonDateTransactions); - await helper.RunTodaysTransactionsSummaryProcessing(comparisonDate.Date); - await helper.RunHistoricTransactionsSummaryProcessing(comparisonDate.Date); - await helper.RunTodaysTransactionsSummaryProcessing(todaysDateTime.Date); + await helper1.RunTodaysTransactionsSummaryProcessing(comparisonDate.Date); + await helper1.RunHistoricTransactionsSummaryProcessing(comparisonDate.Date); + await helper1.RunTodaysTransactionsSummaryProcessing(todaysDateTime.Date); - var result = await ApiClient.GetTodaysFailedSales(string.Empty, Guid.NewGuid(), 1, 1, "1009", comparisonDate, CancellationToken.None); + var result = await ApiClient.GetTodaysFailedSales(string.Empty, this.TestId, 1, 1, "1009", comparisonDate.Date, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); DataTransferObjects.TodaysSales? todaysSales = result.Data; @@ -1392,7 +1393,7 @@ public async Task FactTransactionsController_TransactionSearch_NoAdditionalFilte DataTransferObjects.TransactionSearchRequest searchRequest = new() { QueryDate = transactionDate }; // No Paging or Sorting - var result = await ApiClient.TransactionSearch(string.Empty, Guid.NewGuid(), searchRequest, null, null, null, null, CancellationToken.None); + var result = await ApiClient.TransactionSearch(string.Empty, this.TestId, searchRequest, null, null, null, null, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); var searchResult = result.Data; searchResult.Count.ShouldBe(10); @@ -1408,7 +1409,7 @@ public async Task FactTransactionsController_TransactionSearch_NoAdditionalFilte searchResult.Any(s => s.TransactionReportingId == 10).ShouldBeTrue(); - result = await ApiClient.TransactionSearch(string.Empty, Guid.NewGuid(), searchRequest, 1, 5, null, null, CancellationToken.None); + result = await ApiClient.TransactionSearch(string.Empty, this.TestId, searchRequest, 1, 5, null, null, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); searchResult = result.Data; searchResult.Count.ShouldBe(5); @@ -1418,7 +1419,7 @@ public async Task FactTransactionsController_TransactionSearch_NoAdditionalFilte searchResult.Any(s => s.TransactionReportingId == 4).ShouldBeTrue(); searchResult.Any(s => s.TransactionReportingId == 5).ShouldBeTrue(); - result = await ApiClient.TransactionSearch(string.Empty, Guid.NewGuid(), searchRequest, 2, 5, null, null, CancellationToken.None); + result = await ApiClient.TransactionSearch(string.Empty, this.TestId, searchRequest, 2, 5, null, null, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); searchResult = result.Data; searchResult.Count.ShouldBe(5); @@ -1456,7 +1457,7 @@ public async Task FactTransactionsController_TransactionSearch_ValueRangeFilteri DataTransferObjects.TransactionSearchRequest searchRequest = new() { QueryDate = transactionDate, ValueRange = new() { StartValue = 100, EndValue = 200 } }; // No Paging - var result = await ApiClient.TransactionSearch(string.Empty, Guid.NewGuid(), searchRequest, null, null, null, null, CancellationToken.None); + var result = await ApiClient.TransactionSearch(string.Empty, this.TestId, searchRequest, null, null, null, null, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); List searchResult = result.Data; searchResult.Count.ShouldBe(7); @@ -1468,7 +1469,7 @@ public async Task FactTransactionsController_TransactionSearch_ValueRangeFilteri searchResult.Any(s => s.TransactionReportingId == 7).ShouldBeTrue(); searchResult.Any(s => s.TransactionReportingId == 10).ShouldBeTrue(); - result = await ApiClient.TransactionSearch(string.Empty, Guid.NewGuid(), searchRequest, 1, 3, null, null, CancellationToken.None); + result = await ApiClient.TransactionSearch(string.Empty, this.TestId, searchRequest, 1, 3, null, null, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); searchResult = result.Data; searchResult.Count.ShouldBe(3); @@ -1476,7 +1477,7 @@ public async Task FactTransactionsController_TransactionSearch_ValueRangeFilteri searchResult.Any(s => s.TransactionReportingId == 3).ShouldBeTrue(); searchResult.Any(s => s.TransactionReportingId == 4).ShouldBeTrue(); - result = await ApiClient.TransactionSearch(string.Empty, Guid.NewGuid(), searchRequest, 2, 3, null, null, CancellationToken.None); + result = await ApiClient.TransactionSearch(string.Empty, this.TestId, searchRequest, 2, 3, null, null, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); searchResult = result.Data; searchResult.Count.ShouldBe(3); @@ -1511,7 +1512,7 @@ public async Task FactTransactionsController_TransactionSearch_AuthCodeFiltering DataTransferObjects.TransactionSearchRequest searchRequest = new() { QueryDate = transactionDate, AuthCode = "AUTH1235" }; // No Paging - var result = await ApiClient.TransactionSearch(string.Empty, Guid.NewGuid(), searchRequest, null, null, null, null, CancellationToken.None); + var result = await ApiClient.TransactionSearch(string.Empty, this.TestId, searchRequest, null, null, null, null, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); List searchResult = result.Data; searchResult.Count.ShouldBe(1); @@ -1545,7 +1546,7 @@ public async Task FactTransactionsController_TransactionSearch_TransactionNumber DataTransferObjects.TransactionSearchRequest searchRequest = new() { QueryDate = transactionDate, TransactionNumber = "0004" }; // No Paging - var result = await ApiClient.TransactionSearch(string.Empty, Guid.NewGuid(), searchRequest, null, null, null, null, CancellationToken.None); + var result = await ApiClient.TransactionSearch(string.Empty, this.TestId, searchRequest, null, null, null, null, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); List searchResult = result.Data; @@ -1578,7 +1579,7 @@ public async Task FactTransactionsController_TransactionSearch_ResponseCodeFilte DataTransferObjects.TransactionSearchRequest searchRequest = new() { QueryDate = transactionDate, ResponseCode = "0001" }; // No Paging - var result = await ApiClient.TransactionSearch(string.Empty, Guid.NewGuid(), searchRequest, null, null, null, null, CancellationToken.None); + var result = await ApiClient.TransactionSearch(string.Empty, this.TestId, searchRequest, null, null, null, null, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); List searchResult = result.Data; searchResult.Count.ShouldBe(5); @@ -1588,7 +1589,7 @@ public async Task FactTransactionsController_TransactionSearch_ResponseCodeFilte searchResult.Any(s => s.TransactionReportingId == 8).ShouldBeTrue(); searchResult.Any(s => s.TransactionReportingId == 10).ShouldBeTrue(); - result = await ApiClient.TransactionSearch(string.Empty, Guid.NewGuid(), searchRequest, 1, 3, null, null, CancellationToken.None); + result = await ApiClient.TransactionSearch(string.Empty, this.TestId, searchRequest, 1, 3, null, null, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); searchResult = result.Data; searchResult.Count.ShouldBe(3); @@ -1596,7 +1597,7 @@ public async Task FactTransactionsController_TransactionSearch_ResponseCodeFilte searchResult.Any(s => s.TransactionReportingId == 4).ShouldBeTrue(); searchResult.Any(s => s.TransactionReportingId == 6).ShouldBeTrue(); - result = await ApiClient.TransactionSearch(string.Empty, Guid.NewGuid(), searchRequest, 2, 3, null, null, CancellationToken.None); + result = await ApiClient.TransactionSearch(string.Empty, this.TestId, searchRequest, 2, 3, null, null, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); searchResult = result.Data; searchResult.Count.ShouldBe(2); @@ -1653,7 +1654,7 @@ public async Task FactTransactionsController_TransactionSearch_MerchantFiltering DataTransferObjects.TransactionSearchRequest searchRequest = new() { QueryDate = transactionDate, Merchants = new List() { 2, 3 } }; // No Paging - var result = await ApiClient.TransactionSearch(string.Empty, Guid.NewGuid(), searchRequest, null, null, null, null, CancellationToken.None); + var result = await ApiClient.TransactionSearch(string.Empty, this.TestId, searchRequest, null, null, null, null, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); List searchResult = result.Data; @@ -1671,7 +1672,7 @@ public async Task FactTransactionsController_TransactionSearch_MerchantFiltering searchResult.Count(s => s.MerchantName == "Test Merchant 2").ShouldBe(5); searchResult.Count(s => s.MerchantName == "Test Merchant 3").ShouldBe(5); - result = await ApiClient.TransactionSearch(string.Empty, Guid.NewGuid(), searchRequest, 1, 5, null, null, CancellationToken.None); + result = await ApiClient.TransactionSearch(string.Empty, this.TestId, searchRequest, 1, 5, null, null, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); searchResult = result.Data; @@ -1684,7 +1685,7 @@ public async Task FactTransactionsController_TransactionSearch_MerchantFiltering searchResult.Count(s => s.MerchantName == "Test Merchant 2").ShouldBe(5); searchResult.Count(s => s.MerchantName == "Test Merchant 3").ShouldBe(0); - result = await ApiClient.TransactionSearch(string.Empty, Guid.NewGuid(), searchRequest, 2, 5, null, null, CancellationToken.None); + result = await ApiClient.TransactionSearch(string.Empty, this.TestId, searchRequest, 2, 5, null, null, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); searchResult = result.Data; @@ -1741,7 +1742,7 @@ public async Task FactTransactionsController_TransactionSearch_OperatorFiltering DataTransferObjects.TransactionSearchRequest searchRequest = new() { QueryDate = transactionDate, Operators = new List() { 2, 4 } }; // No Paging - var result = await ApiClient.TransactionSearch(string.Empty, Guid.NewGuid(), searchRequest, null, null, null, null, CancellationToken.None); + var result = await ApiClient.TransactionSearch(string.Empty, this.TestId, searchRequest, null, null, null, null, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); List searchResult = result.Data; searchResult.Count.ShouldBe(4); @@ -1752,7 +1753,7 @@ public async Task FactTransactionsController_TransactionSearch_OperatorFiltering searchResult.Count(s => s.OperatorName == "Voucher").ShouldBe(2); searchResult.Count(s => s.OperatorName == "PataPawa PrePay").ShouldBe(2); - result = await ApiClient.TransactionSearch(string.Empty, Guid.NewGuid(), searchRequest, 1, 2, null, null, CancellationToken.None); + result = await ApiClient.TransactionSearch(string.Empty, this.TestId, searchRequest, 1, 2, null, null, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); searchResult = result.Data; searchResult.Count.ShouldBe(2); @@ -1761,7 +1762,7 @@ public async Task FactTransactionsController_TransactionSearch_OperatorFiltering searchResult.Count(s => s.OperatorName == "Voucher").ShouldBe(2); searchResult.Count(s => s.OperatorName == "PataPawa PrePay").ShouldBe(0); - result = await ApiClient.TransactionSearch(string.Empty, Guid.NewGuid(), searchRequest, 2, 2, null, null, CancellationToken.None); + result = await ApiClient.TransactionSearch(string.Empty, this.TestId, searchRequest, 2, 2, null, null, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); searchResult = result.Data; searchResult.Count.ShouldBe(2); @@ -1806,7 +1807,7 @@ public async Task FactTransactionsController_TransactionSearch_SortingTest_Trans DataTransferObjects.TransactionSearchRequest searchRequest = new() { QueryDate = transactionDate }; // Default Sort - var result = await ApiClient.TransactionSearch(string.Empty, Guid.NewGuid(), searchRequest, null, null, null, null, CancellationToken.None); + var result = await ApiClient.TransactionSearch(string.Empty, this.TestId, searchRequest, null, null, null, null, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); var searchResult = result.Data; searchResult.Count.ShouldBe(3); @@ -1815,7 +1816,7 @@ public async Task FactTransactionsController_TransactionSearch_SortingTest_Trans searchResult[2].TransactionAmount.ShouldBe(300); // Sort By merchant Name ascending - result = await ApiClient.TransactionSearch(string.Empty, Guid.NewGuid(), searchRequest, null, null, DataTransferObjects.SortField.MerchantName, SortDirection.Ascending, CancellationToken.None); + result = await ApiClient.TransactionSearch(string.Empty, this.TestId, searchRequest, null, null, DataTransferObjects.SortField.MerchantName, SortDirection.Ascending, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); searchResult = result.Data; searchResult.Count.ShouldBe(3); @@ -1824,7 +1825,7 @@ public async Task FactTransactionsController_TransactionSearch_SortingTest_Trans searchResult[2].MerchantName.ShouldBe("Test Merchant 3"); // Sort By merchant Name descending - result = await ApiClient.TransactionSearch(string.Empty, Guid.NewGuid(), searchRequest, null, null, DataTransferObjects.SortField.MerchantName, SortDirection.Descending, CancellationToken.None); + result = await ApiClient.TransactionSearch(string.Empty, this.TestId, searchRequest, null, null, DataTransferObjects.SortField.MerchantName, SortDirection.Descending, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); searchResult = result.Data; searchResult.Count.ShouldBe(3); @@ -1833,7 +1834,7 @@ public async Task FactTransactionsController_TransactionSearch_SortingTest_Trans searchResult[2].MerchantName.ShouldBe("Test Merchant 1"); // Sort By operator Name ascending - result = await ApiClient.TransactionSearch(string.Empty, Guid.NewGuid(), searchRequest, null, null, DataTransferObjects.SortField.OperatorName, SortDirection.Ascending, CancellationToken.None); + result = await ApiClient.TransactionSearch(string.Empty, this.TestId, searchRequest, null, null, DataTransferObjects.SortField.OperatorName, SortDirection.Ascending, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); searchResult = result.Data; @@ -1843,7 +1844,7 @@ public async Task FactTransactionsController_TransactionSearch_SortingTest_Trans searchResult[2].OperatorName.ShouldBe("Voucher"); // Sort By operator Name descending - result = await ApiClient.TransactionSearch(string.Empty, Guid.NewGuid(), searchRequest, null, null, DataTransferObjects.SortField.OperatorName, SortDirection.Descending, CancellationToken.None); + result = await ApiClient.TransactionSearch(string.Empty, this.TestId, searchRequest, null, null, DataTransferObjects.SortField.OperatorName, SortDirection.Descending, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); searchResult = result.Data; searchResult.Count.ShouldBe(3); @@ -1852,7 +1853,7 @@ public async Task FactTransactionsController_TransactionSearch_SortingTest_Trans searchResult[2].OperatorName.ShouldBe("PataPawa PostPay"); // Sort By transaction amount ascending - result = await ApiClient.TransactionSearch(string.Empty, Guid.NewGuid(), searchRequest, null, null, DataTransferObjects.SortField.TransactionAmount, SortDirection.Ascending, CancellationToken.None); + result = await ApiClient.TransactionSearch(string.Empty, this.TestId, searchRequest, null, null, DataTransferObjects.SortField.TransactionAmount, SortDirection.Ascending, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); searchResult = result.Data; searchResult.Count.ShouldBe(3); @@ -1861,7 +1862,7 @@ public async Task FactTransactionsController_TransactionSearch_SortingTest_Trans searchResult[2].TransactionAmount.ShouldBe(300); // Sort By transaction amount descending - result = await ApiClient.TransactionSearch(string.Empty, Guid.NewGuid(), searchRequest, null, null, DataTransferObjects.SortField.TransactionAmount, SortDirection.Descending, CancellationToken.None); + result = await ApiClient.TransactionSearch(string.Empty, this.TestId, searchRequest, null, null, DataTransferObjects.SortField.TransactionAmount, SortDirection.Descending, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); searchResult = result.Data; searchResult.Count.ShouldBe(3); diff --git a/EstateReportingAPI.Tests/General/BootstrapperTests.cs b/EstateReportingAPI.Tests/General/BootstrapperTests.cs index 6f13675..da1c3e2 100644 --- a/EstateReportingAPI.Tests/General/BootstrapperTests.cs +++ b/EstateReportingAPI.Tests/General/BootstrapperTests.cs @@ -42,6 +42,8 @@ private IConfigurationRoot SetupMemoryConfiguration() IConfigurationBuilder builder = new ConfigurationBuilder(); configuration.Add("ConnectionStrings:HealthCheck", "HeathCheckConnString"); + configuration.Add("ConnectionStrings:TransactionProcessorReadModel", "TransactionProcessorReadModel"); + configuration.Add("SecurityConfiguration:Authority", "https://127.0.0.1"); configuration.Add("EventStoreSettings:ConnectionString", "https://127.0.0.1:2113"); configuration.Add("EventStoreSettings:ConnectionName", "UnitTestConnection"); diff --git a/EstateReportingAPI/Bootstrapper/RepositoryRegistry.cs b/EstateReportingAPI/Bootstrapper/RepositoryRegistry.cs index f9ba75c..5212855 100644 --- a/EstateReportingAPI/Bootstrapper/RepositoryRegistry.cs +++ b/EstateReportingAPI/Bootstrapper/RepositoryRegistry.cs @@ -5,6 +5,7 @@ namespace EstateReportingAPI.Bootstrapper; using BusinessLogic; using Common; using Lamar; +using Microsoft.EntityFrameworkCore; using Shared.EntityFramework; using Shared.EntityFramework.ConnectionStringConfiguration; using Shared.General; @@ -14,31 +15,21 @@ namespace EstateReportingAPI.Bootstrapper; [ExcludeFromCodeCoverage] public class RepositoryRegistry : ServiceRegistry{ public RepositoryRegistry(){ - - Boolean useConnectionStringConfig = bool.Parse(ConfigurationReader.GetValue("AppSettings", "UseConnectionStringConfig")); - - if (useConnectionStringConfig) + String? inTestMode = Environment.GetEnvironmentVariable("InTestMode"); + if (String.Compare(inTestMode, Boolean.TrueString, StringComparison.InvariantCultureIgnoreCase) != 0) { - String connectionStringConfigurationConnString = ConfigurationReader.GetConnectionString("ConnectionStringConfiguration"); - this.AddSingleton(); - this.AddTransient(c => { return new ConnectionStringConfigurationContext(connectionStringConfigurationConnString); }); + this.AddSingleton(); + } - // TODO: Read this from a the database and set + this.AddSingleton(typeof(IDbContextResolver<>), typeof(DbContextResolver<>)); + if (Startup.WebHostEnvironment.IsEnvironment("IntegrationTest") || Startup.Configuration.GetValue("ServiceOptions:UseInMemoryDatabase") == true) + { + this.AddDbContext(builder => builder.UseInMemoryDatabase("TransactionProcessorReadModel")); } else { - this.AddSingleton(); + this.AddDbContext(options => + options.UseSqlServer(ConfigurationReader.GetConnectionString("TransactionProcessorReadModel"))); } - - String? inTestMode = Environment.GetEnvironmentVariable("InTestMode"); - if (String.Compare(inTestMode, Boolean.TrueString, StringComparison.InvariantCultureIgnoreCase) != 0){ - this.AddSingleton(); - } - - this.AddSingleton, DbContextFactory>(); - - this.AddSingleton>(cont => connectionString => { - return new EstateManagementContext(connectionString); - }); } } \ No newline at end of file diff --git a/EstateReportingAPI/Startup.cs b/EstateReportingAPI/Startup.cs index b2cce86..670637d 100644 --- a/EstateReportingAPI/Startup.cs +++ b/EstateReportingAPI/Startup.cs @@ -42,24 +42,8 @@ public void ConfigureContainer(ServiceRegistry services) services.IncludeRegistry(); services.IncludeRegistry(); services.IncludeRegistry(); - - Container = new Container(services); - } - - public void ConfigureServices(IServiceCollection services){ - // ConfigurationReader.Initialise(Configuration); - // ServiceRegistry registry = new ServiceRegistry(services); - // registry.IncludeRegistry(); - // registry.IncludeRegistry(); - - // Container = new Container(registry); - String? inTestMode = Environment.GetEnvironmentVariable("InTestMode"); - if (String.Compare(inTestMode, Boolean.TrueString, StringComparison.InvariantCultureIgnoreCase) == 0) - { - services.AddSingleton(); - } - + Container = new Container(services); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)