From e1c4afe5e8b7c4eeacc77b93045fdd927234e89d Mon Sep 17 00:00:00 2001 From: tobias <thinkdifferent055@gmail.com> Date: Tue, 1 Dec 2020 20:51:30 +0100 Subject: [PATCH] Changed test execution runner for unit tests, load localization in prepare --- .../integration/DateRepairTest.java | 2 + .../unit/CategoryServiceTest.java | 18 ++++---- .../unit/TransactionServiceDatabaseTest.java | 17 +------ .../unit/TransactionServiceTest.java | 12 +++-- .../unit/helpers/LocalizationHelpers.java | 44 +++++++++++++++++++ .../unit/helpers/LocalizedTest.java | 19 ++++++++ 6 files changed, 83 insertions(+), 29 deletions(-) create mode 100644 src/test/java/de/deadlocker8/budgetmaster/unit/helpers/LocalizationHelpers.java create mode 100644 src/test/java/de/deadlocker8/budgetmaster/unit/helpers/LocalizedTest.java diff --git a/src/test/java/de/deadlocker8/budgetmaster/integration/DateRepairTest.java b/src/test/java/de/deadlocker8/budgetmaster/integration/DateRepairTest.java index 828541c04..b665d072c 100644 --- a/src/test/java/de/deadlocker8/budgetmaster/integration/DateRepairTest.java +++ b/src/test/java/de/deadlocker8/budgetmaster/integration/DateRepairTest.java @@ -1,6 +1,7 @@ package de.deadlocker8.budgetmaster.integration; import de.deadlocker8.budgetmaster.Main; +import de.deadlocker8.budgetmaster.integration.helpers.SeleniumTest; import de.deadlocker8.budgetmaster.tags.Tag; import de.deadlocker8.budgetmaster.transactions.Transaction; import de.deadlocker8.budgetmaster.transactions.TransactionRepository; @@ -31,6 +32,7 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest(classes = Main.class) @Import(DateRepairTest.TestDatabaseConfiguration.class) @ActiveProfiles("test") +@SeleniumTest @Transactional public class DateRepairTest { diff --git a/src/test/java/de/deadlocker8/budgetmaster/unit/CategoryServiceTest.java b/src/test/java/de/deadlocker8/budgetmaster/unit/CategoryServiceTest.java index 635b44ba1..be0d6e228 100644 --- a/src/test/java/de/deadlocker8/budgetmaster/unit/CategoryServiceTest.java +++ b/src/test/java/de/deadlocker8/budgetmaster/unit/CategoryServiceTest.java @@ -4,33 +4,31 @@ import de.deadlocker8.budgetmaster.categories.Category; import de.deadlocker8.budgetmaster.categories.CategoryRepository; import de.deadlocker8.budgetmaster.categories.CategoryService; import de.deadlocker8.budgetmaster.categories.CategoryType; +import de.deadlocker8.budgetmaster.unit.helpers.LocalizedTest; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; +import org.mockito.InjectMocks; +import org.mockito.Mock; import org.mockito.Mockito; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import java.util.ArrayList; import java.util.List; import java.util.Optional; import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.BDDMockito.given; -@RunWith(SpringRunner.class) -@SpringBootTest +@RunWith(SpringJUnit4ClassRunner.class) +@LocalizedTest public class CategoryServiceTest { private static final Category CATEGORY_NONE = new Category("No Category", "#FFFFFF", CategoryType.NONE); private static final Category CATEGORY_REST = new Category("Rest", "#FFFF00", CategoryType.REST); - @MockBean(CategoryRepository.class) + @Mock private CategoryRepository categoryRepository; - @Autowired + @InjectMocks private CategoryService categoryService; @Test diff --git a/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionServiceDatabaseTest.java b/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionServiceDatabaseTest.java index 4daf8e273..6bbc70088 100644 --- a/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionServiceDatabaseTest.java +++ b/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionServiceDatabaseTest.java @@ -1,38 +1,25 @@ package de.deadlocker8.budgetmaster.unit; import de.deadlocker8.budgetmaster.Main; -import de.deadlocker8.budgetmaster.accounts.Account; import de.deadlocker8.budgetmaster.accounts.AccountService; import de.deadlocker8.budgetmaster.accounts.AccountType; -import de.deadlocker8.budgetmaster.categories.Category; -import de.deadlocker8.budgetmaster.categories.CategoryType; import de.deadlocker8.budgetmaster.filter.FilterConfiguration; -import de.deadlocker8.budgetmaster.repeating.RepeatingOption; -import de.deadlocker8.budgetmaster.repeating.RepeatingOptionRepository; -import de.deadlocker8.budgetmaster.repeating.endoption.RepeatingEndAfterXTimes; -import de.deadlocker8.budgetmaster.repeating.modifier.RepeatingModifierDays; +import de.deadlocker8.budgetmaster.integration.helpers.SeleniumTest; import de.deadlocker8.budgetmaster.transactions.Transaction; -import de.deadlocker8.budgetmaster.transactions.TransactionRepository; import de.deadlocker8.budgetmaster.transactions.TransactionService; -import de.deadlocker8.budgetmaster.transactions.TransactionSpecifications; -import de.deadlocker8.budgetmaster.utils.eventlistener.DateRepair; import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormat; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; -import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.TestConfiguration; -import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Primary; import org.springframework.core.io.Resource; -import org.springframework.data.jpa.domain.Specification; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; @@ -40,7 +27,6 @@ import org.springframework.transaction.annotation.Transactional; import javax.sql.DataSource; import java.io.IOException; import java.util.List; -import java.util.Optional; import static org.assertj.core.api.Assertions.assertThat; @@ -48,6 +34,7 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest(classes = Main.class) @Import(TransactionServiceDatabaseTest.TestDatabaseConfiguration.class) @ActiveProfiles("test") +@SeleniumTest @Transactional public class TransactionServiceDatabaseTest { diff --git a/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionServiceTest.java b/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionServiceTest.java index 41f45297e..c25c24357 100644 --- a/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionServiceTest.java +++ b/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionServiceTest.java @@ -7,20 +7,24 @@ import de.deadlocker8.budgetmaster.categories.CategoryType; import de.deadlocker8.budgetmaster.transactions.Transaction; import de.deadlocker8.budgetmaster.transactions.TransactionRepository; import de.deadlocker8.budgetmaster.transactions.TransactionService; +import de.deadlocker8.budgetmaster.unit.helpers.LocalizedTest; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.junit4.SpringRunner; import java.util.Optional; import static org.assertj.core.api.Assertions.assertThat; -@RunWith(SpringRunner.class) -@SpringBootTest +@RunWith(SpringJUnit4ClassRunner.class) +@LocalizedTest public class TransactionServiceTest { private static final Category CATEGORY_REST = new Category("Rest", "#FFFF00", CategoryType.REST); @@ -28,10 +32,10 @@ public class TransactionServiceTest private static final Account ACCOUNT = new Account("MyAccount", AccountType.CUSTOM); - @MockBean(TransactionRepository.class) + @Mock private TransactionRepository transactionRepository; - @Autowired + @InjectMocks private TransactionService transactionService; @Test diff --git a/src/test/java/de/deadlocker8/budgetmaster/unit/helpers/LocalizationHelpers.java b/src/test/java/de/deadlocker8/budgetmaster/unit/helpers/LocalizationHelpers.java new file mode 100644 index 000000000..a78dbae01 --- /dev/null +++ b/src/test/java/de/deadlocker8/budgetmaster/unit/helpers/LocalizationHelpers.java @@ -0,0 +1,44 @@ +package de.deadlocker8.budgetmaster.unit.helpers; + +import de.thecodelabs.utils.util.Localization; +import de.thecodelabs.utils.util.localization.LocalizationMessageFormatter; +import de.thecodelabs.utils.util.localization.formatter.JavaMessageFormatter; +import org.springframework.test.context.TestContext; +import org.springframework.test.context.support.AbstractTestExecutionListener; + +import java.util.Locale; + +public class LocalizationHelpers extends AbstractTestExecutionListener +{ + @Override + public void beforeTestClass(TestContext testContext) throws Exception + { + Localization.setDelegate(new Localization.LocalizationDelegate() + { + @Override + public Locale getLocale() + { + return Locale.ENGLISH; + } + + @Override + public String[] getBaseResources() + { + return new String[]{"languages/base", "languages/news"}; + } + + @Override + public LocalizationMessageFormatter messageFormatter() + { + return new JavaMessageFormatter(); + } + + @Override + public boolean useMultipleResourceBundles() + { + return true; + } + }); + Localization.load(); + } +} diff --git a/src/test/java/de/deadlocker8/budgetmaster/unit/helpers/LocalizedTest.java b/src/test/java/de/deadlocker8/budgetmaster/unit/helpers/LocalizedTest.java new file mode 100644 index 000000000..78cebf699 --- /dev/null +++ b/src/test/java/de/deadlocker8/budgetmaster/unit/helpers/LocalizedTest.java @@ -0,0 +1,19 @@ +package de.deadlocker8.budgetmaster.unit.helpers; + +import org.springframework.test.context.TestExecutionListeners; + +import java.lang.annotation.*; + +import static org.springframework.test.context.TestExecutionListeners.MergeMode.MERGE_WITH_DEFAULTS; + +@Documented +@Inherited +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +@TestExecutionListeners( + listeners = LocalizationHelpers.class, + mergeMode = MERGE_WITH_DEFAULTS) +public @interface LocalizedTest +{ + +} -- GitLab