forked from microsoftgraph/msgraph-sdk-java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMockHttpProvider.java
More file actions
135 lines (119 loc) · 5.47 KB
/
Copy pathMockHttpProvider.java
File metadata and controls
135 lines (119 loc) · 5.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
package com.microsoft.graph.http;
import java.io.BufferedInputStream;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.microsoft.graph.authentication.IAuthenticationProvider;
import com.microsoft.graph.authentication.MockAuthenticationProvider;
import com.microsoft.graph.concurrency.ICallback;
import com.microsoft.graph.concurrency.IExecutors;
import com.microsoft.graph.concurrency.IProgressCallback;
import com.microsoft.graph.concurrency.MockExecutors;
import com.microsoft.graph.core.ClientException;
import com.microsoft.graph.core.DefaultConnectionConfig;
import com.microsoft.graph.core.IConnectionConfig;
import com.microsoft.graph.logger.ILogger;
import com.microsoft.graph.logger.MockLogger;
import com.microsoft.graph.serializer.ISerializer;
import com.microsoft.graph.serializer.MockSerializer;
import okhttp3.Request;
/**
* Mock for {@see IHttpProvider}
*/
public class MockHttpProvider implements IHttpProvider {
private final ISerializer mSerializer;
private final IAuthenticationProvider mAuthenticationProvider;
private final IExecutors mExecutors;
private final ILogger mLogger;
private IConnectionFactory mConnectionFactory;
private IConnectionConfig connectionConfig;
@Override
public ISerializer getSerializer() {
return null;
}
public MockHttpProvider() {
mLogger = new MockLogger();
mSerializer = new MockSerializer(null,"");
mAuthenticationProvider = new MockAuthenticationProvider();
mExecutors = new MockExecutors();
mConnectionFactory = new DefaultConnectionFactory();
}
public MockHttpProvider(final ISerializer serializer,
final IAuthenticationProvider authenticationProvider,
final IExecutors executors,
final ILogger logger) {
mSerializer = serializer;
mAuthenticationProvider = authenticationProvider;
mExecutors = executors;
mLogger = logger;
mConnectionFactory = new DefaultConnectionFactory();
}
@Override
public <Result, BodyType> void send(IHttpRequest request,
ICallback<? super Result> callback,
Class<Result> resultClass,
BodyType serializable) {
Result result = null;
try{
IConnection connection = mConnectionFactory.createFromRequest(request);
if(connection.getResponseCode() == 200) {
if(connection.getHeaders().containsKey("Content-Type")) {
if (connection.getHeaders().get("Content-Type").equals("application/json")){
JsonObject jsonObject = JsonParser.parseString(connection.getResponseMessage()).getAsJsonObject();
result = (Result) jsonObject;
}else if (connection.getHeaders().get("Content-Type").equals("application/octet-stream")) {
result = (Result) new BufferedInputStream(connection.getInputStream());
}
}
}
} catch (Exception ex){
final ClientException clientException = new ClientException("Error during http request",
ex);
callback.failure(clientException);
}
callback.success(result);
}
@Override
public <Result, BodyType> Result send(IHttpRequest request,
Class<Result> resultClass,
BodyType serializable) throws ClientException {
try{
IConnection connection = mConnectionFactory.createFromRequest(request);
if(connection.getResponseCode() == 200) {
if(connection.getHeaders().containsKey("Content-Type")) {
if (connection.getHeaders().get("Content-Type").equals("application/json")){
JsonObject jsonObject = JsonParser.parseString(connection.getResponseMessage()).getAsJsonObject();
return (Result) jsonObject;
}else if (connection.getHeaders().get("Content-Type").equals("application/octet-stream")) {
return (Result) new BufferedInputStream(connection.getInputStream());
}
}
}
} catch (Exception ex){
final ClientException clientException = new ClientException("Error during http request",
ex);
throw clientException;
}
return null;
}
@Override
public <Result, BodyType, DeserializeType> Result send(IHttpRequest request, Class<Result> resultClass, BodyType serializable, IStatefulResponseHandler<Result, DeserializeType> handler) throws ClientException {
return null;
}
void setConnectionFactory(final IConnectionFactory factory) {
mConnectionFactory = factory;
}
public IConnectionConfig getConnectionConfig() {
if(this.connectionConfig == null) {
this.connectionConfig = new DefaultConnectionConfig();
}
return this.connectionConfig;
}
public void setConnectionConfig(IConnectionConfig connectionConfig) {
this.connectionConfig = connectionConfig;
}
@Override
public <Result, BodyType> Request getHttpRequest(IHttpRequest request, Class<Result> resultClass,
BodyType serializable, IProgressCallback<? super Result> progress) throws ClientException {
return null;
}
}