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