Solved
how to write test cases for Servlet reading response boolean,
Tried with below approach getting errors not able to proceed further
Get method from Servlet:
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response)
throws ServletException, IOException {
ResourceResolver resourceResolver = request.getResourceResolver();
TagManager tagManager = resourceResolver.adaptTo(TagManager.class);
String tagName = request.getParameter("tagName");
Tag tagPath = Objects.requireNonNull(tagManager).resolve(tagName);
Iterator<Tag> tagChildren = tagPath.listChildren();
String hasChildren = "false";
if (tagChildren.hasNext()) {
hasChildren = "true";
}
response.setContentType("text/plain");
response.getWriter().write(hasChildren);
}
Test cases for above method:
import io.wcm.testing.mock.aem.junit5.AemContextExtension;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.resource.ResourceResolver;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import com.day.cq.tagging.TagManager;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.mockito.Mockito.verify;
@ExtendWith(AemContextExtension.class)
public class ServletTest {
private SlingHttpServletRequest request;
private SlingHttpServletResponse response;
private ResourceResolver resolver;
private TagManager tagManager;
@BeforeEach
void setup() throws IOException {
request = mock(SlingHttpServletRequest.class);
resolver = mock(ResourceResolver.class);
response = mock(SlingHttpServletResponse.class);
when(request.getResourceResolver()).thenReturn(resolver);
when(resolver.adaptTo(TagManager.class)).thenReturn(tagManager);
PrintWriter writer = mock(PrintWriter.class);
when(response.getWriter()).thenReturn(writer);
}
@2785667
void testDoGet() throws IOException, ServletException {
Servlet servlet = new Servlet();
servlet.doGet(request, response);
verify(response.getWriter()).write("true");
verify(response.getWriter()).close();
}
}