Search in sources :

Example 6 with DatabaseStorage

use of com.microsoft.azure.mobile.utils.storage.StorageHelper.DatabaseStorage in project mobile-center-sdk-android by Microsoft.

the class StorageHelperAndroidTest method runDatabaseStorageTest.

@SuppressWarnings("SpellCheckingInspection")
private static void runDatabaseStorageTest(DatabaseStorage databaseStorage, boolean imdbTest) {
    ContentValues value1 = generateContentValues();
    ContentValues value2 = generateContentValues();
    ContentValues value3 = generateContentValues();
    /* Put. */
    Long value1Id = databaseStorage.put(value1);
    assertNotNull(value1Id);
    /* Get for in-memory database test. */
    if (imdbTest) {
        /* Try with invalid key. */
        ContentValues valueFromDatabase = databaseStorage.get("COL_STRINGX", value1.getAsString("COL_STRING"));
        assertNull(valueFromDatabase);
        /* Try with valid key. */
        valueFromDatabase = databaseStorage.get("COL_STRING", value1.getAsString("COL_STRING"));
        assertContentValuesEquals(value1, valueFromDatabase);
        valueFromDatabase = databaseStorage.get("COL_STRING", value1.getAsString("COL_STRING") + "X");
        assertNull(valueFromDatabase);
    }
    /* Put another. */
    Long value2Id = databaseStorage.put(value2);
    assertNotNull(value2Id);
    /* Generate an ID that is neither value1Id nor value2Id. */
    /* Get. */
    ContentValues value1FromDatabase = databaseStorage.get(value1Id);
    assertContentValuesEquals(value1, value1FromDatabase);
    ContentValues value2FromDatabase = databaseStorage.get(DatabaseManager.PRIMARY_KEY, value2Id);
    assertContentValuesEquals(value2, value2FromDatabase);
    //noinspection ResourceType
    ContentValues nullValueFromDatabase = databaseStorage.get(-1);
    assertNull(nullValueFromDatabase);
    /* Count with scanner. */
    DatabaseStorage.DatabaseScanner scanner = databaseStorage.getScanner();
    assertEquals(2, scanner.getCount());
    assertEquals(2, scanner.getCount());
    DatabaseStorage.DatabaseScanner scanner1 = databaseStorage.getScanner("COL_STRING", value1.getAsString("COL_STRING"));
    assertEquals(1, scanner1.getCount());
    Iterator<ContentValues> iterator = scanner1.iterator();
    assertContentValuesEquals(value1, iterator.next());
    assertFalse(iterator.hasNext());
    /* Null value matching. */
    assertEquals(0, databaseStorage.getScanner("COL_STRING", null).getCount());
    assertEquals(2, databaseStorage.getScanner("COL_STRING_NULL", null).getCount());
    /* Update. */
    assertTrue(databaseStorage.update(value1Id, value3));
    ContentValues value3FromDatabase = databaseStorage.get(value1Id);
    assertContentValuesEquals(value3, value3FromDatabase);
    /* Delete. */
    databaseStorage.delete(value1Id);
    assertNull(databaseStorage.get(value1Id));
    assertEquals(1, databaseStorage.size());
    assertEquals(1, databaseStorage.getScanner().getCount());
    /* Put logs to delete multiple IDs. */
    ContentValues value4 = generateContentValues();
    ContentValues value5 = generateContentValues();
    Long value4Id = databaseStorage.put(value4);
    Long value5Id = databaseStorage.put(value5);
    assertNotNull(value4Id);
    assertNotNull(value5Id);
    /* Delete multiple logs. */
    databaseStorage.delete(Arrays.asList(new Long[] { value4Id, value5Id }));
    assertNull(databaseStorage.get(value4Id));
    assertNull(databaseStorage.get(value5Id));
    assertEquals(1, databaseStorage.size());
    /* Put logs to delete with condition. */
    ContentValues value6 = generateContentValues();
    ContentValues value7 = generateContentValues();
    value6.put("COL_STRING", value2.getAsString("COL_STRING"));
    value7.put("COL_STRING", value2.getAsString("COL_STRING") + "A");
    Long value6Id = databaseStorage.put(value6);
    Long value7Id = databaseStorage.put(value7);
    assertNotNull(value6Id);
    assertNotNull(value7Id);
    /* Delete for in-memory database test. */
    if (imdbTest) {
        /* Try with invalid key. */
        databaseStorage.delete("COL_STRINGX", value2.getAsString("COL_STRING"));
        assertEquals(3, databaseStorage.size());
    }
    /* Delete logs with condition. */
    databaseStorage.delete("COL_STRING", value2.getAsString("COL_STRING"));
    assertEquals(1, databaseStorage.size());
    ContentValues value7FromDatabase = databaseStorage.get(value7Id);
    assertContentValuesEquals(value7, value7FromDatabase);
    /* Clear. */
    databaseStorage.clear();
    assertEquals(0, databaseStorage.size());
}
Also used : ContentValues(android.content.ContentValues) DatabaseStorage(com.microsoft.azure.mobile.utils.storage.StorageHelper.DatabaseStorage)

Example 7 with DatabaseStorage

use of com.microsoft.azure.mobile.utils.storage.StorageHelper.DatabaseStorage in project mobile-center-sdk-android by Microsoft.

the class StorageHelperAndroidTest method putTooManyLogs.

@Test
public void putTooManyLogs() throws IOException {
    Log.i(TAG, "Testing Database Storage Capacity");
    /* Get instance to access database. */
    final int capacity = 2;
    DatabaseStorage databaseStorage = DatabaseStorage.getDatabaseStorage("test-putTooManyLogs", "putTooManyLogs", 1, mSchema, capacity, new DatabaseStorage.DatabaseErrorListener() {

        @Override
        public void onError(String operation, RuntimeException e) {
            throw e;
        }
    });
    //noinspection TryFinallyCanBeTryWithResources (try with resources statement is API >= 19)
    try {
        ContentValues value1 = generateContentValues();
        ContentValues value2 = generateContentValues();
        ContentValues value3 = generateContentValues();
        /* Put. */
        Long value1Id = databaseStorage.put(value1);
        Long value2Id = databaseStorage.put(value2);
        Long value3Id = databaseStorage.put(value3);
        assertNotNull(value1Id);
        assertNotNull(value2Id);
        assertNotNull(value3Id);
        assertEquals(capacity, databaseStorage.size());
    } finally {
        /* Close. */
        //noinspection ThrowFromFinallyBlock
        databaseStorage.close();
    }
}
Also used : ContentValues(android.content.ContentValues) DatabaseStorage(com.microsoft.azure.mobile.utils.storage.StorageHelper.DatabaseStorage) SuppressLint(android.annotation.SuppressLint) SmallTest(android.support.test.filters.SmallTest) Test(org.junit.Test)

Aggregations

DatabaseStorage (com.microsoft.azure.mobile.utils.storage.StorageHelper.DatabaseStorage)7 SmallTest (android.support.test.filters.SmallTest)6 Test (org.junit.Test)6 ContentValues (android.content.ContentValues)3 SuppressLint (android.annotation.SuppressLint)1