diff --git a/server/src/main/java/com/objectcomputing/checkins/configuration/CheckInsConfiguration.java b/server/src/main/java/com/objectcomputing/checkins/configuration/CheckInsConfiguration.java new file mode 100644 index 0000000000..48debf6853 --- /dev/null +++ b/server/src/main/java/com/objectcomputing/checkins/configuration/CheckInsConfiguration.java @@ -0,0 +1,28 @@ +package com.objectcomputing.checkins.configuration; + +import io.micronaut.context.annotation.ConfigurationProperties; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@ConfigurationProperties("check-ins") +public class CheckInsConfiguration { + + @NotBlank + private String webAddress; + + @NotNull + private ApplicationConfig application; + + @Getter + @Setter + @ConfigurationProperties("application") + public static class ApplicationConfig { + + @NotBlank + private String name; + } +} diff --git a/server/src/main/java/com/objectcomputing/checkins/services/feedback_request/FeedbackRequestServicesImpl.java b/server/src/main/java/com/objectcomputing/checkins/services/feedback_request/FeedbackRequestServicesImpl.java index 5d831b538d..a8cb155e68 100644 --- a/server/src/main/java/com/objectcomputing/checkins/services/feedback_request/FeedbackRequestServicesImpl.java +++ b/server/src/main/java/com/objectcomputing/checkins/services/feedback_request/FeedbackRequestServicesImpl.java @@ -1,5 +1,6 @@ package com.objectcomputing.checkins.services.feedback_request; +import com.objectcomputing.checkins.configuration.CheckInsConfiguration; import com.objectcomputing.checkins.exceptions.BadArgException; import com.objectcomputing.checkins.exceptions.NotFoundException; import com.objectcomputing.checkins.exceptions.PermissionException; @@ -36,7 +37,6 @@ public class FeedbackRequestServicesImpl implements FeedbackRequestServices { public static final String FEEDBACK_REQUEST_NOTIFICATION_SUBJECT = "check-ins.application.feedback.notifications.subject"; public static final String FEEDBACK_REQUEST_NOTIFICATION_CONTENT = "check-ins.application.feedback.notifications.content"; - public static final String WEB_UI_URL = "check-ins.web-address"; private final FeedbackRequestRepository feedbackReqRepository; private final CurrentUserServices currentUserServices; private final MemberProfileServices memberProfileServices; @@ -51,7 +51,7 @@ public FeedbackRequestServicesImpl(FeedbackRequestRepository feedbackReqReposito ReviewPeriodRepository reviewPeriodRepository, @Named(MailJetFactory.HTML_FORMAT) EmailSender emailSender, @Property(name = FEEDBACK_REQUEST_NOTIFICATION_SUBJECT) String notificationSubject, - @Property(name = WEB_UI_URL) String webURL + CheckInsConfiguration checkInsConfiguration ) { this.feedbackReqRepository = feedbackReqRepository; this.currentUserServices = currentUserServices; @@ -59,7 +59,7 @@ public FeedbackRequestServicesImpl(FeedbackRequestRepository feedbackReqReposito this.reviewPeriodRepository = reviewPeriodRepository; this.emailSender = emailSender; this.notificationSubject = notificationSubject; - this.webURL = webURL; + this.webURL = checkInsConfiguration.getWebAddress(); } public void setEmailSender(EmailSender emailSender) { diff --git a/server/src/main/java/com/objectcomputing/checkins/services/file/GoogleDriveAccessor.java b/server/src/main/java/com/objectcomputing/checkins/services/file/GoogleDriveAccessor.java index 5fcbab329e..f5696613f1 100644 --- a/server/src/main/java/com/objectcomputing/checkins/services/file/GoogleDriveAccessor.java +++ b/server/src/main/java/com/objectcomputing/checkins/services/file/GoogleDriveAccessor.java @@ -7,7 +7,7 @@ import com.google.api.client.json.gson.GsonFactory; import com.google.api.services.drive.Drive; import com.google.auth.http.HttpCredentialsAdapter; -import io.micronaut.context.annotation.Property; +import com.objectcomputing.checkins.configuration.CheckInsConfiguration; import jakarta.inject.Singleton; import java.io.IOException; @@ -21,10 +21,12 @@ public class GoogleDriveAccessor { private final String applicationName; private final GoogleAuthenticator authenticator; - public GoogleDriveAccessor(@Property(name = "check-ins.application.name") String applicationName, - GoogleAuthenticator authenticator) throws GeneralSecurityException, IOException { + public GoogleDriveAccessor( + GoogleAuthenticator authenticator, + CheckInsConfiguration checkInsConfiguration + ) throws GeneralSecurityException, IOException { this.httpTransport = GoogleNetHttpTransport.newTrustedTransport(); - this.applicationName = applicationName; + this.applicationName = checkInsConfiguration.getApplication().getName(); this.authenticator = authenticator; } diff --git a/server/src/main/java/com/objectcomputing/checkins/services/guild/GuildServicesImpl.java b/server/src/main/java/com/objectcomputing/checkins/services/guild/GuildServicesImpl.java index 602221c79b..575a173c6e 100644 --- a/server/src/main/java/com/objectcomputing/checkins/services/guild/GuildServicesImpl.java +++ b/server/src/main/java/com/objectcomputing/checkins/services/guild/GuildServicesImpl.java @@ -1,6 +1,7 @@ package com.objectcomputing.checkins.services.guild; import com.objectcomputing.checkins.Environments; +import com.objectcomputing.checkins.configuration.CheckInsConfiguration; import com.objectcomputing.checkins.exceptions.BadArgException; import com.objectcomputing.checkins.exceptions.NotFoundException; import com.objectcomputing.checkins.exceptions.PermissionException; @@ -14,7 +15,6 @@ import com.objectcomputing.checkins.services.memberprofile.MemberProfile; import com.objectcomputing.checkins.services.memberprofile.MemberProfileServices; import com.objectcomputing.checkins.services.memberprofile.currentuser.CurrentUserServices; -import io.micronaut.context.annotation.Property; import io.micronaut.context.env.Environment; import jakarta.inject.Named; import jakarta.inject.Singleton; @@ -38,8 +38,6 @@ @Singleton public class GuildServicesImpl implements GuildServices { - public static final String WEB_ADDRESS = "check-ins.web-address"; - private static final Logger LOG = LoggerFactory.getLogger(GuildServicesImpl.class);; private final GuildRepository guildsRepo; @@ -59,7 +57,7 @@ public GuildServicesImpl(GuildRepository guildsRepo, GuildMemberServices guildMemberServices, @Named(MailJetFactory.HTML_FORMAT) EmailSender emailSender, Environment environment, - @Property(name = WEB_ADDRESS) String webAddress + CheckInsConfiguration checkInsConfiguration ) { this.guildsRepo = guildsRepo; this.guildMemberRepo = guildMemberRepo; @@ -68,7 +66,7 @@ public GuildServicesImpl(GuildRepository guildsRepo, this.memberProfileServices = memberProfileServices; this.guildMemberServices = guildMemberServices; this.emailSender = emailSender; - this.webAddress = webAddress; + this.webAddress = checkInsConfiguration.getWebAddress(); this.environment = environment; } diff --git a/server/src/main/java/com/objectcomputing/checkins/services/guild/member/GuildMemberServicesImpl.java b/server/src/main/java/com/objectcomputing/checkins/services/guild/member/GuildMemberServicesImpl.java index 8e0c7e88bc..37a1f4101a 100644 --- a/server/src/main/java/com/objectcomputing/checkins/services/guild/member/GuildMemberServicesImpl.java +++ b/server/src/main/java/com/objectcomputing/checkins/services/guild/member/GuildMemberServicesImpl.java @@ -1,5 +1,6 @@ package com.objectcomputing.checkins.services.guild.member; +import com.objectcomputing.checkins.configuration.CheckInsConfiguration; import com.objectcomputing.checkins.exceptions.BadArgException; import com.objectcomputing.checkins.exceptions.NotFoundException; import com.objectcomputing.checkins.exceptions.PermissionException; @@ -10,7 +11,6 @@ import com.objectcomputing.checkins.services.memberprofile.MemberProfile; import com.objectcomputing.checkins.services.memberprofile.MemberProfileRepository; import com.objectcomputing.checkins.services.memberprofile.currentuser.CurrentUserServices; -import io.micronaut.context.annotation.Property; import io.micronaut.core.annotation.Nullable; import jakarta.inject.Named; import jakarta.inject.Singleton; @@ -28,8 +28,6 @@ @Singleton public class GuildMemberServicesImpl implements GuildMemberServices { - public static final String WEB_ADDRESS = "check-ins.web-address"; - private final GuildRepository guildRepo; private final GuildMemberRepository guildMemberRepo; private final MemberProfileRepository memberRepo; @@ -44,7 +42,7 @@ public GuildMemberServicesImpl(GuildRepository guildRepo, CurrentUserServices currentUserServices, GuildMemberHistoryRepository guildMemberHistoryRepository, @Named(MailJetFactory.HTML_FORMAT) EmailSender emailSender, - @Property(name = WEB_ADDRESS) String webAddress + CheckInsConfiguration checkInsConfiguration ) { this.guildRepo = guildRepo; this.guildMemberRepo = guildMemberRepo; @@ -52,7 +50,7 @@ public GuildMemberServicesImpl(GuildRepository guildRepo, this.currentUserServices = currentUserServices; this.guildMemberHistoryRepository=guildMemberHistoryRepository; this.emailSender = emailSender; - this.webAddress = webAddress; + this.webAddress = checkInsConfiguration.getWebAddress(); } public void setEmailSender(EmailSender emailSender) { diff --git a/server/src/main/java/com/objectcomputing/checkins/services/request_notifications/ServiceAccountVerifier.java b/server/src/main/java/com/objectcomputing/checkins/services/request_notifications/ServiceAccountVerifier.java index fd267adb06..30f713fe59 100644 --- a/server/src/main/java/com/objectcomputing/checkins/services/request_notifications/ServiceAccountVerifier.java +++ b/server/src/main/java/com/objectcomputing/checkins/services/request_notifications/ServiceAccountVerifier.java @@ -4,8 +4,8 @@ import com.google.api.client.googleapis.auth.oauth2.GoogleIdTokenVerifier; import com.google.api.client.http.javanet.NetHttpTransport; import com.google.api.client.json.gson.GsonFactory; +import com.objectcomputing.checkins.configuration.CheckInsConfiguration; import com.objectcomputing.checkins.exceptions.BadArgException; -import io.micronaut.context.annotation.Value; import jakarta.inject.Singleton; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -17,13 +17,14 @@ public class ServiceAccountVerifier { private static final Logger LOG = LoggerFactory.getLogger(ServiceAccountVerifier.class); - @Value("${check-ins.web-address}") - private String webAddress; - private final GoogleIdTokenVerifier verifier = - new GoogleIdTokenVerifier.Builder(new NetHttpTransport(), new GsonFactory()) - //one dev and one prod client id - .setAudience(Collections.singletonList(webAddress + "/services/feedback/daily-request-check")) - .build(); + private final GoogleIdTokenVerifier verifier; + + ServiceAccountVerifier(CheckInsConfiguration checkInsConfiguration) { + verifier = new GoogleIdTokenVerifier.Builder(new NetHttpTransport(), new GsonFactory()) + //one dev and one prod client id + .setAudience(Collections.singletonList(checkInsConfiguration.getWebAddress() + "/services/feedback/daily-request-check")) + .build(); + } public void verify(String authorization) { try { diff --git a/server/src/main/java/com/objectcomputing/checkins/services/reviews/ReviewPeriodServicesImpl.java b/server/src/main/java/com/objectcomputing/checkins/services/reviews/ReviewPeriodServicesImpl.java index 6f46e5ad3b..8edc2ad7e9 100644 --- a/server/src/main/java/com/objectcomputing/checkins/services/reviews/ReviewPeriodServicesImpl.java +++ b/server/src/main/java/com/objectcomputing/checkins/services/reviews/ReviewPeriodServicesImpl.java @@ -1,13 +1,13 @@ package com.objectcomputing.checkins.services.reviews; import com.objectcomputing.checkins.Environments; +import com.objectcomputing.checkins.configuration.CheckInsConfiguration; import com.objectcomputing.checkins.exceptions.AlreadyExistsException; import com.objectcomputing.checkins.exceptions.BadArgException; import com.objectcomputing.checkins.notifications.email.EmailSender; import com.objectcomputing.checkins.notifications.email.MailJetFactory; import com.objectcomputing.checkins.services.feedback_request.FeedbackRequestServices; import com.objectcomputing.checkins.services.memberprofile.MemberProfileRepository; -import io.micronaut.context.annotation.Property; import io.micronaut.context.env.Environment; import jakarta.inject.Named; import jakarta.inject.Singleton; @@ -36,16 +36,15 @@ class ReviewPeriodServicesImpl implements ReviewPeriodServices { private EmailSender emailSender; private final Environment environment; private final String webAddress; - public static final String WEB_ADDRESS = "check-ins.web-address"; - public ReviewPeriodServicesImpl(ReviewPeriodRepository reviewPeriodRepository, + ReviewPeriodServicesImpl(ReviewPeriodRepository reviewPeriodRepository, ReviewAssignmentRepository reviewAssignmentRepository, MemberProfileRepository memberProfileRepository, FeedbackRequestServices feedbackRequestServices, ReviewStatusTransitionValidator reviewStatusTransitionValidator, @Named(MailJetFactory.HTML_FORMAT) EmailSender emailSender, Environment environment, - @Property(name = WEB_ADDRESS) String webAddress) { + CheckInsConfiguration checkInsConfiguration) { this.reviewPeriodRepository = reviewPeriodRepository; this.reviewAssignmentRepository = reviewAssignmentRepository; this.memberProfileRepository = memberProfileRepository; @@ -53,7 +52,7 @@ public ReviewPeriodServicesImpl(ReviewPeriodRepository reviewPeriodRepository, this.reviewStatusTransitionValidator = reviewStatusTransitionValidator; this.emailSender = emailSender; this.environment = environment; - this.webAddress = webAddress; + this.webAddress = checkInsConfiguration.getWebAddress(); } void setEmailSender(EmailSender emailSender) { diff --git a/server/src/main/java/com/objectcomputing/checkins/util/googleapiaccess/GoogleAccessor.java b/server/src/main/java/com/objectcomputing/checkins/util/googleapiaccess/GoogleAccessor.java index 4672053689..3c9cb40029 100644 --- a/server/src/main/java/com/objectcomputing/checkins/util/googleapiaccess/GoogleAccessor.java +++ b/server/src/main/java/com/objectcomputing/checkins/util/googleapiaccess/GoogleAccessor.java @@ -8,11 +8,11 @@ import com.google.api.services.directory.Directory; import com.google.api.services.drive.Drive; import com.google.auth.http.HttpCredentialsAdapter; -import io.micronaut.context.annotation.Property; +import com.objectcomputing.checkins.configuration.CheckInsConfiguration; import io.micronaut.context.annotation.Requires; import io.micronaut.context.env.Environment; - import jakarta.inject.Singleton; + import java.io.IOException; import java.security.GeneralSecurityException; import java.util.Arrays; @@ -29,10 +29,12 @@ public class GoogleAccessor { private final GoogleAuthenticator authenticator; private final Environment environment; - public GoogleAccessor(@Property(name = "check-ins.application.name") String applicationName, - GoogleAuthenticator authenticator, - Environment environment) throws GeneralSecurityException, IOException { - this.applicationName = applicationName; + public GoogleAccessor( + GoogleAuthenticator authenticator, + Environment environment, + CheckInsConfiguration checkInsConfiguration + ) throws GeneralSecurityException, IOException { + this.applicationName = checkInsConfiguration.getApplication().getName(); this.authenticator = authenticator; this.environment = environment; } diff --git a/server/src/test/java/com/objectcomputing/checkins/configuration/CheckInsConfigurationTest.java b/server/src/test/java/com/objectcomputing/checkins/configuration/CheckInsConfigurationTest.java new file mode 100644 index 0000000000..8b7a1f56e7 --- /dev/null +++ b/server/src/test/java/com/objectcomputing/checkins/configuration/CheckInsConfigurationTest.java @@ -0,0 +1,61 @@ +package com.objectcomputing.checkins.configuration; + +import io.micronaut.context.ApplicationContext; +import io.micronaut.context.exceptions.BeanInstantiationException; +import org.junit.jupiter.api.Test; + +import java.util.Map; + +import static org.junit.jupiter.api.AssertionFailureBuilder.assertionFailure; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; + +class CheckInsConfigurationTest { + + @Test + void checkConfigurationGetsParsed() { + try (var ctx = ApplicationContext.run(Map.of( + "datasources.enabled", false, + "check-ins.web-address", "http://google.com", + "check-ins.application.name", "Fancy app" + ))) { + var config = ctx.getBean(CheckInsConfiguration.class); + assertEquals("http://google.com", config.getWebAddress()); + assertEquals("Fancy app", config.getApplication().getName()); + } + } + + @Test + void checkWebAddressGetsValidated() { + try (var ctx = ApplicationContext.run(Map.of( + "datasources.enabled", false, + "check-ins.web-address", "", + "check-ins.application.name", "Fancy app" + ))) { + var beanInstantiationException = assertThrows(BeanInstantiationException.class, () -> ctx.getBean(CheckInsConfiguration.class)); + assertContains("CheckInsConfiguration.webAddress - must not be blank", beanInstantiationException.getMessage()); + } + } + + @Test + void checkApplicationNameGetsValidated() { + try (var ctx = ApplicationContext.run(Map.of( + "datasources.enabled", false, + "check-ins.web-address", "http://google.com", + "check-ins.application.name", "" + ))) { + var beanInstantiationException = assertThrows(BeanInstantiationException.class, () -> ctx.getBean(CheckInsConfiguration.class)); + assertContains("CheckInsConfiguration$ApplicationConfig.name - must not be blank", beanInstantiationException.getMessage()); + } + } + + private void assertContains(String expected, String actual) { + if (!actual.contains(expected)) { + assertionFailure() + .message("Expected:\n'%s'\nto contain: '%s'".formatted(actual, expected)) + .expected(expected) + .actual(actual) + .buildAndThrow(); + } + } +} \ No newline at end of file diff --git a/server/src/test/java/com/objectcomputing/checkins/services/feedback_request/FeedbackRequestControllerTest.java b/server/src/test/java/com/objectcomputing/checkins/services/feedback_request/FeedbackRequestControllerTest.java index ce1baff719..8076b359f3 100644 --- a/server/src/test/java/com/objectcomputing/checkins/services/feedback_request/FeedbackRequestControllerTest.java +++ b/server/src/test/java/com/objectcomputing/checkins/services/feedback_request/FeedbackRequestControllerTest.java @@ -1,10 +1,15 @@ package com.objectcomputing.checkins.services.feedback_request; import com.fasterxml.jackson.databind.JsonNode; +import com.objectcomputing.checkins.configuration.CheckInsConfiguration; import com.objectcomputing.checkins.notifications.email.EmailSender; import com.objectcomputing.checkins.services.TestContainersSuite; import com.objectcomputing.checkins.services.feedback_template.FeedbackTemplate; -import com.objectcomputing.checkins.services.fixture.*; +import com.objectcomputing.checkins.services.fixture.FeedbackRequestFixture; +import com.objectcomputing.checkins.services.fixture.FeedbackTemplateFixture; +import com.objectcomputing.checkins.services.fixture.MemberProfileFixture; +import com.objectcomputing.checkins.services.fixture.ReviewPeriodFixture; +import com.objectcomputing.checkins.services.fixture.RoleFixture; import com.objectcomputing.checkins.services.memberprofile.MemberProfile; import com.objectcomputing.checkins.services.reviews.ReviewPeriod; import com.objectcomputing.checkins.services.role.RoleType; @@ -31,8 +36,13 @@ import static com.objectcomputing.checkins.services.memberprofile.MemberProfileTestUtil.mkMemberProfile; import static com.objectcomputing.checkins.services.validate.PermissionsValidation.NOT_AUTHORIZED_MSG; -import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.Mockito.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoInteractions; class FeedbackRequestControllerTest extends TestContainersSuite implements MemberProfileFixture, FeedbackTemplateFixture, FeedbackRequestFixture, RoleFixture, ReviewPeriodFixture { @@ -47,9 +57,8 @@ class FeedbackRequestControllerTest extends TestContainersSuite implements Membe @Property(name = FeedbackRequestServicesImpl.FEEDBACK_REQUEST_NOTIFICATION_SUBJECT) String notificationSubject; - @Property(name = "check-ins.web-address") String submitURL; - - @Property(name = FeedbackRequestServicesImpl.WEB_UI_URL) String emailUrl; + @Inject + CheckInsConfiguration checkInsConfiguration; @BeforeEach void resetMocks() { @@ -64,7 +73,7 @@ private String createEmailContent(FeedbackRequest storedRequest, UUID requestId, if (storedRequest.getDueDate() != null) { newContent += "

This request is due on " + storedRequest.getDueDate().getMonth() + " " + storedRequest.getDueDate().getDayOfMonth()+ ", " +storedRequest.getDueDate().getYear() + "."; } - newContent += "

Please go to your unique link at " + emailUrl + "/feedback/submit?request=" + requestId + " to complete this request.

"; + newContent += "

Please go to your unique link at " + checkInsConfiguration.getWebAddress() + "/feedback/submit?request=" + requestId + " to complete this request.

"; return newContent; } @@ -74,7 +83,7 @@ private String updateEmailContent(UUID requestId, MemberProfile creator, MemberP " has reopened the feedback request on " + requestee.getFirstName() + " " + requestee.getLastName() + " from you." + "You may make changes to your answers, but you will need to submit the form again when finished.

"; - newContent += "

Please go to your unique link at " + emailUrl + "/feedback/submit?request=" + requestId + " to complete this request.

"; + newContent += "

Please go to your unique link at " + checkInsConfiguration.getWebAddress() + "/feedback/submit?request=" + requestId + " to complete this request.

"; return newContent; } diff --git a/server/src/test/java/com/objectcomputing/checkins/services/feedback_request/FeedbackRequestTest.java b/server/src/test/java/com/objectcomputing/checkins/services/feedback_request/FeedbackRequestTest.java index 3d30055790..adedb13eae 100644 --- a/server/src/test/java/com/objectcomputing/checkins/services/feedback_request/FeedbackRequestTest.java +++ b/server/src/test/java/com/objectcomputing/checkins/services/feedback_request/FeedbackRequestTest.java @@ -1,5 +1,6 @@ package com.objectcomputing.checkins.services.feedback_request; +import com.objectcomputing.checkins.configuration.CheckInsConfiguration; import com.objectcomputing.checkins.exceptions.NotFoundException; import com.objectcomputing.checkins.exceptions.PermissionException; import com.objectcomputing.checkins.notifications.email.EmailSender; @@ -9,6 +10,7 @@ import com.objectcomputing.checkins.services.memberprofile.currentuser.CurrentUserServices; import com.objectcomputing.checkins.services.reviews.ReviewPeriod; import com.objectcomputing.checkins.services.reviews.ReviewPeriodRepository; +import jakarta.inject.Inject; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; @@ -36,6 +38,9 @@ class FeedbackRequestTest extends TestContainersSuite { private FeedbackRequestServicesImpl feedbackRequestServices; + @Inject + CheckInsConfiguration checkInsConfiguration; + @BeforeEach @Tag("mocked") void setUp() { @@ -46,9 +51,8 @@ void setUp() { reviewPeriodRepository = Mockito.mock(ReviewPeriodRepository.class); emailSender = Mockito.mock(EmailSender.class); - feedbackRequestServices = new FeedbackRequestServicesImpl(feedbackReqRepository, currentUserServices, - memberProfileServices, reviewPeriodRepository, emailSender, "DNC", "http://localhost:8080"); + memberProfileServices, reviewPeriodRepository, emailSender, "DNC", checkInsConfiguration); } @Test diff --git a/server/src/test/java/com/objectcomputing/checkins/services/guild/GuildTest.java b/server/src/test/java/com/objectcomputing/checkins/services/guild/GuildTest.java index 8ccbadc025..f5544edc8b 100644 --- a/server/src/test/java/com/objectcomputing/checkins/services/guild/GuildTest.java +++ b/server/src/test/java/com/objectcomputing/checkins/services/guild/GuildTest.java @@ -1,5 +1,6 @@ package com.objectcomputing.checkins.services.guild; +import com.objectcomputing.checkins.configuration.CheckInsConfiguration; import com.objectcomputing.checkins.exceptions.BadArgException; import com.objectcomputing.checkins.exceptions.PermissionException; import com.objectcomputing.checkins.notifications.email.EmailSender; @@ -20,17 +21,35 @@ import org.junit.jupiter.api.Test; import org.mockito.Mockito; -import java.util.*; - -import static org.junit.jupiter.api.Assertions.*; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Optional; +import java.util.Set; +import java.util.UUID; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.anyString; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; class GuildTest extends TestContainersSuite { @Inject private Validator validator; + @Inject + private CheckInsConfiguration checkInsConfiguration; + private GuildRepository guildsRepo; private GuildMemberRepository guildMemberRepo; private GuildMemberHistoryRepository guildMemberHistoryRepo; @@ -40,7 +59,6 @@ class GuildTest extends TestContainersSuite { private EmailSender emailSender; private Environment environment; private GuildServicesImpl guildServices; - private String webAddress; @BeforeEach @Tag("mocked") @@ -54,8 +72,6 @@ void setUp() { emailSender = Mockito.mock(EmailSender.class); environment = Mockito.mock(Environment.class); - webAddress = "http://example.com"; - guildServices = Mockito.spy(new GuildServicesImpl( guildsRepo, guildMemberRepo, @@ -65,7 +81,7 @@ void setUp() { guildMemberServices, emailSender, environment, - webAddress) + checkInsConfiguration) ); }