Skip to content
This repository was archived by the owner on Feb 11, 2022. It is now read-only.

Commit a496bc6

Browse files
committed
Add unit test for multi-column constraints
1 parent 0160907 commit a496bc6

1 file changed

Lines changed: 9 additions & 0 deletions

File tree

core/src/androidTest/java/novoda/lib/sqliteprovider/util/DBUtilsTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public class DBUtilsTest extends AndroidTestCase {
1818
private static final String CREATE_2_TABLES = "CREATE TABLE T(id INTEGER);\nCREATE TABLE T2(id INTEGER);\n";
1919
private static final String CREATE_2_TABLES_WITH_FOREIGN_KEY = "CREATE TABLE t(id INTEGER);\nCREATE TABLE t2(id INTEGER, t_id INTEGER);\n";
2020
private static final String CREATE_TABLE_WITH_CONSTRAINT = "CREATE TABLE t(id INTEGER, const TEXT UNIQUE NOT NULL);";
21+
private static final String CREATE_TABLE_WITH_MULTI_COLUMN_CONSTRAINT = "CREATE TABLE t(id INTEGER, name TEXT, desc TEXT NOT NULL, UNIQUE(name, desc) ON CONFLICT REPLACE);";
2122

2223
@Override
2324
protected void setUp() throws Exception {
@@ -70,6 +71,14 @@ public void testGettingUniqueConstraints() throws Exception {
7071
MoreAsserts.assertContentsInAnyOrder(constrains, new Constraint(Arrays.asList("const")));
7172
}
7273

74+
public void testGettingMultiColumnUniqueConstraints() throws Exception {
75+
android.database.DatabaseUtils.createDbFromSqlStatements(getContext(), DB_NAME, 1, CREATE_TABLE_WITH_MULTI_COLUMN_CONSTRAINT);
76+
77+
SQLiteDatabase db = getContext().openOrCreateDatabase(DB_NAME, 0, null);
78+
List<Constraint> constrains = DBUtils.getUniqueConstraints(db, "t");
79+
MoreAsserts.assertContentsInAnyOrder(constrains, new Constraint(Arrays.asList("name", "desc")));
80+
}
81+
7382
public void testGettingUniqueConstraintsIsEmpty() throws Exception {
7483
android.database.DatabaseUtils.createDbFromSqlStatements(getContext(), DB_NAME, 1, CREATE_TABLES);
7584
SQLiteDatabase db = getContext().openOrCreateDatabase(DB_NAME, 0, null);

0 commit comments

Comments
 (0)