Remove guava dependency (#1776)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
This commit is contained in:
@@ -54,6 +54,11 @@
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.github.classgraph</groupId>
|
||||
<artifactId>classgraph</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.assertj</groupId>
|
||||
<artifactId>assertj-core</artifactId>
|
||||
|
||||
@@ -12,18 +12,19 @@ package org.eclipse.hawkbit.ddi.json.model;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Set;
|
||||
|
||||
import io.github.classgraph.ClassGraph;
|
||||
import io.github.classgraph.ClassInfo;
|
||||
import io.github.classgraph.ScanResult;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.google.common.reflect.ClassPath;
|
||||
|
||||
import io.qameta.allure.Description;
|
||||
import io.qameta.allure.Feature;
|
||||
import io.qameta.allure.Story;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Check DDI api model classes for '@JsonIgnoreProperties' annotation
|
||||
*/
|
||||
@@ -33,23 +34,27 @@ public class JsonIgnorePropertiesAnnotationTest {
|
||||
|
||||
@Test
|
||||
@Description("This test verifies that all model classes within the 'org.eclipse.hawkbit.ddi.json.model' package are annotated with '@JsonIgnoreProperties(ignoreUnknown = true)'")
|
||||
public void shouldCheckAnnotationsForAllModelClasses() throws IOException {
|
||||
final ClassLoader loader = Thread.currentThread().getContextClassLoader();
|
||||
final String packageName = this.getClass().getPackage().getName();
|
||||
public void shouldCheckAnnotationsForAllModelClasses() {
|
||||
final String packageName = getClass().getPackage().getName();
|
||||
try (final ScanResult scanResult = new ClassGraph().acceptPackages(packageName).scan()) {
|
||||
final List<? extends Class<?>> matchingClasses = scanResult.getAllClasses()
|
||||
.stream()
|
||||
.filter(classInPackage -> classInPackage.getSimpleName().endsWith("Test") || classInPackage.isEnum())
|
||||
.map(ClassInfo::loadClass)
|
||||
.toList();
|
||||
|
||||
final Set<ClassPath.ClassInfo> topLevelClasses = ClassPath.from(loader)
|
||||
.getTopLevelClasses(packageName);
|
||||
for (final ClassPath.ClassInfo classInfo : topLevelClasses) {
|
||||
final Class<?> modelClass = classInfo.load();
|
||||
if (modelClass.getSimpleName().contains("Test") || modelClass.isEnum()) {
|
||||
continue;
|
||||
}
|
||||
final JsonIgnoreProperties annotation = modelClass.getAnnotation(JsonIgnoreProperties.class);
|
||||
assertThat(annotation)
|
||||
.describedAs(
|
||||
"Annotation 'JsonIgnoreProperties' is missing for class: " + modelClass.getSimpleName())
|
||||
.isNotNull();
|
||||
assertThat(annotation.ignoreUnknown()).isTrue();
|
||||
assertThat(matchingClasses).isNotEmpty();
|
||||
matchingClasses.forEach(modelClass -> {
|
||||
if (modelClass.getSimpleName().contains("Test") || modelClass.isEnum()) {
|
||||
return;
|
||||
}
|
||||
final JsonIgnoreProperties annotation = modelClass.getAnnotation(JsonIgnoreProperties.class);
|
||||
assertThat(annotation)
|
||||
.describedAs(
|
||||
"Annotation 'JsonIgnoreProperties' is missing for class: " + modelClass.getSimpleName())
|
||||
.isNotNull();
|
||||
assertThat(annotation.ignoreUnknown()).isTrue();
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -18,8 +18,6 @@ import lombok.Data;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import static org.checkerframework.checker.units.qual.Prefix.exa;
|
||||
|
||||
/**
|
||||
* A json annotated rest model for PollStatus to RESTful API representation.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user