1package com.xtremelabs.robolectric.shadows;
2
3import android.content.ContentValues;
4import com.xtremelabs.robolectric.WithTestDefaultsRunner;
5import com.xtremelabs.robolectric.util.DatabaseConfig;
6import com.xtremelabs.robolectric.util.SQLiteMap;
7import org.junit.Test;
8import org.junit.runner.RunWith;
9
10import java.sql.ResultSet;
11import java.sql.Statement;
12
13import static com.xtremelabs.robolectric.Robolectric.shadowOf;
14import static org.hamcrest.CoreMatchers.equalTo;
15import static org.hamcrest.CoreMatchers.not;
16import static org.junit.Assert.assertThat;
17
18@DatabaseConfig.UsingDatabaseMap(SQLiteMap.class)
19@RunWith(WithTestDefaultsRunner.class)
20public class SQLiteDatabaseTest extends DatabaseTestBase {
21
22    @Test
23    public void shouldUseSQLiteDatabaseMap() throws Exception {
24        assertThat(DatabaseConfig.getDatabaseMap().getClass().getName(),
25                equalTo(SQLiteMap.class.getName()));
26    }
27
28    @Test
29    public void testReplace() throws Exception {
30        long id = addChuck();
31        assertThat(id, not(equalTo(-1L)));
32
33        ContentValues values = new ContentValues();
34        values.put("id", id);
35        values.put("name", "Norris");
36
37        long replaceId = database.replace("table_name", null, values);
38        assertThat(replaceId, equalTo(id));
39
40        Statement statement = shadowOf(database).getConnection().createStatement();
41        ResultSet resultSet = statement.executeQuery("SELECT name FROM table_name where id = "+id);
42
43        assertThat(resultSet.next(), equalTo(true));
44        assertThat(resultSet.getString(1), equalTo("Norris"));
45    }
46}
47