private static final String notinmenu = "Not1|http://not.in.menu/$DB_ACCESSION$|"
+ "Not2|http://not.in.menu.either/$DB_ACCESSION$";
- // Test identifiers.org download file
- private static final String testIdOrgString = "[{\"id\":\"MIR:00000002\",\"name\":\"ChEBI\",\"pattern\":\"^CHEBI:\\d+$\","
+ private static final String testIdOrgString = "{\"Local\": [{\"id\":\"MIR:00000002\",\"name\":\"ChEBI\",\"pattern\":\"^CHEBI:\\d+$\","
+ "\"definition\":\"Chemical Entities of Biological Interest (ChEBI)\",\"prefix\":\"chebi\","
+ "\"url\":\"http://identifiers.org/chebi\"},{\"id\":\"MIR:00000005\",\"name\":\"UniProt Knowledgebase\","
+ "\"pattern\":\"^([A-N,R-Z][0-9]([A-Z][A-Z, 0-9][A-Z, 0-9][0-9]){1,2})|([O,P,Q][0-9][A-Z, 0-9][A-Z, 0-9][A-Z, 0-9][0-9])(\\.\\d+)?$\","
+ "{\"id\":\"MIR:00000011\",\"name\":\"InterPro\",\"pattern\":\"^IPR\\d{6}$\",\"definition\":\"InterPro\",\"prefix\":\"interpro\","
+ "\"url\":\"http://identifiers.org/interpro\"},"
+ "{\"id\":\"MIR:00000372\",\"name\":\"ENA\",\"pattern\":\"^[A-Z]+[0-9]+(\\.\\d+)?$\",\"definition\":\"The European Nucleotide Archive (ENA),\""
- + "\"prefix\":\"ena.embl\",\"url\":\"http://identifiers.org/ena.embl\"}]";
+ + "\"prefix\":\"ena.embl\",\"url\":\"http://identifiers.org/ena.embl\"}]}";
private UrlProviderI prov;
@Test(groups = { "Functional" })
public void testInitialisation()
{
- int defaultCol = 3;
- int nameCol = 0;
+ int defaultCol = 4;
+ int dbCol = 0;
+ int descCol = 1;
UrlLinkTableModel m = new UrlLinkTableModel(prov);
if (isDefault)
{
count++;
- String defaultName = (String) m.getValueAt(row, nameCol);
- Assert.assertEquals(defaultName, "TEST2");
+ String defaultDBName = (String) m.getValueAt(row, dbCol);
+ Assert.assertEquals(defaultDBName, "TEST2");
+
+ String defaultDesc = (String) m.getValueAt(row, descCol);
+ Assert.assertEquals(defaultDesc, "TEST2");
}
}
Assert.assertEquals(count, 1);
UrlLinkTableModel m = new UrlLinkTableModel(prov);
// correct numbers of column and rows
- Assert.assertEquals(m.getColumnCount(), 4);
+ Assert.assertEquals(m.getColumnCount(), 5);
Assert.assertEquals(m.getRowCount(), 10);
}
// check column names
Assert.assertEquals(m.getColumnName(0),
- MessageManager.formatMessage("label.name"));
+ MessageManager.formatMessage("label.database"));
Assert.assertEquals(m.getColumnName(1),
- MessageManager.formatMessage("label.url"));
+ MessageManager.formatMessage("label.name"));
Assert.assertEquals(m.getColumnName(2),
- MessageManager.formatMessage("label.inmenu"));
+ MessageManager.formatMessage("label.url"));
Assert.assertEquals(m.getColumnName(3),
- MessageManager.formatMessage("label.default"));
+ MessageManager.formatMessage("label.inmenu"));
+ Assert.assertEquals(m.getColumnName(4),
+ MessageManager.formatMessage("label.primary"));
// check column classes
Assert.assertEquals(m.getColumnClass(0), String.class);
Assert.assertEquals(m.getColumnClass(1), String.class);
- Assert.assertEquals(m.getColumnClass(2), Boolean.class);
+ Assert.assertEquals(m.getColumnClass(2), String.class);
Assert.assertEquals(m.getColumnClass(3), Boolean.class);
+ Assert.assertEquals(m.getColumnClass(4), Boolean.class);
}
/*
// check table has new row inserted
Assert.assertEquals(m.getValueAt(10, 0), "newname");
- Assert.assertEquals(m.getValueAt(10, 1), "newurl");
- Assert.assertEquals(m.getValueAt(10, 2), true);
- Assert.assertEquals(m.getValueAt(10, 3), false);
+ Assert.assertEquals(m.getValueAt(10, 1), "newname");
+ Assert.assertEquals(m.getValueAt(10, 2), "newurl");
+ Assert.assertEquals(m.getValueAt(10, 3), true);
+ Assert.assertEquals(m.getValueAt(10, 4), false);
// check data source has new row insrte
Assert.assertTrue(prov.getLinksForMenu().contains(
}
// set new values, one in each row
- m.setValueAt("namechanged", 6, 0);
- m.setValueAt("urlchanged", 7, 1);
- m.setValueAt(false, 8, 2);
- m.setValueAt(true, 6, 3);
+ m.setValueAt("dbnamechanged", 6, 0);
+ m.setValueAt("descchanged", 6, 1);
+ m.setValueAt("urlchanged", 7, 2);
+ m.setValueAt(false, 8, 3);
+ m.setValueAt(true, 6, 4);
+
+ m.setValueAt("dbnamechanged", 5, 0);
// check values updated in table
- Assert.assertEquals(m.getValueAt(6, 0), "namechanged");
- Assert.assertEquals(m.getValueAt(7, 1), "urlchanged");
- Assert.assertFalse((boolean) m.getValueAt(8, 2));
- Assert.assertTrue((boolean) m.getValueAt(6, 3));
- Assert.assertFalse((boolean) m.getValueAt(olddefault, 3));
+ Assert.assertEquals(m.getValueAt(6, 0), "descchanged"); // custom url can't
+ // change db name
+ Assert.assertEquals(m.getValueAt(6, 1), "descchanged");
+ Assert.assertEquals(m.getValueAt(7, 2), "urlchanged");
+ Assert.assertFalse((boolean) m.getValueAt(8, 3));
+ Assert.assertTrue((boolean) m.getValueAt(6, 4));
+ Assert.assertFalse((boolean) m.getValueAt(olddefault, 4));
+
+ Assert.assertEquals(m.getValueAt(5, 0), "dbnamechanged");
// check default row is exactly one row still
for (int row = 0; row < m.getRowCount(); row++)
{
- isDefault = (boolean) m.getValueAt(row, 3);
+ isDefault = (boolean) m.getValueAt(row, 4);
// if isDefault is true, row is 9
// if isDefault is false, row is not 9
}
// check table updated
- Assert.assertTrue(prov.writeUrlsAsString(true).contains("namechanged" +SEP + m.getValueAt(6, 1)));
- Assert.assertTrue(prov.writeUrlsAsString(true).contains(m.getValueAt(7,0) + SEP + "urlchanged"));
+ Assert.assertTrue(prov.writeUrlsAsString(true).contains(
+ "descchanged" + SEP + m.getValueAt(6, 2)));
+ Assert.assertTrue(prov.writeUrlsAsString(true).contains(
+ m.getValueAt(7, 1) + SEP + "urlchanged"));
Assert.assertTrue(prov.writeUrlsAsString(false).contains(
- (String) m.getValueAt(8, 0)));
- Assert.assertEquals(prov.getDefaultUrl("seqid"), m.getValueAt(6, 1)
+ (String) m.getValueAt(8, 1)));
+ Assert.assertEquals(prov.getPrimaryUrl("seqid"), m.getValueAt(6, 2)
.toString().replace(DELIM + SEQUENCE_ID + DELIM, "seqid"));
-
}
/*
{
Assert.assertFalse(m.isCellEditable(row, 0));
Assert.assertFalse(m.isCellEditable(row, 1));
- Assert.assertTrue(m.isCellEditable(row, 2));
+ Assert.assertFalse(m.isCellEditable(row, 2));
+ Assert.assertTrue(m.isCellEditable(row, 3));
if ((row == 4) || (row == 6) || (row == 7))
{
- Assert.assertTrue(m.isCellEditable(row, 3));
+ Assert.assertTrue(m.isCellEditable(row, 4));
+ }
+ else
+ {
+ Assert.assertFalse(m.isCellEditable(row, 4));
+ }
+ }
+ }
+
+ /*
+ * Test row 'deletability'
+ */
+ @Test(groups = { "Functional" })
+ public void testDeletable()
+ {
+ UrlLinkTableModel m = new UrlLinkTableModel(prov);
+
+ for (int row = 0; row < m.getRowCount(); row++)
+ {
+ if (row > 4)
+ {
+ Assert.assertTrue(m.isRowDeletable(row));
+ }
+ else
+ {
+ Assert.assertFalse(m.isRowDeletable(row));
+ }
+ }
+ }
+
+ /*
+ * Test indirect row editability
+ */
+ @Test(groups = { "Functional" })
+ public void testRowEditable()
+ {
+ UrlLinkTableModel m = new UrlLinkTableModel(prov);
+
+ for (int row = 0; row < m.getRowCount(); row++)
+ {
+ if (row > 3)
+ {
+ Assert.assertTrue(m.isRowEditable(row));
}
else
{
- Assert.assertFalse(m.isCellEditable(row, 3));
+ Assert.assertFalse(m.isRowEditable(row));
}
}
}