Skip to content

Commit

Permalink
Merge pull request #726 from Particular/connection-string-helper
Browse files Browse the repository at this point in the history
Move connection string retrieval into a ConnectionStringHelper
  • Loading branch information
danielmarbach authored Jun 27, 2024
2 parents 4f4656c + e647e71 commit 5f50b4a
Show file tree
Hide file tree
Showing 8 changed files with 31 additions and 62 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public class SetupFixture
[OneTimeSetUp]
public async Task OneTimeSetUp()
{
var connectionString = GetConnectionStringOrFallback();
var connectionString = ConnectionStringHelper.GetConnectionStringOrFallback();

ContainerName = $"{DateTime.UtcNow.Ticks}_{Path.GetFileNameWithoutExtension(Path.GetTempFileName())}";

Expand Down Expand Up @@ -49,17 +49,6 @@ public async Task OneTimeTearDown()
CosmosDbClient.Dispose();
}

public static string GetConnectionStringOrFallback(string environmentVariableName = "CosmosDBPersistence_ConnectionString", string fallbackEmulatorConnectionString = EmulatorConnectionString)
{
var candidate = Environment.GetEnvironmentVariable(environmentVariableName, EnvironmentVariableTarget.User);
var environmentVariableConnectionString = string.IsNullOrWhiteSpace(candidate) ? Environment.GetEnvironmentVariable(environmentVariableName) : candidate;

return string.IsNullOrEmpty(environmentVariableConnectionString) ? fallbackEmulatorConnectionString : environmentVariableConnectionString;
}

public static bool IsRunningWithEmulator => GetConnectionStringOrFallback() == EmulatorConnectionString;

const string EmulatorConnectionString = "AccountEndpoint = https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==";
public const string DatabaseName = "CosmosDBPersistence";
public const string PartitionPathKey = "/deep/down";
public static string ContainerName;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public class SetupFixture
[OneTimeSetUp]
public async Task OneTimeSetUp()
{
var connectionString = GetConnectionStringOrFallback();
var connectionString = ConnectionStringHelper.GetConnectionStringOrFallback();

ContainerName = $"{DateTime.UtcNow.Ticks}_{Path.GetFileNameWithoutExtension(Path.GetTempFileName())}";

Expand Down Expand Up @@ -49,17 +49,6 @@ public async Task OneTimeTearDown()
CosmosDbClient.Dispose();
}

public static string GetConnectionStringOrFallback(string environmentVariableName = "CosmosDBPersistence_ConnectionString", string fallbackEmulatorConnectionString = EmulatorConnectionString)
{
var candidate = Environment.GetEnvironmentVariable(environmentVariableName, EnvironmentVariableTarget.User);
var environmentVariableConnectionString = string.IsNullOrWhiteSpace(candidate) ? Environment.GetEnvironmentVariable(environmentVariableName) : candidate;

return string.IsNullOrEmpty(environmentVariableConnectionString) ? fallbackEmulatorConnectionString : environmentVariableConnectionString;
}

public static bool IsRunningWithEmulator => GetConnectionStringOrFallback() == EmulatorConnectionString;

const string EmulatorConnectionString = "AccountEndpoint = https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==";
public const string DatabaseName = "CosmosDBPersistence";
public const string PartitionPathKey = "/id";
public static string ContainerName;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public class SetupFixture
[OneTimeSetUp]
public async Task OneTimeSetUp()
{
var connectionString = GetConnectionStringOrFallback();
var connectionString = ConnectionStringHelper.GetConnectionStringOrFallback();

ContainerName = $"{DateTime.UtcNow.Ticks}_{Path.GetFileNameWithoutExtension(Path.GetTempFileName())}";

Expand Down Expand Up @@ -49,17 +49,6 @@ public async Task OneTimeTearDown()
CosmosDbClient.Dispose();
}

public static string GetConnectionStringOrFallback(string environmentVariableName = "CosmosDBPersistence_ConnectionString", string fallbackEmulatorConnectionString = EmulatorConnectionString)
{
var candidate = Environment.GetEnvironmentVariable(environmentVariableName, EnvironmentVariableTarget.User);
var environmentVariableConnectionString = string.IsNullOrWhiteSpace(candidate) ? Environment.GetEnvironmentVariable(environmentVariableName) : candidate;

return string.IsNullOrEmpty(environmentVariableConnectionString) ? fallbackEmulatorConnectionString : environmentVariableConnectionString;
}

public static bool IsRunningWithEmulator => GetConnectionStringOrFallback() == EmulatorConnectionString;

const string EmulatorConnectionString = "AccountEndpoint = https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==";
public const string DatabaseName = "CosmosDBPersistence";
public const string PartitionPathKey = "/id";
public static string ContainerName;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public class SetupFixture
[OneTimeSetUp]
public async Task OneTimeSetUp()
{
var connectionString = GetConnectionStringOrFallback();
var connectionString = ConnectionStringHelper.GetConnectionStringOrFallback();

ContainerName = $"{DateTime.UtcNow.Ticks}_{Path.GetFileNameWithoutExtension(Path.GetTempFileName())}";

Expand Down Expand Up @@ -49,17 +49,6 @@ public async Task OneTimeTearDown()
CosmosDbClient.Dispose();
}

public static string GetConnectionStringOrFallback(string environmentVariableName = "CosmosDBPersistence_ConnectionString", string fallbackEmulatorConnectionString = EmulatorConnectionString)
{
var candidate = Environment.GetEnvironmentVariable(environmentVariableName, EnvironmentVariableTarget.User);
var environmentVariableConnectionString = string.IsNullOrWhiteSpace(candidate) ? Environment.GetEnvironmentVariable(environmentVariableName) : candidate;

return string.IsNullOrEmpty(environmentVariableConnectionString) ? fallbackEmulatorConnectionString : environmentVariableConnectionString;
}

public static bool IsRunningWithEmulator => GetConnectionStringOrFallback() == EmulatorConnectionString;

const string EmulatorConnectionString = "AccountEndpoint = https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==";
public const string DatabaseName = "CosmosDBPersistence";
public const string PartitionPathKey = "/deep/down";
public static string ContainerName;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,9 @@
<PackageReference Include="Nunit" Version="3.14.0" />
<PackageReference Include="NUnit3TestAdapter" Version="4.5.0" />
</ItemGroup>

<ItemGroup>
<Compile Include="..\SharedAcceptanceTests.All\ConnectionStringHelper.cs" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
using Logging;
using Microsoft.Azure.Cosmos;
using Microsoft.Azure.Cosmos.Fluent;
using NServiceBus.AcceptanceTests;
using NUnit.Framework;
using Persistence.CosmosDB;

Expand All @@ -17,7 +18,7 @@ public class SetupFixture
[OneTimeSetUp]
public async Task OneTimeSetUp()
{
var connectionString = GetConnectionStringOrFallback();
var connectionString = ConnectionStringHelper.GetConnectionStringOrFallback();

ContainerName = $"{DateTime.UtcNow.Ticks}_{Path.GetFileNameWithoutExtension(Path.GetTempFileName())}";

Expand Down Expand Up @@ -50,17 +51,6 @@ public async Task OneTimeTearDown()
CosmosDbClient.Dispose();
}

public static string GetConnectionStringOrFallback(string environmentVariableName = "CosmosDBPersistence_ConnectionString", string fallbackEmulatorConnectionString = EmulatorConnectionString)
{
var candidate = Environment.GetEnvironmentVariable(environmentVariableName, EnvironmentVariableTarget.User);
var environmentVariableConnectionString = string.IsNullOrWhiteSpace(candidate) ? Environment.GetEnvironmentVariable(environmentVariableName) : candidate;

return string.IsNullOrEmpty(environmentVariableConnectionString) ? fallbackEmulatorConnectionString : environmentVariableConnectionString;
}

public static bool IsRunningWithEmulator => GetConnectionStringOrFallback() == EmulatorConnectionString;

const string EmulatorConnectionString = "AccountEndpoint = https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==";
public const string DatabaseName = "CosmosDBPersistence";
public const string PartitionPathKey = $"/{PartitionPropertyName}";
public const string PartitionPropertyName = "somekey";
Expand Down
19 changes: 19 additions & 0 deletions src/SharedAcceptanceTests.All/ConnectionStringHelper.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
namespace NServiceBus.AcceptanceTests
{
using System;

public static class ConnectionStringHelper
{
public static string GetConnectionStringOrFallback(string environmentVariableName = "CosmosDBPersistence_ConnectionString", string fallbackEmulatorConnectionString = EmulatorConnectionString)
{
var candidate = Environment.GetEnvironmentVariable(environmentVariableName, EnvironmentVariableTarget.User);
var environmentVariableConnectionString = string.IsNullOrWhiteSpace(candidate) ? Environment.GetEnvironmentVariable(environmentVariableName) : candidate;

return string.IsNullOrEmpty(environmentVariableConnectionString) ? fallbackEmulatorConnectionString : environmentVariableConnectionString;
}

public static bool IsRunningWithEmulator => GetConnectionStringOrFallback() == EmulatorConnectionString;

const string EmulatorConnectionString = "AccountEndpoint = https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ public class When_default_credentials_used : NServiceBusAcceptanceTest
[Test]
public async Task Should_work()
{
if (SetupFixture.IsRunningWithEmulator)
if (ConnectionStringHelper.IsRunningWithEmulator)
{
Assert.Ignore("This test uses DefaultAzureCredential which is not supported with the emulator.");
}
Expand Down Expand Up @@ -42,7 +42,7 @@ public EndpointUsingDefaultCredentials() =>
{
var builder = new DbConnectionStringBuilder
{
ConnectionString = SetupFixture.GetConnectionStringOrFallback()
ConnectionString = ConnectionStringHelper.GetConnectionStringOrFallback()
};
builder.TryGetValue("AccountEndpoint", out var accountEndpoint);
Expand Down

0 comments on commit 5f50b4a

Please sign in to comment.