You need to sign in to do that
Don't have an account?
Lago S.p.a.
Update a lookup ID with a trigger .
Hi everybody , I have troubles with my code.
What I have to do is update a Field in a object with the same field taken from another object.
I'm trying this with a trigger , here's the code below :
trigger TriggerCreateTaskBroker on Candidatura_Tenant__c (after update)
{
for (Integer i = 0; i < Trigger.new.size(); i++)
{
if (Trigger.new[i].selected__c != Trigger.old[i].selected__c && Trigger.old[i].selected__c == null && Trigger.new[i].selected__c == 'Si')
{
Task_apt__c obj = new Task_apt__c();
obj.type__c = 'Attivazione Playourhouse';
obj.responsabile__c = Trigger.old[i].agente_cand__c;
obj.RecordTypeId = '012a0000001WEaI';
obj.task_desc__c = 'prova trigger roger x agente';
obj.phone__c = 20142014;
insert obj;
//BookInsert.put(obj.id,obj);
}
}
}
The problem is that in the class test, the assert that I've set is wrong,Expected 0, actual 1. So, probably my trigger doesn't do what have to do.
Anybody has some idea to solve my problem?
thsnk you in advance
What I have to do is update a Field in a object with the same field taken from another object.
I'm trying this with a trigger , here's the code below :
trigger TriggerCreateTaskBroker on Candidatura_Tenant__c (after update)
{
for (Integer i = 0; i < Trigger.new.size(); i++)
{
if (Trigger.new[i].selected__c != Trigger.old[i].selected__c && Trigger.old[i].selected__c == null && Trigger.new[i].selected__c == 'Si')
{
Task_apt__c obj = new Task_apt__c();
obj.type__c = 'Attivazione Playourhouse';
obj.responsabile__c = Trigger.old[i].agente_cand__c;
obj.RecordTypeId = '012a0000001WEaI';
obj.task_desc__c = 'prova trigger roger x agente';
obj.phone__c = 20142014;
insert obj;
//BookInsert.put(obj.id,obj);
}
}
}
The problem is that in the class test, the assert that I've set is wrong,Expected 0, actual 1. So, probably my trigger doesn't do what have to do.
Anybody has some idea to solve my problem?
thsnk you in advance
public with sharing class TriggerCreateTaskBrokerTest
{
static testMethod void myUnitTest() {
Test.startTest();
List<Candidatura_Tenant__c> cand = [select a.id,a.selected__c
from Candidatura_Tenant__c a where a.Lead__c = '00Qa000001K1Pds'];
System.assertEquals(cand.size(), 1);
//System.assertEquals(cand.size(), 1);
Candidatura_Tenant__c candidatura = cand.get(0);
candidatura.selected__c = 'Si';
update candidatura;
System.assertEquals(candidatura.selected__c, 'Si');
List<task_apt__c> task = [select a.id
from task_apt__c a where a.responsabile__c = '003a000001c6C7k'];
System.assertEquals(task.size(), 1);
Test.stopTest();
}
}
I see you are attempting to reference existing data in your org by using "SeeAllData=true" - this is not best practice and opens you up to future test failures if the Ids referenced are deleted. A proper Unit Test creates all data needed for the test and does not rely on existing organization data.
Here's my code now, but the error is the same , as I supposed.
Have you an idea to show me where I wrong?
public with sharing class TriggerCreateTaskBrokerTest
{
static testMethod void myUnitTest()
{
Test.startTest();
Lead dummy =new lead();
Candidatura_Tenant__c candid = new Candidatura_Tenant__c();
//List<Candidatura_Tenant__c> cand = [select a.id,a.selected__c
// from Candidatura_Tenant__c a where a.Lead__c = '00Qa000001K1Pds'];
//System.assertEquals(cand.size(), 1);
//System.assertEquals(cand.size(), 1);
dummy.FirstName ='Pippo';
dummy.LastName = 'Pluto';
dummy.Email ='pippo.pluto@gmail.com';
insert dummy;
List<Lead> lead = [select a.id from Lead a where a.Email ='pippo.pluto@gmail.com'];
Lead leadtest = lead.get(0);
candid.Lead__c = leadtest.Id;
insert candid;
Account acc = new account();
acc.Name = 'Test';
acc.CustomerCode__c = '990909';
insert acc;
Contact contatto = new Contact();
contatto.FirstName ='Paolino';
contatto.LastName ='Paperino';
contatto.Email = 'paolino.paperino@gmail.com';
insert contatto;
List<Account> cliente = [select a.Id from Account a where a.CustomerCode__c ='990909'];
//Candidatura_Tenant__c candidatura = cand.get(0);
//candidatura.selected__c = 'Si';
Account account = cliente.get(0);
List<Contact> cont = [select a.Id from Contact a where a.Email ='paolino.paperino@gmail.com'];
Contact contact = cont.get(0);
contact.AccountId = account.Id;
List<Candidatura_Tenant__c> candidatura = [select a.Id from Candidatura_Tenant__c a where a.Lead__c = :leadtest.Id];
Candidatura_Tenant__c candidato = candidatura.get(0);
candidato.agente_cand__c = contact.Id;
candidato.selected__c= 'Si';
update account;
update contact;
update candidato;
//System.assertEquals(candidatura.selected__c, 'Si');
List<task_apt__c> task = [select a.id
from task_apt__c a where a.responsabile__c = :contact.Id];
System.assertEquals(task.size(), 1);
Test.stopTest();
}
}