import junit.framework.TestCase;
public class DBRecordTest extends TestCase {
private DBRecord record;
private String record_descriptor;
@Override
protected void setUp() throws Exception {
super.setUp();
record_descriptor = "name:Alien, stars: Yaphet Kotto, stars:Sigourney Weaver, stars: Harry Dean Stanton";
record = new DBRecord(record_descriptor);
}
public void testEasyRecordCreation() {
assertEquals("name:Alien, stars:Yaphet Kotto, stars:Sigourney Weaver, stars:Harry Dean Stanton", record.toString());
}
public void testEmptyRecordCreation() {
DBRecord empty = new DBRecord("");
}
public void testRecordContains() {
assertTrue(record.containsBinding(new DBBinding("name", "Alien")));
assertTrue(record.containsBinding(new DBBinding("name", "alien")));
assertTrue(record.containsBinding(new DBBinding("name", "lie")));
assertTrue(record.containsBinding(new DBBinding("stars", "Sigourney Weaver")));
assertFalse(record.containsBinding(new DBBinding("name", "Aliens")));
assertFalse(record.containsBinding(new DBBinding("names", "Alien")));
}
public void testRecordContainsAllBindings() {
DBRecord query = new DBRecord("name:Alien, stars: Yaphet Kotto, stars:Sigourney Weaver, stars: Harry Dean Stanton");
assertTrue(record.containsAllBindingsInRecord(query));
assertTrue(record.queryRecord(query, DBRecord.queryType.AND));
assertTrue(record.queryRecord("name:Alien, stars: Yaphet Kotto, stars:Sigourney Weaver, stars: Harry Dean Stanton", DBRecord.queryType.AND));
query = new DBRecord("name:Ali, stars: Yaphet, stars:Weaver, stars:Dean");
assertTrue(record.containsAllBindingsInRecord(query));
assertFalse(query.containsAllBindingsInRecord(record));
query = new DBRecord("name:Alien, stars: Yaphet Kotto, stars:Sigourney Weaver, stars: Harry Dean Stanton, stars:someone else");
assertFalse(record.containsAllBindingsInRecord(query));
assertTrue(query.containsAllBindingsInRecord(record));
}
public void testRecordContainsAtLeastOneBindingInRecord() {
DBRecord query = new DBRecord("name:Alien, stars: Yaphet Kotto, stars:Sigourney Weaver, stars: Harry Dean Stanton");
assertTrue(record.containsAtLeastOneBindingInRecord(query));
query = new DBRecord("stars: Yaphet Kotto, stars:someone else");
assertTrue(record.containsAtLeastOneBindingInRecord(query));
assertTrue(query.containsAtLeastOneBindingInRecord(record));
assertTrue(record.queryRecord(query, DBRecord.queryType.OR));
assertTrue(record.queryRecord("stars: Yaphet Kotto, stars:someone else", DBRecord.queryType.OR));
query = new DBRecord("name: What, stars:someone else");
assertFalse(record.containsAtLeastOneBindingInRecord(query));
assertFalse(query.containsAtLeastOneBindingInRecord(record));
}
public void testRecordSelectedFlag() {
assertFalse(record.isSelected());
record.setSelected(true);
assertTrue(record.isSelected());
record.setSelected(false);
assertFalse(record.isSelected());
}
}