You need to sign in to do that
Don't have an account?

Error on batch job test class
This batch job works but the test class I'm writing for it throws this error:
System.UnexpectedException: No more than one executeBatch can be called from within a testmethod. Please make sure the iterable returned from your start method matches the batch size, resulting in one executeBatch invocation.
Batch job that works:
Test class for the above job that doesn't work:
Anyone know what I'm doing wrong here to get that error? Thanks!
System.UnexpectedException: No more than one executeBatch can be called from within a testmethod. Please make sure the iterable returned from your start method matches the batch size, resulting in one executeBatch invocation.
Batch job that works:
global class UpdateUser implements Database.Batchable<sObject> { string query; global void execute(SchedulableContext SC) { UpdateUser x = new UpdateUser(); database.executebatch(x); } global Database.querylocator start(Database.BatchableContext BC){ Query = 'Select id, Contact.Last_Login_to_Portal_Community__c, LastLoginDate FROM User WHERE ContactId != null AND isActive = true'; return Database.getQueryLocator(query); } global void execute(Database.BatchableContext BC, List<User> scope1){ List<Contact> cList = new List<Contact>(); List<User> uList = new List<User>(); for(User u : Scope1){ u.Last_Login_Date__c = u.LastLoginDate; u.Contact.Last_Login_to_Portal_Community__c = u.LastLoginDate; cList.add(u.Contact); uList.add(u); } update uList; update cList; } global void finish(Database.BatchableContext BC){ } /* Schedule job every 30 minutes: updateUser us = new updateUser (); string sch = '0 30 * * 1-12 ? *'; system.schedule('updateUserOnTheHalfHour',sch,us); */ }
Test class for the above job that doesn't work:
@isTest private class TestCleanUpBatchClass { static testmethod void test() { //insert an account Account a = new Account(); a.Name = 'test'; insert a; //insert a contact Contact c = new Contact(); c.LastName ='test'; c.FirstName ='test'; c.AccountId=a.id; insert c; //insert a user on that contact Profile p = [SELECT Id FROM Profile WHERE Name='Sovos Customer Community Login User - Convey']; User u = new User(Alias = 'standt1', Email='standarduser1@testorg1.com', EmailEncodingKey='UTF-8', LastName='Testing', LanguageLocaleKey='en_US', LocaleSidKey='en_US', ProfileId = p.Id, ContactId = c.Id, Last_Login_Date__c = System.today(), TimeZoneSidKey='America/Los_Angeles', UserName='standarduser1@testorg1.com'); insert u; //run the batch Test.StartTest(); UpdateUser x = new UpdateUser(); ID batchprocessid = Database.executeBatch(x); Test.StopTest(); //confirm that the contact Last Login to Portal/Community is = to user last login Contact c1 = [SELECT Id, Last_Login_to_Portal_Community__c FROM Contact Where Id =: c.Id]; User u1 = [SELECT Id, ContactId, Last_Login_Date__c FROM User Where Id =: u.Id]; System.AssertEquals(u1.ContactId,c1.Id); System.AssertEquals(System.Today(),c1.Last_Login_to_Portal_Community__c); } }
Anyone know what I'm doing wrong here to get that error? Thanks!