From b59c09669845943d79dfa4ec9d06cc56ee80dddf Mon Sep 17 00:00:00 2001 From: "Peter Fichtner (pfichtner)" Date: Sun, 23 Apr 2023 10:58:04 +0200 Subject: [PATCH 1/4] bugfix for private @Id fields --- .../com/mmnaseri/utils/spring/data/tools/PropertyUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-data-mock/src/main/java/com/mmnaseri/utils/spring/data/tools/PropertyUtils.java b/spring-data-mock/src/main/java/com/mmnaseri/utils/spring/data/tools/PropertyUtils.java index 8b45122..8b07931 100644 --- a/spring-data-mock/src/main/java/com/mmnaseri/utils/spring/data/tools/PropertyUtils.java +++ b/spring-data-mock/src/main/java/com/mmnaseri/utils/spring/data/tools/PropertyUtils.java @@ -152,7 +152,7 @@ public static Object setPropertyValue(Object context, String property, Object va } else { final Field field = ReflectionUtils.findField(context.getClass(), property); if (field != null) { - if (Modifier.isFinal(field.getModifiers())) { + if (Modifier.isFinal(field.getModifiers()) || Modifier.isPrivate(field.getModifiers())) { field.setAccessible(true); } try { From 9ffd8205ad120b0e53881652bb95c273dc6c04d1 Mon Sep 17 00:00:00 2001 From: "Peter Fichtner (pfichtner)" Date: Sun, 23 Apr 2023 14:32:38 +0200 Subject: [PATCH 2/4] added test case showing problem --- .../factory/RepositoryFactoryBuilderTest.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/spring-data-mock/src/test/java/com/mmnaseri/utils/spring/data/dsl/factory/RepositoryFactoryBuilderTest.java b/spring-data-mock/src/test/java/com/mmnaseri/utils/spring/data/dsl/factory/RepositoryFactoryBuilderTest.java index 173e488..64a7675 100644 --- a/spring-data-mock/src/test/java/com/mmnaseri/utils/spring/data/dsl/factory/RepositoryFactoryBuilderTest.java +++ b/spring-data-mock/src/test/java/com/mmnaseri/utils/spring/data/dsl/factory/RepositoryFactoryBuilderTest.java @@ -460,4 +460,26 @@ public void testSaveIterable() { assertThat(repository.findAll(), hasSize(3)); assertThat(repository.findAll(), containsInAnyOrder(((List) iterable).toArray())); } + + // please move the code where it should be + public class EntityWithAnnotatedIdFieldAndGetter { + @Id + private Long id; + public Long getId() { + return id; + } + } + + // please move the code where it should be + public interface RepositoryForIssue extends JpaRepository { + } + + // please move the code where it should be + @Test + public void privateIdFieldIssue() { + final RepositoryForIssue repository = + RepositoryFactoryBuilder.builder().mock(RepositoryForIssue.class); + repository.save(new EntityWithAnnotatedIdFieldAndGetter()); + assertThat(repository.findAll(), hasSize(1)); + } } From e24cee0d115442a430b9efdc92ae0ca080ff4bd6 Mon Sep 17 00:00:00 2001 From: "Peter Fichtner (pfichtner)" Date: Sun, 23 Apr 2023 14:32:38 +0200 Subject: [PATCH 3/4] added test case showing problem --- .../spring/data/dsl/factory/RepositoryFactoryBuilderTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spring-data-mock/src/test/java/com/mmnaseri/utils/spring/data/dsl/factory/RepositoryFactoryBuilderTest.java b/spring-data-mock/src/test/java/com/mmnaseri/utils/spring/data/dsl/factory/RepositoryFactoryBuilderTest.java index 64a7675..199c57b 100644 --- a/spring-data-mock/src/test/java/com/mmnaseri/utils/spring/data/dsl/factory/RepositoryFactoryBuilderTest.java +++ b/spring-data-mock/src/test/java/com/mmnaseri/utils/spring/data/dsl/factory/RepositoryFactoryBuilderTest.java @@ -42,6 +42,8 @@ import java.util.Arrays; import java.util.List; +import javax.persistence.Id; + import static com.mmnaseri.utils.spring.data.dsl.factory.RepositoryFactoryBuilder.given; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsInAnyOrder; From 4ed741e8f6d73712c0238a0805e8fa5473d1c596 Mon Sep 17 00:00:00 2001 From: "Peter Fichtner (pfichtner)" Date: Sun, 23 Apr 2023 14:32:38 +0200 Subject: [PATCH 4/4] added test case showing problem --- .../spring/data/dsl/factory/RepositoryFactoryBuilderTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/spring-data-mock/src/test/java/com/mmnaseri/utils/spring/data/dsl/factory/RepositoryFactoryBuilderTest.java b/spring-data-mock/src/test/java/com/mmnaseri/utils/spring/data/dsl/factory/RepositoryFactoryBuilderTest.java index 199c57b..8d110a5 100644 --- a/spring-data-mock/src/test/java/com/mmnaseri/utils/spring/data/dsl/factory/RepositoryFactoryBuilderTest.java +++ b/spring-data-mock/src/test/java/com/mmnaseri/utils/spring/data/dsl/factory/RepositoryFactoryBuilderTest.java @@ -37,6 +37,7 @@ import com.mmnaseri.utils.spring.data.store.impl.MemoryDataStore; import org.hamcrest.Matchers; import org.springframework.data.domain.AuditorAware; +import org.springframework.data.jpa.repository.JpaRepository; import org.testng.annotations.Test; import java.util.Arrays;