Pārlūkot izejas kodu

NO-JIRA Fix code smells

tags/10.3.0.82913
Léo Geoffroy pirms 7 mēnešiem
vecāks
revīzija
2795319a14

+ 1
- 1
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/sql/CreateIndexBuilder.java Parādīt failu

@@ -136,7 +136,7 @@ public class CreateIndexBuilder {
*/
if (unique && !dialect.supportsNullNotDistinct() && PostgreSql.ID.equals(dialect.getId())) {
sql.append(columns.stream()
.map(c -> c.isNullable() ? "COALESCE(%s, '')".formatted(c.name()) : c.name())
.map(c -> Boolean.TRUE.equals(c.isNullable()) ? "COALESCE(%s, '')".formatted(c.name()) : c.name())
.collect(Collectors.joining(", ")));
} else {
sql.append(columns.stream()

+ 27
- 40
server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/sql/CreateIndexBuilderTest.java Parādīt failu

@@ -133,76 +133,63 @@ public class CreateIndexBuilderTest {

@Test
public void throw_NPE_if_table_is_missing() {
assertThatThrownBy(() -> {
new CreateIndexBuilder(new Oracle())
.setName("issues_key")
.addColumn(newVarcharColumnDefBuilder().setColumnName("kee").setLimit(10).build())
.build();
})
CreateIndexBuilder builder = new CreateIndexBuilder(new Oracle())
.setName("issues_key")
.addColumn(newVarcharColumnDefBuilder().setColumnName("kee").setLimit(10).build());
assertThatThrownBy(builder::build)
.isInstanceOf(NullPointerException.class)
.hasMessage("Table name can't be null");
}

@Test
public void throw_NPE_if_index_name_is_missing() {
assertThatThrownBy(() -> {
new CreateIndexBuilder(new H2())
.setTable("issues")
.addColumn(newVarcharColumnDefBuilder().setColumnName("kee").setLimit(10).build())
.build();
})
CreateIndexBuilder builder = new CreateIndexBuilder(new H2())
.setTable("issues")
.addColumn(newVarcharColumnDefBuilder().setColumnName("kee").setLimit(10).build());
assertThatThrownBy(builder::build)
.isInstanceOf(NullPointerException.class)
.hasMessage("Index name can't be null");
}

@Test
public void build_shouldThrowException_whenUniqueAndColumnNullabilityIsNotProvided() {
assertThatThrownBy(() -> {
new CreateIndexBuilder(new H2())
.setTable("issues")
.setName("name")
.addColumn("columnName")
.setUnique(true)
.build();
})
CreateIndexBuilder builder = new CreateIndexBuilder(new H2())
.setTable("issues")
.setName("name")
.addColumn("columnName")
.setUnique(true);
assertThatThrownBy(builder::build)
.isInstanceOf(IllegalArgumentException.class)
.hasMessage("Nullability of column should be provided for unique indexes");
}

@Test
public void throw_IAE_if_columns_are_missing() {
assertThatThrownBy(() -> {
new CreateIndexBuilder(new H2())
.setTable("issues")
.setName("issues_key")
.build();
})
CreateIndexBuilder builder = new CreateIndexBuilder(new H2())
.setTable("issues")
.setName("issues_key");
assertThatThrownBy(builder::build)
.isInstanceOf(IllegalArgumentException.class)
.hasMessage("at least one column must be specified");
}

@Test
public void throw_IAE_if_table_name_is_not_valid() {
assertThatThrownBy(() -> {
new CreateIndexBuilder(new H2())
.setTable("(not valid)")
.setName("issues_key")
.addColumn(newVarcharColumnDefBuilder().setColumnName("kee").setLimit(10).build())
.build();
})
CreateIndexBuilder builder = new CreateIndexBuilder(new H2())
.setTable("(not valid)")
.setName("issues_key")
.addColumn(newVarcharColumnDefBuilder().setColumnName("kee").setLimit(10).build());
assertThatThrownBy(builder::build)
.isInstanceOf(IllegalArgumentException.class)
.hasMessage("Table name must be lower case and contain only alphanumeric chars or '_', got '(not valid)'");
}

@Test
public void throw_NPE_when_adding_null_column() {
assertThatThrownBy(() -> {
new CreateIndexBuilder(new H2())
.setTable("issues")
.setName("issues_key")
.addColumn((String) null)
.build();
})
CreateIndexBuilder builder = new CreateIndexBuilder(new H2())
.setTable("issues")
.setName("issues_key");
assertThatThrownBy(() -> builder.addColumn((String) null))
.isInstanceOf(NullPointerException.class)
.hasMessage("Column cannot be null");
}

Notiek ielāde…
Atcelt
Saglabāt