package io.vivarium.persistence;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Timestamp;
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;
import io.vivarium.util.Version;
public class WorkerPersistenceTest
{
@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();
WorkerModel initial = new WorkerModel(id, new long[] { 100, 150, 200, 210 }, true,
new Timestamp(System.currentTimeMillis()), Version.FILE_FORMAT_VERSION, Version.CURRENT_VERSION);
initial.persistToDatabase(databaseConnection);
WorkerModel fetched = WorkerModel.getFromDatabase(databaseConnection, id).get();
Tester.isTrue("The worker we fetched should be the same as the worker we started with: ",
fetched.equals(initial));
}
}
}