• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.xtremelabs.robolectric.util;
2 
3 import android.content.ContentValues;
4 import android.database.sqlite.SQLiteDatabase;
5 import com.xtremelabs.robolectric.WithTestDefaultsRunner;
6 import org.junit.Before;
7 import org.junit.Test;
8 import org.junit.runner.RunWith;
9 
10 import static com.xtremelabs.robolectric.util.SQLite.*;
11 import static org.hamcrest.CoreMatchers.equalTo;
12 import static org.junit.Assert.assertThat;
13 
14 @RunWith(WithTestDefaultsRunner.class)
15 public class SQLite_Test {
16     ContentValues values;
17     @Before
setUp()18     public void setUp() throws Exception {
19         String byteString = "byte_string";
20         byte[] byteData = byteString.getBytes();
21 
22         values = new ContentValues();
23         values.put("name", "Chuck");
24         values.put("int_value", 33);
25         values.put("float_value", (float) 1.5);
26         values.put("byte_data", byteData);
27     }
28 
29     @Test
testBuildInsertString()30     public void testBuildInsertString() throws Exception {
31         SQLite.SQLStringAndBindings insertString = buildInsertString("table_name", values, SQLiteDatabase.CONFLICT_NONE);
32         assertThat(insertString.sql, equalTo("INSERT INTO table_name (float_value, byte_data, name, int_value) VALUES (?, ?, ?, ?);"));
33         SQLiteTestHelper.verifyColumnValues(insertString.columnValues);
34     }
35 
36     @Test
testBuildUpdateString()37     public void testBuildUpdateString() {
38         SQLite.SQLStringAndBindings insertString = buildUpdateString("table_name", values, "id=?", new String[]{"1234"});
39         assertThat(insertString.sql, equalTo("UPDATE table_name SET float_value=?, byte_data=?, name=?, int_value=? WHERE id='1234';"));
40         SQLiteTestHelper.verifyColumnValues(insertString.columnValues);
41     }
42 
43     @Test
testBuildDeleteString()44     public void testBuildDeleteString() {
45         String deleteString = buildDeleteString("table_name", "id=?", new String[]{"1234"});
46         assertThat(deleteString, equalTo("DELETE FROM table_name WHERE id='1234';"));
47     }
48 
49     @Test
testBuildWhereClause()50     public void testBuildWhereClause() {
51         String whereClause = buildWhereClause("id=? AND name=? AND int_value=?", new String[]{"1234", "Chuck", "33"});
52         assertThat(whereClause, equalTo("id='1234' AND name='Chuck' AND int_value='33'"));
53     }
54 
55     @Test
testBuildColumnValuesClause()56     public void testBuildColumnValuesClause() {
57         SQLStringAndBindings columnValuesClause = buildColumnValuesClause(values);
58 
59         assertThat(columnValuesClause.sql, equalTo("(float_value, byte_data, name, int_value) VALUES (?, ?, ?, ?)"));
60         SQLiteTestHelper.verifyColumnValues(columnValuesClause.columnValues);
61     }
62 
63     @Test
testBuildColumnAssignmentsClause()64     public void testBuildColumnAssignmentsClause() {
65         SQLStringAndBindings columnAssignmentsClause = buildColumnAssignmentsClause(values);
66 
67         assertThat(columnAssignmentsClause.sql, equalTo("float_value=?, byte_data=?, name=?, int_value=?"));
68         SQLiteTestHelper.verifyColumnValues(columnAssignmentsClause.columnValues);
69     }
70 }
71