Skip to content

Commit 4399712

Browse files
committed
Merge pull request #178 from TanyaEf/develop
Fixed #176 (The defaultAllowed parameter is not added to request for thumbnails service)
2 parents 642c642 + ff66c17 commit 4399712

File tree

2 files changed

+86
-13
lines changed

2 files changed

+86
-13
lines changed

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/thumbnails/SingleThumbnailAdapter.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,16 @@
1818
public class SingleThumbnailAdapter extends AbstractAdapter {
1919

2020
private final MultivaluedHashMap<String, String> params = new MultivaluedHashMap<String, String>();
21+
private String reportName;
2122

2223
public SingleThumbnailAdapter(SessionStorage sessionStorage) {
2324
super(sessionStorage);
2425
}
2526

2627
public SingleThumbnailAdapter report(String uri) {
27-
params.add("uri", uri);
28+
if (uri != null && !uri.equals("")) {
29+
reportName = uri;
30+
}
2831
return this;
2932
}
3033

@@ -34,14 +37,17 @@ public SingleThumbnailAdapter defaultAllowed(Boolean value) {
3437
}
3538

3639
public OperationResult<InputStream> get() {
37-
return request().setAccept("image/jpeg").get();
40+
return request().get();
3841
}
3942

4043
private JerseyRequest<InputStream> request() {
41-
if (params.size() == 0) {
44+
if (reportName == null) {
4245
throw new MandatoryParameterNotFoundException("URI of report should be specified");
4346
}
44-
return JerseyRequest.buildRequest(sessionStorage, InputStream.class,
45-
new String[]{"/thumbnails", params.get("uri").get(0)}, new DefaultErrorHandler());
47+
JerseyRequest<InputStream> request = JerseyRequest.buildRequest(sessionStorage, InputStream.class,
48+
new String[]{"/thumbnails", reportName}, new DefaultErrorHandler());
49+
request.setAccept("image/jpeg");
50+
request.addParams(params);
51+
return request;
4652
}
4753
}

src/test/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/thumbnails/SingleThumbnailAdapterTest.java

Lines changed: 75 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.jaspersoft.jasperserver.jaxrs.client.core.JerseyRequest;
44
import com.jaspersoft.jasperserver.jaxrs.client.core.RequestBuilder;
55
import com.jaspersoft.jasperserver.jaxrs.client.core.SessionStorage;
6+
import com.jaspersoft.jasperserver.jaxrs.client.core.exceptions.MandatoryParameterNotFoundException;
67
import com.jaspersoft.jasperserver.jaxrs.client.core.exceptions.handling.DefaultErrorHandler;
78
import com.jaspersoft.jasperserver.jaxrs.client.core.operationresult.OperationResult;
89
import java.io.InputStream;
@@ -17,6 +18,7 @@
1718
import org.testng.annotations.Test;
1819

1920
import static com.jaspersoft.jasperserver.jaxrs.client.core.JerseyRequest.buildRequest;
21+
import static org.junit.Assert.assertNull;
2022
import static org.mockito.Matchers.any;
2123
import static org.mockito.Matchers.eq;
2224
import static org.mockito.Mockito.reset;
@@ -74,12 +76,56 @@ public void should_set_report_uri() {
7476
// When
7577
SingleThumbnailAdapter retrieved = thumbnailAdapter.report("/public/Samples/Reports/07g.RevenueDetailReport");
7678

79+
// Then
80+
String reportName = (String) Whitebox.getInternalState(retrieved, "reportName");
81+
assertEquals(reportName, "/public/Samples/Reports/07g.RevenueDetailReport");
82+
} @Test
83+
/**
84+
* for {@link SingleThumbnailAdapter#report(String)}
85+
*/
86+
public void should_not_set_null_report_uri() {
87+
// Given
88+
SingleThumbnailAdapter thumbnailAdapter = new SingleThumbnailAdapter(sessionStorageMock);
89+
90+
// When
91+
SingleThumbnailAdapter retrieved = thumbnailAdapter.report(null);
92+
93+
// Then
94+
assertNull(Whitebox.getInternalState(retrieved, "reportName"));
95+
}
96+
97+
@Test
98+
/**
99+
* for {@link SingleThumbnailAdapter#report(String)}
100+
*/
101+
public void should_not_set_empty_report_uri() {
102+
// Given
103+
SingleThumbnailAdapter thumbnailAdapter = new SingleThumbnailAdapter(sessionStorageMock);
104+
105+
// When
106+
SingleThumbnailAdapter retrieved = thumbnailAdapter.report("");
107+
108+
// Then
109+
assertNull(Whitebox.getInternalState(retrieved, "reportName"));
110+
}
111+
112+
@Test
113+
/**
114+
* for {@link SingleThumbnailAdapter#report(String)}
115+
*/
116+
public void should_set_report_uri_with_default_allowed() {
117+
// Given
118+
SingleThumbnailAdapter thumbnailAdapter = new SingleThumbnailAdapter(sessionStorageMock);
119+
120+
// When
121+
SingleThumbnailAdapter retrieved = thumbnailAdapter.defaultAllowed(true).report("/public/Samples/Reports/07g.RevenueDetailReport");
122+
77123
// Then
78124
MultivaluedHashMap<String, String> params =
79-
(MultivaluedHashMap<String, String>) Whitebox.getInternalState(thumbnailAdapter, "params");
80-
List<String> list = params.get("uri");
125+
(MultivaluedHashMap<String, String>) Whitebox.getInternalState(retrieved, "params");
126+
List<String> list = params.get("defaultAllowed");
81127
assertSame(retrieved, thumbnailAdapter);
82-
assertEquals(list.get(0), "/public/Samples/Reports/07g.RevenueDetailReport");
128+
assertEquals(list.get(0), "true");
83129
}
84130

85131
@Test
@@ -115,20 +161,20 @@ public void should_return_proper_operation_result() {
115161
eq(InputStream.class),
116162
eq(new String[]{"/thumbnails", "/public/Samples/Reports/07g.RevenueDetailReport"}),
117163
any(DefaultErrorHandler.class))).thenReturn(jerseyRequestMock);
118-
when(jerseyRequestMock.setAccept("image/jpeg")).thenReturn(requestBuilderMock);
119-
when(requestBuilderMock.get()).thenReturn(operationResultMock);
164+
when(jerseyRequestMock.setAccept("image/jpeg")).thenReturn(jerseyRequestMock);
165+
when(jerseyRequestMock.get()).thenReturn(operationResultMock);
120166
SingleThumbnailAdapter thumbnailAdapter = new SingleThumbnailAdapter(sessionStorageMock);
121167
thumbnailAdapter.report("/public/Samples/Reports/07g.RevenueDetailReport");
122168

123-
// When /
169+
// When
124170
OperationResult<InputStream> retrieved = thumbnailAdapter.get();
125171

126172

127-
// Then /
173+
// Then
128174
assertNotNull(retrieved);
129175
assertSame(retrieved, operationResultMock);
130176
verify(jerseyRequestMock).setAccept(eq("image/jpeg"));
131-
verify(requestBuilderMock).get();
177+
verify(jerseyRequestMock).get();
132178
verifyStatic(times(1));
133179
buildRequest(
134180
eq(sessionStorageMock),
@@ -138,6 +184,27 @@ public void should_return_proper_operation_result() {
138184

139185
}
140186

187+
188+
@Test(expectedExceptions = MandatoryParameterNotFoundException.class)
189+
/**
190+
* for {@link SingleThumbnailAdapter#get()}
191+
*/
192+
public void should_throw_exception() {
193+
194+
// Given
195+
SingleThumbnailAdapter thumbnailAdapter = new SingleThumbnailAdapter(sessionStorageMock);
196+
thumbnailAdapter.report(null);
197+
198+
// When
199+
OperationResult<InputStream> retrieved = thumbnailAdapter.get();
200+
201+
202+
// Then
203+
//An exception should be thrown
204+
205+
206+
}
207+
141208
@AfterMethod
142209
public void after() {
143210
reset(sessionStorageMock, jerseyRequestMock, requestBuilderMock, operationResultMock);

0 commit comments

Comments
 (0)