Browse Source

DataValidator validateQueueNameOrTopic added check for non-empty string with test

pull/9163/head
Sergey Matvienko 3 years ago
parent
commit
f27ac2cc51
  1. 6
      dao/src/main/java/org/thingsboard/server/dao/service/DataValidator.java
  2. 21
      dao/src/test/java/org/thingsboard/server/dao/service/DataValidatorTest.java

6
dao/src/main/java/org/thingsboard/server/dao/service/DataValidator.java

@ -86,7 +86,7 @@ public abstract class DataValidator<D extends BaseData<?>> {
public void validateDelete(TenantId tenantId, EntityId entityId) {
}
protected void validateName(String exceptionPrefix, String name) {
public void validateName(String exceptionPrefix, String name) {
if (StringUtils.isEmpty(name) || name.trim().length() == 0) {
throw new DataValidationException(exceptionPrefix + " should be specified!");
}
@ -160,8 +160,8 @@ public abstract class DataValidator<D extends BaseData<?>> {
validateQueueNameOrTopic(topic, TOPIC);
}
private static void validateQueueNameOrTopic(String value, String fieldName) {
if (StringUtils.isEmpty(value)) {
static void validateQueueNameOrTopic(String value, String fieldName) {
if (StringUtils.isEmpty(value) || value.trim().length() == 0 ) {
throw new DataValidationException(String.format("Queue %s should be specified!", fieldName));
}
if (!QUEUE_PATTERN.matcher(value).matches()) {

21
dao/src/test/java/org/thingsboard/server/dao/service/DataValidatorTest.java

@ -83,4 +83,25 @@ public class DataValidatorTest {
Assertions.assertThrows(DataValidationException.class, () -> DataValidator.validateEmail(email));
}
@ParameterizedTest
@ValueSource(strings = {
"azAZ09_.-", "topic",
})
public void validateQueueNameOrTopic(String value) {
DataValidator.validateQueueNameOrTopic(value, "name");
DataValidator.validateQueueNameOrTopic(value, "topic");
}
@ParameterizedTest
@ValueSource(strings = {
"", " ", " ", "\n", "\r\n", "\t", "\000", "\000\000", "\001", "\002", "\040", "\u0000", "\u0000\u0000",
"topic@home", "!", ",", "Łódź",
"\uD83D\uDC0C", "\041",
"F0929906\000\000\000\000\000\000\000\000\000",
})
public void validateQueueNameOrTopicInvalid(String value) {
Assertions.assertThrows(DataValidationException.class, () -> DataValidator.validateQueueNameOrTopic(value, "name"));
Assertions.assertThrows(DataValidationException.class, () -> DataValidator.validateQueueNameOrTopic(value, "topic"));
}
}

Loading…
Cancel
Save