You need to sign in to do that
Don't have an account?
nilesh walke 6
private test class
global with sharing class SystemEmailCompCtrl {
public boolean isExternal {
get {
User user = [SELECT ContactId FROM User WHERE Id =:UserInfo.getUserId() AND IsActive=true WITH SECURITY_ENFORCED];
if(user.ContactId != null){
return true;
}else {
return false;
}
}
}
public boolean isAttachmentEnabled {
get {
return GNT.KeyValueStoreHelper.getBooleanValue('EnableEmailAttachment',true) == null ? false : GNT.KeyValueStoreHelper.getBooleanValue('EnableEmailAttachment',true);
}
}
global class ResultWrapper{
public Id id;
public String name;
public String email;
public String collaborationType;
public Integer memberCount;
public String objType;
public ResultWrapper(Sobject sobj,Boolean isGroup){
this.id = (Id)sobj.get('Id');
String strId = String.valueof(Id);
if(strId.startsWith('005')){
this.objType = 'User';
}else {
this.objType = 'Contact';
}
this.name = (String)sobj.get('Name');
if(isGroup){
this.collaborationType = (String)sobj.get('CollaborationType');
this.memberCount = (Integer)sobj.get('MemberCount');
}
else{
this.email = (String)sobj.get('Email');
}
}
}
@RemoteAction
global static List<ResultWrapper> getRecordsNew(Map<String, Object> paramatersMap ){
System.debug('In getRecordsNew::');
String searchString = (String)paramatersMap.get('searchString');
String objectApiName = (String)paramatersMap.get('objectApiName');
String fieldToDisplay = (String)paramatersMap.get('fieldToDisplay');
String fieldBindToTarget = (String)paramatersMap.get('fieldBindToTarget');
String fieldToFilter = (String)paramatersMap.get('fieldToFilter');
String selectedRecordIds = (String)paramatersMap.get('selectedRecordIds');
String searchType = (String)paramatersMap.get('searchType');
Boolean isExternalUser = false;
if(searchType.trim().equals('External')){
isExternalUser = true;
}
List<Sobject> records;
List<ResultWrapper> resultWrappers = new List<ResultWrapper>();
try{
List<String> lstSelectedRecordIds = selectedRecordIds.split(',');
Set<String> filteredRecordIds = new Set<String>();
if(lstSelectedRecordIds.size()>0){
filteredRecordIds.addall(lstSelectedRecordIds);
}
if(filteredRecordIds.size()>0){
System.debug('filteredRecordIds::'+filteredRecordIds);
// segrgate ids as user or contact ids
List<Id>filteredUserIds = new List<Id>();
List<Id>filteredContactIds = new List<Id>();
for (String filteredRecordId : filteredRecordIds) {
System.debug('filteredRecordId::'+filteredRecordId);
if(filteredRecordId.startsWith('005')){
filteredUserIds.add(filteredRecordId);
}
if(filteredRecordId.startsWith('003')){
filteredContactIds.add(filteredRecordId);
}
}
Set<String>filteredEmails = new Set<String>();
List<User>filteredUserDetails = filteredUserIds.size()>0 ? [SELECT Email FROM User WHERE Id IN:filteredUserIds WITH SECURITY_ENFORCED] : null;
List<Contact>filteredContactDetails = filteredContactIds.size()>0 ? [SELECT Email FROM Contact WHERE Id IN:filteredContactIds WITH SECURITY_ENFORCED] : null;
if(filteredUserDetails != null && filteredUserDetails.size()>0){
for(User user : filteredUserDetails){
filteredEmails.add(user.Email);
}
}
if(filteredContactDetails != null && filteredContactDetails.size()>0){
for(Contact contact : filteredContactDetails){
filteredEmails.add(contact.Email);
}
}
system.debug('filteredEmails::'+filteredEmails);
}
String userQuery = '';
if(objectApiName.toLowercase() == 'contact'){
String contactQuery = 'SELECT Id,Name,Email FROM Contact WHERE Id NOT IN :filteredRecordIds AND '+fieldToFilter+' LIKE \'%'+string.escapeSingleQuotes(searchString)+'%\' AND Email != NULL WITH SECURITY_ENFORCED';
List<Sobject> contacts = Database.query(contactQuery.escapeHtml4());
for(Integer count=0;count<contacts.size();count++){
resultWrappers.add(new ResultWrapper(contacts[count],false));
}
}
}
catch(Exception e){
System.debug(e.getMessage()+ ' - line no: '+e.getLineNumber());
}
return resultWrappers;
}
public boolean isExternal {
get {
User user = [SELECT ContactId FROM User WHERE Id =:UserInfo.getUserId() AND IsActive=true WITH SECURITY_ENFORCED];
if(user.ContactId != null){
return true;
}else {
return false;
}
}
}
public boolean isAttachmentEnabled {
get {
return GNT.KeyValueStoreHelper.getBooleanValue('EnableEmailAttachment',true) == null ? false : GNT.KeyValueStoreHelper.getBooleanValue('EnableEmailAttachment',true);
}
}
global class ResultWrapper{
public Id id;
public String name;
public String email;
public String collaborationType;
public Integer memberCount;
public String objType;
public ResultWrapper(Sobject sobj,Boolean isGroup){
this.id = (Id)sobj.get('Id');
String strId = String.valueof(Id);
if(strId.startsWith('005')){
this.objType = 'User';
}else {
this.objType = 'Contact';
}
this.name = (String)sobj.get('Name');
if(isGroup){
this.collaborationType = (String)sobj.get('CollaborationType');
this.memberCount = (Integer)sobj.get('MemberCount');
}
else{
this.email = (String)sobj.get('Email');
}
}
}
@RemoteAction
global static List<ResultWrapper> getRecordsNew(Map<String, Object> paramatersMap ){
System.debug('In getRecordsNew::');
String searchString = (String)paramatersMap.get('searchString');
String objectApiName = (String)paramatersMap.get('objectApiName');
String fieldToDisplay = (String)paramatersMap.get('fieldToDisplay');
String fieldBindToTarget = (String)paramatersMap.get('fieldBindToTarget');
String fieldToFilter = (String)paramatersMap.get('fieldToFilter');
String selectedRecordIds = (String)paramatersMap.get('selectedRecordIds');
String searchType = (String)paramatersMap.get('searchType');
Boolean isExternalUser = false;
if(searchType.trim().equals('External')){
isExternalUser = true;
}
List<Sobject> records;
List<ResultWrapper> resultWrappers = new List<ResultWrapper>();
try{
List<String> lstSelectedRecordIds = selectedRecordIds.split(',');
Set<String> filteredRecordIds = new Set<String>();
if(lstSelectedRecordIds.size()>0){
filteredRecordIds.addall(lstSelectedRecordIds);
}
if(filteredRecordIds.size()>0){
System.debug('filteredRecordIds::'+filteredRecordIds);
// segrgate ids as user or contact ids
List<Id>filteredUserIds = new List<Id>();
List<Id>filteredContactIds = new List<Id>();
for (String filteredRecordId : filteredRecordIds) {
System.debug('filteredRecordId::'+filteredRecordId);
if(filteredRecordId.startsWith('005')){
filteredUserIds.add(filteredRecordId);
}
if(filteredRecordId.startsWith('003')){
filteredContactIds.add(filteredRecordId);
}
}
Set<String>filteredEmails = new Set<String>();
List<User>filteredUserDetails = filteredUserIds.size()>0 ? [SELECT Email FROM User WHERE Id IN:filteredUserIds WITH SECURITY_ENFORCED] : null;
List<Contact>filteredContactDetails = filteredContactIds.size()>0 ? [SELECT Email FROM Contact WHERE Id IN:filteredContactIds WITH SECURITY_ENFORCED] : null;
if(filteredUserDetails != null && filteredUserDetails.size()>0){
for(User user : filteredUserDetails){
filteredEmails.add(user.Email);
}
}
if(filteredContactDetails != null && filteredContactDetails.size()>0){
for(Contact contact : filteredContactDetails){
filteredEmails.add(contact.Email);
}
}
system.debug('filteredEmails::'+filteredEmails);
}
String userQuery = '';
if(objectApiName.toLowercase() == 'contact'){
String contactQuery = 'SELECT Id,Name,Email FROM Contact WHERE Id NOT IN :filteredRecordIds AND '+fieldToFilter+' LIKE \'%'+string.escapeSingleQuotes(searchString)+'%\' AND Email != NULL WITH SECURITY_ENFORCED';
List<Sobject> contacts = Database.query(contactQuery.escapeHtml4());
for(Integer count=0;count<contacts.size();count++){
resultWrappers.add(new ResultWrapper(contacts[count],false));
}
}
}
catch(Exception e){
System.debug(e.getMessage()+ ' - line no: '+e.getLineNumber());
}
return resultWrappers;
}
https://salesforce.stackexchange.com/questions/244788/how-do-i-write-an-apex-unit-test
https://salesforce.stackexchange.com/questions/244794/how-do-i-increase-my-code-coverage-or-why-cant-i-cover-these-lines
If you face any specific issue while attempting do post that here.
Thanks!
please check below code
@isTest(SeeAllData=true)
public class TestSystemEmailCompCtrl {
static{
GNT.TriggerHelper.skipTrigger=true;
AccountTriggerHelper.skipTrigger=true;
GrantTriggerHelper.skipTrigger=true;
AwardTriggerHelper.skipTrigger=true;
userTriggerHelper.skipTrigger=true;
// CollaborationGroupTriggerHelper.skipTrigger=true;
}
@isTest
static void getAttachmentIdOnEmailQueueforId(){
Account acc=TestHelper.getAccount(false);
insert acc;
Contact con = TestHelper.getContact(false);
con.AccountId =acc.Id;
insert con;
CollaborationGroup cg=new CollaborationGroup();
cg.Name='Test';
cg.CollaborationType = 'Private';
// cg.Email__c = 'abx@gmail.com';
insert cg;
User u2 =TestHelper.getAdminUser(true);
CollaborationGroupMember request = new CollaborationGroupMember();
request.CollaborationGroupId = cg.Id;
User u1 = new User(Id=UserInfo.getUserId());
request.MemberId = u2.id;
insert request;
GNT__EmailQueue__c emailQueueObj = new GNT__EmailQueue__c();
emailQueueObj.GNT__Status__c = 'Processed' ;
emailQueueObj.name= 'test';
emailQueueObj.IsClone__c = False;
emailQueueObj.GNT__ToEmails__c = 'simon.pm.pc@yopmail.com';
emailQueueObj.GNT__ProcessedDate__c = System.today()+30;
emailQueueObj.ToAddress__c = 'simon.pm.pc@yopmail.com';
emailQueueObj.GNT__CcEmails__c = 'simon.pm.pc@yopmail.com';
emailQueueObj.GNT__Subject__c = 'Email Queque';
insert emailQueueObj;
Profile profile = [select Id,name from Profile where UserLicense.Name like 'Partner Community' limit 1];
User portalUser = new User(
Username = System.now().millisecond() + 'test12345@test1.com',
ContactId = con.Id,
ProfileId = profile.Id,
Alias = 'test123',
GNT__OrganizationId__c=acc.Id,
Email = 'abx@gmail.com',
EmailEncodingKey = 'UTF-8',
LastName = 'McTesty',
CommunityNickname = 'test12345',
TimeZoneSidKey = 'America/Los_Angeles',
LocaleSidKey = 'en_US',
LanguageLocaleKey = 'en_US'
);
insert portalUser;
Map<String, Object> paramatersMap = new Map<String, Object>();
Map<String, Object> paramatersMap_1 = new Map<String, Object>();
Map<String, Attachment> attributeMap = new Map<String, Attachment>();
Map<String,contact> responseMap = new Map<String,contact>();
String Blob1='test';
blob csvBlob1 = Blob.valueOf(Blob1);
Boolean IsUploadDone=true;
Attachment Att=new Attachment();
Att.Name='test';
Att.ParentId=emailQueueObj.id;
Att.Body=csvBlob1;
Att.ContentType='application/pdf';
insert Att;
if(Att.id!=null){
attributeMap.put(Att.id,att);
}
paramatersMap.put('Test',cg);
paramatersMap_1.put(cg.Id,request);
responseMap.put(con.email,con);
System.runAs(portalUser){
test.startTest();
//s insert Attach;
SystemEmailCompCtrl SEC=new SystemEmailCompCtrl();
SystemEmailCompCtrl.ResultWrapper RW = new SystemEmailCompCtrl.ResultWrapper(cg,true);
RW.email = 'abx@gmail.com';
SystemEmailCompCtrl.ResultWrapper.getRecords(paramatersMap);
SystemEmailCompCtrl.ResultWrapper.getCollabGroupMemberIds(paramatersMap_1);
SystemEmailCompCtrl.ResultWrapper.uploadAttachment(attributeMap);
SystemEmailCompCtrl.ResultWrapper.validateEmails(responseMap);
test.stopTest();
}
}
}
Please lt us know what issue are you facing in the above test class. Is it code coverage issue, test class run issue?