package io.vivarium.persistence;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.LinkedList;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import com.johnuckele.vtest.Tester;
import io.vivarium.db.DatabaseUtils;
import io.vivarium.db.TestDatabase;
import io.vivarium.test.DatabaseTest;
import io.vivarium.util.UUID;
public class JobPersistenceTest
{
@Test
@Category(DatabaseTest.class)
public void testPersistAndFetch() throws SQLException
{
TestDatabase.initializeTestDatabase();
try (Connection databaseConnection = DatabaseUtils.createDatabaseConnection(TestDatabase.TEST_DATABASE_NAME,
TestDatabase.TEST_DATABASE_USER, TestDatabase.TEST_DATABASE_PASSWORD))
{
UUID id = UUID.randomUUID();
JobModel initial = new RunSimulationJobModel(id, JobStatus.BLOCKED, 0, null, null, null, 0,
new LinkedList<>(), new LinkedList<>(), new LinkedList<>());
initial.persistToDatabase(databaseConnection);
JobModel fetched = JobModel.getFromDatabase(databaseConnection, id).get();
Tester.isTrue("The resource we fetched should be the same as the job we started with: ",
fetched.equals(initial));
}
}
}