84 lines
3.5 KiB
Java
84 lines
3.5 KiB
Java
package testdata;
|
|
|
|
import de.accso.flexinale.FlexinaleDistributedApplicationTestdata;
|
|
import de.accso.flexinale.common.application.PersistMode;
|
|
import de.accso.flexinale.common.shared_kernel.DoNotCheckInArchitectureTests;
|
|
import de.accso.flexinale.security.infrastructure.persistence.BenutzerDao;
|
|
import de.accso.flexinale.security.infrastructure.persistence.BenutzerUploadService;
|
|
import org.junit.jupiter.api.Nested;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.boot.test.context.SpringBootTest;
|
|
import org.springframework.test.annotation.DirtiesContext;
|
|
import org.springframework.test.context.ActiveProfiles;
|
|
import org.springframework.test.context.DynamicPropertyRegistry;
|
|
import org.springframework.test.context.DynamicPropertySource;
|
|
|
|
import java.io.IOException;
|
|
|
|
import static org.assertj.core.api.Assertions.assertThat;
|
|
import static testdata.DatabaseConfig.*;
|
|
|
|
@DoNotCheckInArchitectureTests
|
|
@SuppressWarnings("NewClassNamingConvention")
|
|
public class BenutzerTestDataLoader {
|
|
private static final String xlsDataFile = "/testdata/TestDataBenutzer.xlsx";
|
|
|
|
@Nested
|
|
@SpringBootTest(classes = {FlexinaleDistributedApplicationTestdata.class})
|
|
@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_CLASS)
|
|
@ActiveProfiles({ "testdata", "testdata-backoffice" })
|
|
public class BenutzerTestDataLoaderForBackoffice {
|
|
@Autowired
|
|
private BenutzerUploadService benutzerUploadService;
|
|
|
|
@Autowired
|
|
private BenutzerDao benutzerDao;
|
|
|
|
@DynamicPropertySource // @TestPropertySource would work as well
|
|
static void registerDynamicProperties(DynamicPropertyRegistry registry) {
|
|
registry.add(dataBaseUrlKey, () -> databaseBackoffice);
|
|
registry.add(dataBaseDDLAutoKey, () -> dataBaseDDLAuto_Update);
|
|
}
|
|
|
|
@Test
|
|
public void loadBenutzerTestDataAndPersistToDatabase() throws IOException {
|
|
internal_loadBenutzerTestDataAndPersistToDatabase(benutzerUploadService, benutzerDao);
|
|
}
|
|
}
|
|
|
|
@Nested
|
|
@SpringBootTest(classes = {FlexinaleDistributedApplicationTestdata.class})
|
|
@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_CLASS)
|
|
@ActiveProfiles({ "testdata", "testdata-besucherportal" })
|
|
public class BenutzerTestDataLoaderForBesucherportal {
|
|
@Autowired
|
|
private BenutzerUploadService benutzerUploadService;
|
|
|
|
@Autowired
|
|
private BenutzerDao benutzerDao;
|
|
|
|
@DynamicPropertySource // @TestPropertySource would work as well
|
|
static void registerDynamicProperties(DynamicPropertyRegistry registry) {
|
|
registry.add(dataBaseUrlKey, () -> databaseBesucherportal);
|
|
registry.add(dataBaseDDLAutoKey, () -> dataBaseDDLAuto_Update);
|
|
}
|
|
|
|
@Test
|
|
public void loadBenutzerTestDataAndPersistToDatabase() throws IOException {
|
|
internal_loadBenutzerTestDataAndPersistToDatabase(benutzerUploadService, benutzerDao);
|
|
}
|
|
}
|
|
|
|
static void internal_loadBenutzerTestDataAndPersistToDatabase(final BenutzerUploadService benutzerUploadService,
|
|
final BenutzerDao benutzerDao) throws IOException {
|
|
// arrange
|
|
// act
|
|
int numPersistedBesucher = benutzerUploadService.
|
|
loadDataFromExcelSheetAndPersist(xlsDataFile, PersistMode.UPDATE);
|
|
|
|
// assert
|
|
assertThat(benutzerDao.findAll()).hasSizeGreaterThanOrEqualTo(11);
|
|
assertThat(numPersistedBesucher).isEqualTo(11);
|
|
}
|
|
}
|