function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
streetstreet 

testcase for below class

global class bitly {

Public String mode;
Public String sUrl;

public String getbitly () {
String shorten;
XmlStreamReader reader;
HttpResponse res;

//First, build the http request
Http h = new Http();
HttpRequest req = buildWebServiceRequest(sURL);

//Second, invoke web service call
if (mode=='live') { res = invokeWebService(h, req); }

if (mode=='live') { reader = res.getXmlStreamReader(); }
else
{
String str = '<bitly><results shortUrl="http://bit.ly/QqHEm">Foo bar</results></bitly>';
reader = new XmlStreamReader(str);
}
return readXMLResponse(reader,'shortUrl');

}


public static HttpRequest buildWebServiceRequest(String purl){
String endpoint;
HttpRequest req = new HttpRequest();
endpoint = 'http://api.bitly.com/shorten?version=2.0.1&format=xml&history=1&longUrl=' + purl + '&login=tseth&apiKey=R_948fa681da46221f969e83b2ba52d31e';
req.setEndpoint(endpoint);
req.setMethod('GET');
return req;
}

public static HttpResponse invokeWebService(Http h, HttpRequest req){

//Invoke Web Service
HttpResponse res = h.send(req);
return res;
}


public static String readXMLResponse(XmlStreamReader reader, String sxmltag){
string retValue;
// Read through the XML
system.debug(reader.toString());
while(reader.hasNext()) {
if (reader.getEventType() == XmlTag.START_ELEMENT) {
if (reader.getLocalName() == sxmltag) {
reader.next();
if (reader.getEventType() == XmlTag.characters) {
retValue = reader.getText();
}
}
}
reader.next();
}
return retValue;
}


}

Navatar_DbSupNavatar_DbSup

Hi,
Try the below class with test method code for reference:

global class bitly {
Public String mode;
Public String sUrl;
public String getbitly () {
String shorten;
XmlStreamReader reader;
HttpResponse res;
//First, build the http request
Http h = new Http();
HttpRequest req = buildWebServiceRequest(sURL);

//Second, invoke web service call
if (mode=='live') { res = invokeWebService(h, req); }

if (mode=='live') { reader = res.getXmlStreamReader(); }
else
{
String str = '<bitly><results shortUrl="http://bit.ly/QqHEm">Foo bar</results></bitly>';
reader = new XmlStreamReader(str);
}
return readXMLResponse(reader,'shortUrl');

}

public static HttpRequest buildWebServiceRequest(String purl){
String endpoint;
HttpRequest req = new HttpRequest();
endpoint = 'http://api.bitly.com/shorten?version=2.0.1&format=xml&history=1&longUrl=' + purl + '&login=tseth&apiKey=R_948fa681da46221f969e83b2ba52d31e';
req.setEndpoint(endpoint);
req.setMethod('GET');
return req;
}
public static HttpResponse invokeWebService(Http h, HttpRequest req){

//Invoke Web Service
HttpResponse res = h.send(req);
return res;
}

public static String readXMLResponse(XmlStreamReader reader, String sxmltag){
string retValue;
// Read through the XML
system.debug(reader.toString());
while(reader.hasNext()) {
if (reader.getEventType() == XmlTag.START_ELEMENT) {
if (reader.getLocalName() == sxmltag) {
reader.next();
if (reader.getEventType() == XmlTag.characters) {
retValue = reader.getText();
}
}
}
reader.next();
}
return retValue;
}
public static testmethod void myTest()
{
bitly b=new bitly();
b.getbitly(); 

}

}

 

Did this answer your question? If not, let me know what didn't work, or if so, please mark it solved. 

 

streetstreet

 

These Below parts are not covering. code coverage is 81% without Fail. I need to cover atleast 90%.

 

 

   reader.next();
 54   if (reader.getEventType() == XmlTag.characters) {
 55   retValue = reader.getText();
  
 38  public static HttpResponse invokeWebService(Http h, HttpRequest req){
 39  
 40   //Invoke Web Service
 41   HttpResponse res = h.send(req);
 42   return res;
 43  }
 44  



Navatar_DbSupNavatar_DbSup

Hi,


You have to make the data in such a way that remaining part will cover Try the below it will give you 87% coverage:
global class bitly {
Public String mode;
Public String sUrl;
public String getbitly () {
String shorten;
XmlStreamReader reader;
HttpResponse res;
//First, build the http request
Http h = new Http();
HttpRequest req = buildWebServiceRequest(sURL);

//Second, invoke web service call
if (mode=='live') { res = invokeWebService(h, req); }

if (mode=='live') { reader = res.getXmlStreamReader(); }
else
{
String str = '<bitly><results shortUrl="http://bit.ly/QqHEm">Foo bar</results></bitly>';
reader = new XmlStreamReader(str);
}
return readXMLResponse(reader,'shortUrl');

}

public static HttpRequest buildWebServiceRequest(String purl){
String endpoint;
HttpRequest req = new HttpRequest();
endpoint = 'http://api.bitly.com/shorten?version=2.0.1&format=xml&history=1&longUrl=' + purl + '&login=tseth&apiKey=R_948fa681da46221f969e83b2ba52d31e';
req.setEndpoint(endpoint);
req.setMethod('GET');
return req;
}
public static HttpResponse invokeWebService(Http h, HttpRequest req){

//Invoke Web Service
HttpResponse res = h.send(req);
return res;
}

public static String readXMLResponse(XmlStreamReader reader, String sxmltag){
string retValue;
// Read through the XML
system.debug(reader.toString());
while(reader.hasNext()) {
if (reader.getEventType() == XmlTag.START_ELEMENT) {
if (reader.getLocalName() == sxmltag) {
reader.next();
if (reader.getEventType() == XmlTag.characters) {
retValue = reader.getText();
}
}
}
reader.next();
}
return retValue;
}
public static testmethod void myTest()
{
bitly b=new bitly();
b.getbitly();
Http h = new Http();
String sUrl='abc';
HttpRequest req = buildWebServiceRequest(sURL);
bitly.invokeWebService(h, req);
}

}