JAL-2316 Unit tests
[jalview.git] / test / jalview / urls / UrlLinkDisplayTest.java
1 package jalview.urls;
2
3 import jalview.util.UrlLink;
4
5 import java.util.List;
6
7 import org.testng.Assert;
8 import org.testng.annotations.Test;
9
10 public class UrlLinkDisplayTest {
11
12   @Test(groups = { "Functional" })
13   public void testDisplayColumnNames()
14   {
15     // 4 column names returned although 5 names internal to UrlLinkDisplay
16     List<String> names = UrlLinkDisplay.getDisplayColumnNames();
17     Assert.assertEquals(names.size(), 4);
18   }
19
20   @Test(groups = { "Functional" })
21   public void getValue()
22   {
23     UrlLink link = new UrlLink("Test Url",
24             "http://identifiers.org/$DB_ACCESSION$");
25     UrlLinkDisplay u = new UrlLinkDisplay("Test", link, false, false);
26
27     Assert.assertFalse((boolean) u.getValue(UrlLinkDisplay.DEFAULT));
28     Assert.assertEquals(u.getValue(UrlLinkDisplay.ID), "Test");
29     Assert.assertEquals(u.getValue(UrlLinkDisplay.NAME), "Test Url");
30     Assert.assertFalse((boolean) u.getValue(UrlLinkDisplay.SELECTED));
31     Assert.assertEquals(u.getValue(UrlLinkDisplay.URL),
32             "http://identifiers.org/$DB_ACCESSION$");
33   }
34
35   @Test(groups = { "Functional" })
36   public void testIsEditable()
37   {
38     // only default and selected columns are editable ever
39     // default only editable if link contains $SEQUENCE_ID$
40
41     UrlLink link = new UrlLink("Test Url",
42             "http://identifiers.org/$DB_ACCESSION$");
43     UrlLinkDisplay u = new UrlLinkDisplay("Test", link, false, false);
44
45     Assert.assertFalse(u.isEditable(UrlLinkDisplay.DEFAULT));
46     Assert.assertTrue(u.isEditable(UrlLinkDisplay.SELECTED));
47     Assert.assertFalse(u.isEditable(UrlLinkDisplay.ID));
48     Assert.assertFalse(u.isEditable(UrlLinkDisplay.URL));
49     Assert.assertFalse(u.isEditable(UrlLinkDisplay.NAME));
50
51     UrlLink vlink = new UrlLink("Test Sequence ID Url",
52             "http://myurl/$SEQUENCE_ID$");
53     UrlLinkDisplay v = new UrlLinkDisplay("Test", vlink, false, false);
54
55     Assert.assertTrue(v.isEditable(UrlLinkDisplay.DEFAULT));
56     Assert.assertTrue(v.isEditable(UrlLinkDisplay.SELECTED));
57     Assert.assertFalse(v.isEditable(UrlLinkDisplay.ID));
58     Assert.assertFalse(v.isEditable(UrlLinkDisplay.URL));
59     Assert.assertFalse(v.isEditable(UrlLinkDisplay.NAME));
60   }
61
62   @Test(groups = { "Functional" })
63   public void testName()
64   {
65     UrlLink link = new UrlLink("Test Url",
66             "http://identifiers.org/$DB_ACCESSION$");
67     UrlLinkDisplay u = new UrlLinkDisplay("Test", link, false, false);
68
69     // Name initially as input in link
70     Assert.assertEquals(u.getName(), "Test Url");
71
72     // Setting updates name
73     u.setName("New Name");
74     Assert.assertEquals(u.getName(), "New Name");
75   }
76
77   @Test(groups = { "Functional" })
78   public void testUrl()
79   {
80     UrlLink link = new UrlLink("Test Url",
81             "http://identifiers.org/$DB_ACCESSION$");
82     UrlLinkDisplay u = new UrlLinkDisplay("Test", link, false, false);
83
84     // Url initially as input in link
85     Assert.assertEquals(u.getUrl(), "http://identifiers.org/$DB_ACCESSION$");
86
87     // Setting updates url
88     u.setUrl("http://something.new/$SEQUENCE_ID$");
89     Assert.assertEquals(u.getUrl(), "http://something.new/$SEQUENCE_ID$");
90   }
91
92   @Test(groups = { "Functional" })
93   public void testGetSetValue()
94   {
95     UrlLink link = new UrlLink("Test Url",
96             "http://identifiers.org/$DB_ACCESSION$");
97     UrlLinkDisplay u = new UrlLinkDisplay("Test", link, false, false);
98
99     Assert.assertFalse((boolean) u.getValue(UrlLinkDisplay.DEFAULT));
100     Assert.assertFalse((boolean) u.getValue(UrlLinkDisplay.SELECTED));
101     Assert.assertEquals(u.getValue(UrlLinkDisplay.NAME), "Test Url");
102     Assert.assertEquals(u.getValue(UrlLinkDisplay.ID), "Test");
103     Assert.assertEquals(u.getValue(UrlLinkDisplay.URL),
104             "http://identifiers.org/$DB_ACCESSION$");
105
106     u.setValue(UrlLinkDisplay.DEFAULT, true);
107     Assert.assertTrue((boolean) u.getValue(UrlLinkDisplay.DEFAULT));
108
109     u.setValue(UrlLinkDisplay.SELECTED, true);
110     Assert.assertTrue((boolean) u.getValue(UrlLinkDisplay.SELECTED));
111
112     u.setValue(UrlLinkDisplay.NAME, "New Name");
113     Assert.assertEquals(u.getValue(UrlLinkDisplay.NAME), "New Name");
114
115     u.setValue(UrlLinkDisplay.ID, "New ID");
116     Assert.assertEquals(u.getValue(UrlLinkDisplay.ID), "New ID");
117
118     u.setValue(UrlLinkDisplay.URL, "http://something.new/$SEQUENCE_ID$");
119     Assert.assertEquals(u.getValue(UrlLinkDisplay.URL),
120             "http://something.new/$SEQUENCE_ID$");
121   }
122 }