You need to sign in to do that
Don't have an account?
Jigar Patel 7
Please anyone help me to write test class for execute method and list function.
Hello,
Please anyone help me to write test class for execute method and list function! Hear i am give you my full apex class..
APEX Class:
global class CopyLoginHistory {
public List <LoginHistory> getLoginHistory()
{
return [SELECT ApiType,
ApiVersion,
Application,
Browser,
Id,
ClientVersion,
LoginType,
LoginUrl,
Platform,
SourceIp,
Status,
UserId
FROM LoginHistory
WHERE LoginTime <: System.now()
limit 1000];
}
public void execute ()
{
List <LoginHistory> lh = new List <LoginHistory> ();
{
lh = [SELECT ApiType, ApiVersion, Application, Browser, Id, ClientVersion, LoginType, LoginUrl, Platform, SourceIp, Status,
UserId FROM LoginHistory WHERE LoginTime <: System.now() limit 1000];
string APIType;
string APIVersion;
string App;
string Browser;
string ClientVersion;
string ID1;
// DateTime LoginTime;
string LoginType;
string LoginURL;
string Platform;
string SourceIP;
string Status;
string UserID;
for (LoginHistory login: lh)
{
APIType = login.ApiType;
APIVersion = login.ApiVersion;
App = login.Application;
Browser = login.Browser;
ID1 = login.Id;
ClientVersion = login.ClientVersion;
// LoginTime = login.LoginTime;
LoginType = login.LoginType;
LoginURL = login.LoginUrl;
Platform = login.Platform;
SourceIP = login.SourceIp;
Status = login.Status;
UserID = login.UserId;
}
if (!lh.isEmpty())
{
List <TrackLoginHistory__c> trl = new List <TrackLoginHistory__c> ();
User LogUser = [SELECT id, Name, Profile.Name, CompanyName, Email, Address FROM User WHERE ID =: UserID];
for (LoginHistory login1: lh)
{
trl.add(new TrackLoginHistory__c (ApiType__c = APIType,
ApiVersion__c = APIVersion,
Application__c = App,
Browser__c = Browser,
ClientVersion__c = ClientVersion,
ID__c = ID1,
// LoginTime__c = String.valueOf(LoginTime),
LoginType__c = LoginType,
LoginURL__c = LoginURL,
Platform__c = Platform,
SourceIP__c = SourceIP,
Status__c = Status,
UserID__c = LogUser.Name,
Profile__c = LogUser.Profile.Name,
Address__c = String.valueOf(LogUser.Address),
Email__c = LogUser.Email,
CompanyName__c = LogUser.CompanyName
));
//UserID__c = UserID ));
}
insert trl;
}
}
}
}
Thank You!
Please anyone help me to write test class for execute method and list function! Hear i am give you my full apex class..
APEX Class:
global class CopyLoginHistory {
public List <LoginHistory> getLoginHistory()
{
return [SELECT ApiType,
ApiVersion,
Application,
Browser,
Id,
ClientVersion,
LoginType,
LoginUrl,
Platform,
SourceIp,
Status,
UserId
FROM LoginHistory
WHERE LoginTime <: System.now()
limit 1000];
}
public void execute ()
{
List <LoginHistory> lh = new List <LoginHistory> ();
{
lh = [SELECT ApiType, ApiVersion, Application, Browser, Id, ClientVersion, LoginType, LoginUrl, Platform, SourceIp, Status,
UserId FROM LoginHistory WHERE LoginTime <: System.now() limit 1000];
string APIType;
string APIVersion;
string App;
string Browser;
string ClientVersion;
string ID1;
// DateTime LoginTime;
string LoginType;
string LoginURL;
string Platform;
string SourceIP;
string Status;
string UserID;
for (LoginHistory login: lh)
{
APIType = login.ApiType;
APIVersion = login.ApiVersion;
App = login.Application;
Browser = login.Browser;
ID1 = login.Id;
ClientVersion = login.ClientVersion;
// LoginTime = login.LoginTime;
LoginType = login.LoginType;
LoginURL = login.LoginUrl;
Platform = login.Platform;
SourceIP = login.SourceIp;
Status = login.Status;
UserID = login.UserId;
}
if (!lh.isEmpty())
{
List <TrackLoginHistory__c> trl = new List <TrackLoginHistory__c> ();
User LogUser = [SELECT id, Name, Profile.Name, CompanyName, Email, Address FROM User WHERE ID =: UserID];
for (LoginHistory login1: lh)
{
trl.add(new TrackLoginHistory__c (ApiType__c = APIType,
ApiVersion__c = APIVersion,
Application__c = App,
Browser__c = Browser,
ClientVersion__c = ClientVersion,
ID__c = ID1,
// LoginTime__c = String.valueOf(LoginTime),
LoginType__c = LoginType,
LoginURL__c = LoginURL,
Platform__c = Platform,
SourceIP__c = SourceIP,
Status__c = Status,
UserID__c = LogUser.Name,
Profile__c = LogUser.Profile.Name,
Address__c = String.valueOf(LogUser.Address),
Email__c = LogUser.Email,
CompanyName__c = LogUser.CompanyName
));
//UserID__c = UserID ));
}
insert trl;
}
}
}
}
Thank You!
@Jigar, Hope below links for sample code snippet will help you :)
https://salesforce.stackexchange.com/questions/82355/how-to-write-test-class-for-schedulable-class
Please let us know in case of help :)
Thanks
Rajat Maheshwari
rajatzmaheshwari@gmail.com
In that case you can try SeeAllData=True in your test class.
Thanks
Varaprasad