Skip to content

Commit 7f8f7da

Browse files
author
TanyaEf
committed
Fixed bug #157
1 parent 0d7e58c commit 7f8f7da

File tree

2 files changed

+49
-4
lines changed

2 files changed

+49
-4
lines changed

src/main/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/bundles/BundlesService.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,14 @@ public BundlesService(SessionStorage sessionStorage) {
4242
}
4343

4444
public BundlesService forLocale(String locale) {
45-
this.locale = new Locale(locale);
45+
if (locale != null) {
46+
this.forLocale(new Locale(locale));
47+
}
4648
return this;
4749
}
4850

4951
public BundlesService forLocale(Locale locale) {
50-
this.locale = locale;
52+
this.locale = locale;
5153
return this;
5254
}
5355

@@ -71,7 +73,11 @@ private JerseyRequest<Map<String, Map<String, String>>> buildBundlesRequest() {
7173
JerseyRequest<Map<String, Map<String, String>>> request =
7274
JerseyRequest.buildRequest(sessionStorage, new GenericType<Map<String, Map<String, String>>>() {
7375
}, new String[]{"/bundles"}, new DefaultErrorHandler());
74-
request.setAccept(MediaType.APPLICATION_JSON).addHeader("Accept-Language", locale.toString().replace('_', '-'));
76+
77+
request.setAccept(MediaType.APPLICATION_JSON);
78+
if (!"".equals(this.locale.getLanguage())) {
79+
request.addHeader("Accept-Language", locale.toString().replace('_', '-'));
80+
}
7581
return request;
7682
}
7783

src/test/java/com/jaspersoft/jasperserver/jaxrs/client/apiadapters/bundles/BundlesServiceTest.java

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.mockito.internal.util.reflection.Whitebox;
1515
import org.powermock.core.classloader.annotations.PrepareForTest;
1616
import org.powermock.modules.testng.PowerMockTestCase;
17+
import org.testng.annotations.AfterMethod;
1718
import org.testng.annotations.BeforeMethod;
1819
import org.testng.annotations.Test;
1920

@@ -23,6 +24,7 @@
2324
import static org.mockito.Matchers.isA;
2425
import static org.mockito.Mockito.doReturn;
2526
import static org.mockito.Mockito.never;
27+
import static org.mockito.Mockito.reset;
2628
import static org.mockito.Mockito.times;
2729
import static org.mockito.Mockito.verify;
2830
import static org.mockito.Mockito.when;
@@ -145,7 +147,7 @@ public void should_return_proper_bundles_by_name_for_string_locale() throws Exce
145147
verify(requestMock).addHeader("Accept-Language", "de");
146148
verify(requestMock).get();
147149
verifyStatic(times(1));
148-
JerseyRequest.buildRequest(eq(sessionStorageMock), eq(new GenericType<Map<String, String>>() {
150+
JerseyRequest.buildRequest(eq(sessionStorageMock), eq(new GenericType<Map<String, String>>() {
149151
}), eq(new String[]{"/bundles", "jasperserver_messages"}), any(DefaultErrorHandler.class));
150152
}
151153

@@ -190,4 +192,41 @@ public void should_return_proper_bundles_by_name_for_default_locale() throws Exc
190192
JerseyRequest.buildRequest(eq(sessionStorageMock), eq(new GenericType<Map<String, String>>() {
191193
}), eq(new String[]{"/bundles", "jasperserver_messages"}), any(DefaultErrorHandler.class));
192194
}
195+
196+
@Test
197+
public void should_not_invoke_adding_language_by_empty_locale() throws Exception {
198+
//given
199+
mockStatic(JerseyRequest.class);
200+
when(JerseyRequest.buildRequest(eq(sessionStorageMock), any(GenericType.class), isA(String[].class), any(DefaultErrorHandler.class))).thenReturn(requestMock);
201+
doReturn(requestMock).when(requestMock).addHeader(anyString(), anyString());
202+
doReturn(requestMock).when(requestMock).setAccept(anyString());
203+
doReturn(operationResultMock).when(requestMock).get();
204+
//when
205+
OperationResult<Map<String, String>> bundle = service.forLocale(new Locale("")).bundle("jasperserver_messages");
206+
//then
207+
assertSame(bundle, operationResultMock);
208+
verify(requestMock).setAccept(MediaType.APPLICATION_JSON);
209+
verify(requestMock,never()).addParam("expanded", "true");
210+
verify(requestMock, never()).addHeader("Accept-Language", Locale.getDefault().toString().replace('_', '-'));
211+
verify(requestMock).get();
212+
verifyStatic(times(1));
213+
JerseyRequest.buildRequest(eq(sessionStorageMock), eq(new GenericType<Map<String, String>>() {
214+
}), eq(new String[]{"/bundles", "jasperserver_messages"}), any(DefaultErrorHandler.class));
215+
}
216+
217+
218+
@Test
219+
public void should_set_default_locale() throws Exception {
220+
//given
221+
Locale defaultLocale = Locale.getDefault();
222+
//when
223+
service.forLocale((String)null);
224+
//then
225+
assertEquals(defaultLocale, Whitebox.getInternalState(service, "locale"));
226+
}
227+
228+
@AfterMethod
229+
public void afetr() {
230+
reset(sessionStorageMock, requestMock, operationResultMock);
231+
}
193232
}

0 commit comments

Comments
 (0)