Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
using SecurityService.DataTransferObjects.Responses;
using Shared.DomainDrivenDesign.EventStore;
using Shared.EventStore.EventStore;
using Shared.Exceptions;
using Shared.General;
using Shared.Logger;
using TransactionAggregate;
Expand Down Expand Up @@ -147,15 +148,17 @@ public async Task<ProcessLogonTransactionResponse> ProcessLogonTransaction(Guid
TokenResponse token = await this.SecurityServiceClient.GetToken(clientId, clientSecret, cancellationToken);
Logger.LogInformation($"Token is {token.AccessToken}");

// Validate the Estate Record is a valid estate
var estate = await this.EstateClient.GetEstate(token.AccessToken, estateId, cancellationToken);

// TODO: Remove this once GetEstate returns correct response when estate not found
if (estate.EstateName == null)
EstateResponse estate = null;
try
{
// Validate the Estate Record is a valid estate
estate = await this.EstateClient.GetEstate(token.AccessToken, estateId, cancellationToken);
}
catch(Exception e) when (e.InnerException is KeyNotFoundException)
{
throw new TransactionValidationException($"Estate Id [{estateId}] is not a valid estate", TransactionResponseCode.InvalidEstateId);
}

// get the merchant record and validate the device
// TODO: Token
MerchantResponse merchant = await this.EstateClient.GetMerchant(token.AccessToken, estateId, merchantId, cancellationToken);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="EstateManagement.Client" Version="0.0.8" />
<PackageReference Include="SecurityService.Client" Version="0.0.6.2" />
<PackageReference Include="Shared" Version="0.0.8.1" />
<PackageReference Include="Shared.DomainDrivenDesign" Version="0.0.8.1" />
<PackageReference Include="Shared.EventStore" Version="0.0.8.1" />
<PackageReference Include="EstateManagement.Client" Version="0.0.9.1" />
<PackageReference Include="SecurityService.Client" Version="0.0.9" />
<PackageReference Include="Shared" Version="0.0.11.3" />
<PackageReference Include="Shared.DomainDrivenDesign" Version="0.0.11.3" />
<PackageReference Include="Shared.EventStore" Version="0.0.11.3" />
<PackageReference Include="MediatR" Version="8.0.0" />
</ItemGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="ClientProxyBase" Version="0.0.8.1" />
<PackageReference Include="ClientProxyBase" Version="0.0.11.3" />
</ItemGroup>

<ItemGroup>
Expand Down
217 changes: 188 additions & 29 deletions TransactionProcessor.IntegrationTests/Common/DockerHelper.cs

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public async Task StartSystem()
logger.Initialise(LogManager.GetLogger(scenarioName), scenarioName);
LogManager.AddHiddenAssembly(typeof(NlogLogger).Assembly);

this.TestingContext.DockerHelper = new DockerHelper(logger);
this.TestingContext.DockerHelper = new DockerHelper(logger, this.TestingContext);
this.TestingContext.Logger = logger;
this.TestingContext.Logger.LogInformation("About to Start Containers for Scenario Run");
await this.TestingContext.DockerHelper.StartContainersForScenarioRun(scenarioName).ConfigureAwait(false);
Expand Down
37 changes: 30 additions & 7 deletions TransactionProcessor.IntegrationTests/Common/Setup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@ namespace TransactionProcessor.IntegrationTests.Common
using Ductus.FluentDocker.Builders;
using Ductus.FluentDocker.Services;
using Ductus.FluentDocker.Services.Extensions;
using global::Shared.Logger;
using Microsoft.Data.SqlClient;
using NLog;
using Shouldly;
using TechTalk.SpecFlow;

Expand All @@ -23,26 +25,47 @@ public class Setup
private static String DbConnectionStringWithNoDatabase;
public static INetworkService DatabaseServerNetwork;

public static String SqlServerContainerName = "shareddatabasesqlserver";

public const String SqlUserName = "sa";

public const String SqlPassword = "thisisalongpassword123!";
[BeforeTestRun]
protected static void GlobalSetup()
{
ShouldlyConfiguration.DefaultTaskTimeout = TimeSpan.FromMinutes(1);

(String, String, String) dockerCredentials = ("https://www.docker.com", "stuartferguson", "Sc0tland");

// Setup a network for the DB Server
DatabaseServerNetwork = global::Shared.IntegrationTesting.DockerHelper.SetupTestNetwork("sharednetwork", true);

NlogLogger logger = new NlogLogger();
logger.Initialise(LogManager.GetLogger("Specflow"), "Specflow");
LogManager.AddHiddenAssembly(typeof(NlogLogger).Assembly);

// Start the Database Server here
DbConnectionStringWithNoDatabase = global::Shared.IntegrationTesting.DockerHelper.StartSqlContainerWithOpenConnection("shareddatabasesqlserver",
null,
"stuartferguson/subscriptionservicedatabasesqlserver",
Setup.DatabaseServerNetwork,
"",
dockerCredentials);
DatabaseServerContainer = global::Shared.IntegrationTesting.DockerHelper.StartSqlContainerWithOpenConnection(Setup.SqlServerContainerName,
logger,
"stuartferguson/subscriptionservicedatabasesqlserver",
Setup.DatabaseServerNetwork,
"",
dockerCredentials,
Setup.SqlUserName,
Setup.SqlPassword);
}

public static String GetConnectionString(String databaseName)
{
return $"{DbConnectionStringWithNoDatabase} database={databaseName};";
return $"server={Setup.DatabaseServerContainer.Name};database={databaseName};user id={Setup.SqlUserName};password={Setup.SqlPassword}";
}

public static String GetLocalConnectionString(String databaseName)
{
Int32 databaseHostPort = Setup.DatabaseServerContainer.ToHostExposedEndpoint("1433/tcp").Port;

return $"server=localhost,{databaseHostPort};database={databaseName};user id={Setup.SqlUserName};password={Setup.SqlPassword}";
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,10 @@ public EstateDetails GetEstateDetails(TableRow tableRow)
return estateDetails;
}

public List<Guid> GetAllEstateIds()
{
return this.Estates.Select(e => e.EstateId).ToList();
}
public EstateDetails GetEstateDetails(String estateName)
{
EstateDetails estateDetails = this.Estates.SingleOrDefault(e => e.EstateName == estateName);
Expand Down
8 changes: 7 additions & 1 deletion TransactionProcessor.IntegrationTests/Shared/SharedSteps.cs
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,13 @@ public async Task WhenICreateTheFollowingEstates(Table table)
{
EstateDetails estateDetails = this.TestingContext.GetEstateDetails(tableRow);

EstateResponse estate = await this.TestingContext.DockerHelper.EstateClient.GetEstate(this.TestingContext.AccessToken, estateDetails.EstateId, CancellationToken.None).ConfigureAwait(false);
EstateResponse estate = null;
await Retry.For(async () =>
{
estate = await this.TestingContext.DockerHelper.EstateClient
.GetEstate(this.TestingContext.AccessToken, estateDetails.EstateId, CancellationToken.None).ConfigureAwait(false);
estate.ShouldNotBeNull();
}).ConfigureAwait(false);

estate.EstateName.ShouldBe(estateDetails.EstateName);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,15 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="ClientProxyBase" Version="0.0.8.1" />
<PackageReference Include="ClientProxyBase" Version="0.0.11.3" />
<PackageReference Include="Ductus.FluentDocker" Version="2.7.3" />
<PackageReference Include="EstateManagement.Client" Version="0.0.8" />
<PackageReference Include="EstateManagement.Client" Version="0.0.9.1" />
<PackageReference Include="EstateReporting.Database" Version="0.0.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
<PackageReference Include="SecurityService.Client" Version="0.0.6.2" />
<PackageReference Include="Shared" Version="0.0.8.1" />
<PackageReference Include="Shared.IntegrationTesting" Version="0.0.8.1" />
<PackageReference Include="SecurityService.Client" Version="0.0.9" />
<PackageReference Include="Shared" Version="0.0.11.3" />
<PackageReference Include="Shared.IntegrationTesting" Version="0.0.11.3" />
<PackageReference Include="Shouldly" Version="3.0.2" />
<PackageReference Include="SpecFlow" Version="3.1.78" />
<PackageReference Include="SpecFlow.Tools.MsBuild.Generation" Version="3.1.78" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Shared.DomainDrivenDesign" Version="0.0.8.1" />
<PackageReference Include="Shared.DomainDrivenDesign" Version="0.0.11.3" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Shared.EventStore" Version="0.0.8.1" />
<PackageReference Include="Shared.EventStore" Version="0.0.11.3" />
</ItemGroup>

<ItemGroup>
Expand Down
5 changes: 4 additions & 1 deletion TransactionProcessor/Startup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ namespace TransactionProcessor
using Microsoft.AspNetCore.Mvc.ApiExplorer;
using Microsoft.AspNetCore.Mvc.Versioning;
using Microsoft.Extensions.Options;
using Microsoft.IdentityModel.Logging;
using Models;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
Expand Down Expand Up @@ -170,7 +171,9 @@ private void ConfigureMiddlewareServices(IServiceCollection services)
});

services.AddSwaggerExamplesFromAssemblyOf<SwaggerJsonConverter>();


IdentityModelEventSource.ShowPII = true;

services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
Expand Down
2 changes: 1 addition & 1 deletion TransactionProcessor/TransactionProcessor.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.9.10" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.0" />
<PackageReference Include="NLog.Extensions.Logging" Version="1.6.1" />
<PackageReference Include="Shared" Version="0.0.8.1" />
<PackageReference Include="Shared" Version="0.0.11.3" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="5.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore.Filters" Version="5.0.0" />
Expand Down