void CTransactionsStep::NestedTransactionTestL() { TContactItemId cid = iIterate->NextL(); iContactsDatabase->DatabaseBeginLC(EFalse); iContactsDatabase->DatabaseBeginLC(ETrue); OpenL(cid); SetFieldL(1, GetFieldL(KStringFields, KField, 1) ); CommitL(ETrue); iContactsDatabase->DatabaseCommitLP(ETrue); OpenL(cid); SetFieldL(2, GetFieldL(KStringFields, KField, 2) ); CommitL(ETrue); EndTransactionL(ETrue); iIterate->Reset(); TInt err = KErrNone; TInt k = 0; TESTPRINT( iContactsDatabase->CountL() == iContacts ); for( k = 0; k < iContacts; ++k) { TRAP(err, ReadL( iIterate->NextL() ) ); TESTPRINTI( KErrNone == err, k ); TESTPRINTI( CheckAllFieldsL(KNullDesC), k ); CloseL( ETrue ); } }
void CTransactionsStep::UpdateCommitTransactionTestL(const TBool aRevert) { CPerformanceFunctionalityBase::InitializeL(); const TContactItemId cid = iIterate->NextL(); const TContactItemId cid2 = iIterate->NextL(); iContactsDatabase->DatabaseBeginLC(EFalse); OpenL( cid ); SetAllFieldsL( GetNextFieldL(KStringFields, KField, ETrue) ); CommitL(ETrue); EndTransactionL(aRevert); iContactsDatabase->DatabaseBeginLC(EFalse); ReadL( cid2 ); SetAllFieldsL( GetNextFieldL(KStringFields, KField, EFalse) ); iContactsDatabase->UpdateContactLC(cid2, iContactItem); CleanupStack::PopAndDestroy(); CloseL( ETrue ); EndTransactionL(aRevert); if(aRevert) { iIterate->Reset(); TInt i = 0; for(; i < iContacts; ++i) { ReadL( iIterate->NextL() ); TESTPRINTI( CheckAllFieldsL(KNullDesC), i ); CloseL( ETrue ); } } else { ReadL( cid ); TESTPRINT( CheckAllFieldsL( GetNextFieldL(KStringFields, KField, ETrue) ) ); CloseL( ETrue ); ReadL( cid2 ); TESTPRINT( CheckAllFieldsL( GetNextFieldL(KStringFields, KField, EFalse) ) ); CloseL( ETrue ); } }
void CTransactionsStep::EmptyCommitTransactionTestL(const TBool aRevert) { CPerformanceFunctionalityBase::InitializeL(); iContactsDatabase->DatabaseBeginLC(EFalse); EndTransactionL(aRevert); iContactsDatabase->DatabaseBeginLC(EFalse); ReadL( iIterate->NextL() ); EndTransactionL(aRevert); CloseL( ETrue ); iIterate->Reset(); TInt i = 0; for(; i < iContacts; ++i) { ReadL( iIterate->NextL() ); TESTPRINTI( CheckAllFieldsL(KNullDesC), i ); CloseL( ETrue ); } }
void CConcurrentNotifierStep::MultipleChangeTransactionTestL() { if( iRevert ) { INFO_PRINTF1(KTest112); } else { INFO_PRINTF1(KTest11); } SetSharedTextL(KSharedNextTest, KSingleCharacter, ETrue); iWaiting = ETrue; TContactItemId cid = iIterate->NextL(); iContactsDatabase->DatabaseBeginLC(EFalse); OpenL( cid ); CommitL( ETrue ); AddEventL(EContactDbObserverEventContactChanged); AddContactL( cid ); cid = iIterate->NextL(); ReadL( cid ); iContactsDatabase->UpdateContactLC( cid, iContactItem); CleanupStack::PopAndDestroy(); CloseL( ETrue ); AddEventL(EContactDbObserverEventContactChanged); AddContactL( cid ); CContactCard* contact = CContactCard::NewLC(iTemplate); cid = iContactsDatabase->doAddNewContactL(*contact, EFalse, ETrue); if(!iRevert) { iIterate->AddL( cid ); } CleanupStack::PopAndDestroy(contact); AddEventL(EContactDbObserverEventContactAdded); AddContactL( cid ); cid = iIterate->NextL(); DeleteContactL( cid, ETrue ); AddEventL(EContactDbObserverEventContactDeleted); AddContactL( cid ); EndTransactionL(); SetMessageCountL(); iStart.UniversalTime(); }
void CTransactionsStep::CreateCommitTransactionTestL(const TBool aRevert) { iContacts = 0; CPerformanceFunctionalityBase::InitializeL(); CContactItemFieldSet& templateFields = iTemplate->CardFields(); TInt fieldsCount = templateFields.Count() - 1; iContactsDatabase->DatabaseBeginLC(EFalse); iContacts = 2; TInt k = 0; CContactCard* contact = CContactCard::NewLC(iTemplate); for(; k < iContacts; k++) { iIterate->AddL( iContactsDatabase->doAddNewContactL(*contact,EFalse,ETrue) ); } CleanupStack::PopAndDestroy(contact); EndTransactionL(aRevert); if(aRevert) { iIterate->Reset(); TInt err = KErrNone; TESTPRINT( iContactsDatabase->CountL() == 0 ); for( k = 0; k < iContacts; ++k) { TRAP(err, ReadL( iIterate->NextL() ) ); TESTPRINTI( KErrNotFound == err, k ); CloseL( ETrue ); } } else { iIterate->Reset(); TESTPRINT( ( iContactsDatabase->CountL() == iContacts ) ); for(k = 0; k < iContacts; ++k) { ReadL( iIterate->NextL() ); TESTPRINTI( iFields->Count() == fieldsCount, k ); TESTPRINTI( CheckAllFieldsL(KNullDesC), k ); CloseL( ETrue ); } } }
void CNotificationStep::PlusTransactionUnkownChangeTestL(const TBool aRevert) { INFO_PRINTF1(KTest3); TContactItemId cid = iIterate->NextL(); TInt i = 0; for( ; i < KPlusContacts; ++i ) { OpenL( cid ); CommitL( EFalse ); } TInt many = aRevert ? KPlusContacts : 1; for( i = 0; i < many; ++i ) { AddEventL( EContactDbObserverEventContactChanged ); AddContactL( cid ); } cid = iIterate->NextL(); iContactsDatabase->DatabaseBeginLC(EFalse); for( i = 0; i < KMaxNumberOfEventsInEventQueue + 1; ++i ) { OpenL( cid ); CommitL( ETrue ); } EndTransactionL( aRevert ); if( !aRevert ) { AddEventL( EContactDbObserverEventUnknownChanges ); AddContactL( -1 ); iMyActive->iCheck = &CNotificationStep::UnkownChangeCheck; } else { iMyActive->iCheck = &CNotificationStep::TransactionUnkownChangeCheck; } iMyActive->Activate(); iStart.UniversalTime(); CActiveScheduler::Start(); }
void CTransactionsStep::DeleteCommitTransactionTestL(const TBool aRevert) { iContacts = 10; CPerformanceFunctionalityBase::InitializeL(); iContactsDatabase->DatabaseBeginLC(EFalse); TInt k = 0; for(; k < iContacts; k++) { iContactsDatabase->doDeleteContactL(iIterate->NextL(), ETrue, ETrue); } EndTransactionL(aRevert); if(aRevert) { TESTPRINT( iContactsDatabase->CountL() == iContacts ); iIterate->Reset(); TInt err = KErrNone; for(k = 0; k < iContacts; ++k) { TRAP(err, ReadL( iIterate->NextL() ) ); TESTPRINTI( KErrNone == err, k ); TESTPRINTI( CheckAllFieldsL( KNullDesC ), k ); CloseL( ETrue ); } } else { TESTPRINT( iContactsDatabase->CountL() == 0 ); iIterate->Reset(); TInt err = KErrNone; for(k = 0; k < iContacts; ++k) { TRAP(err, ReadL( iIterate->NextL() ) ); TESTPRINTI( KErrNotFound == err, k ); CloseL( ETrue ); } iIterate->Clear(); } }
void CConcurrentNotifierStep::UnkownChangeTestL() { INFO_PRINTF1(KTest13); SetSharedTextL(KSharedNextTest, KSingleCharacter, ETrue); iWaiting = ETrue; iMyActive->Activate(); TContactItemId cid = iIterate->NextL(); TInt i = 0; iContactsDatabase->DatabaseBeginLC(EFalse); for( ; i < KMaxNumberOfEventsInEventQueue + 1; ++i ) { OpenL( cid ); CommitL( EFalse ); } AddEventL( EContactDbObserverEventUnknownChanges ); AddContactL( -1 ); EndTransactionL(); SetMessageCountL(); iStart.UniversalTime(); }
void CConcurrentNotifierStep::EmptyTransactionTestL() { if( iRevert ) { INFO_PRINTF1(KTest122); } else { INFO_PRINTF1(KTest12); } SetSharedTextL(KSharedNextTest, KSingleCharacter, ETrue); iWaiting = ETrue; iContactsDatabase->DatabaseBeginLC(EFalse); AddEventL(KNullEvent); AddContactL( KNullEvent ); EndTransactionL(); SetMessageCountL(); iStart.UniversalTime(); }
void CTransactionsStep::MultipleCommitTestL(const TBool aTrans) { iContacts = 40; CPerformanceFunctionalityBase::InitializeL(); if(aTrans) { iContactsDatabase->DatabaseBeginLC(EFalse); } MultipleCommitL(aTrans); if(aTrans) { EndTransactionL(EFalse); } TInt k = 0; iIterate->Reset(); for(; k < iContacts; ++k) { ReadL( iIterate->NextL() ); TESTPRINTI( CheckAllFieldsL( GetNextFieldL(KStringFields, KField, 0 == k ) ), k ); CloseL( ETrue ); } }
void CConcurrentNotifierStep::SingleCommitTransactionTestL() { if( iRevert ) { INFO_PRINTF1(KTest102); } else { INFO_PRINTF1(KTest10); } SetSharedTextL(KSharedNextTest, KSingleCharacter, ETrue); iWaiting = ETrue; TContactItemId cid = iIterate->NextL(); iContactsDatabase->DatabaseBeginLC(EFalse); OpenL( cid ); CommitL( ETrue ); AddEventL(EContactDbObserverEventContactChanged); AddContactL( cid ); EndTransactionL(); SetMessageCountL(); iStart.UniversalTime(); }
void CTransactionsStep::ManyUpdateCommitTransactionTestL( const TBool aRevert ) { iContacts = 1000; CPerformanceFunctionalityBase::InitializeL(); RCntList backuplist; backuplist.CopyL( *iIterate ); iContactsDatabase->DatabaseBeginLC(EFalse); TInt added = 0; TInt deleted = 0; TInt updated = 0; TInt k = 0; for(; k < iContacts; k++) { switch( k % KNumCUDOperations ) { case ( EOpen ): { OpenL( iIterate->NextL() ); //if setting first contact read first field from stringfields section //otherwise read next field in list of fields stored in ini file secion SetAllFieldsL( GetNextFieldL(KStringFields, KField, 0 == k ) ); CommitL(ETrue); ++updated; } break; case ( EUpdate ): { TContactItemId cid = iIterate->NextL(); ReadL( cid ); //if setting first contact read first field from stringfields section //otherwise read next field in list of fields stored in ini file secion SetAllFieldsL( GetNextFieldL(KStringFields, KField, 0 == k ) ); iContactsDatabase->UpdateContactLC(cid, iContactItem); CleanupStack::PopAndDestroy(); CloseL( ETrue ); ++updated; } break; case ( EAddDelete ): { DeleteContactL( iIterate->NextL(), ETrue ); //iterator position is shifted back, so that next nextL call is correct iIterate->PreviousL(); ++deleted; //Empty contact is appended to the database, //Contact id is stored at the end of iterator list not at current iterator position AddEmptyContactsL( 1, ETrue ); ++added; } break; default: { _LIT(KInvalidTest, "Invalid Case"); User::Panic(KInvalidTest, 555); } break; } } EndTransactionL(aRevert); TESTPRINT( iContactsDatabase->CountL() == iContacts ); CContactItemFieldSet& templateFields = iTemplate->CardFields(); TInt fieldsCount = templateFields.Count() - 1; if(aRevert) { //if transaction is reverted / rolledback, all contacts should be //unchanged, i.e. they should all contain empty fields only backuplist.Reset(); TInt err = KErrNone; for(k = 0; k < iContacts; ++k) { TRAP(err, ReadL( backuplist.NextL() ) ); TESTPRINTI( KErrNone == err, k ); TESTPRINTI( CheckAllFieldsL( KNullDesC ), k ); CloseL( ETrue ); } } else { iIterate->Reset(); //all updated contact should contain the appropriated updated field value for(k = 0; k < updated; ++k) { ReadL( iIterate->NextL() ); TESTPRINTI(iFields->Count() == fieldsCount, k); //if reading first contact read first field from stringfields section //otherwise read next field in list of fields stored in ini file secion TESTPRINTI( CheckAllFieldsL( GetNextFieldL(KStringFields, KField, 0 == k ) ), k ); CloseL( ETrue ); } //all newly added contacts, should contain empty fields only. for(k = 0; k < added; ++k) { ReadL( iIterate->NextL() ); TESTPRINTI( iFields->Count() == fieldsCount, k); TESTPRINTI( CheckAllFieldsL( KNullDesC ), k); CloseL( ETrue ); } } }