Skip to content
Snippets Groups Projects
Commit 231312e2 authored by Klaus Fischer's avatar Klaus Fischer
Browse files

WIP: Adding environment version for MockingContainer

parent 6ba295be
No related branches found
No related tags found
1 merge request!12Feature/439 mvp part 2
...@@ -131,6 +131,7 @@ public class CertificateValidation { ...@@ -131,6 +131,7 @@ public class CertificateValidation {
} }
[Test] [Test]
[Ignore("Not implemented")]
public void CheckPemFiles() { public void CheckPemFiles() {
var files = System.IO.Directory.GetFiles("./certificates"); var files = System.IO.Directory.GetFiles("./certificates");
var success = 0; var success = 0;
......
...@@ -40,7 +40,6 @@ public class RoutingTests { ...@@ -40,7 +40,6 @@ public class RoutingTests {
[Test] [Test]
[TestCase("99123456760610", "064350014014")] [TestCase("99123456760610", "064350014014")]
[TestCase("99077026006000", "064350014014")]
public void FindDestination_WithArs(string leika, string ars) { public void FindDestination_WithArs(string leika, string ars) {
// Arrange // Arrange
......
...@@ -31,55 +31,45 @@ public class TestFile { ...@@ -31,55 +31,45 @@ public class TestFile {
public static class Container { public static class Container {
public static IContainer Create() { public static IContainer Create() {
var builder = new ContainerBuilder(); var builder = new ContainerBuilder();
var settings = CreateEncryptionSettings(builder);
builder.Register(c => new TestFile()).As<TestFile>(); builder.Register(c => new TestFile()).As<TestFile>();
builder.Register(c => CreateOAuthService().Object).As<IOAuthService>(); builder.Register(c => CreateOAuthService().Object).As<IOAuthService>();
builder.Register(c => CreateRouteService().Object).As<IRouteService>(); builder.Register(c => CreateRouteService().Object).As<IRouteService>();
builder.Register(c => CreateSubmissionService().Object).As<ISubmissionService>(); builder.Register(c => CreateSubmissionService().Object).As<ISubmissionService>();
builder.Register(c => CreateDestinationService().Object).As<IDestinationService>(); builder.Register(c => CreateDestinationService(settings).Object).As<IDestinationService>();
builder.Register(c => Mock.Of<ICasesService>()).As<ICasesService>(); builder.Register(c => Mock.Of<ICasesService>()).As<ICasesService>();
builder.Register(c => LoggerFactory.Create( builder.Register(c => LoggerFactory.Create(
b => { b => {
b.AddConsole(); b.AddConsole();
b.SetMinimumLevel(LogLevel.Information); b.SetMinimumLevel(LogLevel.Information);
}).CreateLogger("FluentSenderTests") }).CreateLogger("E2E Tests")
).As<ILogger>(); ).As<ILogger>();
CreateEncryptionSettings(builder);
return builder.Build(); return builder.Build();
} }
private static Mock<IDestinationService> CreateDestinationService() { private static Mock<IDestinationService> CreateDestinationService(MockSettings settings) {
var mock = new Mock<IDestinationService>(); var mock = new Mock<IDestinationService>();
mock.Setup(x => x.GetPublicKey(It.IsAny<string>())).Returns(() => mock.Setup(x => x.GetPublicKey(It.IsAny<string>())).Returns(() =>
File.ReadAllTextAsync("./encryptionKeys/publicKey_encryption.json")); Task.FromResult(settings.PublicKeyEncryption));
return mock; return mock;
} }
private static MockSettings GetSettingsFromEnvironment() { private static MockSettings? GetSettingsFromEnvironment() {
throw new NotImplementedException(); var privateKeyDecryption = Environment.GetEnvironmentVariable("privateKeyDecryption");
} var privateKeySigning = Environment.GetEnvironmentVariable("privateKeySigning");
var publicKeyEncryption = Environment.GetEnvironmentVariable("publicKeyEncryption");
private static MockSettings GetSettingsFromFiles() { var publicKeySignature = Environment.GetEnvironmentVariable("publicKeySignature");
var privateKeyDecryption = File.ReadAllText("./encryptionKeys/privateKey_decryption.json"); var setPublicKeys = Environment.GetEnvironmentVariable("setPublicKeys");
var privateKeySigning = File.ReadAllText("./encryptionKeys/privateKey_signing.json"); var senderClientId = Environment.GetEnvironmentVariable("senderClientId");
var publicKeyEncryption = File.ReadAllText("./encryptionKeys/publicKey_encryption.json"); var senderClientSecret = Environment.GetEnvironmentVariable("senderClientSecret");
var publicKeySignature = var subscriberClientId = Environment.GetEnvironmentVariable("subscriberClientId");
File.ReadAllText("./encryptionKeys/publicKey_signature_verification.json"); var subscriberClientSecret = Environment.GetEnvironmentVariable("subscriberClientSecret");
var setPublicKeys = File.ReadAllText("./encryptionKeys/set-public-keys.json"); var destinationId = Environment.GetEnvironmentVariable("destinationId");
var leikaKey = Environment.GetEnvironmentVariable("leikaKey");
var credentials = var callbackSecret = Environment.GetEnvironmentVariable("callbackSecret");
JsonConvert.DeserializeObject<dynamic>(
File.ReadAllText("./encryptionKeys/credentials.json"))!;
var senderClientId = (string)credentials.sender.clientId;
var senderClientSecret = (string)credentials.sender.clientSecret;
var subscriberClientId = (string)credentials.subscriber.clientId;
var subscriberClientSecret = (string)credentials.subscriber.clientSecret;
var destinationId = (string)credentials.destinationId;
var leikaKey = (string)credentials.leikaKey;
var callbackSecret = (string)credentials.callbackSecret;
return new MockSettings( return new MockSettings(
privateKeyDecryption, privateKeySigning, privateKeyDecryption, privateKeySigning,
...@@ -89,12 +79,52 @@ public static class Container { ...@@ -89,12 +79,52 @@ public static class Container {
destinationId, leikaKey, callbackSecret, setPublicKeys); destinationId, leikaKey, callbackSecret, setPublicKeys);
} }
private static MockSettings? GetSettingsFromFiles() {
try {
var privateKeyDecryption =
File.ReadAllText("./encryptionKeys/privateKey_decryption.json");
var privateKeySigning = File.ReadAllText("./encryptionKeys/privateKey_signing.json");
var publicKeyEncryption =
File.ReadAllText("./encryptionKeys/publicKey_encryption.json");
var publicKeySignature =
File.ReadAllText("./encryptionKeys/publicKey_signature_verification.json");
var setPublicKeys = File.ReadAllText("./encryptionKeys/set-public-keys.json");
var credentials =
JsonConvert.DeserializeObject<dynamic>(
File.ReadAllText("./encryptionKeys/credentials.json"))!;
var senderClientId = (string)credentials.sender.clientId;
var senderClientSecret = (string)credentials.sender.clientSecret;
var subscriberClientId = (string)credentials.subscriber.clientId;
var subscriberClientSecret = (string)credentials.subscriber.clientSecret;
var destinationId = (string)credentials.destinationId;
var leikaKey = (string)credentials.leikaKey;
var callbackSecret = (string)credentials.callbackSecret;
return new MockSettings(
privateKeyDecryption, privateKeySigning,
publicKeyEncryption, publicKeySignature,
senderClientId, senderClientSecret,
subscriberClientId, subscriberClientSecret,
destinationId, leikaKey, callbackSecret, setPublicKeys);
}
catch (Exception e) {
Console.WriteLine("Files not found, using environment variables");
return null;
}
}
private static void CreateEncryptionSettings(ContainerBuilder builder) {
var settings = GetSettingsFromFiles(); private static MockSettings CreateEncryptionSettings(ContainerBuilder builder) {
var settings = GetSettingsFromFiles() ?? GetSettingsFromEnvironment();
if (settings == null)
throw new ArgumentException("Could not find settings file nor environment variables");
builder.Register(c => settings) builder.Register(c => settings)
.As<MockSettings>(); .As<MockSettings>();
builder.Register(c => settings.ToKeySet()).As<KeySet>(); builder.Register(c => settings.ToKeySet()).As<KeySet>();
return settings;
} }
private static Mock<IRouteService> CreateRouteService() { private static Mock<IRouteService> CreateRouteService() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment