package de.nclazz.commons.reflection; import org.junit.jupiter.api.Test; import java.lang.reflect.Field; import java.util.Set; import static org.junit.jupiter.api.Assertions.*; class ReflectionUtilsTest { static class BaseClass { private int baseFieldInt; private float baseFieldFloat; private String baseField; } static class InheritedClass extends BaseClass { private String inheritField; } @Test void findDeclaredFieldsRecursively() { Set fields = ReflectionUtils.getDeclaredFieldRecursively(InheritedClass.class); assertEquals(4, fields.size()); } @Test void testDeclaredFieldsPredicate() { Set fields = ReflectionUtils.getDeclaredFieldRecursively(InheritedClass.class, field -> field.getType() == String.class); assertEquals(2, fields.size()); } }