/* * 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.Hashtable; import android.test.suitebuilder.annotation.Suppress; import android.util.Log; import com.vodafone360.people.database.tables.PresenceTable; import com.vodafone360.people.engine.presence.User; import com.vodafone360.people.utils.LogUtils; @Suppress public class NowPlusPresenceTableTest extends NowPlusTableTestCase { public NowPlusPresenceTableTest() { super(); } public void testCreate() { Log.i(LOG_TAG, "***** testCreateTable *****"); mTestDatabase.getWritableDatabase().execSQL("ATTACH DATABASE ':memory:' AS presence1_db;"); PresenceTable.create(mTestDatabase.getWritableDatabase()); Log.i(LOG_TAG, "***** testCreateTable SUCCEEDED*****"); } public void testUpdateUser() { Log.i(LOG_TAG, "***** testUpdateUser *****"); PresenceTable.create(mTestDatabase.getWritableDatabase()); Log.i(LOG_TAG, "***** testUpdateUser: table created*****"); assertTrue("The method adds a null user and returns true", PresenceTable.updateUser(null, null, mTestDatabase.getWritableDatabase())==PresenceTable.USER_NOTADDED); Log.i(LOG_TAG, "***** testUpdateUser: NULL test SUCCEEDED *****"); Hashtable<String, String> status = new Hashtable<String, String>(); status.put("google", "online"); status.put("microsoft", "online"); status.put("mobile", "online"); status.put("pc", "online"); User user = new User("google::meongoogletalk@gmail.com", status); user.setLocalContactId(12L);// fake localId assertTrue("the user was not added to DB", PresenceTable.updateUser(user, null, mTestDatabase.getWritableDatabase()) != PresenceTable.USER_NOTADDED); Log.i(LOG_TAG, "***** testUpdateUser Good User test SUCCEEDED*****"); user = null; // now, update the user status.put("google", "offline"); status.put("microsoft", "online"); status.put("mobile", "online"); status.put("pc", "offline"); user = new User("google::meongoogletalk@gmail.com", status); user.setLocalContactId(12L);// fake localId assertTrue("the Existing NowplusUser might be duplicated to DB", PresenceTable.updateUser(user, null, mTestDatabase.getWritableDatabase()) == PresenceTable.USER_UPDATED); User user1 = PresenceTable.getUserPresenceByLocalContactId(12L, mTestDatabase.getReadableDatabase()); assertTrue("the initial and fetched users are not the same!", user.equals(user1)); Log.i(LOG_TAG, "***** testUpdateUser test SUCCEEDED*****"); } public void testGetMeProfilePresenceById() { Log.i(LOG_TAG, "***** GetMeProfilePresenceById() *****"); PresenceTable.create(mTestDatabase.getWritableDatabase()); Log.i(LOG_TAG, "***** GetMeProfilePresenceById(): table created*****"); Hashtable<String, String> status = new Hashtable<String, String>(); status.put("google", "online"); status.put("microsoft", "online"); status.put("mobile", "online"); status.put("pc", "online"); User user = new User("12345678", status); //imaginary Me Profile user.setLocalContactId(12L);// fake localId assertTrue("the user was not added to DB", PresenceTable.updateUser(user, null, mTestDatabase.getWritableDatabase()) == PresenceTable.USER_ADDED); Log.i(LOG_TAG, "***** testUpdateUser Good User test SUCCEEDED*****"); User user1 = PresenceTable.getUserPresenceByLocalContactId(12L, mTestDatabase.getReadableDatabase()); assertTrue("the initial and fetched users are not the same!", user.equals(user1)); assertNull(PresenceTable.getUserPresenceByLocalContactId(-1L, mTestDatabase.getReadableDatabase())); Log.i(LOG_TAG, "***** GetMeProfilePresenceById() SUCCEEEDED*****"); } // public void testDropTable() { // Log.i(LOG_TAG, "***** testDropTable() *****"); // PresenceTable.create(mTestDatabase.getWritableDatabase()); // Log.i(LOG_TAG, "***** testDropTable(): table created*****"); // // Hashtable<String, String> status = new Hashtable<String, String>(); // status.put("google", "online"); // status.put("microsoft", "online"); // status.put("mobile", "online"); // status.put("pc", "online"); // User user = new User("google::meongoogletalk@gmail.com", status); // assertTrue("the user was not added to DB", PresenceTable.updateUser(user, mTestDatabase.getWritableDatabase()) != PresenceTable.USER_NOTADDED); // user = null; //// 4 // NowPlusPresenceDbUtilsTest.dropTable(mTestDatabase.getWritableDatabase()); // Log.i(LOG_TAG, "***** testDropTable(): dropped table*****"); // // PresenceTable.create(mTestDatabase.getWritableDatabase()); // Log.i(LOG_TAG, "***** testDropTable(): table created again*****"); // // int count = PresenceTable.setAllUsersOffline(mTestDatabase.getWritableDatabase()); // assertTrue("The count of deleted rows is not the expected one:"+count, count == 0); // Log.i(LOG_TAG, "***** testDropTable() test SUCCEEDED*****"); // } public void testSetAllUsersOffline() { Log.i(LOG_TAG, "***** testSetAllUsersOffline() *****"); PresenceTable.create(mTestDatabase.getWritableDatabase()); Log.i(LOG_TAG, "***** testSetAllUsersOffline(): table created*****"); assertTrue("The method adds a null user and returns true", PresenceTable.updateUser(null, null, mTestDatabase.getWritableDatabase())==PresenceTable.USER_NOTADDED); Log.i(LOG_TAG, "***** testUpdateUser: NULL test SUCCEEDED *****"); // 1 Hashtable<String, String> status = new Hashtable<String, String>(); status.put("google", "online"); status.put("microsoft", "online"); status.put("mobile", "online"); // status.put("pc", "online"); User user = new User("google::meongoogletalk@gmail.com", status); user.setLocalContactId(12L); assertTrue("the user was not added to DB", PresenceTable.updateUser(user, null, mTestDatabase.getWritableDatabase()) == PresenceTable.USER_ADDED); LogUtils.logE("User1:"+user.toString()); user = null; //4 // user = new User("UNPARSEBLE", status); // assertTrue("the UNPARSEBLE user was added to DB", PresenceTable.updateUser(user, mTestDatabase.getWritableDatabase())== PresenceTable.USER_NOTADDED); // user = null; //4 user = new User("12345678", status); user.setLocalContactId(13L); assertTrue("the NowplusUser user was not added to DB", PresenceTable.updateUser(user, null, mTestDatabase.getWritableDatabase())== PresenceTable.USER_ADDED); // user = null; //8 // status.put("pc", "offline"); // user = new User("12345678", status); user.setLocalContactId(13L); LogUtils.logE("User2:"+user.toString()); LogUtils.logE(user.toString()); assertTrue("the Existing NowplusUser might be duplicated to DB", PresenceTable.updateUser(user, null, mTestDatabase.getWritableDatabase()) == PresenceTable.USER_UPDATED); //8 int count = PresenceTable.setAllUsersOffline(mTestDatabase.getWritableDatabase()); assertTrue("The count of deleted rows is not the expected one:"+count, count == 6); Log.i(LOG_TAG, "***** testSetAllUsersOffline() test SUCCEEDED*****"); } public void testSetAllUsersOfflineExceptForMe() { Log.i(LOG_TAG, "***** testSetAllUsersOfflineExceptForMe() *****"); PresenceTable.create(mTestDatabase.getWritableDatabase()); Log.i(LOG_TAG, "***** testSetAllUsersOfflineExceptForMe(): table created*****"); assertTrue("The method adds a null user and returns true", PresenceTable.updateUser(null, null, mTestDatabase.getWritableDatabase())==PresenceTable.USER_NOTADDED); Log.i(LOG_TAG, "***** testUpdateUser: NULL test SUCCEEDED *****"); // 1 Hashtable<String, String> status = new Hashtable<String, String>(); status.put("google", "online"); status.put("microsoft", "online"); status.put("mobile", "online"); // status.put("pc", "online"); User user = new User("google::meongoogletalk@gmail.com", status); user.setLocalContactId(12L); assertTrue("the user was not added to DB", PresenceTable.updateUser(user, null, mTestDatabase.getWritableDatabase()) == PresenceTable.USER_ADDED); LogUtils.logE("User1:"+user.toString()); user = null; //4 user = new User("12345678", status); user.setLocalContactId(13L); assertTrue("the NowplusUser user was not added to DB", PresenceTable.updateUser(user, null, mTestDatabase.getWritableDatabase())== PresenceTable.USER_ADDED); // user = null; //8 // status.put("pc", "offline"); // user = new User("12345678", status); user.setLocalContactId(13L); LogUtils.logE("User2:"+user.toString()); LogUtils.logE(user.toString()); assertTrue("the Existing NowplusUser might be duplicated to DB", PresenceTable.updateUser(user, null, mTestDatabase.getWritableDatabase()) == PresenceTable.USER_UPDATED); //8 int count = PresenceTable.setAllUsersOfflineExceptForMe(12L, mTestDatabase.getWritableDatabase()); assertTrue("The count of deleted rows is not the expected one:"+count, count == 3); Log.i(LOG_TAG, "***** testSetAllUsersOfflineExceptForMe() test SUCCEEDED*****"); } }