You need to sign in to do that
Don't have an account?

I need to write test code for apex class
Hi All ,
I need to write test class for below code please help me it is very urgent.
public class QueueAssignController{
Public List<SelectOption> QueueList {get;set;}
public List<Group> GroupNameList {get;set;}
Public list<GroupMember> mlist {get;set;}
public String queue {get;set;}
public String queueid {get;set;}
public List<String> selectedUserIds { get; set; }
public List<String> removedUserIds { get; set; }
public String whereClause { get; set; }
public String AccName {get;set;}
private Map<Id, String> availableUsersMap;
private Map<Id, String> selectedUsersMap;
public QueueAssignController(ApexPages.StandardController std) {
initializeCollections();
ID contactId = [Select contactid from User where id =: Userinfo.getUserid()].contactId;
// Pid = [Select ProfileId from User where id =: Userinfo.getUserid()].ProfileId;
String aid = [Select AccountID from Contact where id =: contactid].AccountId;
// String aid=ApexPages.currentPage().getParameters().get('id');
List<String> accName=new List<String>();
account[] a=[select WFSSFriendlyName__c from account where id=:aid limit 1 ];
String wffs=a[0].WFSSFriendlyName__c;
GroupNameList = new List<Group>();
String j='%'+wffs+'%';
GroupNameList = [select g.Id, g.Name from Group g where Type = 'Queue' AND name like:j Order by Name Asc];
QueueList = new List<SelectOption>();
for(Group temp : GroupNameList)
{
queueid = temp.id;
QueueList.add(new SelectOption(temp.Id, temp.Name));
}
if(queue == null){
queue = queueid;
getUsers();
}
system.debug('QueueList++++++'+QueueList);
system.debug('queue ++++++'+queue );
}
public PageReference UpdateList() {
initializeCollections();
getUsers();
return null;
}
public void filterAvailableOptions() {
availableUsersMap = new Map<Id, String>();
selectedUserIds = new List<String>();
string userid =userinfo.getUserId();
user[] uac=[select AccountId from user where id=:userid limit 1];
String likeClause = '%' + whereClause + '%';
for (User u : [SELECT id, name FROM User WHERE name like :likeClause AND Name!='Chatter Expert' AND IsActive = true order by Name Asc]) {
if (!selectedUsersMap.containsKey(u.Id)) {
availableUsersMap.put(u.Id, u.Name);
}
}
}
public void add() {
if (!selectedUserIds.isEmpty()) {
for (String userId : selectedUserIds) {
selectedUsersMap.put(userId, availableUsersMap.get(userId));
availableUsersMap.remove(userId);
}
}
}
public void remove() {
if (!removedUserIds.isEmpty()) {
for (String userId : removedUserIds) {
availableUsersMap.put(userId, selectedUsersMap.get(userId));
selectedUsersMap.remove(userId);
}
}
}
public List<SelectOption> getAvailableUsers() {
List<SelectOption> availableUsers = new List<SelectOption>();
for (Id userId : availableUsersMap.keySet()) {
availableUsers.add(new SelectOption(userId, availableUsersMap.get(userId)));
}
return availableUsers;
}
public List<SelectOption> getSelectedUsers() {
List<SelectOption> selectedUsers = new List<SelectOption>();
for (String userId : selectedUsersMap.keySet()) {
selectedUsers.add(new SelectOption(userId, selectedUsersMap.get(userId)));
}
return selectedUsers;
}
private void initializeCollections() {
selectedUserIds = new List<String>();
removedUserIds = new List<String>();
availableUsersMap = new Map<Id, String>();
selectedUsersMap = new Map<Id, String>();
}
private void getUsers() {
QueueSobject qs = [SELECT QueueId,SobjectType FROM QueueSobject where QueueId=:queue];
list<GroupMember> gms = [SELECT Group.Name,UserOrGroupId FROM GroupMember WHERE Group.Type = 'Queue' AND GroupId =:qs.QueueId];
system.debug(gms);
set<id> gids =new set<id>();
for(GroupMember g:gms){
gids.add(g.UserOrGroupId);
}
String aid=ApexPages.currentPage().getParameters().get('id');
list<user> urs = [SELECT id, Name FROM User where IsActive = true AND id NOT IN:gids AND Name!='Chatter Expert' AND AccountId=:aid order by Name Asc];
system.debug(urs);
for(user u : urs){
availableUsersMap.put(u.Id, u.Name);
}
list<user> urss = [SELECT id, Name FROM User where IsActive = true AND id IN:gids AND Name!='Chatter Expert' order by Name Asc];
system.debug(urs);
for(user ur : urss){
selectedUsersMap.put(ur.Id, ur.Name);
}
}
public PageReference savenew(){
List<GroupMember> groups = new List<GroupMember>();
List<GroupMember> groupss = [select Id from GroupMember where Group.Type = 'Queue' and GroupId =:queue ];
if( !groupss.isEmpty() )
{
delete groupss;
}
if(selectedUsersMap.size() == 0){
ApexPages.addMessage( new ApexPages.Message(ApexPages.Severity.Error, 'Please select a user to Add to Queue') );
}
else{
for(id ids:selectedUsersMap.keyset()){
// ApexPages.addMessage( new ApexPages.Message(ApexPages.Severity.INFO, 'Added user to Queue'+queue) );
insert new GroupMember( GroupId = queue , UserOrGroupId = ids);
}
}
return null;
}
}
I need to write test class for below code please help me it is very urgent.
public class QueueAssignController{
Public List<SelectOption> QueueList {get;set;}
public List<Group> GroupNameList {get;set;}
Public list<GroupMember> mlist {get;set;}
public String queue {get;set;}
public String queueid {get;set;}
public List<String> selectedUserIds { get; set; }
public List<String> removedUserIds { get; set; }
public String whereClause { get; set; }
public String AccName {get;set;}
private Map<Id, String> availableUsersMap;
private Map<Id, String> selectedUsersMap;
public QueueAssignController(ApexPages.StandardController std) {
initializeCollections();
ID contactId = [Select contactid from User where id =: Userinfo.getUserid()].contactId;
// Pid = [Select ProfileId from User where id =: Userinfo.getUserid()].ProfileId;
String aid = [Select AccountID from Contact where id =: contactid].AccountId;
// String aid=ApexPages.currentPage().getParameters().get('id');
List<String> accName=new List<String>();
account[] a=[select WFSSFriendlyName__c from account where id=:aid limit 1 ];
String wffs=a[0].WFSSFriendlyName__c;
GroupNameList = new List<Group>();
String j='%'+wffs+'%';
GroupNameList = [select g.Id, g.Name from Group g where Type = 'Queue' AND name like:j Order by Name Asc];
QueueList = new List<SelectOption>();
for(Group temp : GroupNameList)
{
queueid = temp.id;
QueueList.add(new SelectOption(temp.Id, temp.Name));
}
if(queue == null){
queue = queueid;
getUsers();
}
system.debug('QueueList++++++'+QueueList);
system.debug('queue ++++++'+queue );
}
public PageReference UpdateList() {
initializeCollections();
getUsers();
return null;
}
public void filterAvailableOptions() {
availableUsersMap = new Map<Id, String>();
selectedUserIds = new List<String>();
string userid =userinfo.getUserId();
user[] uac=[select AccountId from user where id=:userid limit 1];
String likeClause = '%' + whereClause + '%';
for (User u : [SELECT id, name FROM User WHERE name like :likeClause AND Name!='Chatter Expert' AND IsActive = true order by Name Asc]) {
if (!selectedUsersMap.containsKey(u.Id)) {
availableUsersMap.put(u.Id, u.Name);
}
}
}
public void add() {
if (!selectedUserIds.isEmpty()) {
for (String userId : selectedUserIds) {
selectedUsersMap.put(userId, availableUsersMap.get(userId));
availableUsersMap.remove(userId);
}
}
}
public void remove() {
if (!removedUserIds.isEmpty()) {
for (String userId : removedUserIds) {
availableUsersMap.put(userId, selectedUsersMap.get(userId));
selectedUsersMap.remove(userId);
}
}
}
public List<SelectOption> getAvailableUsers() {
List<SelectOption> availableUsers = new List<SelectOption>();
for (Id userId : availableUsersMap.keySet()) {
availableUsers.add(new SelectOption(userId, availableUsersMap.get(userId)));
}
return availableUsers;
}
public List<SelectOption> getSelectedUsers() {
List<SelectOption> selectedUsers = new List<SelectOption>();
for (String userId : selectedUsersMap.keySet()) {
selectedUsers.add(new SelectOption(userId, selectedUsersMap.get(userId)));
}
return selectedUsers;
}
private void initializeCollections() {
selectedUserIds = new List<String>();
removedUserIds = new List<String>();
availableUsersMap = new Map<Id, String>();
selectedUsersMap = new Map<Id, String>();
}
private void getUsers() {
QueueSobject qs = [SELECT QueueId,SobjectType FROM QueueSobject where QueueId=:queue];
list<GroupMember> gms = [SELECT Group.Name,UserOrGroupId FROM GroupMember WHERE Group.Type = 'Queue' AND GroupId =:qs.QueueId];
system.debug(gms);
set<id> gids =new set<id>();
for(GroupMember g:gms){
gids.add(g.UserOrGroupId);
}
String aid=ApexPages.currentPage().getParameters().get('id');
list<user> urs = [SELECT id, Name FROM User where IsActive = true AND id NOT IN:gids AND Name!='Chatter Expert' AND AccountId=:aid order by Name Asc];
system.debug(urs);
for(user u : urs){
availableUsersMap.put(u.Id, u.Name);
}
list<user> urss = [SELECT id, Name FROM User where IsActive = true AND id IN:gids AND Name!='Chatter Expert' order by Name Asc];
system.debug(urs);
for(user ur : urss){
selectedUsersMap.put(ur.Id, ur.Name);
}
}
public PageReference savenew(){
List<GroupMember> groups = new List<GroupMember>();
List<GroupMember> groupss = [select Id from GroupMember where Group.Type = 'Queue' and GroupId =:queue ];
if( !groupss.isEmpty() )
{
delete groupss;
}
if(selectedUsersMap.size() == 0){
ApexPages.addMessage( new ApexPages.Message(ApexPages.Severity.Error, 'Please select a user to Add to Queue') );
}
else{
for(id ids:selectedUsersMap.keyset()){
// ApexPages.addMessage( new ApexPages.Message(ApexPages.Severity.INFO, 'Added user to Queue'+queue) );
insert new GroupMember( GroupId = queue , UserOrGroupId = ids);
}
}
return null;
}
}
Try this code

Hi Raj
after use your class i have receive Error.
|System.DmlException: Insert failed. First exception on row 0; first error: FIELD_INTEGRITY_EXCEPTION, only portal users can be associated to a contact: []
Try this remove contact is form the user record

after changed code new error is coming
System.DmlException: Insert failed. First exception on row 0; first error: MIXED_DML_OPERATION, DML operation on setup object is not permitted after you have updated a non-setup object (or vice versa): User, original object: Account: []