/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the Common Development
* and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at
* src/com/vodafone360/people/VODAFONE.LICENSE.txt or
* http://github.com/360/360-Engine-for-Android
* See the License for the specific language governing permissions and
* limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each file and
* include the License file at src/com/vodafone360/people/VODAFONE.LICENSE.txt.
* If applicable, add the following below this CDDL HEADER, with the fields
* enclosed by brackets "[]" replaced with your own identifying information:
* Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*
* Copyright 2010 Vodafone Sales & Services Ltd. All rights reserved.
* Use is subject to license terms.
*/
package com.vodafone360.people.tests.database;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import android.database.SQLException;
import android.util.Log;
import com.vodafone360.people.database.tables.ContactSourceTable;
public class ContactSourceTableTest extends NowPlusTableTestCase{
private static final String LOG_TAG = "ContactSourceTableTest";
private static final int NO_OF_CONTACT_IDS_TO_TEST = 10;
private final String[] SOURCES = {"Zyb","Facebook","WindowsLiveWith very long name"};
public ContactSourceTableTest() {
super();
}
/**
* creates table that will be tested in this suite
*/
private void createTable() {
try {
ContactSourceTable.create(mTestDatabase.getWritableDatabase());
} catch (SQLException e) {
fail("An exception occurred when creating the table: " + e);
}
}
public void testCreateContactSourceTable(){
Log.i(LOG_TAG, "testCreateContactSourceTable start");
try{
createTable();
}catch (Exception e) {
fail("An exception occurred when testCreate: " + e);
}
Log.i(LOG_TAG, "testCreateContactSourceTable PASS");
}
// *addContactSource(long, String, SQLiteDatabase)
// *create(SQLiteDatabase)
// deleteAllContactSources(long, SQLiteDatabase)
// *fetchContactSources(long, List<String>, SQLiteDatabase)
// *private fillUpdateData(ContactSource)
public void testTable(){
Log.i(LOG_TAG, "testTable start");
createTable();
Random rand = new Random(System.currentTimeMillis());
ArrayList<Long> localContactIdList = new ArrayList<Long>();
for(int i=0;i<NO_OF_CONTACT_IDS_TO_TEST;i++){
localContactIdList.add(rand.nextLong());
}
//test for adding and fetchting
for(Long localContactId: localContactIdList){
ArrayList<String> testList = new ArrayList<String>();
for(String source: SOURCES){
testList.add(source);
assertTrue("addContactSource failed",
ContactSourceTable.addContactSource(localContactId, source, mTestDatabase.getWritableDatabase()) );
}
List<String> list = new ArrayList<String>();
assertTrue("fetchContactSources failed",
ContactSourceTable.fetchContactSources(localContactId, list, mTestDatabase.getWritableDatabase()) );
if(list.size() != SOURCES.length){
fail("IN/OUT tables have diferent lengths");
}
if(!list.containsAll(testList)||!testList.containsAll(list)){
fail("IN/OUT tables have diferent elements");
}
}
//test for deleting and fetching
for(Long localContactId: localContactIdList){
assertTrue("deleteAllContactSources failed",
ContactSourceTable.deleteAllContactSources(localContactId, mTestDatabase.getWritableDatabase()) );
List<String> list = new ArrayList<String>();
assertTrue("fetchContactSources failed",
ContactSourceTable.fetchContactSources(localContactId, list, mTestDatabase.getWritableDatabase()) );
if(list.size() != 0){
fail("table size >0 after delete all sources");
}
}
Log.i(LOG_TAG, "testTable PASS");
}
}