Skip to content

Commit caa1498

Browse files
committed
Merge pull request #110 from KingBuzzer/master
Add support for customer loggers.
2 parents 4a2edd0 + e4446de commit caa1498

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

src/main/java/com/contentful/java/cda/CDAClient.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ private CDAService createService(Builder clientBuilder) {
5656
.setRequestInterceptor(new Interceptor(token));
5757

5858
setLogLevel(restBuilder, clientBuilder);
59+
setLog(restBuilder, clientBuilder);
5960
setClient(restBuilder, clientBuilder);
6061
return restBuilder.build().create(CDAService.class);
6162
}
@@ -72,6 +73,12 @@ private void setLogLevel(RestAdapter.Builder restBuilder, Builder clientBuilder)
7273
}
7374
}
7475

76+
private void setLog(RestAdapter.Builder restBuilder, Builder clientBuilder) {
77+
if (clientBuilder.log != null) {
78+
restBuilder.setLog(clientBuilder.log);
79+
}
80+
}
81+
7582
/**
7683
* Returns a {@link FetchQuery} for a given {@code type}, which can be used to fulfill the
7784
* request synchronously or asynchronously when a callback is provided.
@@ -224,6 +231,7 @@ private Builder() {
224231
String token;
225232
String endpoint;
226233
LogLevel logLevel;
234+
RestAdapter.Log log;
227235
Client client;
228236

229237
/** Sets the space ID. */
@@ -250,6 +258,12 @@ public Builder setLogLevel(LogLevel logLevel) {
250258
return this;
251259
}
252260

261+
/** Sets a custom logger. */
262+
public Builder setLog(RestAdapter.Log log) {
263+
this.log = log;
264+
return this;
265+
}
266+
253267
/** Sets the endpoint to point the Preview API. */
254268
public Builder preview() {
255269
return this.setEndpoint(Constants.ENDPOINT_PREVIEW);

src/test/java/com/contentful/java/cda/ClientTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.squareup.okhttp.mockwebserver.RecordedRequest;
55
import org.junit.Test;
66
import org.mockito.Mockito;
7+
import retrofit.RestAdapter;
78
import retrofit.RetrofitError;
89
import retrofit.client.Client;
910
import retrofit.client.Request;
@@ -23,6 +24,22 @@ public void customClient() throws Exception {
2324
}
2425
}
2526

27+
@Test(expected = RetrofitError.class)
28+
public void customLogging() throws Exception {
29+
Client client = Mockito.mock(Client.class);
30+
RestAdapter.Log mock = Mockito.mock(RestAdapter.Log.class);
31+
32+
CDAClient cli = CDAClient.builder().setSpace("foo").setToken("bar").setClient(client)
33+
.setLogLevel(RestAdapter.LogLevel.BASIC)
34+
.setLog(mock).build();
35+
try {
36+
cli.fetchSpace();
37+
} catch (RetrofitError e) {
38+
Mockito.verify(mock, Mockito.atLeast(1)).log(Mockito.any(String.class));
39+
throw e;
40+
}
41+
}
42+
2643
@Test(expected = NullPointerException.class)
2744
public void clientWithNoSpaceThrows() throws Exception {
2845
try {

0 commit comments

Comments
 (0)