@SuppressWarnings({ "rawtypes", "unchecked" })
    @Test
    public void testExtractUrlsUniq() {

        //String urlOrig = "http://www.example.com/";
        List<String> urlsDone = new ArrayList<String>();
        List<String> urls = new ArrayList<String>(
                Arrays.asList("http://www.example.com/aaa", "http://www.example.com/bbb",
                              "http://www.example.com/bbb", "https://www.example.com/aaa",
                              "http://www.example.com/ccc"));
        List<String> urlsRes = new ArrayList<String>();
        Class[] classArray = new Class[] {List.class};
        Object res;
        Method m;
        try {
            Process.setStartDate(new Date());
            Process.setUrlsDone(urlsDone);
            m = Process.class.getDeclaredMethod("extractUrlsUniq", classArray);
            m.setAccessible(true);
            res = m.invoke(new Process(1), urls);
            urlsRes = (List<String>)res;

        } catch (NoSuchMethodException | SecurityException | IllegalAccessException |
                 IllegalArgumentException | InvocationTargetException e) {
            // eclipseのTestRunner用の小細工
            if (e != null && e.getCause() instanceof RuntimeException) {
                return;
            }
            e.printStackTrace();
            fail();
        }

        assertEquals(4, urlsRes.size());
        assertSame("http://www.example.com/aaa",  urlsRes.get(0));
        assertSame("http://www.example.com/bbb",  urlsRes.get(1));
        assertSame("http://www.example.com/ccc",  urlsRes.get(2));
        assertSame("https://www.example.com/aaa", urlsRes.get(3));
    }