From a75cb73bf9c022d0f78ec85f327cdef7c396c98a Mon Sep 17 00:00:00 2001 From: Preben Huybrechts <1079843+pregress@users.noreply.github.com> Date: Mon, 14 Oct 2024 17:49:47 +0200 Subject: [PATCH] feat: Add getter for Azurite blob, queue and table endpoint (#1278) Co-authored-by: Preben Huybrechts --- .../AzuriteContainer.cs | 36 +++++++++++++++++-- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/src/Testcontainers.Azurite/AzuriteContainer.cs b/src/Testcontainers.Azurite/AzuriteContainer.cs index 9759bc770..e0cbd0d1b 100644 --- a/src/Testcontainers.Azurite/AzuriteContainer.cs +++ b/src/Testcontainers.Azurite/AzuriteContainer.cs @@ -23,9 +23,39 @@ public string GetConnectionString() properties.Add("DefaultEndpointsProtocol", Uri.UriSchemeHttp); properties.Add("AccountName", AzuriteBuilder.AccountName); properties.Add("AccountKey", AzuriteBuilder.AccountKey); - properties.Add("BlobEndpoint", new UriBuilder(Uri.UriSchemeHttp, Hostname, GetMappedPublicPort(AzuriteBuilder.BlobPort), AzuriteBuilder.AccountName).ToString()); - properties.Add("QueueEndpoint", new UriBuilder(Uri.UriSchemeHttp, Hostname, GetMappedPublicPort(AzuriteBuilder.QueuePort), AzuriteBuilder.AccountName).ToString()); - properties.Add("TableEndpoint", new UriBuilder(Uri.UriSchemeHttp, Hostname, GetMappedPublicPort(AzuriteBuilder.TablePort), AzuriteBuilder.AccountName).ToString()); + properties.Add("BlobEndpoint", GetBlobEndpoint()); + properties.Add("QueueEndpoint", GetQueueEndpoint()); + properties.Add("TableEndpoint", GetTableEndpoint()); return string.Join(";", properties.Select(property => string.Join("=", property.Key, property.Value))); } + + /// + /// Gets the blob endpoint + /// + /// The azurite blob endpoint + public string GetBlobEndpoint() + { + return new UriBuilder(Uri.UriSchemeHttp, Hostname, GetMappedPublicPort(AzuriteBuilder.BlobPort), + AzuriteBuilder.AccountName).ToString(); + } + + /// + /// Gets the queue endpoint + /// + /// The azurite queue endpoint + public string GetQueueEndpoint() + { + return new UriBuilder(Uri.UriSchemeHttp, Hostname, GetMappedPublicPort(AzuriteBuilder.QueuePort), + AzuriteBuilder.AccountName).ToString(); + } + + /// + /// Gets the table endpoint + /// + /// The azurite table endpoint + public string GetTableEndpoint() + { + return new UriBuilder(Uri.UriSchemeHttp, Hostname, GetMappedPublicPort(AzuriteBuilder.TablePort), + AzuriteBuilder.AccountName).ToString(); + } } \ No newline at end of file