- Anna Antonella Adiletta 1
- NEWBIE
- 25 Points
- Member since 2016
-
ChatterFeed
-
0Best Answers
-
0Likes Received
-
0Likes Given
-
6Questions
-
6Replies
Test Class help for my apex code
I have to write test class for this apex code:
public static void CreaEventoCorrispondente() {
if (trigger.isInsert) {
Map<Integer, Event> EventstoUpsert1 = new Map<Integer, Event> ();
Map<Integer, Event> EventstoUpsert2 = new Map<Integer, Event> ();
List<Schema.PicklistEntry> ple = Edizione__c.Lead_Tutor__c.getDescribe().getPicklistValues();
List<String> cognomiTutor = new List<String> ();
for (Schema.PicklistEntry p : ple) {
cognomiTutor.add(p.getLabel());
}
Map<String, Id> CognomiIds = new Map<String, Id> ();
for (User u :[SELECT Id, LastName FROM User WHERE LastName IN :cognomiTutor]) {
CognomiIds.put(u.LastName, u.Id);
}
integer pos = 0;
for (Edizione__c e : (List<Edizione__c>) trigger.new) {
if (e.Lead_Tutor__c != NULL && CognomiIds.keySet().contains(e.Lead_Tutor__c)) {
Event newEvent1 = new Event(isAllDayEvent = TRUE, Location=e.Sede__c, Subject = e.Name, StartDateTime = (DateTime.newInstance(e.Data_inizio__c , (DateTime.newInstance(e.Data_inizio__c, Time.newInstance(0,0,0,0))).timeGMT())), EndDateTime = (DateTime.newInstance(e.Data_fine__c, (DateTime.newInstance(e.Data_fine__c, Time.newInstance(0,0,0,0))).timeGMT())), OwnerId = CognomiIds.get(e.Lead_Tutor__c));
EventstoUpsert1.put(pos, newEvent1);
}
if (e.Lead_Tutor__c != NULL && CognomiIds.keySet().contains(e.Second_Tutor__c)) {
Event newEvent2 = new Event(isAllDayEvent = TRUE, Location=e.Sede__c, Subject = e.Name, StartDateTime = (DateTime.newInstance(e.Data_inizio__c, (DateTime.newInstance(e.Data_inizio__c, Time.newInstance(0,0,0,0))).timeGMT())), EndDateTime = (DateTime.newInstance(e.Data_fine__c, (DateTime.newInstance(e.Data_fine__c, Time.newInstance(0,0,0,0))).timeGMT())), OwnerId = CognomiIds.get(e.Second_Tutor__c));
EventstoUpsert2.put(pos, newEvent2);
}
pos++;
}
if (!EventstoUpsert1.isEmpty()) {
insert EventstoUpsert1.values();
for (Integer i : EventstoUpsert1.keySet()) {
Edizione__c ed = ((Edizione__c) trigger.new[i]);
ed.IdEventoLeadTutor__c = EventstoUpsert1.get(i).Id;
}
}
if (!EventstoUpsert2.isEmpty()) {
insert EventstoUpsert2.values();
for (Integer i : EventstoUpsert2.keySet()) {
Edizione__c ed = ((Edizione__c) trigger.new[i]);
ed.IdEventoSecondTutor__c = EventstoUpsert2.get(i).Id;
}
}
} else if (trigger.isUpdate) {
Map<Id, Event> EventstoUpsert1 = new Map<Id, Event> ();
Map<Id, Event> EventstoUpsert2 = new Map<Id, Event> ();
List<Schema.PicklistEntry> ple = Edizione__c.Lead_Tutor__c.getDescribe().getPicklistValues();
List<String> cognomiTutor = new List<String> ();
List<Id> EventstoDelete = new List<Id>();
for (Schema.PicklistEntry p : ple) {
cognomiTutor.add(p.getLabel());
}
Map<String, Id> CognomiIds = new Map<String, Id> ();
for (User u :[SELECT Id, LastName FROM User WHERE LastName IN :cognomiTutor]) {
CognomiIds.put(u.LastName, u.Id);
}
for (Edizione__c e : (List<Edizione__c>) trigger.new) {
if (e.Lead_Tutor__c != ((Edizione__c) trigger.oldMap.get(e.Id)).Lead_Tutor__c) {
if (((Edizione__c) trigger.oldMap.get(e.Id)).Lead_Tutor__c == NULL){
Event ev = new Event();
ev = new Event(isAllDayEvent = TRUE, Subject = e.Name, Location=e.Sede__c, StartDateTime = (DateTime.newInstance(e.Data_inizio__c, (DateTime.newInstance(e.Data_inizio__c, Time.newInstance(0,0,0,0))).timeGMT())), EndDateTime = (DateTime.newInstance(e.Data_fine__c, (DateTime.newInstance(e.Data_fine__c, Time.newInstance(0,0,0,0))).timeGMT())), OwnerId = CognomiIds.get(e.Lead_Tutor__c));
EventstoUpsert1.put(e.Id, ev);
} else if (e.Lead_tutor__c == NULL) {
EventstoDelete.add(e.IdEventoLeadTutor__c);
e.IdEventoLeadTutor__c = NULL;
} else {
if (((Edizione__c) trigger.oldMap.get(e.Id)).IdEventoLeadTutor__c != NULL) {
EventstoUpsert1.put(e.Id, new Event(Id = ((Edizione__c) trigger.oldMap.get(e.Id)).IdEventoLeadTutor__c, OwnerId = CognomiIds.get(e.Lead_Tutor__c)));
}
}
}
if (e.Second_Tutor__c != ((Edizione__c) trigger.oldMap.get(e.Id)).Second_Tutor__c) {
if (((Edizione__c) trigger.oldMap.get(e.Id)).Second_Tutor__c == NULL){
Event ev = new Event();
ev = new Event(isAllDayEvent = TRUE, Subject = e.Name, Location=e.Sede__c, StartDateTime = (DateTime.newInstance(e.Data_inizio__c, (DateTime.newInstance(e.Data_inizio__c, Time.newInstance(0,0,0,0))).timeGMT())), EndDateTime = (DateTime.newInstance(e.Data_fine__c, (DateTime.newInstance(e.Data_fine__c, Time.newInstance(0,0,0,0))).timeGMT())), OwnerId = CognomiIds.get(e.Second_Tutor__c));
EventstoUpsert2.put(e.Id, ev);
} else if (e.Second_tutor__c == NULL) {
EventstoDelete.add(e.IdEventoSecondTutor__c);
e.IdEventoSecondTutor__c = NULL;
} else {
if (((Edizione__c) trigger.oldMap.get(e.Id)).IdEventoSecondTutor__c != NULL) {
EventstoUpsert2.put(e.Id, new Event(Id = ((Edizione__c) trigger.oldMap.get(e.Id)).IdEventoSecondTutor__c, OwnerId = CognomiIds.get(e.Second_Tutor__c)));
}
}
}
}
if (!EventstoUpsert1.isEmpty()) {
upsert EventstoUpsert1.values();
for (Id i : EventstoUpsert1.keySet()) {
Edizione__c ed = ((Edizione__c) trigger.newMap.get(i));
ed.IdEventoSecondTutor__c = EventstoUpsert1.get(i).Id;
}
}
if (!EventstoUpsert2.isEmpty()) {
upsert EventstoUpsert2.values();
for (Id i : EventstoUpsert2.keySet()) {
Edizione__c ed = ((Edizione__c) trigger.newMap.get(i));
ed.IdEventoSecondTutor__c = EventstoUpsert2.get(i).Id;
}
}
if (!EventstoDelete.isEmpty()){
List<Event> ETDL = new List<Event>();
for (Id i : EventstoDelete){
ETDL.add(new Event(Id = i));
}
delete ETDL;
}
}
}
This class retrive an apex trigger :
trigger Trigger_Edizione on Edizione__c (before update, before insert, after update, before delete) {
if (trigger.isBefore){
if (!trigger.isDelete){
EdizioneHelper.CreaEventoCorrispondente();
} else {
EdizioneHelper.CancellaEventoCorrispondente();
}
}
The test class that I have writed is :
static testMethod void TestCreaEventoCorrispondente() {
Map<Integer, Event> Events1 = new Map<Integer, Event> ();
Map<Integer, Event> Events2 = new Map<Integer, Event> ();
List <Schema.PicklistEntry> l_picklist = new List <Schema.PicklistEntry>();
List <Id>l_Ids= new List <Id>();
Map<String,Id> S_Ids = new Map <String,Id> ();
List <Edizione__c> l_ed= new List <Edizione__c>();
Edizione__c edizione = new Edizione__c(Data_inizio__c=date.valueof('2016-09-07'),Data_fine__c=date.valueof('2016-09-07'),motivo_stato__c='edizione confermata', Codice_piattaforma__c='edizione',Sede__c='Milano',Name='ciccio',Data_Invio_al_Sito__c=date.valueof('2016-09-15'),Lead_Tutor__c='Colonna');
insert edizione;
l_ed.add(edizione);
List <Event> l_ev = new List <Event>();
Event ev = new Event (Location=edizione.Sede__c,Subject=edizione.name, IsAllDayEvent=false, StartDateTime = datetime.newInstance(2014, 11, 13, 16, 30, 0), EndDateTime = datetime.newInstance(2014, 11, 13, 18, 30, 0));
l_ev.add(ev);
insert ev;
User us = new User (Username='d.pippo@bridgepartners.it.dev',LastName='Pugliese',FirstName='Domenico', Email='d.pugliese@bridgepartners.it', Alias='dpugl', CommunityNickname='d.pippo', TimeZoneSidKey='Europe/Rome', LocaleSidKey='it_IT', EmailEncodingKey='ISO-8859-1', ProfileId='00e58000000ZU0WAAW', LanguageLocaleKey='it');
insert us;
update us;
EdizioneHelper.CreaEventoCorrispondente();
update ev;
EdizioneHelper.CreaEventoCorrispondente();
delete ev;
EdizioneHelper.CreaEventoCorrispondente();
delete l_ev;
EdizioneHelper.CreaEventoCorrispondente();
ev.IsAllDayEvent=true;
update ev;
EdizioneHelper.CreaEventoCorrispondente();
edizione.Second_Tutor__c='Fioretti';
update edizione;
EdizioneHelper.CreaEventoCorrispondente();
}
The result of run test is :
System.NullPointerException: Attempt to de-reference a null object, when I write in the test class
EdizioneHelper.CreaEventoCorrispondente();
and when I write if (trigger.isInsert) in the apex class
public static void CreaEventoCorrispondente() {
if (trigger.isInsert) {
Map<Integer, Event> EventstoUpsert1 = new Map<Integer, Event> ();
Map<Integer, Event> EventstoUpsert2 = new Map<Integer, Event> ();
List<Schema.PicklistEntry> ple = Edizione__c.Lead_Tutor__c.getDescribe().getPicklistValues();
List<String> cognomiTutor = new List<String> ();
for (Schema.PicklistEntry p : ple) {
cognomiTutor.add(p.getLabel());
}
Map<String, Id> CognomiIds = new Map<String, Id> ();
for (User u :[SELECT Id, LastName FROM User WHERE LastName IN :cognomiTutor]) {
CognomiIds.put(u.LastName, u.Id);
}
integer pos = 0;
for (Edizione__c e : (List<Edizione__c>) trigger.new) {
if (e.Lead_Tutor__c != NULL && CognomiIds.keySet().contains(e.Lead_Tutor__c)) {
Event newEvent1 = new Event(isAllDayEvent = TRUE, Location=e.Sede__c, Subject = e.Name, StartDateTime = (DateTime.newInstance(e.Data_inizio__c , (DateTime.newInstance(e.Data_inizio__c, Time.newInstance(0,0,0,0))).timeGMT())), EndDateTime = (DateTime.newInstance(e.Data_fine__c, (DateTime.newInstance(e.Data_fine__c, Time.newInstance(0,0,0,0))).timeGMT())), OwnerId = CognomiIds.get(e.Lead_Tutor__c));
EventstoUpsert1.put(pos, newEvent1);
}
if (e.Lead_Tutor__c != NULL && CognomiIds.keySet().contains(e.Second_Tutor__c)) {
Event newEvent2 = new Event(isAllDayEvent = TRUE, Location=e.Sede__c, Subject = e.Name, StartDateTime = (DateTime.newInstance(e.Data_inizio__c, (DateTime.newInstance(e.Data_inizio__c, Time.newInstance(0,0,0,0))).timeGMT())), EndDateTime = (DateTime.newInstance(e.Data_fine__c, (DateTime.newInstance(e.Data_fine__c, Time.newInstance(0,0,0,0))).timeGMT())), OwnerId = CognomiIds.get(e.Second_Tutor__c));
EventstoUpsert2.put(pos, newEvent2);
}
pos++;
}
if (!EventstoUpsert1.isEmpty()) {
insert EventstoUpsert1.values();
for (Integer i : EventstoUpsert1.keySet()) {
Edizione__c ed = ((Edizione__c) trigger.new[i]);
ed.IdEventoLeadTutor__c = EventstoUpsert1.get(i).Id;
}
}
if (!EventstoUpsert2.isEmpty()) {
insert EventstoUpsert2.values();
for (Integer i : EventstoUpsert2.keySet()) {
Edizione__c ed = ((Edizione__c) trigger.new[i]);
ed.IdEventoSecondTutor__c = EventstoUpsert2.get(i).Id;
}
}
} else if (trigger.isUpdate) {
Map<Id, Event> EventstoUpsert1 = new Map<Id, Event> ();
Map<Id, Event> EventstoUpsert2 = new Map<Id, Event> ();
List<Schema.PicklistEntry> ple = Edizione__c.Lead_Tutor__c.getDescribe().getPicklistValues();
List<String> cognomiTutor = new List<String> ();
List<Id> EventstoDelete = new List<Id>();
for (Schema.PicklistEntry p : ple) {
cognomiTutor.add(p.getLabel());
}
Map<String, Id> CognomiIds = new Map<String, Id> ();
for (User u :[SELECT Id, LastName FROM User WHERE LastName IN :cognomiTutor]) {
CognomiIds.put(u.LastName, u.Id);
}
for (Edizione__c e : (List<Edizione__c>) trigger.new) {
if (e.Lead_Tutor__c != ((Edizione__c) trigger.oldMap.get(e.Id)).Lead_Tutor__c) {
if (((Edizione__c) trigger.oldMap.get(e.Id)).Lead_Tutor__c == NULL){
Event ev = new Event();
ev = new Event(isAllDayEvent = TRUE, Subject = e.Name, Location=e.Sede__c, StartDateTime = (DateTime.newInstance(e.Data_inizio__c, (DateTime.newInstance(e.Data_inizio__c, Time.newInstance(0,0,0,0))).timeGMT())), EndDateTime = (DateTime.newInstance(e.Data_fine__c, (DateTime.newInstance(e.Data_fine__c, Time.newInstance(0,0,0,0))).timeGMT())), OwnerId = CognomiIds.get(e.Lead_Tutor__c));
EventstoUpsert1.put(e.Id, ev);
} else if (e.Lead_tutor__c == NULL) {
EventstoDelete.add(e.IdEventoLeadTutor__c);
e.IdEventoLeadTutor__c = NULL;
} else {
if (((Edizione__c) trigger.oldMap.get(e.Id)).IdEventoLeadTutor__c != NULL) {
EventstoUpsert1.put(e.Id, new Event(Id = ((Edizione__c) trigger.oldMap.get(e.Id)).IdEventoLeadTutor__c, OwnerId = CognomiIds.get(e.Lead_Tutor__c)));
}
}
}
if (e.Second_Tutor__c != ((Edizione__c) trigger.oldMap.get(e.Id)).Second_Tutor__c) {
if (((Edizione__c) trigger.oldMap.get(e.Id)).Second_Tutor__c == NULL){
Event ev = new Event();
ev = new Event(isAllDayEvent = TRUE, Subject = e.Name, Location=e.Sede__c, StartDateTime = (DateTime.newInstance(e.Data_inizio__c, (DateTime.newInstance(e.Data_inizio__c, Time.newInstance(0,0,0,0))).timeGMT())), EndDateTime = (DateTime.newInstance(e.Data_fine__c, (DateTime.newInstance(e.Data_fine__c, Time.newInstance(0,0,0,0))).timeGMT())), OwnerId = CognomiIds.get(e.Second_Tutor__c));
EventstoUpsert2.put(e.Id, ev);
} else if (e.Second_tutor__c == NULL) {
EventstoDelete.add(e.IdEventoSecondTutor__c);
e.IdEventoSecondTutor__c = NULL;
} else {
if (((Edizione__c) trigger.oldMap.get(e.Id)).IdEventoSecondTutor__c != NULL) {
EventstoUpsert2.put(e.Id, new Event(Id = ((Edizione__c) trigger.oldMap.get(e.Id)).IdEventoSecondTutor__c, OwnerId = CognomiIds.get(e.Second_Tutor__c)));
}
}
}
}
if (!EventstoUpsert1.isEmpty()) {
upsert EventstoUpsert1.values();
for (Id i : EventstoUpsert1.keySet()) {
Edizione__c ed = ((Edizione__c) trigger.newMap.get(i));
ed.IdEventoSecondTutor__c = EventstoUpsert1.get(i).Id;
}
}
if (!EventstoUpsert2.isEmpty()) {
upsert EventstoUpsert2.values();
for (Id i : EventstoUpsert2.keySet()) {
Edizione__c ed = ((Edizione__c) trigger.newMap.get(i));
ed.IdEventoSecondTutor__c = EventstoUpsert2.get(i).Id;
}
}
if (!EventstoDelete.isEmpty()){
List<Event> ETDL = new List<Event>();
for (Id i : EventstoDelete){
ETDL.add(new Event(Id = i));
}
delete ETDL;
}
}
}
This class retrive an apex trigger :
trigger Trigger_Edizione on Edizione__c (before update, before insert, after update, before delete) {
if (trigger.isBefore){
if (!trigger.isDelete){
EdizioneHelper.CreaEventoCorrispondente();
} else {
EdizioneHelper.CancellaEventoCorrispondente();
}
}
The test class that I have writed is :
static testMethod void TestCreaEventoCorrispondente() {
Map<Integer, Event> Events1 = new Map<Integer, Event> ();
Map<Integer, Event> Events2 = new Map<Integer, Event> ();
List <Schema.PicklistEntry> l_picklist = new List <Schema.PicklistEntry>();
List <Id>l_Ids= new List <Id>();
Map<String,Id> S_Ids = new Map <String,Id> ();
List <Edizione__c> l_ed= new List <Edizione__c>();
Edizione__c edizione = new Edizione__c(Data_inizio__c=date.valueof('2016-09-07'),Data_fine__c=date.valueof('2016-09-07'),motivo_stato__c='edizione confermata', Codice_piattaforma__c='edizione',Sede__c='Milano',Name='ciccio',Data_Invio_al_Sito__c=date.valueof('2016-09-15'),Lead_Tutor__c='Colonna');
insert edizione;
l_ed.add(edizione);
List <Event> l_ev = new List <Event>();
Event ev = new Event (Location=edizione.Sede__c,Subject=edizione.name, IsAllDayEvent=false, StartDateTime = datetime.newInstance(2014, 11, 13, 16, 30, 0), EndDateTime = datetime.newInstance(2014, 11, 13, 18, 30, 0));
l_ev.add(ev);
insert ev;
User us = new User (Username='d.pippo@bridgepartners.it.dev',LastName='Pugliese',FirstName='Domenico', Email='d.pugliese@bridgepartners.it', Alias='dpugl', CommunityNickname='d.pippo', TimeZoneSidKey='Europe/Rome', LocaleSidKey='it_IT', EmailEncodingKey='ISO-8859-1', ProfileId='00e58000000ZU0WAAW', LanguageLocaleKey='it');
insert us;
update us;
EdizioneHelper.CreaEventoCorrispondente();
update ev;
EdizioneHelper.CreaEventoCorrispondente();
delete ev;
EdizioneHelper.CreaEventoCorrispondente();
delete l_ev;
EdizioneHelper.CreaEventoCorrispondente();
ev.IsAllDayEvent=true;
update ev;
EdizioneHelper.CreaEventoCorrispondente();
edizione.Second_Tutor__c='Fioretti';
update edizione;
EdizioneHelper.CreaEventoCorrispondente();
}
The result of run test is :
System.NullPointerException: Attempt to de-reference a null object, when I write in the test class
EdizioneHelper.CreaEventoCorrispondente();
and when I write if (trigger.isInsert) in the apex class
- Anna Antonella Adiletta 1
- October 26, 2016
- Like
- 0
write test class for apex code
Hi, I have to write test class for this apex code:
global class IntegrationUtils {
public class IntegrationUtilsException extends Exception{}
public static Httpresponse sendSoapRequest(String endPoint,String soapMessage){
return IntegrationUtils.sendSoapRequest(endPoint, soapMessage, 10000);
}
public static Httpresponse sendSoapRequest(String endPoint,String soapMessage,Integer timeOut){
if (endPoint==null || endPoint=='' || soapMessage==null || soapMessage=='' || timeOut == null)
throw new IntegrationUtilsException('Input parameters not correct!!');
HttpResponse res = null;
System.debug(Logginglevel.INFO,soapMessage);
try{
Http h = new Http();
HttpRequest req = new HttpRequest();
req.setMethod('POST');
req.setHeader('Accept-Encoding','gzip,deflate');
req.setHeader('Content-Type','text/xml;charset=UTF-8');
req.setEndpoint(endPoint);
req.setHeader('Content-Length',String.valueOf(soapMessage.length()));
req.setBody(soapMessage);
req.setTimeout(timeOut);
res=h.send(req);
System.debug(Logginglevel.INFO,'Soap response:' + res.getBody());
return res;
}
catch(Exception e){
return null;
//throw new IntegrationUtilsException('Error setting or invoking HttpRequest with provided SOAP');
}
}
public static String replaceInTemplate(String template, Map<String,String> placeholderContentMap){
if (template==null || template=='' || placeholderContentMap==null)
throw new IntegrationUtilsException('Input parameters not correct!!');
String returnValue = template;
for(String currentPlaceholder:placeholderContentMap.keySet()){
String currentContent=placeholderContentMap.get(currentPlaceholder);
System.debug(Logginglevel.INFO,'Current placeholder:' + currentPlaceholder + 'Current content:' + currentContent);
//System.debug(currentContent);
returnValue = returnValue.replace(currentPlaceholder, currentContent==null?'':currentContent.escapeXml());
}
return returnValue;
}
public static Dom.Xmlnode searchXmlNodeByName(Dom.Xmlnode xmlDocument,String nodeName){
return searchXmlNodeByName(xmlDocument,nodeName, false);
}
public static Dom.Xmlnode searchXmlNodeByName(Dom.Xmlnode xmlDocument,String nodeName, Boolean searchOnlyChilds){
Dom.Xmlnode xmlNode = null;
Integer i;
System.debug('**********nodeName: '+nodeName);
System.debug('**********searchOnlyChilds: '+searchOnlyChilds);
try{
String xmlDocName = xmlDocument.getName();
System.debug('**********xmlDocName: '+xmlDocName);
if(!searchOnlyChilds && xmlDocName==nodeName)
xmlNode = xmlDocument;
else {
Dom.Xmlnode[] xmlNodeList = xmlDocument.getChildElements();
for(i=0;i<xmlDocument.getChildElements().size();i++){
Dom.Xmlnode currXmlNode = xmlNodeList[i];
//while(xmlNode==null){
//System.debug('Current parent:' + xmlDocument.getName() + ' - Current child:' + currXmlNode.getName());
xmlNode = searchXmlNodeByName(currXmlNode,nodeName);
if(xmlNode!=null)
break;
//}
}
}
System.debug('********** xmlNode: '+ xmlNode);
return xmlNode;
}
catch(Exception e){
throw new IntegrationUtilsException('Error during searchXmlNodeByName with provided parameters');
}
}
public static Dom.Document parseXmlString(String xml) {
Dom.Document domDoc = new Dom.Document();
domDoc.load(xml);
return domDoc;
}
}
@isTest(seealldata = true)
private class IntegrationUtils_Test {
static testMethod void Costruttore_Test(){
IntegrationUtils IU= new IntegrationUtils ();
IntegrationUtils.IntegrationUtilsException IUE = new IntegrationUtils.IntegrationUtilsException ();
string endPoint='end';
string soapMessage='message';
Integer timeOut =10;
IntegrationUtils.sendSoapRequest(endPoint,soapMessage,timeOut);
// endPoint='';
//soapMessage='';
//timeOut= null;
IntegrationUtils.sendSoapRequest(endPoint,soapMessage,timeOut);
String template = 'Templa';
Map<String,String> placeholderContentMap = new Map <string,string>();
template = 'mjkhg';
String currentPlaceholder = 'Place';
String currentContent='Content';
currentContent = placeholderContentMap.get(currentPlaceholder);
currentContent= null;
IntegrationUtils.replaceInTemplate(template, placeholderContentMap);
Http h = new Http();
HttpRequest req = new HttpRequest();
req.setMethod('GET');
HttpResponse res = h.send(req);
Dom.Document doc = res.getBodyDocument();
//Retrieve the root element for this document.
Dom.XMLNode address = doc.getRootElement();
string nodeName='ciao';
Boolean searchOnlyChilds= true;
IntegrationUtils.searchXmlNodeByName(address,nodeName,searchOnlyChilds);
}
}
how can I continue in write this test class? Thank you
global class IntegrationUtils {
public class IntegrationUtilsException extends Exception{}
public static Httpresponse sendSoapRequest(String endPoint,String soapMessage){
return IntegrationUtils.sendSoapRequest(endPoint, soapMessage, 10000);
}
public static Httpresponse sendSoapRequest(String endPoint,String soapMessage,Integer timeOut){
if (endPoint==null || endPoint=='' || soapMessage==null || soapMessage=='' || timeOut == null)
throw new IntegrationUtilsException('Input parameters not correct!!');
HttpResponse res = null;
System.debug(Logginglevel.INFO,soapMessage);
try{
Http h = new Http();
HttpRequest req = new HttpRequest();
req.setMethod('POST');
req.setHeader('Accept-Encoding','gzip,deflate');
req.setHeader('Content-Type','text/xml;charset=UTF-8');
req.setEndpoint(endPoint);
req.setHeader('Content-Length',String.valueOf(soapMessage.length()));
req.setBody(soapMessage);
req.setTimeout(timeOut);
res=h.send(req);
System.debug(Logginglevel.INFO,'Soap response:' + res.getBody());
return res;
}
catch(Exception e){
return null;
//throw new IntegrationUtilsException('Error setting or invoking HttpRequest with provided SOAP');
}
}
public static String replaceInTemplate(String template, Map<String,String> placeholderContentMap){
if (template==null || template=='' || placeholderContentMap==null)
throw new IntegrationUtilsException('Input parameters not correct!!');
String returnValue = template;
for(String currentPlaceholder:placeholderContentMap.keySet()){
String currentContent=placeholderContentMap.get(currentPlaceholder);
System.debug(Logginglevel.INFO,'Current placeholder:' + currentPlaceholder + 'Current content:' + currentContent);
//System.debug(currentContent);
returnValue = returnValue.replace(currentPlaceholder, currentContent==null?'':currentContent.escapeXml());
}
return returnValue;
}
public static Dom.Xmlnode searchXmlNodeByName(Dom.Xmlnode xmlDocument,String nodeName){
return searchXmlNodeByName(xmlDocument,nodeName, false);
}
public static Dom.Xmlnode searchXmlNodeByName(Dom.Xmlnode xmlDocument,String nodeName, Boolean searchOnlyChilds){
Dom.Xmlnode xmlNode = null;
Integer i;
System.debug('**********nodeName: '+nodeName);
System.debug('**********searchOnlyChilds: '+searchOnlyChilds);
try{
String xmlDocName = xmlDocument.getName();
System.debug('**********xmlDocName: '+xmlDocName);
if(!searchOnlyChilds && xmlDocName==nodeName)
xmlNode = xmlDocument;
else {
Dom.Xmlnode[] xmlNodeList = xmlDocument.getChildElements();
for(i=0;i<xmlDocument.getChildElements().size();i++){
Dom.Xmlnode currXmlNode = xmlNodeList[i];
//while(xmlNode==null){
//System.debug('Current parent:' + xmlDocument.getName() + ' - Current child:' + currXmlNode.getName());
xmlNode = searchXmlNodeByName(currXmlNode,nodeName);
if(xmlNode!=null)
break;
//}
}
}
System.debug('********** xmlNode: '+ xmlNode);
return xmlNode;
}
catch(Exception e){
throw new IntegrationUtilsException('Error during searchXmlNodeByName with provided parameters');
}
}
public static Dom.Document parseXmlString(String xml) {
Dom.Document domDoc = new Dom.Document();
domDoc.load(xml);
return domDoc;
}
}
@isTest(seealldata = true)
private class IntegrationUtils_Test {
static testMethod void Costruttore_Test(){
IntegrationUtils IU= new IntegrationUtils ();
IntegrationUtils.IntegrationUtilsException IUE = new IntegrationUtils.IntegrationUtilsException ();
string endPoint='end';
string soapMessage='message';
Integer timeOut =10;
IntegrationUtils.sendSoapRequest(endPoint,soapMessage,timeOut);
// endPoint='';
//soapMessage='';
//timeOut= null;
IntegrationUtils.sendSoapRequest(endPoint,soapMessage,timeOut);
String template = 'Templa';
Map<String,String> placeholderContentMap = new Map <string,string>();
template = 'mjkhg';
String currentPlaceholder = 'Place';
String currentContent='Content';
currentContent = placeholderContentMap.get(currentPlaceholder);
currentContent= null;
IntegrationUtils.replaceInTemplate(template, placeholderContentMap);
Http h = new Http();
HttpRequest req = new HttpRequest();
req.setMethod('GET');
HttpResponse res = h.send(req);
Dom.Document doc = res.getBodyDocument();
//Retrieve the root element for this document.
Dom.XMLNode address = doc.getRootElement();
string nodeName='ciao';
Boolean searchOnlyChilds= true;
IntegrationUtils.searchXmlNodeByName(address,nodeName,searchOnlyChilds);
}
}
how can I continue in write this test class? Thank you
- Anna Antonella Adiletta 1
- September 23, 2016
- Like
- 0
write test class for the apex code
I'm trying to write test class, for an apex code. I do not understand why the code coverage is yet 60% . Can someone help me? thank you
public class ModuloIncaricoInteraziendaleCtrl {
private Quote quote {get; set;}
public List<Qlip> qlips {get; set;}
public class QliP {
public QuoteLineItem qli {get; set;}
public List<Partecipazione__c> partecipazioni {get; set;}
public integer numeropartecipazioni {get; set;}
public QliP(QuoteLineItem qlix, List<Partecipazione__c> partecipazionix){
this.qli = qlix;
this.partecipazioni = partecipazionix;
this.numeropartecipazioni = partecipazionix.size();
}
}
public ModuloIncaricoInteraziendaleCtrl(ApexPages.StandardController Ctrl){
if (!Test.isRunningTest()) {Ctrl.addfields(new list<string>{'QuoteLineItems', 'Account.Name'});}
this.quote=(Quote)Ctrl.getRecord();
List<Id> QuoteLineItemsId = new List<Id>();
for (QuoteLineItem qli : quote.QuoteLineItems){
QuoteLineItemsId.add(qli.Id);
}
List<QuoteLineItem> queryQLI = [SELECT Id, LineNumber, Product2.Name, Edizione__r.Name, Edizione__r.Data_inizio__c, Edizione__r.Data_fine__c, Edizione__r.Ha_Partecipazioni__c, TotalPrice, Importo_IVA__c, Totale__c FROM QuoteLineItem WHERE Id IN :QuoteLineItemsId];
List<Partecipazione__c> queryPartecipazioni = [SELECT Id, Name, Voce_Preventivo__c, Referente__r.FirstName, Referente__r.LastName, Referente__r.MiddleName, Referente__r.Suffix, Referente__r.Posizione__c, Referente__r.Email FROM Partecipazione__c WHERE Voce_Preventivo__c IN :QuoteLineItemsId ORDER BY Voce_Preventivo__c];
qlips = new List<QliP>();
for (QuoteLineItem qli : queryQLI) {
List<Partecipazione__c> suePart = new List<Partecipazione__c>();
integer NpartIgnote = 0;
for (Partecipazione__c p : queryPartecipazioni){
if(p.Voce_Preventivo__c == qli.Id){
if(p.Referente__c == NULL){
NpartIgnote++;
Contact cont = new Contact(LastName = 'Nominativo da comunicare ' + NpartIgnote + ' ' + Quote.Account.Name);
p.Referente__r = cont;
system.debug(p.Referente__r.Name);
}
suePart.add(p);
}
}
Qlip newQlip = new QliP(qli, suePart);
qlips.add(newQlip);
}
}
}
@istest
private class ModuloIncaricoInteraziendaleCtrl_Test {
private static TestMethod void TestCostruttore(){
List<Account> Lacc = new List <Account>();
Account acc= new Account (FirstName='Antonio', LastName='Verdi', MiddleName='pippo',Type='Analyst' );
insert acc;
Lacc.add(acc);
Edizione__c ed = new Edizione__c ( Name='test', Data_inizio__c=date.valueOf('2016-09-07'), Data_fine__c=date.valueOf('2016-09-07'),Ha_partecipazioni__c=true);
insert ed;
List <Contact> Lctc= new List <Contact>();
Contact ctc= new Contact (LastName='Magneti', FirstName='Roberto', MiddleName='mauro', Suffix='Junior',email='k@email.it', posizione__c='direttore commerciale');
insert ctc;
Lctc.add(ctc);
List<Opportunity> l_opp = new List<Opportunity>();
Opportunity opp = new Opportunity( AccountId=acc.id, Name='test', StageName='Prospecting',CloseDate=date.today(),Type='New Client',NextStep = 'Test',LeadSource = 'Business Development');
insert opp;
l_opp.add(opp);
Product2 p2 = new Product2 (name='test',IsActive=true);
List <Product2> Lp2 = new List <Product2>();
insert p2;
Lp2.add(p2);
Id pricebookId = Test.getStandardPricebookId();
List <PricebookEntry> Lpbe = new List <PricebookEntry>();
PricebookEntry pbe = new PricebookEntry (Product2Id=p2.Id,IsActive=true,UnitPrice=1,Pricebook2Id=pricebookId);
insert pbe;
Lpbe.add(pbe);
List <Quote> Lqt = new List <Quote> ();
Quote preventivo = new Quote(Name = 'Test',OpportunityId = opp.id, N_Offerta__c = 'ciao', Pricebook2Id=pricebookId, ordine__c=false);
insert preventivo;
Lqt.add(preventivo);
List<QuoteLineItem> Lqtl = new List<QuoteLineItem> ();
QuoteLineItem qtl = new quotelineitem(quoteid = preventivo.id, quantity=1, unitprice=1, PricebookEntryId=pbe.id, Product2Id=p2.id, Edizione__c=ed.id );
insert qtl;
Lqtl.add(qtl);
Partecipazione__c pt = New Partecipazione__c(stato__c='partecipante',Voce_preventivo__c=qtl.id, referente__c=ctc.id);
insert pt;
List <Partecipazione__c> Lpt= new List <partecipazione__c> ();
Lpt.add(pt);
Partecipazione__c pt2 = New Partecipazione__c(stato__c='partecipante',Voce_preventivo__c=qtl.id, referente__c=ctc.id);
insert pt2;
pt.Voce_Preventivo__c = qtl.Id;
pt.Referente__c = null;
pt.referente__c= contact;
update ctc;
system.debug(pt.Referente__r.Name);
pt2.Voce_Preventivo__c = qtl.Id;
pt2.Referente__c = null;
pt2.referente__c= contact;
update ctc;
system.debug(pt2.Referente__r.Name);
ApexPages.StandardController Controller = new ApexPages.StandardController(preventivo);
ModuloIncaricoInteraziendaleCtrl stdController = new ModuloIncaricoInteraziendaleCtrl(controller);
ModuloIncaricoInteraziendaleCtrl.QliP prova = new ModuloIncaricoInteraziendaleCtrl.QliP(qtl,Lpt);
}
}
public class ModuloIncaricoInteraziendaleCtrl {
private Quote quote {get; set;}
public List<Qlip> qlips {get; set;}
public class QliP {
public QuoteLineItem qli {get; set;}
public List<Partecipazione__c> partecipazioni {get; set;}
public integer numeropartecipazioni {get; set;}
public QliP(QuoteLineItem qlix, List<Partecipazione__c> partecipazionix){
this.qli = qlix;
this.partecipazioni = partecipazionix;
this.numeropartecipazioni = partecipazionix.size();
}
}
public ModuloIncaricoInteraziendaleCtrl(ApexPages.StandardController Ctrl){
if (!Test.isRunningTest()) {Ctrl.addfields(new list<string>{'QuoteLineItems', 'Account.Name'});}
this.quote=(Quote)Ctrl.getRecord();
List<Id> QuoteLineItemsId = new List<Id>();
for (QuoteLineItem qli : quote.QuoteLineItems){
QuoteLineItemsId.add(qli.Id);
}
List<QuoteLineItem> queryQLI = [SELECT Id, LineNumber, Product2.Name, Edizione__r.Name, Edizione__r.Data_inizio__c, Edizione__r.Data_fine__c, Edizione__r.Ha_Partecipazioni__c, TotalPrice, Importo_IVA__c, Totale__c FROM QuoteLineItem WHERE Id IN :QuoteLineItemsId];
List<Partecipazione__c> queryPartecipazioni = [SELECT Id, Name, Voce_Preventivo__c, Referente__r.FirstName, Referente__r.LastName, Referente__r.MiddleName, Referente__r.Suffix, Referente__r.Posizione__c, Referente__r.Email FROM Partecipazione__c WHERE Voce_Preventivo__c IN :QuoteLineItemsId ORDER BY Voce_Preventivo__c];
qlips = new List<QliP>();
for (QuoteLineItem qli : queryQLI) {
List<Partecipazione__c> suePart = new List<Partecipazione__c>();
integer NpartIgnote = 0;
for (Partecipazione__c p : queryPartecipazioni){
if(p.Voce_Preventivo__c == qli.Id){
if(p.Referente__c == NULL){
NpartIgnote++;
Contact cont = new Contact(LastName = 'Nominativo da comunicare ' + NpartIgnote + ' ' + Quote.Account.Name);
p.Referente__r = cont;
system.debug(p.Referente__r.Name);
}
suePart.add(p);
}
}
Qlip newQlip = new QliP(qli, suePart);
qlips.add(newQlip);
}
}
}
@istest
private class ModuloIncaricoInteraziendaleCtrl_Test {
private static TestMethod void TestCostruttore(){
List<Account> Lacc = new List <Account>();
Account acc= new Account (FirstName='Antonio', LastName='Verdi', MiddleName='pippo',Type='Analyst' );
insert acc;
Lacc.add(acc);
Edizione__c ed = new Edizione__c ( Name='test', Data_inizio__c=date.valueOf('2016-09-07'), Data_fine__c=date.valueOf('2016-09-07'),Ha_partecipazioni__c=true);
insert ed;
List <Contact> Lctc= new List <Contact>();
Contact ctc= new Contact (LastName='Magneti', FirstName='Roberto', MiddleName='mauro', Suffix='Junior',email='k@email.it', posizione__c='direttore commerciale');
insert ctc;
Lctc.add(ctc);
List<Opportunity> l_opp = new List<Opportunity>();
Opportunity opp = new Opportunity( AccountId=acc.id, Name='test', StageName='Prospecting',CloseDate=date.today(),Type='New Client',NextStep = 'Test',LeadSource = 'Business Development');
insert opp;
l_opp.add(opp);
Product2 p2 = new Product2 (name='test',IsActive=true);
List <Product2> Lp2 = new List <Product2>();
insert p2;
Lp2.add(p2);
Id pricebookId = Test.getStandardPricebookId();
List <PricebookEntry> Lpbe = new List <PricebookEntry>();
PricebookEntry pbe = new PricebookEntry (Product2Id=p2.Id,IsActive=true,UnitPrice=1,Pricebook2Id=pricebookId);
insert pbe;
Lpbe.add(pbe);
List <Quote> Lqt = new List <Quote> ();
Quote preventivo = new Quote(Name = 'Test',OpportunityId = opp.id, N_Offerta__c = 'ciao', Pricebook2Id=pricebookId, ordine__c=false);
insert preventivo;
Lqt.add(preventivo);
List<QuoteLineItem> Lqtl = new List<QuoteLineItem> ();
QuoteLineItem qtl = new quotelineitem(quoteid = preventivo.id, quantity=1, unitprice=1, PricebookEntryId=pbe.id, Product2Id=p2.id, Edizione__c=ed.id );
insert qtl;
Lqtl.add(qtl);
Partecipazione__c pt = New Partecipazione__c(stato__c='partecipante',Voce_preventivo__c=qtl.id, referente__c=ctc.id);
insert pt;
List <Partecipazione__c> Lpt= new List <partecipazione__c> ();
Lpt.add(pt);
Partecipazione__c pt2 = New Partecipazione__c(stato__c='partecipante',Voce_preventivo__c=qtl.id, referente__c=ctc.id);
insert pt2;
pt.Voce_Preventivo__c = qtl.Id;
pt.Referente__c = null;
pt.referente__c= contact;
update ctc;
system.debug(pt.Referente__r.Name);
pt2.Voce_Preventivo__c = qtl.Id;
pt2.Referente__c = null;
pt2.referente__c= contact;
update ctc;
system.debug(pt2.Referente__r.Name);
ApexPages.StandardController Controller = new ApexPages.StandardController(preventivo);
ModuloIncaricoInteraziendaleCtrl stdController = new ModuloIncaricoInteraziendaleCtrl(controller);
ModuloIncaricoInteraziendaleCtrl.QliP prova = new ModuloIncaricoInteraziendaleCtrl.QliP(qtl,Lpt);
}
}
- Anna Antonella Adiletta 1
- September 19, 2016
- Like
- 0
help me to write test class
hi, I write test class for this apex code, but the code coverage is 15%. How can I continue to write this test class? thank you
public class AutoNumberClass
{
public static void display(Account [] acct)
{
CustomAccount__c ca =[select CustomCounter__c from CustomAccount__c ];
Integer LatestNumber =Integer.valueOf(ca.CustomCounter__c);
for(Account a : acct)
{
if(a.Stato__c=='Cliente')
{
LatestNumber=LatestNumber+1;
a.Numero_Account__c=String.valueOf('AC');
For(integer i=0;i<6-string.valueof(ca.CustomCounter__c).length();i++)
a.Numero_Account__c+='0';
a.Numero_Account__c+=LatestNumber;
ca.CustomCounter__c=LatestNumber;
}
}
update ca;
}
}
@isTest
public class AutoNumberClass_Test {
static testMethod void displayAccount(){
AutoNumberClass controller = new AutoNumberClass();
Date di = date.newInstance(2999,02,36);
Edizione__c ed = New Edizione__c(Name = 'Edizione Test',data_inizio__c = di,data_fine__c = di+365, motivo_stato__c='edizione erogata');
insert ed;
List <account> Lacc = new List <account>();
Account acc= new account (Numero_account__c='ciao',stato__c='cliente', name='Test Account', billingStreet='Test', billingCity='Test',billingState='Test', billingCountry='Test');
insert acc;
Lacc.add(acc);
Partecipazione__c ptc= new Partecipazione__c (Account__c=acc.id, Edizione__c=ed.id, stato__c='partecipante');
insert ptc;
CustomAccount__c ca =new customAccount__c ();
insert ca;
}
}
public class AutoNumberClass
{
public static void display(Account [] acct)
{
CustomAccount__c ca =[select CustomCounter__c from CustomAccount__c ];
Integer LatestNumber =Integer.valueOf(ca.CustomCounter__c);
for(Account a : acct)
{
if(a.Stato__c=='Cliente')
{
LatestNumber=LatestNumber+1;
a.Numero_Account__c=String.valueOf('AC');
For(integer i=0;i<6-string.valueof(ca.CustomCounter__c).length();i++)
a.Numero_Account__c+='0';
a.Numero_Account__c+=LatestNumber;
ca.CustomCounter__c=LatestNumber;
}
}
update ca;
}
}
@isTest
public class AutoNumberClass_Test {
static testMethod void displayAccount(){
AutoNumberClass controller = new AutoNumberClass();
Date di = date.newInstance(2999,02,36);
Edizione__c ed = New Edizione__c(Name = 'Edizione Test',data_inizio__c = di,data_fine__c = di+365, motivo_stato__c='edizione erogata');
insert ed;
List <account> Lacc = new List <account>();
Account acc= new account (Numero_account__c='ciao',stato__c='cliente', name='Test Account', billingStreet='Test', billingCity='Test',billingState='Test', billingCountry='Test');
insert acc;
Lacc.add(acc);
Partecipazione__c ptc= new Partecipazione__c (Account__c=acc.id, Edizione__c=ed.id, stato__c='partecipante');
insert ptc;
CustomAccount__c ca =new customAccount__c ();
insert ca;
}
}
- Anna Antonella Adiletta 1
- September 16, 2016
- Like
- 0
how can I write test class for this apex code? help me
Hi, I'm trying to write test class for apex code. The results of run test is: System.DmlException: Insert failed. First exception on row 0; first error: STANDARD_PRICE_NOT_DEFINED, No standard price defined for this product: []
My apex class is :
public class ImportoFatturato {
public static void ImportoFatturatoTrigger(list<Riga_Fattura__c> LRF){
set<id> RFIds = new set<id>();
list<QuoteLineItem> LQLI = new list<QuoteLineItem>();
For(Riga_Fattura__c RF:LRF)
RFIds.add(RF.id);
LRF = [Select id,Totale_riga_fattura__c,voce_preventivo__c,voce_preventivo__r.Importo_fatturato__c from riga_fattura__c where id in:RFIds];
for(Riga_fattura__c r: LRF) {
if(r.voce_preventivo__r.Importo_fatturato__c != null)
r.voce_preventivo__r.Importo_fatturato__c += r.Totale_riga_fattura__c;
else
r.voce_preventivo__r.Importo_fatturato__c = r.Totale_riga_fattura__c;
LQLI.add(r.voce_preventivo__r);
}
update LQLI;
}
}
This class retrived an apex trigger :
trigger RigaFatturaTrigger on Riga_Fattura__c (before insert, before update, after insert, after update, after delete, after undelete) {
if (trigger.isAfter){
FatturaHelper.StatusHandler();
if (trigger.isUpdate){
list<Riga_Fattura__c> LRF = new list<Riga_Fattura__c>();
for(Id idRF : Trigger.newMap.keyset()){
if(Trigger.newMap.get(idRF).motivo_stato__c == 'Inviata' && Trigger.newMap.get(idRF).motivo_stato__c != Trigger.oldMap.get(idRF).motivo_stato__c)
LRF.add(Trigger.newMap.get(idRF));
}
ImportoFatturato.ImportoFatturatoTrigger(LRF);
}
}
test class is:
@isTest(SeeAllData=true)
public class ImportoFatturato_Test {
static testMethod void Costruttore_Test()
{
/******************************************************************* INIZIO DEL TEST ***********************************************************************************************/
test.startTest();
Account acc = new Account(name='Test Account', billingStreet='Test', billingCity='Test',billingState='Test', billingCountry='Test');
insert acc;
List<Opportunity> l_opp = new List<Opportunity>();
Opportunity opp = new Opportunity();
opp.Accountid = acc.id;
opp.Name = 'test';
opp.StageName = 'Prospecting';
opp.CloseDate = date.today();
opp.Type = 'New Client';
opp.NextStep = 'Test';
opp.LeadSource = 'Business Development';
insert opp;
l_opp.add(opp);
List <Pricebook2> Lpb2 = new List <Pricebook2>();
Pricebook2 pb2 = new Pricebook2 ();
pb2.name='test';
pb2.IsActive=true;
insert pb2;
Lpb2.add(pb2);
Product2 p2 = new Product2 ();
List <Product2> Lp2 = new List <Product2>();
p2.name='test';
p2.IsActive=true;
insert p2;
Lp2.add(p2);
List <PricebookEntry> Lpbe = new List <PricebookEntry>();
PricebookEntry pbe = new PricebookEntry ();
pbe.Product2Id=p2.Id;
pbe.IsActive=true;
pbe.UseStandardPrice=true;
pbe.UnitPrice=1;
pbe.Pricebook2Id=pb2.Id;
insert pbe;
Lpbe.add(pbe);
Quote preventivo = new Quote(Name = 'Test',OpportunityId = opp.id, N_Offerta__c = 'ciao');
insert preventivo;
quoteLineItem qtl = new quotelineitem(quoteid = preventivo.id, quantity=1, unitprice=1, PricebookEntryId=pbe.id);
insert qtl;
List<Riga_fattura__c> l_riga_f = new List<Riga_fattura__c>();
Riga_fattura__c riga_f = new Riga_fattura__c ();
riga_f.Motivo_stato__c='Inviata';
riga_f.Voce_preventivo__c='01';
l_riga_f.add(riga_f);
test.stopTest();
/******************************************************************* FINE DEL TEST ***********************************************************************************************/
}
}
How I can resolve this problem? Help me in write this test class.
Thank you very much.
My apex class is :
public class ImportoFatturato {
public static void ImportoFatturatoTrigger(list<Riga_Fattura__c> LRF){
set<id> RFIds = new set<id>();
list<QuoteLineItem> LQLI = new list<QuoteLineItem>();
For(Riga_Fattura__c RF:LRF)
RFIds.add(RF.id);
LRF = [Select id,Totale_riga_fattura__c,voce_preventivo__c,voce_preventivo__r.Importo_fatturato__c from riga_fattura__c where id in:RFIds];
for(Riga_fattura__c r: LRF) {
if(r.voce_preventivo__r.Importo_fatturato__c != null)
r.voce_preventivo__r.Importo_fatturato__c += r.Totale_riga_fattura__c;
else
r.voce_preventivo__r.Importo_fatturato__c = r.Totale_riga_fattura__c;
LQLI.add(r.voce_preventivo__r);
}
update LQLI;
}
}
This class retrived an apex trigger :
trigger RigaFatturaTrigger on Riga_Fattura__c (before insert, before update, after insert, after update, after delete, after undelete) {
if (trigger.isAfter){
FatturaHelper.StatusHandler();
if (trigger.isUpdate){
list<Riga_Fattura__c> LRF = new list<Riga_Fattura__c>();
for(Id idRF : Trigger.newMap.keyset()){
if(Trigger.newMap.get(idRF).motivo_stato__c == 'Inviata' && Trigger.newMap.get(idRF).motivo_stato__c != Trigger.oldMap.get(idRF).motivo_stato__c)
LRF.add(Trigger.newMap.get(idRF));
}
ImportoFatturato.ImportoFatturatoTrigger(LRF);
}
}
test class is:
@isTest(SeeAllData=true)
public class ImportoFatturato_Test {
static testMethod void Costruttore_Test()
{
/******************************************************************* INIZIO DEL TEST ***********************************************************************************************/
test.startTest();
Account acc = new Account(name='Test Account', billingStreet='Test', billingCity='Test',billingState='Test', billingCountry='Test');
insert acc;
List<Opportunity> l_opp = new List<Opportunity>();
Opportunity opp = new Opportunity();
opp.Accountid = acc.id;
opp.Name = 'test';
opp.StageName = 'Prospecting';
opp.CloseDate = date.today();
opp.Type = 'New Client';
opp.NextStep = 'Test';
opp.LeadSource = 'Business Development';
insert opp;
l_opp.add(opp);
List <Pricebook2> Lpb2 = new List <Pricebook2>();
Pricebook2 pb2 = new Pricebook2 ();
pb2.name='test';
pb2.IsActive=true;
insert pb2;
Lpb2.add(pb2);
Product2 p2 = new Product2 ();
List <Product2> Lp2 = new List <Product2>();
p2.name='test';
p2.IsActive=true;
insert p2;
Lp2.add(p2);
List <PricebookEntry> Lpbe = new List <PricebookEntry>();
PricebookEntry pbe = new PricebookEntry ();
pbe.Product2Id=p2.Id;
pbe.IsActive=true;
pbe.UseStandardPrice=true;
pbe.UnitPrice=1;
pbe.Pricebook2Id=pb2.Id;
insert pbe;
Lpbe.add(pbe);
Quote preventivo = new Quote(Name = 'Test',OpportunityId = opp.id, N_Offerta__c = 'ciao');
insert preventivo;
quoteLineItem qtl = new quotelineitem(quoteid = preventivo.id, quantity=1, unitprice=1, PricebookEntryId=pbe.id);
insert qtl;
List<Riga_fattura__c> l_riga_f = new List<Riga_fattura__c>();
Riga_fattura__c riga_f = new Riga_fattura__c ();
riga_f.Motivo_stato__c='Inviata';
riga_f.Voce_preventivo__c='01';
l_riga_f.add(riga_f);
test.stopTest();
/******************************************************************* FINE DEL TEST ***********************************************************************************************/
}
}
How I can resolve this problem? Help me in write this test class.
Thank you very much.
- Anna Antonella Adiletta 1
- September 14, 2016
- Like
- 0
How to write a test class for this batch apex
I'm trying to write a test class for this batch apex. help me please
global class BatchAggiornaStatoAccount implements Database.Batchable<sObject>, Database.AllowsCallouts{
public Date d = System.today()-365;
global Database.QueryLocator start(Database.BatchableContext BC){
// Date d = System.today()-365;
String query = 'SELECT Id, AccountId, Ordine__c, Data_Ordine__c From Quote WHERE account.stato__c = \'Cliente\' and data_ordine__c <:d';
return Database.getQueryLocator(query);
}
global void execute(Database.BatchableContext BC, List<Quote> scope){
set<id> IdAccount = new set<id>();
list<Account> ListToUpdate = new list<Account>();
map<Account,list<quote>> QuotesPerAccountId = new map<Account,list<quote>>();
For(Quote q:scope)
IdAccount.add(q.AccountId);
List<quote> lquote = [Select id,Accountid,Account.stato__c,Data_Ordine__c from quote where Accountid in:IdAccount];
For(quote q:lquote){
If(QuotesPerAccountId.get(q.Account) == null)
QuotesPerAccountId.put(q.Account,new list<quote>());
QuotesPerAccountId.get(q.Account).add(q);
}
For(Account acc:QuotesPerAccountId.keyset()){
Boolean cliente = true;
For(Quote q:QuotesPerAccountId.get(acc)){
If(q.Data_Ordine__c > d){
cliente = false;
break;
}
}
if(cliente){
acc.stato__c = 'Dormiente';
ListToUpdate.add(acc);
}
}
update ListToUpdate;
}
global void finish(Database.BatchableContext BC){
}
}
@isTest
private class BatchAggiornaStato_Test {
static testMethod void testBatchClass(){
BatchAggiornaStatoAccount bc = new BatchAggiornaStatoAccount();
set<id> IdAccount = new set<id>();
map<Account,list<quote>> QuotesPerAccountId = new map<Account,list<quote>>();
Account acc = new Account(LastName='Magneti',FirstName='Pippo', Cliente__c=false, Stato__c='Dormiente', Data_primo_ordine__c=date.Valueof('2016-08-29') );
insert acc;
List<Account> lAccount = [SELECT Name, Stato__c, Cliente__c FROM Account WHERE id=:IdAccount];
List<Opportunity> Opportunities = new List <Opportunity>();
Opportunity opp = new Opportunity(Name='Corso',StageName='chiusa',CloseDate=date.valueof('2016-09-02'));
insert opp;
opportunities.add(opp);
Quote qt = new Quote (Name='pippo', OpportunityId=opp.id,Ordine__c= false, Data_Ordine__c=date.Valueof('2016-09-06'));
insert qt;
List<quote> lquote = [Select id,Accountid,Account.stato__c, Account.Cliente__c,Data_Ordine__c from quote where AccountId in:IdAccount];
BatchAggiornaStatoAccount BatchAggiornaStato_Test = new BatchAggiornaStatoAccount();
Database.executeBatch(BatchAggiornaStato_Test);
}
}
The code coverage is 19%.
How i can to continue in write this test class.
Thank you
global class BatchAggiornaStatoAccount implements Database.Batchable<sObject>, Database.AllowsCallouts{
public Date d = System.today()-365;
global Database.QueryLocator start(Database.BatchableContext BC){
// Date d = System.today()-365;
String query = 'SELECT Id, AccountId, Ordine__c, Data_Ordine__c From Quote WHERE account.stato__c = \'Cliente\' and data_ordine__c <:d';
return Database.getQueryLocator(query);
}
global void execute(Database.BatchableContext BC, List<Quote> scope){
set<id> IdAccount = new set<id>();
list<Account> ListToUpdate = new list<Account>();
map<Account,list<quote>> QuotesPerAccountId = new map<Account,list<quote>>();
For(Quote q:scope)
IdAccount.add(q.AccountId);
List<quote> lquote = [Select id,Accountid,Account.stato__c,Data_Ordine__c from quote where Accountid in:IdAccount];
For(quote q:lquote){
If(QuotesPerAccountId.get(q.Account) == null)
QuotesPerAccountId.put(q.Account,new list<quote>());
QuotesPerAccountId.get(q.Account).add(q);
}
For(Account acc:QuotesPerAccountId.keyset()){
Boolean cliente = true;
For(Quote q:QuotesPerAccountId.get(acc)){
If(q.Data_Ordine__c > d){
cliente = false;
break;
}
}
if(cliente){
acc.stato__c = 'Dormiente';
ListToUpdate.add(acc);
}
}
update ListToUpdate;
}
global void finish(Database.BatchableContext BC){
}
}
@isTest
private class BatchAggiornaStato_Test {
static testMethod void testBatchClass(){
BatchAggiornaStatoAccount bc = new BatchAggiornaStatoAccount();
set<id> IdAccount = new set<id>();
map<Account,list<quote>> QuotesPerAccountId = new map<Account,list<quote>>();
Account acc = new Account(LastName='Magneti',FirstName='Pippo', Cliente__c=false, Stato__c='Dormiente', Data_primo_ordine__c=date.Valueof('2016-08-29') );
insert acc;
List<Account> lAccount = [SELECT Name, Stato__c, Cliente__c FROM Account WHERE id=:IdAccount];
List<Opportunity> Opportunities = new List <Opportunity>();
Opportunity opp = new Opportunity(Name='Corso',StageName='chiusa',CloseDate=date.valueof('2016-09-02'));
insert opp;
opportunities.add(opp);
Quote qt = new Quote (Name='pippo', OpportunityId=opp.id,Ordine__c= false, Data_Ordine__c=date.Valueof('2016-09-06'));
insert qt;
List<quote> lquote = [Select id,Accountid,Account.stato__c, Account.Cliente__c,Data_Ordine__c from quote where AccountId in:IdAccount];
BatchAggiornaStatoAccount BatchAggiornaStato_Test = new BatchAggiornaStatoAccount();
Database.executeBatch(BatchAggiornaStato_Test);
}
}
The code coverage is 19%.
How i can to continue in write this test class.
Thank you
- Anna Antonella Adiletta 1
- September 12, 2016
- Like
- 0
write test class for the apex code
I'm trying to write test class, for an apex code. I do not understand why the code coverage is yet 60% . Can someone help me? thank you
public class ModuloIncaricoInteraziendaleCtrl {
private Quote quote {get; set;}
public List<Qlip> qlips {get; set;}
public class QliP {
public QuoteLineItem qli {get; set;}
public List<Partecipazione__c> partecipazioni {get; set;}
public integer numeropartecipazioni {get; set;}
public QliP(QuoteLineItem qlix, List<Partecipazione__c> partecipazionix){
this.qli = qlix;
this.partecipazioni = partecipazionix;
this.numeropartecipazioni = partecipazionix.size();
}
}
public ModuloIncaricoInteraziendaleCtrl(ApexPages.StandardController Ctrl){
if (!Test.isRunningTest()) {Ctrl.addfields(new list<string>{'QuoteLineItems', 'Account.Name'});}
this.quote=(Quote)Ctrl.getRecord();
List<Id> QuoteLineItemsId = new List<Id>();
for (QuoteLineItem qli : quote.QuoteLineItems){
QuoteLineItemsId.add(qli.Id);
}
List<QuoteLineItem> queryQLI = [SELECT Id, LineNumber, Product2.Name, Edizione__r.Name, Edizione__r.Data_inizio__c, Edizione__r.Data_fine__c, Edizione__r.Ha_Partecipazioni__c, TotalPrice, Importo_IVA__c, Totale__c FROM QuoteLineItem WHERE Id IN :QuoteLineItemsId];
List<Partecipazione__c> queryPartecipazioni = [SELECT Id, Name, Voce_Preventivo__c, Referente__r.FirstName, Referente__r.LastName, Referente__r.MiddleName, Referente__r.Suffix, Referente__r.Posizione__c, Referente__r.Email FROM Partecipazione__c WHERE Voce_Preventivo__c IN :QuoteLineItemsId ORDER BY Voce_Preventivo__c];
qlips = new List<QliP>();
for (QuoteLineItem qli : queryQLI) {
List<Partecipazione__c> suePart = new List<Partecipazione__c>();
integer NpartIgnote = 0;
for (Partecipazione__c p : queryPartecipazioni){
if(p.Voce_Preventivo__c == qli.Id){
if(p.Referente__c == NULL){
NpartIgnote++;
Contact cont = new Contact(LastName = 'Nominativo da comunicare ' + NpartIgnote + ' ' + Quote.Account.Name);
p.Referente__r = cont;
system.debug(p.Referente__r.Name);
}
suePart.add(p);
}
}
Qlip newQlip = new QliP(qli, suePart);
qlips.add(newQlip);
}
}
}
@istest
private class ModuloIncaricoInteraziendaleCtrl_Test {
private static TestMethod void TestCostruttore(){
List<Account> Lacc = new List <Account>();
Account acc= new Account (FirstName='Antonio', LastName='Verdi', MiddleName='pippo',Type='Analyst' );
insert acc;
Lacc.add(acc);
Edizione__c ed = new Edizione__c ( Name='test', Data_inizio__c=date.valueOf('2016-09-07'), Data_fine__c=date.valueOf('2016-09-07'),Ha_partecipazioni__c=true);
insert ed;
List <Contact> Lctc= new List <Contact>();
Contact ctc= new Contact (LastName='Magneti', FirstName='Roberto', MiddleName='mauro', Suffix='Junior',email='k@email.it', posizione__c='direttore commerciale');
insert ctc;
Lctc.add(ctc);
List<Opportunity> l_opp = new List<Opportunity>();
Opportunity opp = new Opportunity( AccountId=acc.id, Name='test', StageName='Prospecting',CloseDate=date.today(),Type='New Client',NextStep = 'Test',LeadSource = 'Business Development');
insert opp;
l_opp.add(opp);
Product2 p2 = new Product2 (name='test',IsActive=true);
List <Product2> Lp2 = new List <Product2>();
insert p2;
Lp2.add(p2);
Id pricebookId = Test.getStandardPricebookId();
List <PricebookEntry> Lpbe = new List <PricebookEntry>();
PricebookEntry pbe = new PricebookEntry (Product2Id=p2.Id,IsActive=true,UnitPrice=1,Pricebook2Id=pricebookId);
insert pbe;
Lpbe.add(pbe);
List <Quote> Lqt = new List <Quote> ();
Quote preventivo = new Quote(Name = 'Test',OpportunityId = opp.id, N_Offerta__c = 'ciao', Pricebook2Id=pricebookId, ordine__c=false);
insert preventivo;
Lqt.add(preventivo);
List<QuoteLineItem> Lqtl = new List<QuoteLineItem> ();
QuoteLineItem qtl = new quotelineitem(quoteid = preventivo.id, quantity=1, unitprice=1, PricebookEntryId=pbe.id, Product2Id=p2.id, Edizione__c=ed.id );
insert qtl;
Lqtl.add(qtl);
Partecipazione__c pt = New Partecipazione__c(stato__c='partecipante',Voce_preventivo__c=qtl.id, referente__c=ctc.id);
insert pt;
List <Partecipazione__c> Lpt= new List <partecipazione__c> ();
Lpt.add(pt);
Partecipazione__c pt2 = New Partecipazione__c(stato__c='partecipante',Voce_preventivo__c=qtl.id, referente__c=ctc.id);
insert pt2;
pt.Voce_Preventivo__c = qtl.Id;
pt.Referente__c = null;
pt.referente__c= contact;
update ctc;
system.debug(pt.Referente__r.Name);
pt2.Voce_Preventivo__c = qtl.Id;
pt2.Referente__c = null;
pt2.referente__c= contact;
update ctc;
system.debug(pt2.Referente__r.Name);
ApexPages.StandardController Controller = new ApexPages.StandardController(preventivo);
ModuloIncaricoInteraziendaleCtrl stdController = new ModuloIncaricoInteraziendaleCtrl(controller);
ModuloIncaricoInteraziendaleCtrl.QliP prova = new ModuloIncaricoInteraziendaleCtrl.QliP(qtl,Lpt);
}
}
public class ModuloIncaricoInteraziendaleCtrl {
private Quote quote {get; set;}
public List<Qlip> qlips {get; set;}
public class QliP {
public QuoteLineItem qli {get; set;}
public List<Partecipazione__c> partecipazioni {get; set;}
public integer numeropartecipazioni {get; set;}
public QliP(QuoteLineItem qlix, List<Partecipazione__c> partecipazionix){
this.qli = qlix;
this.partecipazioni = partecipazionix;
this.numeropartecipazioni = partecipazionix.size();
}
}
public ModuloIncaricoInteraziendaleCtrl(ApexPages.StandardController Ctrl){
if (!Test.isRunningTest()) {Ctrl.addfields(new list<string>{'QuoteLineItems', 'Account.Name'});}
this.quote=(Quote)Ctrl.getRecord();
List<Id> QuoteLineItemsId = new List<Id>();
for (QuoteLineItem qli : quote.QuoteLineItems){
QuoteLineItemsId.add(qli.Id);
}
List<QuoteLineItem> queryQLI = [SELECT Id, LineNumber, Product2.Name, Edizione__r.Name, Edizione__r.Data_inizio__c, Edizione__r.Data_fine__c, Edizione__r.Ha_Partecipazioni__c, TotalPrice, Importo_IVA__c, Totale__c FROM QuoteLineItem WHERE Id IN :QuoteLineItemsId];
List<Partecipazione__c> queryPartecipazioni = [SELECT Id, Name, Voce_Preventivo__c, Referente__r.FirstName, Referente__r.LastName, Referente__r.MiddleName, Referente__r.Suffix, Referente__r.Posizione__c, Referente__r.Email FROM Partecipazione__c WHERE Voce_Preventivo__c IN :QuoteLineItemsId ORDER BY Voce_Preventivo__c];
qlips = new List<QliP>();
for (QuoteLineItem qli : queryQLI) {
List<Partecipazione__c> suePart = new List<Partecipazione__c>();
integer NpartIgnote = 0;
for (Partecipazione__c p : queryPartecipazioni){
if(p.Voce_Preventivo__c == qli.Id){
if(p.Referente__c == NULL){
NpartIgnote++;
Contact cont = new Contact(LastName = 'Nominativo da comunicare ' + NpartIgnote + ' ' + Quote.Account.Name);
p.Referente__r = cont;
system.debug(p.Referente__r.Name);
}
suePart.add(p);
}
}
Qlip newQlip = new QliP(qli, suePart);
qlips.add(newQlip);
}
}
}
@istest
private class ModuloIncaricoInteraziendaleCtrl_Test {
private static TestMethod void TestCostruttore(){
List<Account> Lacc = new List <Account>();
Account acc= new Account (FirstName='Antonio', LastName='Verdi', MiddleName='pippo',Type='Analyst' );
insert acc;
Lacc.add(acc);
Edizione__c ed = new Edizione__c ( Name='test', Data_inizio__c=date.valueOf('2016-09-07'), Data_fine__c=date.valueOf('2016-09-07'),Ha_partecipazioni__c=true);
insert ed;
List <Contact> Lctc= new List <Contact>();
Contact ctc= new Contact (LastName='Magneti', FirstName='Roberto', MiddleName='mauro', Suffix='Junior',email='k@email.it', posizione__c='direttore commerciale');
insert ctc;
Lctc.add(ctc);
List<Opportunity> l_opp = new List<Opportunity>();
Opportunity opp = new Opportunity( AccountId=acc.id, Name='test', StageName='Prospecting',CloseDate=date.today(),Type='New Client',NextStep = 'Test',LeadSource = 'Business Development');
insert opp;
l_opp.add(opp);
Product2 p2 = new Product2 (name='test',IsActive=true);
List <Product2> Lp2 = new List <Product2>();
insert p2;
Lp2.add(p2);
Id pricebookId = Test.getStandardPricebookId();
List <PricebookEntry> Lpbe = new List <PricebookEntry>();
PricebookEntry pbe = new PricebookEntry (Product2Id=p2.Id,IsActive=true,UnitPrice=1,Pricebook2Id=pricebookId);
insert pbe;
Lpbe.add(pbe);
List <Quote> Lqt = new List <Quote> ();
Quote preventivo = new Quote(Name = 'Test',OpportunityId = opp.id, N_Offerta__c = 'ciao', Pricebook2Id=pricebookId, ordine__c=false);
insert preventivo;
Lqt.add(preventivo);
List<QuoteLineItem> Lqtl = new List<QuoteLineItem> ();
QuoteLineItem qtl = new quotelineitem(quoteid = preventivo.id, quantity=1, unitprice=1, PricebookEntryId=pbe.id, Product2Id=p2.id, Edizione__c=ed.id );
insert qtl;
Lqtl.add(qtl);
Partecipazione__c pt = New Partecipazione__c(stato__c='partecipante',Voce_preventivo__c=qtl.id, referente__c=ctc.id);
insert pt;
List <Partecipazione__c> Lpt= new List <partecipazione__c> ();
Lpt.add(pt);
Partecipazione__c pt2 = New Partecipazione__c(stato__c='partecipante',Voce_preventivo__c=qtl.id, referente__c=ctc.id);
insert pt2;
pt.Voce_Preventivo__c = qtl.Id;
pt.Referente__c = null;
pt.referente__c= contact;
update ctc;
system.debug(pt.Referente__r.Name);
pt2.Voce_Preventivo__c = qtl.Id;
pt2.Referente__c = null;
pt2.referente__c= contact;
update ctc;
system.debug(pt2.Referente__r.Name);
ApexPages.StandardController Controller = new ApexPages.StandardController(preventivo);
ModuloIncaricoInteraziendaleCtrl stdController = new ModuloIncaricoInteraziendaleCtrl(controller);
ModuloIncaricoInteraziendaleCtrl.QliP prova = new ModuloIncaricoInteraziendaleCtrl.QliP(qtl,Lpt);
}
}
- Anna Antonella Adiletta 1
- September 19, 2016
- Like
- 0
help me to write test class
hi, I write test class for this apex code, but the code coverage is 15%. How can I continue to write this test class? thank you
public class AutoNumberClass
{
public static void display(Account [] acct)
{
CustomAccount__c ca =[select CustomCounter__c from CustomAccount__c ];
Integer LatestNumber =Integer.valueOf(ca.CustomCounter__c);
for(Account a : acct)
{
if(a.Stato__c=='Cliente')
{
LatestNumber=LatestNumber+1;
a.Numero_Account__c=String.valueOf('AC');
For(integer i=0;i<6-string.valueof(ca.CustomCounter__c).length();i++)
a.Numero_Account__c+='0';
a.Numero_Account__c+=LatestNumber;
ca.CustomCounter__c=LatestNumber;
}
}
update ca;
}
}
@isTest
public class AutoNumberClass_Test {
static testMethod void displayAccount(){
AutoNumberClass controller = new AutoNumberClass();
Date di = date.newInstance(2999,02,36);
Edizione__c ed = New Edizione__c(Name = 'Edizione Test',data_inizio__c = di,data_fine__c = di+365, motivo_stato__c='edizione erogata');
insert ed;
List <account> Lacc = new List <account>();
Account acc= new account (Numero_account__c='ciao',stato__c='cliente', name='Test Account', billingStreet='Test', billingCity='Test',billingState='Test', billingCountry='Test');
insert acc;
Lacc.add(acc);
Partecipazione__c ptc= new Partecipazione__c (Account__c=acc.id, Edizione__c=ed.id, stato__c='partecipante');
insert ptc;
CustomAccount__c ca =new customAccount__c ();
insert ca;
}
}
public class AutoNumberClass
{
public static void display(Account [] acct)
{
CustomAccount__c ca =[select CustomCounter__c from CustomAccount__c ];
Integer LatestNumber =Integer.valueOf(ca.CustomCounter__c);
for(Account a : acct)
{
if(a.Stato__c=='Cliente')
{
LatestNumber=LatestNumber+1;
a.Numero_Account__c=String.valueOf('AC');
For(integer i=0;i<6-string.valueof(ca.CustomCounter__c).length();i++)
a.Numero_Account__c+='0';
a.Numero_Account__c+=LatestNumber;
ca.CustomCounter__c=LatestNumber;
}
}
update ca;
}
}
@isTest
public class AutoNumberClass_Test {
static testMethod void displayAccount(){
AutoNumberClass controller = new AutoNumberClass();
Date di = date.newInstance(2999,02,36);
Edizione__c ed = New Edizione__c(Name = 'Edizione Test',data_inizio__c = di,data_fine__c = di+365, motivo_stato__c='edizione erogata');
insert ed;
List <account> Lacc = new List <account>();
Account acc= new account (Numero_account__c='ciao',stato__c='cliente', name='Test Account', billingStreet='Test', billingCity='Test',billingState='Test', billingCountry='Test');
insert acc;
Lacc.add(acc);
Partecipazione__c ptc= new Partecipazione__c (Account__c=acc.id, Edizione__c=ed.id, stato__c='partecipante');
insert ptc;
CustomAccount__c ca =new customAccount__c ();
insert ca;
}
}
- Anna Antonella Adiletta 1
- September 16, 2016
- Like
- 0
how can I write test class for this apex code? help me
Hi, I'm trying to write test class for apex code. The results of run test is: System.DmlException: Insert failed. First exception on row 0; first error: STANDARD_PRICE_NOT_DEFINED, No standard price defined for this product: []
My apex class is :
public class ImportoFatturato {
public static void ImportoFatturatoTrigger(list<Riga_Fattura__c> LRF){
set<id> RFIds = new set<id>();
list<QuoteLineItem> LQLI = new list<QuoteLineItem>();
For(Riga_Fattura__c RF:LRF)
RFIds.add(RF.id);
LRF = [Select id,Totale_riga_fattura__c,voce_preventivo__c,voce_preventivo__r.Importo_fatturato__c from riga_fattura__c where id in:RFIds];
for(Riga_fattura__c r: LRF) {
if(r.voce_preventivo__r.Importo_fatturato__c != null)
r.voce_preventivo__r.Importo_fatturato__c += r.Totale_riga_fattura__c;
else
r.voce_preventivo__r.Importo_fatturato__c = r.Totale_riga_fattura__c;
LQLI.add(r.voce_preventivo__r);
}
update LQLI;
}
}
This class retrived an apex trigger :
trigger RigaFatturaTrigger on Riga_Fattura__c (before insert, before update, after insert, after update, after delete, after undelete) {
if (trigger.isAfter){
FatturaHelper.StatusHandler();
if (trigger.isUpdate){
list<Riga_Fattura__c> LRF = new list<Riga_Fattura__c>();
for(Id idRF : Trigger.newMap.keyset()){
if(Trigger.newMap.get(idRF).motivo_stato__c == 'Inviata' && Trigger.newMap.get(idRF).motivo_stato__c != Trigger.oldMap.get(idRF).motivo_stato__c)
LRF.add(Trigger.newMap.get(idRF));
}
ImportoFatturato.ImportoFatturatoTrigger(LRF);
}
}
test class is:
@isTest(SeeAllData=true)
public class ImportoFatturato_Test {
static testMethod void Costruttore_Test()
{
/******************************************************************* INIZIO DEL TEST ***********************************************************************************************/
test.startTest();
Account acc = new Account(name='Test Account', billingStreet='Test', billingCity='Test',billingState='Test', billingCountry='Test');
insert acc;
List<Opportunity> l_opp = new List<Opportunity>();
Opportunity opp = new Opportunity();
opp.Accountid = acc.id;
opp.Name = 'test';
opp.StageName = 'Prospecting';
opp.CloseDate = date.today();
opp.Type = 'New Client';
opp.NextStep = 'Test';
opp.LeadSource = 'Business Development';
insert opp;
l_opp.add(opp);
List <Pricebook2> Lpb2 = new List <Pricebook2>();
Pricebook2 pb2 = new Pricebook2 ();
pb2.name='test';
pb2.IsActive=true;
insert pb2;
Lpb2.add(pb2);
Product2 p2 = new Product2 ();
List <Product2> Lp2 = new List <Product2>();
p2.name='test';
p2.IsActive=true;
insert p2;
Lp2.add(p2);
List <PricebookEntry> Lpbe = new List <PricebookEntry>();
PricebookEntry pbe = new PricebookEntry ();
pbe.Product2Id=p2.Id;
pbe.IsActive=true;
pbe.UseStandardPrice=true;
pbe.UnitPrice=1;
pbe.Pricebook2Id=pb2.Id;
insert pbe;
Lpbe.add(pbe);
Quote preventivo = new Quote(Name = 'Test',OpportunityId = opp.id, N_Offerta__c = 'ciao');
insert preventivo;
quoteLineItem qtl = new quotelineitem(quoteid = preventivo.id, quantity=1, unitprice=1, PricebookEntryId=pbe.id);
insert qtl;
List<Riga_fattura__c> l_riga_f = new List<Riga_fattura__c>();
Riga_fattura__c riga_f = new Riga_fattura__c ();
riga_f.Motivo_stato__c='Inviata';
riga_f.Voce_preventivo__c='01';
l_riga_f.add(riga_f);
test.stopTest();
/******************************************************************* FINE DEL TEST ***********************************************************************************************/
}
}
How I can resolve this problem? Help me in write this test class.
Thank you very much.
My apex class is :
public class ImportoFatturato {
public static void ImportoFatturatoTrigger(list<Riga_Fattura__c> LRF){
set<id> RFIds = new set<id>();
list<QuoteLineItem> LQLI = new list<QuoteLineItem>();
For(Riga_Fattura__c RF:LRF)
RFIds.add(RF.id);
LRF = [Select id,Totale_riga_fattura__c,voce_preventivo__c,voce_preventivo__r.Importo_fatturato__c from riga_fattura__c where id in:RFIds];
for(Riga_fattura__c r: LRF) {
if(r.voce_preventivo__r.Importo_fatturato__c != null)
r.voce_preventivo__r.Importo_fatturato__c += r.Totale_riga_fattura__c;
else
r.voce_preventivo__r.Importo_fatturato__c = r.Totale_riga_fattura__c;
LQLI.add(r.voce_preventivo__r);
}
update LQLI;
}
}
This class retrived an apex trigger :
trigger RigaFatturaTrigger on Riga_Fattura__c (before insert, before update, after insert, after update, after delete, after undelete) {
if (trigger.isAfter){
FatturaHelper.StatusHandler();
if (trigger.isUpdate){
list<Riga_Fattura__c> LRF = new list<Riga_Fattura__c>();
for(Id idRF : Trigger.newMap.keyset()){
if(Trigger.newMap.get(idRF).motivo_stato__c == 'Inviata' && Trigger.newMap.get(idRF).motivo_stato__c != Trigger.oldMap.get(idRF).motivo_stato__c)
LRF.add(Trigger.newMap.get(idRF));
}
ImportoFatturato.ImportoFatturatoTrigger(LRF);
}
}
test class is:
@isTest(SeeAllData=true)
public class ImportoFatturato_Test {
static testMethod void Costruttore_Test()
{
/******************************************************************* INIZIO DEL TEST ***********************************************************************************************/
test.startTest();
Account acc = new Account(name='Test Account', billingStreet='Test', billingCity='Test',billingState='Test', billingCountry='Test');
insert acc;
List<Opportunity> l_opp = new List<Opportunity>();
Opportunity opp = new Opportunity();
opp.Accountid = acc.id;
opp.Name = 'test';
opp.StageName = 'Prospecting';
opp.CloseDate = date.today();
opp.Type = 'New Client';
opp.NextStep = 'Test';
opp.LeadSource = 'Business Development';
insert opp;
l_opp.add(opp);
List <Pricebook2> Lpb2 = new List <Pricebook2>();
Pricebook2 pb2 = new Pricebook2 ();
pb2.name='test';
pb2.IsActive=true;
insert pb2;
Lpb2.add(pb2);
Product2 p2 = new Product2 ();
List <Product2> Lp2 = new List <Product2>();
p2.name='test';
p2.IsActive=true;
insert p2;
Lp2.add(p2);
List <PricebookEntry> Lpbe = new List <PricebookEntry>();
PricebookEntry pbe = new PricebookEntry ();
pbe.Product2Id=p2.Id;
pbe.IsActive=true;
pbe.UseStandardPrice=true;
pbe.UnitPrice=1;
pbe.Pricebook2Id=pb2.Id;
insert pbe;
Lpbe.add(pbe);
Quote preventivo = new Quote(Name = 'Test',OpportunityId = opp.id, N_Offerta__c = 'ciao');
insert preventivo;
quoteLineItem qtl = new quotelineitem(quoteid = preventivo.id, quantity=1, unitprice=1, PricebookEntryId=pbe.id);
insert qtl;
List<Riga_fattura__c> l_riga_f = new List<Riga_fattura__c>();
Riga_fattura__c riga_f = new Riga_fattura__c ();
riga_f.Motivo_stato__c='Inviata';
riga_f.Voce_preventivo__c='01';
l_riga_f.add(riga_f);
test.stopTest();
/******************************************************************* FINE DEL TEST ***********************************************************************************************/
}
}
How I can resolve this problem? Help me in write this test class.
Thank you very much.
- Anna Antonella Adiletta 1
- September 14, 2016
- Like
- 0
How to write a test class for this batch apex
I'm trying to write a test class for this batch apex. help me please
global class BatchAggiornaStatoAccount implements Database.Batchable<sObject>, Database.AllowsCallouts{
public Date d = System.today()-365;
global Database.QueryLocator start(Database.BatchableContext BC){
// Date d = System.today()-365;
String query = 'SELECT Id, AccountId, Ordine__c, Data_Ordine__c From Quote WHERE account.stato__c = \'Cliente\' and data_ordine__c <:d';
return Database.getQueryLocator(query);
}
global void execute(Database.BatchableContext BC, List<Quote> scope){
set<id> IdAccount = new set<id>();
list<Account> ListToUpdate = new list<Account>();
map<Account,list<quote>> QuotesPerAccountId = new map<Account,list<quote>>();
For(Quote q:scope)
IdAccount.add(q.AccountId);
List<quote> lquote = [Select id,Accountid,Account.stato__c,Data_Ordine__c from quote where Accountid in:IdAccount];
For(quote q:lquote){
If(QuotesPerAccountId.get(q.Account) == null)
QuotesPerAccountId.put(q.Account,new list<quote>());
QuotesPerAccountId.get(q.Account).add(q);
}
For(Account acc:QuotesPerAccountId.keyset()){
Boolean cliente = true;
For(Quote q:QuotesPerAccountId.get(acc)){
If(q.Data_Ordine__c > d){
cliente = false;
break;
}
}
if(cliente){
acc.stato__c = 'Dormiente';
ListToUpdate.add(acc);
}
}
update ListToUpdate;
}
global void finish(Database.BatchableContext BC){
}
}
@isTest
private class BatchAggiornaStato_Test {
static testMethod void testBatchClass(){
BatchAggiornaStatoAccount bc = new BatchAggiornaStatoAccount();
set<id> IdAccount = new set<id>();
map<Account,list<quote>> QuotesPerAccountId = new map<Account,list<quote>>();
Account acc = new Account(LastName='Magneti',FirstName='Pippo', Cliente__c=false, Stato__c='Dormiente', Data_primo_ordine__c=date.Valueof('2016-08-29') );
insert acc;
List<Account> lAccount = [SELECT Name, Stato__c, Cliente__c FROM Account WHERE id=:IdAccount];
List<Opportunity> Opportunities = new List <Opportunity>();
Opportunity opp = new Opportunity(Name='Corso',StageName='chiusa',CloseDate=date.valueof('2016-09-02'));
insert opp;
opportunities.add(opp);
Quote qt = new Quote (Name='pippo', OpportunityId=opp.id,Ordine__c= false, Data_Ordine__c=date.Valueof('2016-09-06'));
insert qt;
List<quote> lquote = [Select id,Accountid,Account.stato__c, Account.Cliente__c,Data_Ordine__c from quote where AccountId in:IdAccount];
BatchAggiornaStatoAccount BatchAggiornaStato_Test = new BatchAggiornaStatoAccount();
Database.executeBatch(BatchAggiornaStato_Test);
}
}
The code coverage is 19%.
How i can to continue in write this test class.
Thank you
global class BatchAggiornaStatoAccount implements Database.Batchable<sObject>, Database.AllowsCallouts{
public Date d = System.today()-365;
global Database.QueryLocator start(Database.BatchableContext BC){
// Date d = System.today()-365;
String query = 'SELECT Id, AccountId, Ordine__c, Data_Ordine__c From Quote WHERE account.stato__c = \'Cliente\' and data_ordine__c <:d';
return Database.getQueryLocator(query);
}
global void execute(Database.BatchableContext BC, List<Quote> scope){
set<id> IdAccount = new set<id>();
list<Account> ListToUpdate = new list<Account>();
map<Account,list<quote>> QuotesPerAccountId = new map<Account,list<quote>>();
For(Quote q:scope)
IdAccount.add(q.AccountId);
List<quote> lquote = [Select id,Accountid,Account.stato__c,Data_Ordine__c from quote where Accountid in:IdAccount];
For(quote q:lquote){
If(QuotesPerAccountId.get(q.Account) == null)
QuotesPerAccountId.put(q.Account,new list<quote>());
QuotesPerAccountId.get(q.Account).add(q);
}
For(Account acc:QuotesPerAccountId.keyset()){
Boolean cliente = true;
For(Quote q:QuotesPerAccountId.get(acc)){
If(q.Data_Ordine__c > d){
cliente = false;
break;
}
}
if(cliente){
acc.stato__c = 'Dormiente';
ListToUpdate.add(acc);
}
}
update ListToUpdate;
}
global void finish(Database.BatchableContext BC){
}
}
@isTest
private class BatchAggiornaStato_Test {
static testMethod void testBatchClass(){
BatchAggiornaStatoAccount bc = new BatchAggiornaStatoAccount();
set<id> IdAccount = new set<id>();
map<Account,list<quote>> QuotesPerAccountId = new map<Account,list<quote>>();
Account acc = new Account(LastName='Magneti',FirstName='Pippo', Cliente__c=false, Stato__c='Dormiente', Data_primo_ordine__c=date.Valueof('2016-08-29') );
insert acc;
List<Account> lAccount = [SELECT Name, Stato__c, Cliente__c FROM Account WHERE id=:IdAccount];
List<Opportunity> Opportunities = new List <Opportunity>();
Opportunity opp = new Opportunity(Name='Corso',StageName='chiusa',CloseDate=date.valueof('2016-09-02'));
insert opp;
opportunities.add(opp);
Quote qt = new Quote (Name='pippo', OpportunityId=opp.id,Ordine__c= false, Data_Ordine__c=date.Valueof('2016-09-06'));
insert qt;
List<quote> lquote = [Select id,Accountid,Account.stato__c, Account.Cliente__c,Data_Ordine__c from quote where AccountId in:IdAccount];
BatchAggiornaStatoAccount BatchAggiornaStato_Test = new BatchAggiornaStatoAccount();
Database.executeBatch(BatchAggiornaStato_Test);
}
}
The code coverage is 19%.
How i can to continue in write this test class.
Thank you
- Anna Antonella Adiletta 1
- September 12, 2016
- Like
- 0