package eu.play_project.dcep.distributedetalis.test;
import java.io.File;
import java.io.IOException;
import java.util.UUID;
import junit.framework.Assert;
import org.junit.Test;
import eu.play_project.dcep.distributedetalis.persistence.Persistence;
import eu.play_project.dcep.distributedetalis.persistence.PersistenceException;
import eu.play_project.dcep.distributedetalis.persistence.Sqlite;
import eu.play_project.play_commons.constants.Stream;
import fr.inria.eventcloud.utils.UniqueId;
public class PersistenceTests {
/**
* Test the persistence mechanism on a temporary file in order not to
* interefere with any productive DCEP instance running on the test machine.
*/
@Test
public void testSqlite() throws PersistenceException, IOException {
File dbFile = new File(File.createTempFile("play-dcep", "test") + File.pathSeparator + "dcep.db");
dbFile.deleteOnExit();
Persistence db = new Sqlite(dbFile);
db.deleteAllSubscriptions();
Assert.assertTrue(db.getSubscriptions().size() == 0);
db.storeSubscription(Stream.TwitterFeed.getTopicUri(), UniqueId.encode(UUID.randomUUID()));
Assert.assertTrue(db.getSubscriptions().size() == 1);
db.deleteAllSubscriptions();
Assert.assertTrue(db.getSubscriptions().size() == 0);
dbFile.delete();
}
}