Skip to content

Commit

Permalink
test(it): Use assertAll to check multiple values
Browse files Browse the repository at this point in the history
  • Loading branch information
felipebz committed Aug 15, 2024
1 parent 17dd386 commit 265eba8
Showing 1 changed file with 47 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ package org.sonar.plsqlopen.it
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.BeforeAll
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.assertAll
import org.junit.jupiter.api.extension.RegisterExtension
import org.sonarqube.ws.Measures
import org.sonarqube.ws.client.measures.ComponentRequest
Expand All @@ -32,46 +33,54 @@ class MetricsTest {
@Test
fun project_level() {
// Size
assertThat(getMeasureAsInteger(PROJECT_KEY, "ncloc")).isEqualTo(22)
assertThat(getMeasureAsInteger(PROJECT_KEY, "lines")).isEqualTo(23)
assertThat(getMeasureAsInteger(PROJECT_KEY, "files")).isEqualTo(3)
assertThat(getMeasureAsInteger(PROJECT_KEY, "statements")).isEqualTo(4)
// Documentation
assertThat(getMeasureAsInteger(PROJECT_KEY, "comment_lines")).isEqualTo(1)
assertThat(getMeasureAsDouble(PROJECT_KEY, "comment_lines_density")).isEqualTo(4.3)
assertThat(getMeasureAsString(PROJECT_KEY, "public_documented_api_density")).isNull()
// Duplication
assertThat(getMeasureAsDouble(PROJECT_KEY, "duplicated_lines")).isZero
assertThat(getMeasureAsDouble(PROJECT_KEY, "duplicated_blocks")).isZero
assertThat(getMeasureAsDouble(PROJECT_KEY, "duplicated_files")).isZero
assertThat(getMeasureAsDouble(PROJECT_KEY, "duplicated_lines_density")).isZero
// Rules
assertThat(getMeasureAsDouble(PROJECT_KEY, "violations")).isZero
assertAll(
// Size
{ assertThat(getMeasureAsInteger(PROJECT_KEY, "ncloc")).isEqualTo(22) },
{ assertThat(getMeasureAsInteger(PROJECT_KEY, "lines")).isEqualTo(23) },
{ assertThat(getMeasureAsInteger(PROJECT_KEY, "files")).isEqualTo(3) },
{ assertThat(getMeasureAsInteger(PROJECT_KEY, "statements")).isEqualTo(4) },
// Documentation
{ assertThat(getMeasureAsInteger(PROJECT_KEY, "comment_lines")).isEqualTo(1) },
{ assertThat(getMeasureAsDouble(PROJECT_KEY, "comment_lines_density")).isEqualTo(4.3) },
{ assertThat(getMeasureAsString(PROJECT_KEY, "public_documented_api_density")).isNull() },
// Duplication
{ assertThat(getMeasureAsDouble(PROJECT_KEY, "duplicated_lines")).isZero },
{ assertThat(getMeasureAsDouble(PROJECT_KEY, "duplicated_blocks")).isZero },
{ assertThat(getMeasureAsDouble(PROJECT_KEY, "duplicated_files")).isZero },
{ assertThat(getMeasureAsDouble(PROJECT_KEY, "duplicated_lines_density")).isZero },
// Rules
{ assertThat(getMeasureAsDouble(PROJECT_KEY, "violations")).isZero }
)
}

@Test
fun file_level() {
// Size
assertThat(getMeasureAsInteger(FILE_NAME, "ncloc")).isEqualTo(7)
assertThat(getMeasureAsInteger(FILE_NAME, "lines")).isEqualTo(7)
assertThat(getMeasureAsInteger(FILE_NAME, "statements")).isEqualTo(2)
// Documentation
assertThat(getMeasureAsInteger(FILE_NAME, "comment_lines")).isZero
assertThat(getMeasureAsDouble(FILE_NAME, "comment_lines_density")).isZero
// Duplication
assertThat(getMeasureAsInteger(FILE_NAME, "duplicated_lines")).isZero
assertThat(getMeasureAsInteger(FILE_NAME, "duplicated_blocks")).isZero
assertThat(getMeasureAsInteger(FILE_NAME, "duplicated_files")).isZero
assertThat(getMeasureAsDouble(FILE_NAME, "duplicated_lines_density")).isZero
// Rules
assertThat(getMeasureAsInteger(FILE_NAME, "violations")).isZero
assertAll(
// Size
{ assertThat(getMeasureAsInteger(FILE_NAME, "ncloc")).isEqualTo(7) },
{ assertThat(getMeasureAsInteger(FILE_NAME, "lines")).isEqualTo(7) },
{ assertThat(getMeasureAsInteger(FILE_NAME, "statements")).isEqualTo(2) },
// Documentation
{ assertThat(getMeasureAsInteger(FILE_NAME, "comment_lines")).isZero },
{ assertThat(getMeasureAsDouble(FILE_NAME, "comment_lines_density")).isZero },
// Duplication
{ assertThat(getMeasureAsInteger(FILE_NAME, "duplicated_lines")).isZero },
{ assertThat(getMeasureAsInteger(FILE_NAME, "duplicated_blocks")).isZero },
{ assertThat(getMeasureAsInteger(FILE_NAME, "duplicated_files")).isZero },
{ assertThat(getMeasureAsDouble(FILE_NAME, "duplicated_lines_density")).isZero },
// Rules
{ assertThat(getMeasureAsInteger(FILE_NAME, "violations")).isZero }
)
}

/* Helper methods */
private fun getMeasure(componentKey: String, metricKey: String): Measures.Measure? {
val response = Tests.newWsClient(orchestrator).measures()
.component(ComponentRequest().setComponent(componentKey)
.setMetricKeys(listOf(metricKey)))
.component(
ComponentRequest()
.setComponent(componentKey)
.setMetricKeys(listOf(metricKey))
)
val measures = response.component.measuresList
return if (measures.size == 1) measures[0] else null
}
Expand Down Expand Up @@ -106,9 +115,13 @@ class MetricsTest {
orchestrator.server.provisionProject(PROJECT_KEY, PROJECT_KEY)
orchestrator.server.associateProjectToQualityProfile(PROJECT_KEY, "plsqlopen", "empty-profile")

val build = Tests.createSonarScanner().setProjectDir(File("src/integrationTest/resources/projects/metrics/"))
.setProjectKey(PROJECT_KEY).setProjectName(PROJECT_KEY).setProjectVersion("1.0").setSourceDirs("src")
.setProperty("sonar.sourceEncoding", "UTF-8")
val build = Tests.createSonarScanner()
.setProjectDir(File("src/integrationTest/resources/projects/metrics/"))
.setProjectKey(PROJECT_KEY)
.setProjectName(PROJECT_KEY)
.setProjectVersion("1.0")
.setSourceDirs("src")
.setProperty("sonar.sourceEncoding", "UTF-8")
orchestrator.executeBuild(build)
}

Expand Down

0 comments on commit 265eba8

Please sign in to comment.