1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 package org.objectledge.database;
29
30 import java.io.FileInputStream;
31
32 import javax.sql.DataSource;
33
34 import org.dbunit.DatabaseTestCase;
35 import org.dbunit.database.DatabaseDataSourceConnection;
36 import org.dbunit.database.IDatabaseConnection;
37 import org.dbunit.dataset.IDataSet;
38 import org.dbunit.dataset.xml.XmlDataSet;
39 import org.jcontainer.dna.impl.DefaultConfiguration;
40 import org.objectledge.filesystem.FileSystem;
41
42 /***
43 *
44 * @author <a href="mailto:rafal@caltha.pl">Rafal Krzewski</a>
45 * @version $Id: IdGeneratorTest.java,v 1.8 2005/02/16 20:00:46 rafal Exp $
46 */
47 public class IdGeneratorTest extends DatabaseTestCase
48 {
49 private DataSource dataSource;
50
51 /***
52 * Constructor for IdGeneratorTest.
53 * @param arg0
54 */
55 public IdGeneratorTest(String arg0)
56 throws Exception
57 {
58 super(arg0);
59 dataSource = getDataSource();
60 }
61
62 public void testNextId()
63 throws Exception
64 {
65 IdGenerator idGenerator = new IdGenerator(dataSource);
66 assertEquals(1, idGenerator.getNextId("test_table_one"));
67 assertEquals(2, idGenerator.getNextId("test_table_one"));
68 assertEquals(0, idGenerator.getNextId("test_table_two"));
69 assertEquals(1, idGenerator.getNextId("test_table_two"));
70 idGenerator.stop();
71 }
72
73
74
75 protected IDatabaseConnection getConnection() throws Exception
76 {
77 return new DatabaseDataSourceConnection(dataSource);
78 }
79
80 protected IDataSet getDataSet() throws Exception
81 {
82 return new XmlDataSet(new FileInputStream("src/test/resources/database/IdGenerator.xml"));
83 }
84
85 private DataSource getDataSource()
86 throws Exception
87 {
88 DefaultConfiguration conf = new DefaultConfiguration("config","","/");
89 DefaultConfiguration url = new DefaultConfiguration("url","","/config");
90 url.setValue("jdbc:hsqldb:.");
91 conf.addChild(url);
92 DefaultConfiguration user = new DefaultConfiguration("user","","/config");
93 user.setValue("sa");
94 conf.addChild(user);
95 DataSource ds = new HsqldbDataSource(conf);
96 if(!DatabaseUtils.hasTable(ds, "ledge_id_table"))
97 {
98 FileSystem fs = FileSystem.getStandardFileSystem(".");
99 DatabaseUtils.runScript(ds, fs.getReader("sql/database/IdGeneratorTables.sql",
100 "UTF-8"));
101 }
102 return ds;
103 }
104 }