Untitled
unknown
plain_text
4 years ago
3.0 kB
11
Indexable
@isTest
public class Helper_classetest {
@isTest
public static void testami(){
Profile p = [SELECT Id FROM Profile WHERE Name='Standard User'];
User u = new User(Alias = 'standt', Email='standarduser@testorg.com',
EmailEncodingKey='UTF-8', LastName='Testing', LanguageLocaleKey='en_US',
LocaleSidKey='en_US', ProfileId = p.Id,
TimeZoneSidKey='America/Los_Angeles', UserName='standarduser@testorg.comm');
Profile p1 = [SELECT Id FROM Profile WHERE Name='Standard User'];
User u1 = new User(Alias = 'standt', Email='standarduser@testorg.com',
EmailEncodingKey='UTF-8', LastName='Testing', LanguageLocaleKey='en_US',
LocaleSidKey='en_US', ProfileId = p.Id,
TimeZoneSidKey='America/Los_Angeles', UserName='standarduser@testorg.commm');
System.runAs(u) {
list<account> lista = new list<account>();
for (integer i = 0; i<16; i++){
account a = new account(name='nome' + i, ownerid = u.id);
lista.add(a);
}
insert lista;
}
System.runAs(u1) {
account a = new account(name='nome', ownerid = u1.id);
insert a;
}
list<account> listainput = new list<account>();
for (integer i = 0; i<16; i++){
account a = new account(name='nome' + i, ownerid = u.id);
listainput.add(a);
}
test.startTest();
Helper.CheckRecord(listainput);
test.stopTest();
list<AggregateResult> appoggio = [select ownerid, count(id) numrecord from account group by ownerid];
System.debug(appoggio);
}
}
public class Helper {
public static void CheckRecord(list<account> accs) {
Integer cnt = 0;
Integer sizeaccount = accs.size();
ID IdProp = accs.get(0).ownerid;
list<AggregateResult> appoggio = [select ownerid, count(id) numrecord from account where ownerid =: IdProp group by ownerid];
Integer numAccount = (Integer) appoggio.get(0).get('numrecord');
if (numAccount + sizeaccount > 20) {
cnt = (sizeaccount + numAccount) - 20;
if (cnt > 0) {
list<account> avanzi = new list<account>();
for (integer i=cnt; i>0; i--) {
avanzi.add(accs.get(i));
}
list<AggregateResult> app2 = [select ownerid, count(id) from account group by ownerid having count(id) > 0 order by count(id) ASC LIMIT 1];
ID NuovoProp = (ID) app2.get(0).get('ownerid');
for (account acc:avanzi) {
if (IdProp == Nuovoprop) acc.addError('Non ci sono altri record di altri account');
else acc.ownerid = nuovoProp;
}
}
}
}
}Editor is loading...