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.runners;
8   
9   import junit.framework.TestCase;
10  
11  import java.util.HashMap;
12  import java.util.List;
13  import java.util.Map;
14  
15  import net.sourceforge.addam.ddlrun.filters.Filter;
16  import net.sourceforge.addam.ddlrun.filters.SelectAllFilter;
17  import net.sourceforge.addam.ddlrun.runners.ScriptGroupRunner;
18  import net.sourceforge.addam.ddlrun.utils.MockReaderFactory;
19  import net.sourceforge.addam.ddlrun.utils.MockRunLogger;
20  
21  public class ScriptGroupRunnerUTEST extends TestCase {
22      private static final char SEPARATORCHAR = '/';
23  
24      public void testGetExtension() {
25          assertEquals("txt", ScriptGroupRunner.getExtension("foo.txt"));
26      }
27  
28      public void testUnknownType() throws Exception {
29          Map contentMap = new HashMap();
30          contentMap.put("group1/master.drv", "script.sql");
31          MockReaderFactory readerFactory = new MockReaderFactory(contentMap);
32          Filter scriptFilter = new SelectAllFilter();
33          HashMap scriptRunnerMap = new HashMap();
34          ScriptGroupRunner groupRunner = new ScriptGroupRunner(readerFactory, scriptFilter, scriptRunnerMap);
35          try {
36              groupRunner.run("group1");
37          } catch (RuntimeException e) {
38              assertEquals("unknown type sql for script script.sql", e.getMessage());
39          }
40      }
41  
42      public void testExpectedUsage() throws Exception {
43          Map contentMap = new HashMap();
44          contentMap.put("group1/master.drv", "script1.sql\nscript2.sql\nscript3.ldif");
45          MockReaderFactory readerFactory = new MockReaderFactory(contentMap);
46          Filter scriptFilter = new SelectAllFilter();
47          HashMap scriptRunnerMap = new HashMap();
48          MockRunner jdbcScriptRunner = new MockRunner();
49          scriptRunnerMap.put("sql", jdbcScriptRunner);
50          MockRunner ldapDeploymentRunner = new MockRunner();
51          scriptRunnerMap.put("ldif", ldapDeploymentRunner);
52          MockRunLogger runLogger = new MockRunLogger();
53          ScriptGroupRunner groupRunner = new ScriptGroupRunner(readerFactory, scriptFilter, scriptRunnerMap);
54          groupRunner.addRunLogger(runLogger);
55          groupRunner.run("group1");
56          List logs = runLogger.getSuccessLogs();
57          assertTrue(logs.contains("script1.sql"));
58          assertTrue(logs.contains("script2.sql"));
59          assertTrue(logs.contains("script3.ldif"));
60      }
61  
62  }