package de.saring.sportstracker.storage; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import java.io.IOException; import java.nio.file.Files; import java.time.LocalDateTime; import javafx.scene.paint.Color; import org.junit.After; import org.junit.Before; import org.junit.Test; import de.saring.sportstracker.core.STException; import de.saring.sportstracker.data.Equipment; import de.saring.sportstracker.data.Exercise; import de.saring.sportstracker.data.Note; import de.saring.sportstracker.data.SportSubType; import de.saring.sportstracker.data.SportType; import de.saring.sportstracker.data.Weight; import de.saring.sportstracker.gui.STContext; import de.saring.sportstracker.gui.STDocument; import de.saring.sportstracker.gui.STDocumentImpl; /** * Basic unit tests of the SQLiteExporter class. * * @author Stefan Saring */ public class SQLiteExporterTest { private STDocument document; private SQLiteExporter exporter; @Before public void setUp() throws IOException { STContext contextMock = mock(STContext.class); document = new STDocumentImpl(contextMock, null); fillDocumentWithTestData(); exporter = new SQLiteExporter(document); } @After public void tearDown() throws IOException { Files.deleteIfExists(exporter.getDatabasePath()); } /** * Test of method exportToSqlite(): The document filled with some test data must be exported successfully to a * SQLite database. The test verifies the creation of the database without errors, the content will not be checked. * * @throws STException */ @Test public void testExportToSqlite() throws STException { exporter.exportToSqlite(); assertTrue(Files.exists(exporter.getDatabasePath())); } private void fillDocumentWithTestData() { SportSubType sportSubType = new SportSubType(1); sportSubType.setName("MTB"); Equipment equipment = new Equipment(1); equipment.setName("Bike 1"); SportType sportType = new SportType(1); sportType.setName("Cycling"); sportType.setColor(Color.BLUE); sportType.getSportSubTypeList().set(sportSubType); sportType.getEquipmentList().set(equipment); Exercise exercise = new Exercise(1); exercise.setDateTime(LocalDateTime.now()); exercise.setSportType(sportType); exercise.setSportSubType(sportSubType); exercise.setIntensity(Exercise.IntensityType.HIGH); exercise.setDistance(42); exercise.setAvgSpeed(20); exercise.setDuration(7600); exercise.setAscent(321); exercise.setHrmFile("FooBar.fit"); exercise.setComment("Foo Bar"); Note note = new Note(1); note.setDateTime(LocalDateTime.now()); note.setComment("Some comment..."); Weight weight = new Weight(1); weight.setValue(123.4f); weight.setDateTime(LocalDateTime.now()); weight.setComment("Some other comment..."); document.getSportTypeList().set(sportType); document.getExerciseList().set(exercise); document.getNoteList().set(note); document.getWeightList().set(weight); } }