package org.cagrid.dorian.common;
import junit.framework.TestCase;
import org.cagrid.dorian.common.Metadata;
import org.cagrid.dorian.service.MetadataManager;
import org.cagrid.gaards.dorian.test.Utils;
import org.cagrid.tools.database.Database;
/**
* @author <A href="mailto:langella@bmi.osu.edu">Stephen Langella </A>
* @author <A href="mailto:oster@bmi.osu.edu">Scott Oster </A>
* @author <A href="mailto:hastings@bmi.osu.edu">Shannon Hastings </A>
* @version $Id: ArgumentManagerTable.java,v 1.2 2004/10/15 16:35:16 langella
* Exp $
*/
public class TestMetadataManager extends TestCase {
private static final String TABLE = "test_metadata";
private Database db;
public void testDelete() {
MetadataManager mm = new MetadataManager(db, TABLE);
try {
mm.clearDatabase();
// mm.destroy();
int count = 20;
// Test Insert;
for (int i = 0; i < count; i++) {
Metadata data = new Metadata();
data.setName("name" + i);
data.setValue("value" + i);
data.setDescription("description" + i);
mm.insert(data);
Metadata out = mm.get(data.getName());
assertNotNull(out);
assertEquals(data, out);
}
// Test delete
for (int i = 0; i < count; i++) {
String n = "name" + count;
assertNull(mm.get(n));
}
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
} finally {
try {
mm.clearDatabase();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void testUpdate() {
MetadataManager mm = new MetadataManager(db, TABLE);
try {
mm.clearDatabase();
int count = 20;
// Test Insert;
for (int i = 0; i < count; i++) {
Metadata data = new Metadata();
data.setName("name" + i);
data.setValue("value" + i);
data.setDescription("description" + i);
mm.insert(data);
Metadata out = mm.get(data.getName());
assertNotNull(out);
assertEquals(data, out);
}
// Test update
for (int i = 0; i < count; i++) {
Metadata data = new Metadata();
data.setName("name" + i);
data.setValue("changedvalue" + i);
data.setDescription("description" + i);
mm.update(data);
Metadata out = mm.get(data.getName());
assertNotNull(out);
assertEquals(data, out);
}
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
} finally {
try {
mm.clearDatabase();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void testInsert() {
MetadataManager mm = new MetadataManager(db, TABLE);
try {
mm.clearDatabase();
int count = 20;
// Test Insert;
for (int i = 0; i < count; i++) {
Metadata data = new Metadata();
data.setName("name" + i);
data.setValue("value" + i);
data.setDescription("description" + i);
mm.insert(data);
Metadata out = mm.get(data.getName());
assertNotNull(out);
assertEquals(data, out);
}
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
} finally {
try {
mm.clearDatabase();
} catch (Exception e) {
e.printStackTrace();
}
}
}
protected void setUp() throws Exception {
super.setUp();
try {
db = Utils.getDB();
assertEquals(0, db.getUsedConnectionCount());
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
}
}
protected void tearDown() throws Exception {
super.setUp();
try {
assertEquals(0, db.getUsedConnectionCount());
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
}
}
}