From 72a4baec25ff98a09f51aa2885e5b0386e4501cd Mon Sep 17 00:00:00 2001 From: Sophio Japharidze Date: Thu, 6 Feb 2025 16:03:53 +0100 Subject: [PATCH] Improve coverage --- .../sonarlint/ls/settings/SettingsManager.java | 2 +- .../ls/backend/BackendServiceTests.java | 16 ++++++++++++++++ .../ls/settings/SettingsManagerTests.java | 12 ++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/sonarsource/sonarlint/ls/settings/SettingsManager.java b/src/main/java/org/sonarsource/sonarlint/ls/settings/SettingsManager.java index c24bd17a..b972d451 100644 --- a/src/main/java/org/sonarsource/sonarlint/ls/settings/SettingsManager.java +++ b/src/main/java/org/sonarsource/sonarlint/ls/settings/SettingsManager.java @@ -471,7 +471,7 @@ private void parseSonarCloudConnections(Map connectionsMap, Map< }); } - private SonarCloudRegion parseRegion(String region) { + SonarCloudRegion parseRegion(String region) { try { return SonarCloudRegion.valueOf(region); } catch (IllegalArgumentException e) { diff --git a/src/test/java/org/sonarsource/sonarlint/ls/backend/BackendServiceTests.java b/src/test/java/org/sonarsource/sonarlint/ls/backend/BackendServiceTests.java index b1ccbd22..adfec360 100644 --- a/src/test/java/org/sonarsource/sonarlint/ls/backend/BackendServiceTests.java +++ b/src/test/java/org/sonarsource/sonarlint/ls/backend/BackendServiceTests.java @@ -19,6 +19,7 @@ */ package org.sonarsource.sonarlint.ls.backend; +import java.util.Map; import java.util.Optional; import java.util.UUID; import java.util.concurrent.CompletableFuture; @@ -45,6 +46,7 @@ import org.sonarsource.sonarlint.ls.SonarLintExtendedLanguageClient; import org.sonarsource.sonarlint.ls.connected.ProjectBinding; import org.sonarsource.sonarlint.ls.log.LanguageClientLogger; +import org.sonarsource.sonarlint.ls.settings.ServerConnectionSettings; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; import static org.mockito.ArgumentMatchers.any; @@ -153,4 +155,18 @@ void shouldAddIssueComment() { assertThat(messageParamsCaptor.getValue().getMessage()).contains("Could not add a new issue comment. Look at the SonarQube for IDE output for details."); assertThat(messageParamsCaptor.getValue().getType()).isEqualTo(MessageType.Error); } + + @Test + void shouldExtractSonarCloudConnections() { + var connectionId = "connectionId"; + var connections = Map.of(connectionId, + new ServerConnectionSettings(connectionId, "https://us.sonarcloud.io/", "1235", "orgKey", false, SonarCloudRegion.US)); + + var result = BackendService.extractSonarCloudConnections(connections); + + org.assertj.core.api.AssertionsForInterfaceTypes.assertThat(result).hasSize(1); + assertThat(result.get(0).getRegion()).isEqualTo(SonarCloudRegion.US); + assertThat(result.get(0).getConnectionId()).isEqualTo(connectionId); + + } } diff --git a/src/test/java/org/sonarsource/sonarlint/ls/settings/SettingsManagerTests.java b/src/test/java/org/sonarsource/sonarlint/ls/settings/SettingsManagerTests.java index 59ea42ab..b9cbf22c 100644 --- a/src/test/java/org/sonarsource/sonarlint/ls/settings/SettingsManagerTests.java +++ b/src/test/java/org/sonarsource/sonarlint/ls/settings/SettingsManagerTests.java @@ -43,6 +43,7 @@ import org.mockito.ArgumentCaptor; import org.sonarsource.sonarlint.core.commons.RuleKey; import org.sonarsource.sonarlint.core.rpc.protocol.backend.analysis.DidChangeClientNodeJsPathParams; +import org.sonarsource.sonarlint.core.rpc.protocol.common.SonarCloudRegion; import org.sonarsource.sonarlint.ls.SonarLintExtendedLanguageClient; import org.sonarsource.sonarlint.ls.backend.BackendInitParams; import org.sonarsource.sonarlint.ls.backend.BackendService; @@ -887,6 +888,17 @@ OMNISHARP_LOAD_PROJECT_ON_DEMAND, new JsonObject(), assertThat(analyzerProperties.get("sonar.cs.internal.solutionPath")).isNull(); } + @Test + void shouldParseRegion() { + var validRegionEU = "EU"; + var validRegionUS = "US"; + var invalidRegion = "invalid"; + + assertThat(underTest.parseRegion(validRegionEU)).isEqualTo(SonarCloudRegion.EU); + assertThat(underTest.parseRegion(validRegionUS)).isEqualTo(SonarCloudRegion.US); + assertThat(underTest.parseRegion(invalidRegion)).isEqualTo(SonarCloudRegion.EU); + } + private static Map fromJsonString(String json) { return Utils.parseToMap(new Gson().fromJson(json, JsonElement.class)); }