From acb7de3eb6afeda1f7df90f197a62016b390bba9 Mon Sep 17 00:00:00 2001 From: Greg Messner Date: Sun, 16 Dec 2018 18:05:39 -0800 Subject: [PATCH] Added methods to return the JSON for both the item and list. --- .../java/org/gitlab4j/api/FakeResponse.java | 41 +++++++++++-------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/src/test/java/org/gitlab4j/api/FakeResponse.java b/src/test/java/org/gitlab4j/api/FakeResponse.java index 41afd559..61c7522a 100644 --- a/src/test/java/org/gitlab4j/api/FakeResponse.java +++ b/src/test/java/org/gitlab4j/api/FakeResponse.java @@ -1,48 +1,59 @@ package org.gitlab4j.api; import java.io.ByteArrayInputStream; -import java.io.InputStreamReader; import java.util.List; import javax.ws.rs.core.GenericType; import javax.ws.rs.core.Response; /** - * This class can be used as a spy for Mockito to test the individual APIs getXxxxx() methods without the - * need to have a GitLab server available. + * This class can be used as a spy for Mockito to test the individual APIs + * getXxxxx() methods without the need to have a GitLab server available. * - * Supports getXxxxx() methods that return a List of items, single items, and Optional items. + * Supports getXxxxx() methods that return a List of items, single items, + * Optional items, and Pagers of items. */ public abstract class FakeResponse extends Response { private List responseList; - private ByteArrayInputStream responseInputStream; private Object responseItem; private int perPage = 20; + private String itemJson; + private String listJson; + public void init(Class type, String itemFilename, String listFilename) throws Exception { if (itemFilename != null) { - InputStreamReader reader = new InputStreamReader(TestGitLabApiBeans.class.getResourceAsStream(itemFilename)); - responseItem = JsonUtils.unmarshal(type, reader); + itemJson = JsonUtils.readResource(itemFilename); + responseItem = JsonUtils.unmarshal(type, itemJson); } else { responseItem = null; } if (listFilename != null) { - String listJson = JsonUtils.readResource(listFilename); + listJson = JsonUtils.readResource(listFilename); responseList = (List) JsonUtils.unmarshalList(type, listJson); - responseInputStream = new ByteArrayInputStream(listJson.getBytes()); } else { responseList = null; - responseInputStream = null; } } + public String getItemJson() { + return (itemJson); + } + + public String getListJson() { + return (listJson); + } + public void setPerPageHeaderValue(int perPage) { this.perPage = perPage; } + // The below methods allow this abstract class to act as a fake Resource + // instance. + @SuppressWarnings("unchecked") @Override public T readEntity(GenericType entityType) { @@ -57,12 +68,7 @@ public abstract class FakeResponse extends Response { @Override public Object getEntity() { - if (responseInputStream == null) { - return (null); - } - - responseInputStream.reset(); - return (responseInputStream); + return (listJson != null ? new ByteArrayInputStream(listJson.getBytes()) : null); } @Override @@ -72,7 +78,8 @@ public abstract class FakeResponse extends Response { return (responseList != null ? Integer.toString(perPage) : "0"); case Constants.TOTAL_PAGES_HEADER: - return (responseList != null ? Integer.toString((int)Math.ceil((double)responseList.size() / 20.0)) : "0"); + return (responseList != null ? Integer.toString((int) Math.ceil((double) responseList.size() / 20.0)) + : "0"); case Constants.TOTAL_HEADER: return (responseList != null ? Integer.toString(responseList.size()) : "0"); -- GitLab