From 0b1767e1ae0dac25e8834d66fb4a861d49113bd5 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Tue, 30 Aug 2022 09:46:45 +0200
Subject: [PATCH] OZG-2653 Injected field package-private gemacht

---
 README.md                                     |  8 +++++++
 src/main/java/de/itvsh/kop/user/User.java     | 16 ++++----------
 .../java/de/itvsh/kop/user/UserService.java   |  2 +-
 .../kop/user/keycloak/KeycloakApiService.java |  8 +++----
 .../kop/user/keycloak/KeycloakProvider.java   |  7 +++----
 .../keycloak/KeycloakUserRemoteService.java   |  2 +-
 .../de/itvsh/kop/user/UserServiceTest.java    |  6 +++---
 .../keycloak/KeycloakApiServiceITCase.java    |  2 +-
 .../user/keycloak/KeycloakProviderITCase.java | 21 +++++++++++++++++++
 .../KeycloakUserRemoteServiceITCase.java      |  4 ++--
 10 files changed, 48 insertions(+), 28 deletions(-)
 create mode 100644 src/test/java/de/itvsh/kop/user/keycloak/KeycloakProviderITCase.java

diff --git a/README.md b/README.md
index e75ac29a..27d01107 100644
--- a/README.md
+++ b/README.md
@@ -77,3 +77,11 @@ Easily start your Reactive RESTful Web Services
 Monitor your application's health using SmallRye Health
 
 [Related guide section...](https://quarkus.io/guides/smallrye-health)
+
+## Best parctice
+
+### User package-private fields for injected fields
+
+This involves injection fields, constructors and initializers, observer methods, producer methods and fields, disposers and interceptor methods.
+
+[See section 2 of quarkus guide ](https://quarkus.io/guides/cdi-reference#native-executables-and-private-members)
diff --git a/src/main/java/de/itvsh/kop/user/User.java b/src/main/java/de/itvsh/kop/user/User.java
index f25a01a2..fc9d990f 100644
--- a/src/main/java/de/itvsh/kop/user/User.java
+++ b/src/main/java/de/itvsh/kop/user/User.java
@@ -3,10 +3,9 @@ package de.itvsh.kop.user;
 import java.util.Collection;
 import java.util.Date;
 
+import org.bson.codecs.pojo.annotations.BsonId;
 import org.bson.types.ObjectId;
 
-import io.quarkus.mongodb.panache.PanacheMongoEntity;
-import io.quarkus.mongodb.panache.common.MongoEntity;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Getter;
@@ -19,15 +18,16 @@ import lombok.ToString;
 @AllArgsConstructor
 @Getter
 @Setter
-@MongoEntity
 @ToString
-public class User extends PanacheMongoEntity {
+public class User {
 
 	public static final String EXTERNAL_ID_FIELD = "externalId";
 	public static final String EMAIL_FIELD = "email";
 	public static final String DELETED_FIELD = "deleted";
 	public static final String LAST_SYNC_TIMESTAMP_FIELD = "lastSyncTimestamp";
 
+	@BsonId
+	private ObjectId id;
 	private String externalId;
 	private String firstName;
 	private String lastName;
@@ -42,12 +42,4 @@ public class User extends PanacheMongoEntity {
 	public String getFullName() {
 		return String.format("%s %s", firstName, lastName);
 	}
-
-	public ObjectId getId() {
-		return super.id;
-	}
-
-	public void setId(ObjectId id) {
-		super.id = id;
-	}
 }
\ No newline at end of file
diff --git a/src/main/java/de/itvsh/kop/user/UserService.java b/src/main/java/de/itvsh/kop/user/UserService.java
index b786f1c3..c9b40765 100644
--- a/src/main/java/de/itvsh/kop/user/UserService.java
+++ b/src/main/java/de/itvsh/kop/user/UserService.java
@@ -9,7 +9,7 @@ import javax.inject.Inject;
 public class UserService {
 
 	@Inject
-	private UserRepository repository;
+	UserRepository repository;
 
 	public void save(User user) {
 		findUser(user).ifPresentOrElse(persistedUser -> repository.update(addIdUser(user, persistedUser)),
diff --git a/src/main/java/de/itvsh/kop/user/keycloak/KeycloakApiService.java b/src/main/java/de/itvsh/kop/user/keycloak/KeycloakApiService.java
index 03dec638..559a346b 100644
--- a/src/main/java/de/itvsh/kop/user/keycloak/KeycloakApiService.java
+++ b/src/main/java/de/itvsh/kop/user/keycloak/KeycloakApiService.java
@@ -24,14 +24,14 @@ import de.itvsh.kop.user.common.errorhandling.KeycloakUnavailableException;
 class KeycloakApiService {
 
 	@Inject
-	private RealmResource realmResource;
+	RealmResource realmResource;
 	@Inject
-	private UserResourceMapper mapper;
+	UserResourceMapper mapper;
 	@Inject
-	private KeycloakApiProperties properties;
+	KeycloakApiProperties properties;
 
 	@ConfigProperty(name = "keycloak.url")
-	private String keycloakUrl;
+	String keycloakUrl;
 
 	public Stream<User> findAllUser() {
 		return handlingKeycloakException(() -> getAllUserRepresentation().map(this::toUser));
diff --git a/src/main/java/de/itvsh/kop/user/keycloak/KeycloakProvider.java b/src/main/java/de/itvsh/kop/user/keycloak/KeycloakProvider.java
index 194eb3ef..70e1355f 100644
--- a/src/main/java/de/itvsh/kop/user/keycloak/KeycloakProvider.java
+++ b/src/main/java/de/itvsh/kop/user/keycloak/KeycloakProvider.java
@@ -8,19 +8,18 @@ import org.keycloak.admin.client.Keycloak;
 import org.keycloak.admin.client.KeycloakBuilder;
 import org.keycloak.admin.client.resource.RealmResource;
 
-// TODO Test
 public class KeycloakProvider {
 
 	private static final String CLIENT = "admin-cli";
 
 	@Inject
-	private KeycloakApiProperties keycloakConfiguration;
+	KeycloakApiProperties keycloakConfiguration;
 
 	@ConfigProperty(name = "keycloak.url")
-	private String keycloakUrl;
+	String keycloakUrl;
 
 	@ApplicationScoped
-	private RealmResource provide() {
+	RealmResource provide() {
 		return buildKeycloakInstance().realm(keycloakConfiguration.realm());
 	}
 
diff --git a/src/main/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteService.java b/src/main/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteService.java
index 11d02982..56c33762 100644
--- a/src/main/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteService.java
+++ b/src/main/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteService.java
@@ -11,7 +11,7 @@ import de.itvsh.kop.user.User;
 public class KeycloakUserRemoteService {
 
 	@Inject
-	private KeycloakApiService apiService;
+	KeycloakApiService apiService;
 
 	public Stream<User> getAllUsers() {
 		return apiService.findAllUser();
diff --git a/src/test/java/de/itvsh/kop/user/UserServiceTest.java b/src/test/java/de/itvsh/kop/user/UserServiceTest.java
index 39bee6f0..9b683fdc 100644
--- a/src/test/java/de/itvsh/kop/user/UserServiceTest.java
+++ b/src/test/java/de/itvsh/kop/user/UserServiceTest.java
@@ -17,11 +17,11 @@ import de.itvsh.kop.user.keycloak.KeycloakUserRemoteService;
 class UserServiceTest {
 
 	@InjectMocks
-	private UserService service;
+	UserService service;
 	@Mock
-	private UserRepository repository;
+	UserRepository repository;
 	@Mock
-	private KeycloakUserRemoteService keycloakRemoteService;
+	KeycloakUserRemoteService keycloakRemoteService;
 
 	@DisplayName("Save")
 	@Nested
diff --git a/src/test/java/de/itvsh/kop/user/keycloak/KeycloakApiServiceITCase.java b/src/test/java/de/itvsh/kop/user/keycloak/KeycloakApiServiceITCase.java
index 7dc62750..2eb49ab4 100644
--- a/src/test/java/de/itvsh/kop/user/keycloak/KeycloakApiServiceITCase.java
+++ b/src/test/java/de/itvsh/kop/user/keycloak/KeycloakApiServiceITCase.java
@@ -14,7 +14,7 @@ import io.quarkus.test.junit.TestProfile;
 class KeycloakApiServiceITCase {
 
 	@Inject
-	private KeycloakApiService service;
+	KeycloakApiService service;
 
 	@Test
 	void shouldGetAllUsers() {
diff --git a/src/test/java/de/itvsh/kop/user/keycloak/KeycloakProviderITCase.java b/src/test/java/de/itvsh/kop/user/keycloak/KeycloakProviderITCase.java
new file mode 100644
index 00000000..800275d1
--- /dev/null
+++ b/src/test/java/de/itvsh/kop/user/keycloak/KeycloakProviderITCase.java
@@ -0,0 +1,21 @@
+package de.itvsh.kop.user.keycloak;
+
+import static org.assertj.core.api.Assertions.*;
+
+import javax.inject.Inject;
+
+import org.junit.jupiter.api.Test;
+import org.keycloak.admin.client.resource.RealmResource;
+
+import io.quarkus.test.junit.QuarkusTest;
+
+@QuarkusTest
+class KeycloakProviderITCase {
+	@Inject
+	RealmResource realm;
+
+	@Test
+	void shouldHaveRealmResource() {
+		assertThat(realm).isNotNull();
+	}
+}
diff --git a/src/test/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteServiceITCase.java b/src/test/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteServiceITCase.java
index c5136559..441f575b 100644
--- a/src/test/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteServiceITCase.java
+++ b/src/test/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteServiceITCase.java
@@ -12,9 +12,9 @@ import io.quarkus.test.junit.mockito.InjectSpy;
 class KeycloakUserRemoteServiceITCase {
 
 	@InjectSpy
-	private KeycloakUserRemoteService service;
+	KeycloakUserRemoteService service;
 	@InjectMock
-	private KeycloakApiService apiService;
+	KeycloakApiService apiService;
 
 	@Test
 	void shouldCallGetAllUsers() {
-- 
GitLab