package io.vivarium.persistence; import java.sql.Connection; import java.sql.SQLException; 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.serialization.JSONConverter; import io.vivarium.serialization.VivariumObjectCollection; import io.vivarium.test.DatabaseTest; import io.vivarium.util.UUID; import io.vivarium.util.Version; public class ResourcePersistenceTest { @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(); VivariumObjectCollection collection = new VivariumObjectCollection(); ResourceModel initial = new ResourceModel(id, JSONConverter.serializerToJSONString(collection), Version.FILE_FORMAT_VERSION); initial.persistToDatabase(databaseConnection); ResourceModel fetched = ResourceModel.getFromDatabase(databaseConnection, id).get(); Tester.isTrue("The resource we fetched should be the same as the worker we started with: ", fetched.equals(initial)); } } }