@Test
  public void testSubsequentGetWritableDatabase() throws Exception {
    helper.getWritableDatabase();
    helper.reset();

    assertSubsequentDB(helper.getWritableDatabase());
  }
  @Test
  public void testClose() throws Exception {
    SQLiteDatabase database = helper.getWritableDatabase();

    assertThat(database.isOpen(), equalTo(true));
    helper.close();
    assertThat(database.isOpen(), equalTo(false));
  }
  @Test
  public void testSubsequentGetReadableDatabase() throws Exception {
    SQLiteDatabase database = helper.getReadableDatabase();
    helper.reset();
    database = helper.getReadableDatabase();

    assertSubsequentDB(database);
  }
  @Test
  public void testSameDBInstanceSubsequentGetWritableDatabase() throws Exception {
    SQLiteDatabase db1 = helper.getWritableDatabase();
    SQLiteDatabase db2 = helper.getWritableDatabase();

    assertThat(db1, sameInstance(db2));
  }
  @Test
  public void testMultipleDBReadWriteWithHelper() {
    SQLiteDatabase database = helper.getWritableDatabase();
    database.execSQL(
        "CREATE TABLE table_name (\n"
            + "  id INT PRIMARY KEY AUTOINCREMENT,\n"
            + "  first_column VARCHAR(255),\n"
            + "  second_column BINARY,\n"
            + "  name VARCHAR(255),\n"
            + "  big_int INTEGER\n"
            + ");");

    String stringColumnValue = "column_value";
    byte[] byteColumnValue = new byte[] {1, 2, 3};

    ContentValues values = new ContentValues();
    values.put("first_column", stringColumnValue);
    values.put("second_column", byteColumnValue);

    database.insert("table_name", null, values);
    database.close();

    database = helper.getReadableDatabase();
    Cursor cursor =
        database.query(
            "table_name",
            new String[] {"second_column", "first_column"},
            null,
            null,
            null,
            null,
            null);
    assertThat(cursor.moveToFirst(), equalTo(true));

    byte[] byteValueFromDatabase = cursor.getBlob(0);
    String stringValueFromDatabase = cursor.getString(1);

    assertThat(stringValueFromDatabase, equalTo(stringColumnValue));
    assertThat(byteValueFromDatabase, equalTo(byteColumnValue));
  }
 @Test
 public void testInitialGetWritableDatabase() throws Exception {
   SQLiteDatabase database = helper.getWritableDatabase();
   assertInitialDB(database);
 }