JAL-3446 UrlDownloadClient and Test
[jalview.git] / test / jalview / ws / utils / UrlDownloadClientTest.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3  * Copyright (C) $$Year-Rel$$ The Jalview Authors
4  * 
5  * This file is part of Jalview.
6  * 
7  * Jalview is free software: you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License 
9  * as published by the Free Software Foundation, either version 3
10  * of the License, or (at your option) any later version.
11  *  
12  * Jalview is distributed in the hope that it will be useful, but 
13  * WITHOUT ANY WARRANTY; without even the implied warranty 
14  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
15  * PURPOSE.  See the GNU General Public License for more details.
16  * 
17  * You should have received a copy of the GNU General Public License
18  * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
19  * The Jalview Authors are detailed in the 'AUTHORS' file.
20  */
21 package jalview.ws.utils;
22
23 import java.io.File;
24 import java.io.IOException;
25
26 import org.testng.Assert;
27 import org.testng.annotations.Test;
28
29 public class UrlDownloadClientTest {
30
31   /**
32    * Test that url is successfully loaded into download file
33    */
34   @Test(groups = { "Network" }, enabled = true)
35   public void UrlDownloadTest()
36   {
37     UrlDownloadClient client = new UrlDownloadClient();
38     String urlstring = "http://www.jalview.org/services/identifiers";
39     // was "http://identifiers.org/rest/collections/";
40     String outfile = "testfile.tmp";
41
42     try
43     {
44       client.download(urlstring, outfile);
45     } catch (IOException e)
46     {
47       Assert.fail("Exception was thrown from UrlDownloadClient download: "
48               + e.getMessage());
49       File f = new File(outfile);
50       if (f.exists())
51       {
52         f.delete();
53       }
54     }
55
56     // download file exists
57     File f = new File(outfile);
58     Assert.assertTrue(f.exists());
59
60     // download file has a believable size
61     // identifiers.org file typically at least 250K
62     long n = f.length();
63     if (f.exists())
64     {
65       f.delete();
66     }
67     // 74589
68     Assert.assertTrue(n > 70000);
69
70
71   }
72
73   /**
74    * Test that garbage in results in IOException
75    */
76   @Test(
77     groups = { "Network" },
78     enabled = true,
79     expectedExceptions = { IOException.class })
80   public void DownloadGarbageUrlTest() throws IOException
81   {
82     UrlDownloadClient client = new UrlDownloadClient();
83     String urlstring = "identifiers.org/rest/collections/";
84     String outfile = "testfile.tmp";
85
86     client.download(urlstring, outfile);
87   }
88 }