forked from jzitnik/twodcraft
test(annotations): New tests for annotations
Added some new test for annotations @AutoTransient and @ThreadProvider. These tests ensure that @AutoTransient is only used on transient fields and @ThreadProvider is used on class that extend Thread.
This commit is contained in:
parent
53a3ae43f3
commit
391cda0550
@ -0,0 +1,34 @@
|
||||
package cz.jzitnik.game.core.autotransient;
|
||||
|
||||
import cz.jzitnik.game.annotations.AutoTransient;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.reflections.Reflections;
|
||||
import org.reflections.scanners.Scanners;
|
||||
import org.reflections.util.ConfigurationBuilder;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
class AutoTransientSupportTest {
|
||||
@Test
|
||||
@DisplayName("All fields annotated with @AutoTransient must be transient.")
|
||||
void checkAutoTransientAnnotation() {
|
||||
Reflections reflections = new Reflections(
|
||||
new ConfigurationBuilder()
|
||||
.forPackages("cz.jzitnik.game")
|
||||
.addScanners(Scanners.FieldsAnnotated) // Explicitly add the scanner for fields
|
||||
);
|
||||
Set<Field> fields = reflections.getFieldsAnnotatedWith(AutoTransient.class);
|
||||
|
||||
for (Field field : fields) {
|
||||
if (!Modifier.isTransient(field.getModifiers())) {
|
||||
fail("Field '" + field.getName() + "' in class " + field.getClass().getName() +
|
||||
" is annotated with @AutoTransient but is not transient.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package cz.jzitnik.game.threads;
|
||||
|
||||
import cz.jzitnik.game.annotations.ThreadRegistry;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.reflections.Reflections;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
class ThreadProviderTest {
|
||||
@Test
|
||||
@DisplayName("All classes annotated with @ThreadRegistry must extend Thread")
|
||||
void threadRegistryTest() {
|
||||
Reflections reflections = new Reflections("cz.jzitnik.game.threads.list");
|
||||
Set<Class<?>> classes = reflections.getTypesAnnotatedWith(ThreadRegistry.class);
|
||||
|
||||
for (Class<?> clazz : classes) {
|
||||
if (!Thread.class.isAssignableFrom(clazz)) {
|
||||
fail("Class " + clazz.getName() + " is annotated with @ThreadRegistry but does not extend Thread.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user