Skip to content

Commit

Permalink
chore: upgrade to spring boot 2.7.X
Browse files Browse the repository at this point in the history
  • Loading branch information
tkuzynow committed May 10, 2024
1 parent e19f74f commit 0dd1fa0
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 133 deletions.
24 changes: 3 additions & 21 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.15</version>
<version>2.7.14</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

Expand Down Expand Up @@ -135,8 +135,8 @@

<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.4.0</version>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.8.0</version>
</dependency>

<!-- Lombok dependencies -->
Expand Down Expand Up @@ -214,24 +214,6 @@
<version>${spring-security-test.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>powermock-module-junit4</artifactId>
<groupId>org.powermock</groupId>
<scope>test</scope>
<version>${powermock-module-junit4.version}</version>
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<artifactId>powermock-api-mockito2</artifactId>
<groupId>org.powermock</groupId>
<scope>test</scope>
<version>${powermock-api-mockito2.version}</version>
</dependency>
<dependency>
<groupId>de.flapdoodle.embed</groupId>
<artifactId>de.flapdoodle.embed.mongo</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,8 @@
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.powermock.reflect.Whitebox.setInternalState;

import de.caritas.cob.consultingtypeservice.api.exception.UnexpectedErrorException;
import de.caritas.cob.consultingtypeservice.api.service.LogService;
import de.caritas.cob.consultingtypeservice.schemas.model.ConsultingType;
import java.io.File;
import java.lang.reflect.Field;
Expand All @@ -24,33 +22,31 @@
import org.mockito.Mockito;
import org.mockito.junit.jupiter.MockitoExtension;
import org.slf4j.Logger;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.util.ReflectionUtils;

@ExtendWith(MockitoExtension.class)
public class ConsultingTypeLoaderTest {
class ConsultingTypeLoaderTest {

private static final String INIT_METHOD_NAME = "init";
private static final String CONSULTING_TYPES_FILE_PATH_NAME = "consultingTypesFilePath";

@InjectMocks ConsultingTypeLoader consultingTypeLoader;

@Mock(name = "tenantUnaware")
ConsultingTypeRepositoryService consultingTypeRepositoryService;
@Mock ConsultingTypeRepositoryService consultingTypeRepositoryService;

@Mock ConsultingTypeGroupRepository consultingTypeGroupRepository;
@Mock ConsultingTypeValidator consultingTypeValidator;
@Mock private Logger logger;

@BeforeEach
public void setup() {
setInternalState(LogService.class, "LOGGER", logger);
// we need this as mockito does not properly inject @Qualifier marked beans
setInternalState(
void setup() {
ReflectionTestUtils.setField(
consultingTypeLoader, "consultingTypeRepositoryService", consultingTypeRepositoryService);
}

@Test
public void test_Should_Fail_WhenMethodInitDoesNotHavePostConstructAnnotation()
void test_Should_Fail_WhenMethodInitDoesNotHavePostConstructAnnotation()
throws NoSuchMethodException, SecurityException {

PostConstruct annotation =
Expand All @@ -60,34 +56,29 @@ public void test_Should_Fail_WhenMethodInitDoesNotHavePostConstructAnnotation()
}

@Test
public void init_Should_ThrowUnexpectedErrorException_WhenInvalidConsultingTypeSettingsPath()
void init_Should_ThrowUnexpectedErrorException_WhenInvalidConsultingTypeSettingsPath()
throws NoSuchMethodException {

setConsultingTypesFilePath(BROKEN_FILE_PATH);
Method initMethod = getInitMethodFromConsultingTypeLoader();
assertThrows(
UnexpectedErrorException.class,
() -> ReflectionUtils.invokeMethod(initMethod, consultingTypeLoader));

verify(logger, times(1)).error(Mockito.anyString(), Mockito.anyString(), Mockito.any());
}

@Test
public void init_Should_ThrowUnexpectedErrorException_WhenBrokenConsultingTypeSettings()
void init_Should_ThrowUnexpectedErrorException_WhenBrokenConsultingTypeSettings()
throws NoSuchMethodException {

setConsultingTypesFilePath(SRC_TEST_RESOURCES_BROKEN_CONSULTING_TYPE_SETTINGS);
Method initMethod = getInitMethodFromConsultingTypeLoader();
assertThrows(
UnexpectedErrorException.class,
() -> ReflectionUtils.invokeMethod(initMethod, consultingTypeLoader));

verify(logger, times(1))
.error(Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString());
}

@Test
public void init_Should_AddConsultingTypesToRepository() throws NoSuchMethodException {
void init_Should_AddConsultingTypesToRepository() throws NoSuchMethodException {

setConsultingTypesFilePath(SRC_TEST_RESOURCES_CONSULTING_TYPE_SETTINGS);
ReflectionUtils.invokeMethod(getInitMethodFromConsultingTypeLoader(), consultingTypeLoader);
Expand All @@ -96,7 +87,7 @@ public void init_Should_AddConsultingTypesToRepository() throws NoSuchMethodExce
}

@Test
public void init_Should_ValidateConsultingTypeSettings() throws NoSuchMethodException {
void init_Should_ValidateConsultingTypeSettings() throws NoSuchMethodException {

setConsultingTypesFilePath(SRC_TEST_RESOURCES_CONSULTING_TYPE_SETTINGS);
ReflectionUtils.invokeMethod(getInitMethodFromConsultingTypeLoader(), consultingTypeLoader);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,26 +5,21 @@
import static de.caritas.cob.consultingtypeservice.testHelper.TestConstants.FILE_INVALID_CONSULTING_TYPE;
import static de.caritas.cob.consultingtypeservice.testHelper.TestConstants.FILE_NULL_VALUE_CONSULTING_TYPE;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoInteractions;
import static org.powermock.reflect.Whitebox.setInternalState;
import static org.springframework.test.util.ReflectionTestUtils.setField;

import de.caritas.cob.consultingtypeservice.api.exception.UnexpectedErrorException;
import de.caritas.cob.consultingtypeservice.api.service.LogService;
import java.io.File;
import java.util.Objects;
import org.assertj.core.api.Fail;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.jupiter.MockitoExtension;
import org.slf4j.Logger;

@ExtendWith(MockitoExtension.class)
public class ConsultingTypeValidatorTest {
class ConsultingTypeValidatorTest {

private static final String FIELD_NAME_CONSULTING_TYPE_JSON_SCHEMA_FILE =
"consultingTypeJsonSchemaFile";
Expand All @@ -34,8 +29,7 @@ public class ConsultingTypeValidatorTest {
@Mock private Logger logger;

@BeforeEach
public void setup() {
setInternalState(LogService.class, "LOGGER", logger);
void setup() {
consultingTypeValidator = new ConsultingTypeValidator();
setField(
consultingTypeValidator,
Expand All @@ -44,7 +38,7 @@ public void setup() {
}

@Test
public void
void
validateConsultingTypeConfigurationJsonFile_Should_ThrowUnexpectedErrorException_WhenJsonViolatesSchema() {

File invalidConsultingSettingsFile =
Expand All @@ -58,11 +52,10 @@ public void setup() {
() ->
consultingTypeValidator.validateConsultingTypeConfigurationJsonFile(
invalidConsultingSettingsFile));
verify(logger, times(1)).error(Mockito.anyString(), Mockito.anyString(), Mockito.any());
}

@Test
public void
void
validateConsultingTypeConfigurationJsonFile_Should_ThrowUnexpectedErrorException_WhenJsonFileCouldNotBeParsed() {

File invalidConsultingSettingsFile =
Expand All @@ -76,22 +69,22 @@ public void setup() {
() ->
consultingTypeValidator.validateConsultingTypeConfigurationJsonFile(
invalidConsultingSettingsFile));
verify(logger, times(1)).error(Mockito.anyString(), Mockito.anyString(), Mockito.any());
}

@Test
public void
validateConsultingTypeConfigurationJsonFile_ShouldNot_ThrowException_For_NullValues() {
void validateConsultingTypeConfigurationJsonFile_ShouldNot_ThrowException_For_NullValues() {

File invalidConsultingSettingsFile =
new File(
Objects.requireNonNull(
ConsultingTypeValidatorTest.class.getResource(FILE_NULL_VALUE_CONSULTING_TYPE))
.getFile());

consultingTypeValidator.validateConsultingTypeConfigurationJsonFile(
invalidConsultingSettingsFile);

verifyNoInteractions(logger);
try {
consultingTypeValidator.validateConsultingTypeConfigurationJsonFile(
invalidConsultingSettingsFile);
} catch (Exception e) {
Fail.fail("No exception should be thrown");
}
}
}

This file was deleted.

58 changes: 18 additions & 40 deletions src/test/resources/database/TopicDatabase.sql
Original file line number Diff line number Diff line change
@@ -1,55 +1,33 @@
DROP TABLE IF EXISTS `topic`;
drop table IF EXISTS `topic`;

CREATE TABLE IF NOT EXISTS `topic`
(
`id` bigint
(
21
) NOT NULL,
`tenant_id` bigint
(
21
) NULL,
`name` varchar
(
100
) NOT NULL,
`description` varchar
(
100
) NULL,
`status` varchar
(
20
),
`create_date` datetime NOT NULL,
`update_date` datetime NULL,
`internal_identifier` varchar
(
50
) NULL,
PRIMARY KEY
(
`id`
)
);
(
`id` BIGINT NOT NULL,
`tenant_id` BIGINT NULL,
`name` VARCHAR (100) NOT NULL,
`description` VARCHAR (100) NULL,
`status` VARCHAR (20),
`create_date` TIMESTAMP NOT NULL,
`update_date` TIMESTAMP NULL,
`internal_identifier` VARCHAR (50) NULL,
PRIMARY KEY (`id`)
);


ALTER TABLE `topic`
alter table `topic`
ADD CONSTRAINT IF NOT EXISTS unique_name_per_tenant UNIQUE (name, tenant_id);

CREATE SEQUENCE IF NOT EXISTS sequence_topic
create sequence IF NOT EXISTS sequence_topic
INCREMENT BY 1
START WITH 100000;
START with 100000;

INSERT INTO TOPIC (`id`, `tenant_id`, `name`, `description`, `status`, `create_date`)
insert into TOPIC (`id`, `tenant_id`, `name`, `description`, `status`, `create_date`)
VALUES (1, '1', '{"de" : "de an active topic", "en": "en an active topic"}',
'{"de" : "de description", "en": "en description"}', 'ACTIVE',
'2022-06-02');

INSERT INTO TOPIC (`id`, `tenant_id`, `name`, `description`, `status`, `create_date`)
insert into TOPIC (`id`, `tenant_id`, `name`, `description`, `status`, `create_date`)
VALUES (2, '1', '{"de" : "de not an active topic", "en": "en not an active topic"}',
'{"de" : "de description", "en": "en description"}', 'INACTIVE', '2022-06-02');

INSERT INTO TOPIC (`id`, `tenant_id`, `name`, `description`, `status`, `create_date`)
insert into TOPIC (`id`, `tenant_id`, `name`, `description`, `status`, `create_date`)
VALUES (3, '2', '{"de" : "de another topic"}', '{"de" : "de description"}', 'ACTIVE', '2022-06-02');

0 comments on commit 0dd1fa0

Please sign in to comment.