Skip to content

Commit

Permalink
SLVS-1812 Make sure ServerUri and Id are using the correct SQC cloud …
Browse files Browse the repository at this point in the history
…URI, depending on the region.
  • Loading branch information
gabriela-trutan-sonarsource committed Feb 6, 2025
1 parent a374f29 commit 12b2225
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 11 deletions.
13 changes: 8 additions & 5 deletions src/Core.UnitTests/Binding/ServerConnectionTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -58,15 +58,17 @@ public void Ctor_SonarCloud_SetsProperties()
{
var serverConnectionSettings = new ServerConnectionSettings(false);
var credentials = Substitute.For<IConnectionCredentials>();
var sonarCloud = new ServerConnection.SonarCloud(Org, CloudServerRegion.Us, serverConnectionSettings, credentials);
var region = CloudServerRegion.Us;
var sonarCloud = new ServerConnection.SonarCloud(Org, region, serverConnectionSettings, credentials);

sonarCloud.Id.Should().Be($"https://sonarcloud.io/organizations/{Org}");
var expectedId = "https://us.sonarcloud.io/organizations/myOrg";
sonarCloud.Id.Should().Be(expectedId);
sonarCloud.OrganizationKey.Should().BeSameAs(Org);
sonarCloud.Region.Should().BeSameAs(CloudServerRegion.Us);
sonarCloud.ServerUri.Should().Be(new Uri("https://sonarcloud.io"));
sonarCloud.Region.Should().BeSameAs(region);
sonarCloud.ServerUri.Should().Be(region.Url);
sonarCloud.Settings.Should().BeSameAs(serverConnectionSettings);
sonarCloud.Credentials.Should().BeSameAs(credentials);
sonarCloud.CredentialsUri.Should().Be(new Uri($"https://sonarcloud.io/organizations/{Org}"));
sonarCloud.CredentialsUri.Should().Be(new Uri(expectedId));
}

[TestMethod]
Expand All @@ -75,6 +77,7 @@ public void Ctor_SonarCloud_NoRegion_SetsEu()
var sonarCloud = new ServerConnection.SonarCloud(Org);

sonarCloud.Region.Should().Be(CloudServerRegion.Eu);
sonarCloud.ServerUri.Should().Be(CloudServerRegion.Eu.Url);
}

[TestMethod]
Expand Down
10 changes: 4 additions & 6 deletions src/Core/Binding/ServerConnection.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,6 @@ private ServerConnection(string id, ServerConnectionSettings settings = null, IC

public sealed class SonarCloud : ServerConnection
{
private static readonly string SonarCloudUrl = CoreStrings.SonarCloudUrl;

public SonarCloud(
string organizationKey,
ServerConnectionSettings settings = null,
Expand All @@ -65,7 +63,7 @@ public SonarCloud(
CloudServerRegion region,
ServerConnectionSettings settings = null,
IConnectionCredentials credentials = null)
: base(OrganizationKeyToId(organizationKey), settings, credentials)
: base(OrganizationKeyToId(region, organizationKey), settings, credentials)
{
OrganizationKey = organizationKey;
Region = region;
Expand All @@ -74,16 +72,16 @@ public SonarCloud(
public string OrganizationKey { get; }
public CloudServerRegion Region { get; }

public override Uri ServerUri => new(SonarCloudUrl);
public override Uri ServerUri => Region.Url;

private static string OrganizationKeyToId(string organizationKey)
private static string OrganizationKeyToId(CloudServerRegion region, string organizationKey)
{
if (string.IsNullOrWhiteSpace(organizationKey))
{
throw new ArgumentNullException(nameof(organizationKey));
}

return $"{SonarCloudUrl}/organizations/{organizationKey}";
return new Uri(region.Url, $"organizations/{organizationKey}").ToString();
}
}

Expand Down

0 comments on commit 12b2225

Please sign in to comment.