1package com.xtremelabs.robolectric.util;
2
3import android.content.ContentValues;
4import android.database.sqlite.SQLiteDatabase;
5import com.xtremelabs.robolectric.WithTestDefaultsRunner;
6import org.junit.Before;
7import org.junit.Test;
8import org.junit.runner.RunWith;
9
10import java.sql.SQLException;
11
12import static com.xtremelabs.robolectric.util.SQLite.buildInsertString;
13import static org.hamcrest.CoreMatchers.equalTo;
14import static org.junit.Assert.assertThat;
15
16@DatabaseConfig.UsingDatabaseMap(H2Map.class)
17@RunWith(WithTestDefaultsRunner.class)
18public class H2Test {
19    ContentValues values;
20    @Before
21
22    public void setUp() throws Exception {
23        String byteString = "byte_string";
24        byte[] byteData = byteString.getBytes();
25
26        values = new ContentValues();
27        values.put("name", "Chuck");
28        values.put("int_value", 33);
29        values.put("float_value", (float) 1.5);
30        values.put("byte_data", byteData);
31    }
32
33    @Test
34    public void testBuildInsertString() throws SQLException {
35        SQLite.SQLStringAndBindings insertString = buildInsertString("table_name", values, SQLiteDatabase.CONFLICT_REPLACE);
36        assertThat(insertString.sql, equalTo("INSERT INTO table_name (float_value, byte_data, name, int_value) VALUES (?, ?, ?, ?);"));
37        SQLiteTestHelper.verifyColumnValues(insertString.columnValues);
38    }
39}
40