package testdata;

import de.accso.flexinale.FlexinaleModulith2ComponentsApplication;
import de.accso.flexinale.backoffice.domain.dao.FilmDao;
import de.accso.flexinale.backoffice.domain.dao.KinoDao;
import de.accso.flexinale.backoffice.domain.dao.VorfuehrungDao;
import de.accso.flexinale.common.shared_kernel.DoNotCheckInArchitectureTests;
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;

@SpringBootTest(classes = {FlexinaleModulith2ComponentsApplication.class})
@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_CLASS)
@DoNotCheckInArchitectureTests
@SuppressWarnings("NewClassNamingConvention")
class FKKsVDatabaseCleaner {

    @Autowired
    private KinoDao kinoDao;

    @Autowired
    private FilmDao filmDao;

    @Autowired
    private VorfuehrungDao vorfuehrungDao;

    @Test
    void deleteAllFilmeAndKinosAndVorfuehrungenFromDatabase() {
        internal_deleteAllFilmeAndKinosAndVorfuehrungenFromDatabase(kinoDao, filmDao, vorfuehrungDao);
    }

    static void internal_deleteAllFilmeAndKinosAndVorfuehrungenFromDatabase(final KinoDao kinoDao,
                                                                            final FilmDao filmDao,
                                                                            final VorfuehrungDao vorfuehrungDao) {
        vorfuehrungDao.deleteAll();
        filmDao.deleteAll();
        kinoDao.deleteAll();
    }
}
