X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Furls%2FUrlLinkTableModelTest.java;h=c6d23b94e0fc8f5f37a9a08a09d253339df3cf2b;hb=57738a1f3c19b1c3a00bd3ac5108f8cd0af32f99;hp=7c6f28e0fca421e4b496b3efa7b4094323bfd48c;hpb=2db199e42a0ef5cca46c237544aa5c807cdece18;p=jalview.git diff --git a/test/jalview/urls/UrlLinkTableModelTest.java b/test/jalview/urls/UrlLinkTableModelTest.java index 7c6f28e..c6d23b9 100644 --- a/test/jalview/urls/UrlLinkTableModelTest.java +++ b/test/jalview/urls/UrlLinkTableModelTest.java @@ -21,10 +21,11 @@ package jalview.urls; -import static jalview.util.UrlConstants.DB_ACCESSION; import static jalview.util.UrlConstants.DELIM; import static jalview.util.UrlConstants.SEP; +import static jalview.util.UrlConstants.SEQUENCE_ID; +import jalview.urls.api.UrlProviderI; import jalview.util.MessageManager; import java.io.BufferedWriter; @@ -40,7 +41,8 @@ import org.testng.Assert; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; -public class UrlLinkTableModelTest { +public class UrlLinkTableModelTest +{ private static final String inmenu = "TEST|http://someurl.blah/$DB_ACCESSION$|" + "ANOTHER|http://test/t$SEQUENCE_ID$|" @@ -51,8 +53,7 @@ public class UrlLinkTableModelTest { 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+)?$\"," @@ -60,7 +61,7 @@ public class UrlLinkTableModelTest { + "{\"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; @@ -94,18 +95,19 @@ public class UrlLinkTableModelTest { provlist.add(idprov); provlist.add(cprov); - prov = new UrlProvider("MIR:00000005", provlist); + prov = new UrlProvider("TEST2", provlist); } /* * Test that the table model is correctly initialised * Display columns and default row are set; data provider listening event set up */ - @Test + @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); @@ -123,8 +125,11 @@ public class UrlLinkTableModelTest { if (isDefault) { count++; - String defaultName = (String) m.getValueAt(row, nameCol); - Assert.assertEquals(defaultName, "UniProt Knowledgebase"); + 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); @@ -133,45 +138,48 @@ public class UrlLinkTableModelTest { /* * Test row and column counts */ - @Test + @Test(groups = { "Functional" }) public void testCounts() { 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); } /* * Test column access */ - @Test + @Test(groups = { "Functional" }) public void testColumns() { UrlLinkTableModel m = new UrlLinkTableModel(prov); // 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); } /* * Test row insertion */ - @Test + @Test(groups = { "Functional" }) public void testRowInsert() { UrlLinkTableModel m = new UrlLinkTableModel(prov); @@ -180,19 +188,20 @@ public class UrlLinkTableModelTest { // 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( - "newname" + SEP + "newurl")); + Assert.assertTrue( + prov.getLinksForMenu().contains("newname" + SEP + "newurl")); } /* * Test row deletion */ - @Test + @Test(groups = { "Functional" }) public void testRowDelete() { UrlLinkTableModel m = new UrlLinkTableModel(prov); @@ -216,7 +225,7 @@ public class UrlLinkTableModelTest { /* * Test value setting and getting */ - @Test + @Test(groups = { "Functional" }) public void testValues() { UrlLinkTableModel m = new UrlLinkTableModel(prov); @@ -224,48 +233,57 @@ public class UrlLinkTableModelTest { // get original default int olddefault; boolean isDefault = false; - for (olddefault = 0; olddefault < m.getRowCount() && !isDefault; olddefault++) + for (olddefault = 0; olddefault < m.getRowCount() + && !isDefault; olddefault++) { isDefault = (boolean) m.getValueAt(olddefault, 3); } - // set new values, one in each row - uneditable - m.setValueAt("namechanged", 6, 0); - m.setValueAt("urlchanged", 7, 1); - m.setValueAt(false, 8, 2); - m.setValueAt(true, 9, 3); + // set new values, one in each row + 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(9, 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 - Assert.assertFalse(isDefault && !(row == 9)); + Assert.assertFalse(isDefault && !(row == 6)); } // 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(false).contains( - (String) m.getValueAt(8, 0))); - Assert.assertEquals(prov.getDefaultUrl("seqid"), m.getValueAt(9, 1) - .toString().replace(DELIM + DB_ACCESSION + DELIM, "seqid")); - + 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, 1))); + Assert.assertEquals(prov.getPrimaryUrl("seqid"), m.getValueAt(6, 2) + .toString().replace(DELIM + SEQUENCE_ID + DELIM, "seqid")); } /* * Test cell editability */ - @Test + @Test(groups = { "Functional" }) public void testEditable() { UrlLinkTableModel m = new UrlLinkTableModel(prov); @@ -274,8 +292,59 @@ public class UrlLinkTableModelTest { { 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, 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.isRowEditable(row)); + } } } }