You need to sign in to do that
Don't have an account?
Lokesh Rayapati4
Need help developing a test class for 100 percent code coverage. Can someone please help???
public with sharing class Auracsv {
@AuraEnabled
public static void processData(String fileData,String sobjectName,List<String> fields) {
Schema.SObjectType targetType = Schema.getGlobalDescribe().get(sobjectName);
try{
if(fileData!=null){
String[] fileLines = new String[]{};
fileLines = fileData.split('\n');
List<sObject> myList = new List<sObject>();
for (Integer i=1,j=fileLines.size();i<j;i++){
String[] inputvalues = new String[]{};
inputvalues = fileLines[i].split(',');
sObject obj = targetType.newSObject();
integer rowsize=inputvalues.size();
for(integer l=0;l<rowsize-1;l++){
system.debug('fields.get(l)'+fields.get(l));
if(String.isNotBlank(inputvalues[l]) )
{
String value= inputvalues[l].length()>255 ? inputvalues[l].substring(0,254) : inputvalues[l];
obj.put(fields.get(l),value);
}else{
obj.put(fields.get(l),'');
}
}
myList.add(obj);
}
insert myList;
}
}catch(Exception e){
System.debug('exception'+e);
}
}
@AuraEnabled
public static List<Map<string,string>> getObjectList()
{
List<Map<string,string>> SObjectList = new List<Map<string,string>>();
for(Schema.SObjectType objTyp : Schema.getGlobalDescribe().Values()){
String name = objTyp.getDescribe().getName();
SObjectList.add(new Map<string,string>{'label'=>name,'value'=>name});
System.debug('name'+name);
}
return SObjectList;
}
@AuraEnabled
public static List<Sobject> updateData(string objectName, string file){
system.debug('Json : '+file+'----------'+objectName);
Blob json = EncodingUtil.base64Decode(file);
system.debug('Json file : '+json.tostring());
String[] fileLines = json.tostring().split('\n');
string[] headers = fileLines[0].split(',');
List<Sobject> objectList = new List<Sobject>();
for(integer i=1; i<fileLines.size() ;i++){
string[] rows = fileLines[i].split(',');
sObject sObj = Schema.getGlobalDescribe().get(objectName).newSObject();
for(integer j=0;j<headers.size();j++){
sObj.put(headers[j].trim(), rows[j].trim());
}
objectList.add(sObj);
}
system.debug('Object : '+objectList);
insert objectList;
return objectList;
}
}
Heres my WIP test class code====
@isTest
public class TestAuracsv {
public static String[] csvFileLines;
public static Blob csvFileBody;
@TestSetup
static void Accountdata(){
Account acc = new Account();
acc.Name = 'Lokesh';
acc.AccountNumber = '56293723';
acc.Type = 'Other';
acc.Industry = 'Chemicals';
insert acc;
}
@IsTest
static void testmethod1(){
Account acc = new Account();
acc.Name = 'Lokesh';
insert acc;
Test.startTest();
csvFileBody = Blob.valueOf(str);
String csvAsString = csvFileBody.toString();
AccountListController.updateData('Account', EncodingUtil.base64Encode(Blob.valueOf(str)));
AccountListController.getObjectList();
}
}
As I'm newbiee.There are some errors in test class and I'm trying to clear that.
@AuraEnabled
public static void processData(String fileData,String sobjectName,List<String> fields) {
Schema.SObjectType targetType = Schema.getGlobalDescribe().get(sobjectName);
try{
if(fileData!=null){
String[] fileLines = new String[]{};
fileLines = fileData.split('\n');
List<sObject> myList = new List<sObject>();
for (Integer i=1,j=fileLines.size();i<j;i++){
String[] inputvalues = new String[]{};
inputvalues = fileLines[i].split(',');
sObject obj = targetType.newSObject();
integer rowsize=inputvalues.size();
for(integer l=0;l<rowsize-1;l++){
system.debug('fields.get(l)'+fields.get(l));
if(String.isNotBlank(inputvalues[l]) )
{
String value= inputvalues[l].length()>255 ? inputvalues[l].substring(0,254) : inputvalues[l];
obj.put(fields.get(l),value);
}else{
obj.put(fields.get(l),'');
}
}
myList.add(obj);
}
insert myList;
}
}catch(Exception e){
System.debug('exception'+e);
}
}
@AuraEnabled
public static List<Map<string,string>> getObjectList()
{
List<Map<string,string>> SObjectList = new List<Map<string,string>>();
for(Schema.SObjectType objTyp : Schema.getGlobalDescribe().Values()){
String name = objTyp.getDescribe().getName();
SObjectList.add(new Map<string,string>{'label'=>name,'value'=>name});
System.debug('name'+name);
}
return SObjectList;
}
@AuraEnabled
public static List<Sobject> updateData(string objectName, string file){
system.debug('Json : '+file+'----------'+objectName);
Blob json = EncodingUtil.base64Decode(file);
system.debug('Json file : '+json.tostring());
String[] fileLines = json.tostring().split('\n');
string[] headers = fileLines[0].split(',');
List<Sobject> objectList = new List<Sobject>();
for(integer i=1; i<fileLines.size() ;i++){
string[] rows = fileLines[i].split(',');
sObject sObj = Schema.getGlobalDescribe().get(objectName).newSObject();
for(integer j=0;j<headers.size();j++){
sObj.put(headers[j].trim(), rows[j].trim());
}
objectList.add(sObj);
}
system.debug('Object : '+objectList);
insert objectList;
return objectList;
}
}
Heres my WIP test class code====
@isTest
public class TestAuracsv {
public static String[] csvFileLines;
public static Blob csvFileBody;
@TestSetup
static void Accountdata(){
Account acc = new Account();
acc.Name = 'Lokesh';
acc.AccountNumber = '56293723';
acc.Type = 'Other';
acc.Industry = 'Chemicals';
insert acc;
}
@IsTest
static void testmethod1(){
Account acc = new Account();
acc.Name = 'Lokesh';
insert acc;
Test.startTest();
csvFileBody = Blob.valueOf(str);
String csvAsString = csvFileBody.toString();
AccountListController.updateData('Account', EncodingUtil.base64Encode(Blob.valueOf(str)));
AccountListController.getObjectList();
}
}
As I'm newbiee.There are some errors in test class and I'm trying to clear that.
Hi,
Please find the solution.
Please let me know it is working or not?
Please mark it as the Best Answer so that other people would take references from it.
Thank You
All Answers
Please mention the error which you are getting or highlight the part where you getting stuck to get the coverage so that community can help you better.
Thanks!
Hi,
Please find the solution.
Please let me know it is working or not?
Please mark it as the Best Answer so that other people would take references from it.
Thank You