Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

How to create Junit test cases for Get servlet Assetmanager?

Avatar

Level 2

Here is my Java class I wanted write Junit test cases for this class basically this servlet will return last modified date Error i am getting Null pointer on  Asset asset = assetManager.getAsset(pdfUrl);

package com.aem.geeks.core.servlets;
import javax.servlet.Servlet;
import javax.servlet.ServletException;

import com.adobe.granite.asset.api.Asset;
import com.adobe.granite.asset.api.AssetManager;


import org.apache.felix.scr.annotations.sling.SlingServlet;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ValueMap;
import org.apache.sling.api.servlets.HttpConstants;
import org.apache.sling.api.servlets.SlingAllMethodsServlet;
import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
import org.json.JSONException;
import org.json.JSONObject;
import org.osgi.service.component.annotations.Component;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Component(
service = Servlet.class,
property = {
"sling.servlet.methods=" + HttpConstants.METHOD_GET,
"sling.servlet.paths=" + "/bin/data/pdf",
})
public class GetpdfmdfDate extends SlingAllMethodsServlet {
private static final long serialVersionUID = 1L;
private static final Logger LOG = LoggerFactory.getLogger(GetpdfmdfDate.class);
@Override
protected void doGet(final SlingHttpServletRequest req,
final SlingHttpServletResponse resp) throws ServletException, IOException {
try{
String pdfString = req.getParameter("pdfs");

LOG.info("pdfs"+pdfString);
String []pdfs = pdfString.split(",");
ResourceResolver resourceResolver =req.getResourceResolver();
List<String> lastReplicatedDates= new ArrayList<>();
for(String pdfUrl: pdfs) {
LOG.info("pdf--->"+pdfUrl);

AssetManager assetManager = resourceResolver.adaptTo(AssetManager.class);
Asset asset = assetManager.getAsset(pdfUrl);
LOG.info("asset--->"+asset.getPath());
ValueMap map = asset.adaptTo(ValueMap.class);
if(map.containsKey("jcr:lastModified")) {
Date date = map.get("jcr:lastModified",Date.class);
SimpleDateFormat sdf = new SimpleDateFormat("MMMM d, yyyy");
LOG.info("date..."+sdf.format(date));
lastReplicatedDates.add(sdf.format(date)); // set last Modified date
}else {
lastReplicatedDates.add("");
}
LOG.info(" lastReplicatedDates--->"+lastReplicatedDates.size());
}

//resp.setContentType("application/json");
JSONObject json = new JSONObject();


json.put("lastModifiedDates", lastReplicatedDates);

resp.getWriter().write(json.toString());
} catch (JSONException e) {
// TODO Auto-generated catch block
LOG.info("Error json--->"+e.getMessage());
}
}
}
1 Accepted Solution

Avatar

Correct answer by
Community Advisor
1 Reply

Avatar

Correct answer by
Community Advisor

Hi @prakashvb ,

 

Let's use only one thread for same question.

 

https://experienceleaguecommunities.adobe.com/t5/adobe-experience-manager/asset-asset-assetmanager-g...

 

Thanks,

Ritesh Mittal