1   //
2   // Copyright (c) 2004, International Decision Systems
3   // all rights reserved
4   /*
5    * Copyright (c) 2005 Your Corporation. All Rights Reserved.
6    */
7   package net.sourceforge.addam.ddlrun.utils;
8   
9   import junit.framework.TestCase;
10  
11  import java.io.IOException;
12  import java.util.MissingResourceException;
13  
14  import net.sourceforge.addam.ddlrun.utils.ClassLoaderReader;
15  import net.sourceforge.addam.ddlrun.utils.ClassLoaderReaderFactory;
16  import net.sourceforge.addam.ddlrun.utils.ResourceReader;
17  
18  public class ClassLoaderReaderUTEST extends TestCase {
19  
20      public void testCompletePath() throws IOException {
21          ClassLoaderReader reader = new ClassLoaderReader("foo", "bar");
22          assertEquals("foo/bar", reader.completeName);
23          reader = new ClassLoaderReader("foo/", "bar");
24          assertEquals("foo/bar", reader.completeName);
25      }
26  
27      public void testExpectedUsage() throws IOException {
28          ResourceReader reader = new ClassLoaderReader("net/sourceforge/addam/ddlrun/utils", "test-resource.txt");
29          assertEquals("script-1.sql", reader.readLine());
30          assertEquals("script-2.sql", reader.readLine());
31          assertEquals(null, reader.readLine());
32          assertEquals(null, reader.readLine());
33      }
34  
35      public void testExpectedUsageWithSubdir() throws IOException {
36          ResourceReader reader = new ClassLoaderReader("net/sourceforge/addam/ddlrun/utils/test", "../test-resource.txt");
37          assertEquals("script-1.sql", reader.readLine());
38          assertEquals("script-2.sql", reader.readLine());
39          assertEquals(null, reader.readLine());
40          assertEquals(null, reader.readLine());
41      }
42  
43      public void testCanReadResourceFromTopFolder() throws IOException {
44          ResourceReader reader = new ClassLoaderReader("", "upgrade.drv");
45          assertEquals("one", reader.readLine());
46          assertEquals("two", reader.readLine());
47          assertEquals(null, reader.readLine());
48      }
49  
50      public void testMissingResource() throws IOException {
51          ClassLoaderReaderFactory factory = new ClassLoaderReaderFactory();
52          ResourceReader reader = factory.getReader("missing-resource.txt");
53          try {
54              reader.readLine();
55              fail("expected exception");
56          } catch (MissingResourceException e) {
57              // expected
58              assertEquals("missing-resource.txt", e.getKey());
59          }
60      }
61  }