commit
476e73d012
@ -0,0 +1,13 @@ |
|||||||
|
package de.kreth.dbmanager; |
||||||
|
|
||||||
|
public enum DatabaseType { |
||||||
|
|
||||||
|
MYSQL("primary key AUTO_INCREMENT"), HSQLDB("IDENTITY"); |
||||||
|
|
||||||
|
public final String autoIncrementIdType; |
||||||
|
|
||||||
|
private DatabaseType(String autoIncrementIdType) { |
||||||
|
this.autoIncrementIdType = autoIncrementIdType; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -1,69 +1,90 @@ |
|||||||
package de.kreth.dbmanager; |
package de.kreth.dbmanager; |
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals; |
||||||
|
import static org.junit.Assert.assertNotNull; |
||||||
|
|
||||||
import java.util.ArrayList; |
import java.util.ArrayList; |
||||||
import java.util.List; |
import java.util.List; |
||||||
|
|
||||||
import org.junit.Before; |
import org.junit.Before; |
||||||
import org.junit.Test; |
import org.junit.Test; |
||||||
|
|
||||||
import static org.junit.Assert.assertEquals; |
|
||||||
import static org.junit.Assert.assertNotNull; |
|
||||||
|
|
||||||
public class DbManagerCreateTablesTest { |
public class DbManagerCreateTablesTest { |
||||||
@Test |
@Test |
||||||
public void testCreateSqlStatement() { |
public void testCreateSqlStatement() { |
||||||
List<ColumnDefinition> columns = new ArrayList<ColumnDefinition>(); |
List<ColumnDefinition> columns = new ArrayList<ColumnDefinition>(); |
||||||
TableDefinition def = new TableDefinition("testtable", columns); |
TableDefinition def = new TableDefinition("testtable", |
||||||
|
DatabaseType.MYSQL, columns); |
||||||
String sql = DbManager.createSqlStatement(def); |
String sql = DbManager.createSqlStatement(def); |
||||||
|
|
||||||
assertNotNull(sql); |
assertNotNull(sql); |
||||||
assertEquals("CREATE TABLE testtable (\n" + " _id INTEGER primary key AUTO_INCREMENT\n" + ")", sql); |
assertEquals( |
||||||
|
"CREATE TABLE testtable (\n" |
||||||
|
+ " id INTEGER primary key AUTO_INCREMENT\n" + ")", |
||||||
|
sql); |
||||||
} |
} |
||||||
|
|
||||||
@Test |
@Test |
||||||
public void testCreateTable2Columns() { |
public void testCreateTable2Columns() { |
||||||
List<ColumnDefinition> columns = new ArrayList<ColumnDefinition>(); |
List<ColumnDefinition> columns = new ArrayList<ColumnDefinition>(); |
||||||
|
|
||||||
columns.add(new ColumnDefinition(DataType.VARCHAR100, "name", " NOT NULL")); |
columns.add( |
||||||
|
new ColumnDefinition(DataType.VARCHAR100, "name", " NOT NULL")); |
||||||
columns.add(new ColumnDefinition(DataType.DATETIME, "theDate")); |
columns.add(new ColumnDefinition(DataType.DATETIME, "theDate")); |
||||||
|
|
||||||
TableDefinition def = new TableDefinition("testtable", columns); |
TableDefinition def = new TableDefinition("testtable", |
||||||
|
DatabaseType.MYSQL, columns); |
||||||
String sql = DbManager.createSqlStatement(def); |
String sql = DbManager.createSqlStatement(def); |
||||||
|
|
||||||
assertNotNull(sql); |
assertNotNull(sql); |
||||||
assertEquals("CREATE TABLE testtable (\n" |
assertEquals("CREATE TABLE testtable (\n" |
||||||
+ " _id INTEGER primary key AUTO_INCREMENT,\n" |
+ " id INTEGER primary key AUTO_INCREMENT,\n" |
||||||
+ " name VARCHAR(100) NOT NULL,\n" |
+ " name VARCHAR(100) NOT NULL,\n" + " theDate DATETIME\n" |
||||||
+ " theDate DATETIME\n" + ")", |
+ ")", sql); |
||||||
sql); |
|
||||||
} |
} |
||||||
|
|
||||||
@Test |
@Test |
||||||
public void testCreateTable2ColumnsUnique() { |
public void testCreateTable2ColumnsOnHsqlDb() { |
||||||
List<ColumnDefinition> columns = new ArrayList<ColumnDefinition>(); |
List<ColumnDefinition> columns = new ArrayList<ColumnDefinition>(); |
||||||
|
|
||||||
columns.add(new ColumnDefinition(DataType.VARCHAR100, "name", " NOT NULL")); |
columns.add( |
||||||
|
new ColumnDefinition(DataType.VARCHAR100, "name", " NOT NULL")); |
||||||
columns.add(new ColumnDefinition(DataType.DATETIME, "theDate")); |
columns.add(new ColumnDefinition(DataType.DATETIME, "theDate")); |
||||||
|
|
||||||
UniqueConstraint unique = new UniqueConstraint(columns.get(0), columns.get(1)); |
TableDefinition def = new TableDefinition("testtable", |
||||||
TableDefinition def = new TableDefinition("testtable", columns, unique); |
DatabaseType.HSQLDB, columns); |
||||||
String sql = DbManager.createSqlStatement(def); |
String sql = DbManager.createSqlStatement(def); |
||||||
|
|
||||||
assertNotNull(sql); |
assertNotNull(sql); |
||||||
|
assertEquals("CREATE TABLE testtable (\n" + " id INTEGER IDENTITY,\n" |
||||||
|
+ " name VARCHAR(100) NOT NULL,\n" + " theDate DATETIME\n" |
||||||
|
+ ")", sql); |
||||||
|
} |
||||||
|
|
||||||
String expected = "CREATE TABLE testtable (\n" |
@Test |
||||||
+ " _id INTEGER primary key AUTO_INCREMENT,\n" |
public void test2ColumnsUnique() { |
||||||
+ " name VARCHAR(100) NOT NULL,\n" |
List<ColumnDefinition> columns = new ArrayList<ColumnDefinition>(); |
||||||
+ " theDate DATETIME,\n" |
|
||||||
+ " CONSTRAINT UNIQUE (name,theDate)\n" |
columns.add( |
||||||
+ ")"; |
new ColumnDefinition(DataType.VARCHAR100, "name", " NOT NULL")); |
||||||
|
columns.add(new ColumnDefinition(DataType.DATETIME, "theDate")); |
||||||
|
|
||||||
|
UniqueConstraint unique = new UniqueConstraint(columns.get(0), |
||||||
|
columns.get(1)); |
||||||
|
TableDefinition def = new TableDefinition("testtable", |
||||||
|
DatabaseType.MYSQL, columns); |
||||||
|
String sql = DbManager.createUniqueConstraint(def, unique); |
||||||
|
|
||||||
|
assertNotNull(sql); |
||||||
|
|
||||||
|
String expected = "ALTER TABLE testtable ADD CONSTRAINT UNIQUE_name_theDate UNIQUE (name, theDate)"; |
||||||
|
|
||||||
assertEquals(expected, sql); |
assertEquals(expected, sql); |
||||||
} |
} |
||||||
|
|
||||||
@Before |
@Before |
||||||
public void setUp() throws Exception {} |
public void setUp() throws Exception { |
||||||
|
} |
||||||
} |
} |
||||||
|
|
||||||
|
|
||||||
// ~ Formatted by Jindent --- http://www.jindent.com
|
// ~ Formatted by Jindent --- http://www.jindent.com
|
||||||
|
|||||||
Loading…
Reference in new issue