use of io.vertx.core.http.HttpMethod in project vert.x by eclipse.
the class Http2ClientConnection method onPushPromiseRead.
@Override
public synchronized void onPushPromiseRead(ChannelHandlerContext ctx, int streamId, int promisedStreamId, Http2Headers headers, int padding) throws Http2Exception {
Http2ClientStream stream = (Http2ClientStream) streams.get(streamId);
if (stream != null) {
Handler<HttpClientRequest> pushHandler = stream.pushHandler();
if (pushHandler != null) {
context.executeFromIO(() -> {
String rawMethod = headers.method().toString();
HttpMethod method = HttpUtils.toVertxMethod(rawMethod);
String uri = headers.path().toString();
String host = headers.authority() != null ? headers.authority().toString() : null;
MultiMap headersMap = new Http2HeadersAdaptor(headers);
Http2Stream promisedStream = handler.connection().stream(promisedStreamId);
int port = remoteAddress().port();
HttpClientRequestPushPromise pushReq = new HttpClientRequestPushPromise(this, promisedStream, http2Pool.client, isSsl(), method, rawMethod, uri, host, port, headersMap);
if (metrics.isEnabled()) {
pushReq.metric(metrics.responsePushed(queueMetric, metric(), localAddress(), remoteAddress(), pushReq));
}
streams.put(promisedStreamId, pushReq.getStream());
pushHandler.handle(pushReq);
});
return;
}
}
handler.writeReset(promisedStreamId, Http2Error.CANCEL.code());
}
use of io.vertx.core.http.HttpMethod in project vert.x by eclipse.
the class DataObjectTest method testJsonToDataObject.
@Test
public void testJsonToDataObject() {
String key = TestUtils.randomAlphaString(10);
String stringValue = TestUtils.randomAlphaString(20);
boolean booleanValue = TestUtils.randomBoolean();
byte byteValue = TestUtils.randomByte();
short shortValue = TestUtils.randomShort();
int intValue = TestUtils.randomInt();
long longValue = TestUtils.randomLong();
float floatValue = TestUtils.randomFloat();
double doubleValue = TestUtils.randomDouble();
char charValue = TestUtils.randomChar();
Boolean boxedBooleanValue = TestUtils.randomBoolean();
Byte boxedByteValue = TestUtils.randomByte();
Short boxedShortValue = TestUtils.randomShort();
Integer boxedIntValue = TestUtils.randomInt();
Long boxedLongValue = TestUtils.randomLong();
Float boxedFloatValue = TestUtils.randomFloat();
Double boxedDoubleValue = TestUtils.randomDouble();
Character boxedCharValue = TestUtils.randomChar();
AggregatedDataObject aggregatedDataObject = new AggregatedDataObject().setValue(TestUtils.randomAlphaString(20));
Buffer buffer = TestUtils.randomBuffer(20);
JsonObject jsonObject = new JsonObject().put("wibble", TestUtils.randomAlphaString(20));
JsonArray jsonArray = new JsonArray().add(TestUtils.randomAlphaString(20));
HttpMethod httpMethod = HttpMethod.values()[TestUtils.randomPositiveInt() % HttpMethod.values().length];
Map<String, Object> map = new HashMap<>();
map.put(TestUtils.randomAlphaString(10), TestUtils.randomAlphaString(20));
map.put(TestUtils.randomAlphaString(10), TestUtils.randomBoolean());
map.put(TestUtils.randomAlphaString(10), TestUtils.randomInt());
List<Object> list = new ArrayList<>();
list.add(TestUtils.randomAlphaString(20));
list.add(TestUtils.randomBoolean());
list.add(TestUtils.randomInt());
JsonObject json = new JsonObject();
json.put("stringValue", stringValue);
json.put("booleanValue", booleanValue);
json.put("byteValue", byteValue);
json.put("shortValue", shortValue);
json.put("intValue", intValue);
json.put("longValue", longValue);
json.put("floatValue", floatValue);
json.put("doubleValue", doubleValue);
json.put("charValue", Character.toString(charValue));
json.put("boxedBooleanValue", boxedBooleanValue);
json.put("boxedByteValue", boxedByteValue);
json.put("boxedShortValue", boxedShortValue);
json.put("boxedIntValue", boxedIntValue);
json.put("boxedLongValue", boxedLongValue);
json.put("boxedFloatValue", boxedFloatValue);
json.put("boxedDoubleValue", boxedDoubleValue);
json.put("boxedCharValue", Character.toString(boxedCharValue));
json.put("aggregatedDataObject", aggregatedDataObject.toJson());
json.put("buffer", toBase64(buffer));
json.put("jsonObject", jsonObject);
json.put("jsonArray", jsonArray);
json.put("httpMethod", httpMethod.toString());
json.put("stringValues", new JsonArray().add(stringValue));
json.put("boxedBooleanValues", new JsonArray().add(boxedBooleanValue));
json.put("boxedByteValues", new JsonArray().add(boxedByteValue));
json.put("boxedShortValues", new JsonArray().add(boxedShortValue));
json.put("boxedIntValues", new JsonArray().add(boxedIntValue));
json.put("boxedLongValues", new JsonArray().add(boxedLongValue));
json.put("boxedFloatValues", new JsonArray().add(boxedFloatValue));
json.put("boxedDoubleValues", new JsonArray().add(boxedDoubleValue));
json.put("boxedCharValues", new JsonArray().add(Character.toString(boxedCharValue)));
json.put("aggregatedDataObjects", new JsonArray().add(aggregatedDataObject.toJson()));
json.put("buffers", new JsonArray().add(toBase64(buffer)));
json.put("jsonObjects", new JsonArray().add(jsonObject));
json.put("jsonArrays", new JsonArray().add(jsonArray));
json.put("httpMethods", new JsonArray().add(httpMethod.toString()));
json.put("objects", new JsonArray().add(list.get(0)).add(list.get(1)).add(list.get(2)));
json.put("addedStringValues", new JsonArray().add(stringValue));
json.put("addedBooleanValues", new JsonArray().add(boxedBooleanValue));
json.put("addedByteValues", new JsonArray().add(boxedByteValue));
json.put("addedShortValues", new JsonArray().add(boxedShortValue));
json.put("addedIntValues", new JsonArray().add(boxedIntValue));
json.put("addedLongValues", new JsonArray().add(boxedLongValue));
json.put("addedFloatValues", new JsonArray().add(boxedFloatValue));
json.put("addedDoubleValues", new JsonArray().add(boxedDoubleValue));
json.put("addedCharValues", new JsonArray().add(Character.toString(boxedCharValue)));
json.put("addedBoxedBooleanValues", new JsonArray().add(boxedBooleanValue));
json.put("addedBoxedByteValues", new JsonArray().add(boxedByteValue));
json.put("addedBoxedShortValues", new JsonArray().add(boxedShortValue));
json.put("addedBoxedIntValues", new JsonArray().add(boxedIntValue));
json.put("addedBoxedLongValues", new JsonArray().add(boxedLongValue));
json.put("addedBoxedFloatValues", new JsonArray().add(boxedFloatValue));
json.put("addedBoxedDoubleValues", new JsonArray().add(boxedDoubleValue));
json.put("addedBoxedCharValues", new JsonArray().add(Character.toString(boxedCharValue)));
json.put("addedAggregatedDataObjects", new JsonArray().add(aggregatedDataObject.toJson()));
json.put("addedBuffers", new JsonArray().add(toBase64(buffer)));
json.put("addedJsonObjects", new JsonArray().add(jsonObject));
json.put("addedJsonArrays", new JsonArray().add(jsonArray));
json.put("addedHttpMethods", new JsonArray().add(httpMethod.toString()));
json.put("addedObjects", new JsonArray().add(list.get(0)).add(list.get(1)).add(list.get(2)));
json.put("stringValueMap", new JsonObject().put(key, stringValue));
json.put("boxedBooleanValueMap", new JsonObject().put(key, boxedBooleanValue));
json.put("boxedByteValueMap", new JsonObject().put(key, boxedByteValue));
json.put("boxedShortValueMap", new JsonObject().put(key, boxedShortValue));
json.put("boxedIntValueMap", new JsonObject().put(key, boxedIntValue));
json.put("boxedLongValueMap", new JsonObject().put(key, boxedLongValue));
json.put("boxedFloatValueMap", new JsonObject().put(key, boxedFloatValue));
json.put("boxedDoubleValueMap", new JsonObject().put(key, boxedDoubleValue));
json.put("boxedCharValueMap", new JsonObject().put(key, Character.toString(boxedCharValue)));
json.put("aggregatedDataObjectMap", new JsonObject().put(key, aggregatedDataObject.toJson()));
json.put("bufferMap", new JsonObject().put(key, toBase64(buffer)));
json.put("jsonObjectMap", new JsonObject().put(key, jsonObject));
json.put("jsonArrayMap", new JsonObject().put(key, jsonArray));
json.put("httpMethodMap", new JsonObject().put(key, httpMethod.toString()));
json.put("objectMap", toJson(map));
json.put("keyedStringValues", new JsonObject().put(key, stringValue));
json.put("keyedBoxedBooleanValues", new JsonObject().put(key, boxedBooleanValue));
json.put("keyedBoxedByteValues", new JsonObject().put(key, boxedByteValue));
json.put("keyedBoxedShortValues", new JsonObject().put(key, boxedShortValue));
json.put("keyedBoxedIntValues", new JsonObject().put(key, boxedIntValue));
json.put("keyedBoxedLongValues", new JsonObject().put(key, boxedLongValue));
json.put("keyedBoxedFloatValues", new JsonObject().put(key, boxedFloatValue));
json.put("keyedBoxedDoubleValues", new JsonObject().put(key, boxedDoubleValue));
json.put("keyedBoxedCharValues", new JsonObject().put(key, Character.toString(boxedCharValue)));
json.put("keyedDataObjectValues", new JsonObject().put(key, aggregatedDataObject.toJson()));
json.put("keyedBufferValues", new JsonObject().put(key, toBase64(buffer)));
json.put("keyedJsonObjectValues", new JsonObject().put(key, jsonObject));
json.put("keyedJsonArrayValues", new JsonObject().put(key, jsonArray));
json.put("keyedEnumValues", new JsonObject().put(key, httpMethod));
json.put("keyedObjectValues", toJson(map));
TestDataObject obj = new TestDataObject();
TestDataObjectConverter.fromJson(json, obj);
assertEquals(stringValue, obj.getStringValue());
assertEquals(booleanValue, obj.isBooleanValue());
assertEquals(byteValue, obj.getByteValue());
assertEquals(shortValue, obj.getShortValue());
assertEquals(intValue, obj.getIntValue());
assertEquals(longValue, obj.getLongValue());
assertEquals(floatValue, obj.getFloatValue(), 0);
assertEquals(doubleValue, obj.getDoubleValue(), 0);
assertEquals(charValue, obj.getCharValue());
assertEquals(boxedBooleanValue, obj.isBoxedBooleanValue());
assertEquals(boxedByteValue, obj.getBoxedByteValue());
assertEquals(boxedShortValue, obj.getBoxedShortValue());
assertEquals(boxedIntValue, obj.getBoxedIntValue());
assertEquals(boxedLongValue, obj.getBoxedLongValue());
assertEquals(boxedFloatValue, obj.getBoxedFloatValue(), 0);
assertEquals(boxedDoubleValue, obj.getBoxedDoubleValue(), 0);
assertEquals(boxedCharValue, obj.getBoxedCharValue());
assertEquals(aggregatedDataObject, obj.getAggregatedDataObject());
assertEquals(buffer, obj.getBuffer());
assertEquals(jsonObject, obj.getJsonObject());
assertEquals(jsonArray, obj.getJsonArray());
assertEquals(httpMethod, obj.getHttpMethod());
assertEquals(Collections.singletonList(stringValue), obj.getStringValues());
assertEquals(Collections.singletonList(boxedBooleanValue), obj.getBoxedBooleanValues());
assertEquals(Collections.singletonList(boxedByteValue), obj.getBoxedByteValues());
assertEquals(Collections.singletonList(boxedShortValue), obj.getBoxedShortValues());
assertEquals(Collections.singletonList(boxedIntValue), obj.getBoxedIntValues());
assertEquals(Collections.singletonList(boxedLongValue), obj.getBoxedLongValues());
assertEquals(Collections.singletonList(boxedFloatValue), obj.getBoxedFloatValues());
assertEquals(Collections.singletonList(boxedDoubleValue), obj.getBoxedDoubleValues());
assertEquals(Collections.singletonList(boxedCharValue), obj.getBoxedCharValues());
assertEquals(Collections.singletonList(aggregatedDataObject), obj.getAggregatedDataObjects());
assertEquals(Collections.singletonList(buffer), obj.getBuffers());
assertEquals(Collections.singletonList(jsonObject), obj.getJsonObjects());
assertEquals(Collections.singletonList(jsonArray), obj.getJsonArrays());
assertEquals(Collections.singletonList(httpMethod), obj.getHttpMethods());
assertEquals(list, obj.getObjects());
assertEquals(Collections.singletonList(stringValue), obj.getAddedStringValues());
assertEquals(Collections.singletonList(boxedBooleanValue), obj.getAddedBoxedBooleanValues());
assertEquals(Collections.singletonList(boxedByteValue), obj.getAddedBoxedByteValues());
assertEquals(Collections.singletonList(boxedShortValue), obj.getAddedBoxedShortValues());
assertEquals(Collections.singletonList(boxedIntValue), obj.getAddedBoxedIntValues());
assertEquals(Collections.singletonList(boxedLongValue), obj.getAddedBoxedLongValues());
assertEquals(Collections.singletonList(boxedFloatValue), obj.getAddedBoxedFloatValues());
assertEquals(Collections.singletonList(boxedDoubleValue), obj.getAddedBoxedDoubleValues());
assertEquals(Collections.singletonList(boxedCharValue), obj.getAddedBoxedCharValues());
assertEquals(Collections.singletonList(aggregatedDataObject), obj.getAddedAggregatedDataObjects());
assertEquals(Collections.singletonList(buffer), obj.getAddedBuffers());
assertEquals(Collections.singletonList(jsonObject), obj.getAddedJsonObjects());
assertEquals(Collections.singletonList(jsonArray), obj.getAddedJsonArrays());
assertEquals(Collections.singletonList(httpMethod), obj.getAddedHttpMethods());
assertEquals(list, obj.getAddedObjects());
assertEquals(Collections.singletonMap(key, stringValue), obj.getStringValueMap());
assertEquals(Collections.singletonMap(key, boxedBooleanValue), obj.getBoxedBooleanValueMap());
assertEquals(Collections.singletonMap(key, boxedByteValue), obj.getBoxedByteValueMap());
assertEquals(Collections.singletonMap(key, boxedShortValue), obj.getBoxedShortValueMap());
assertEquals(Collections.singletonMap(key, boxedIntValue), obj.getBoxedIntValueMap());
assertEquals(Collections.singletonMap(key, boxedLongValue), obj.getBoxedLongValueMap());
assertEquals(Collections.singletonMap(key, boxedFloatValue), obj.getBoxedFloatValueMap());
assertEquals(Collections.singletonMap(key, boxedDoubleValue), obj.getBoxedDoubleValueMap());
assertEquals(Collections.singletonMap(key, boxedCharValue), obj.getBoxedCharValueMap());
assertEquals(Collections.singletonMap(key, aggregatedDataObject), obj.getAggregatedDataObjectMap());
assertEquals(Collections.singletonMap(key, buffer), obj.getBufferMap());
assertEquals(Collections.singletonMap(key, jsonObject), obj.getJsonObjectMap());
assertEquals(Collections.singletonMap(key, jsonArray), obj.getJsonArrayMap());
assertEquals(Collections.singletonMap(key, httpMethod), obj.getHttpMethodMap());
assertEquals(map, obj.getObjectMap());
assertEquals(Collections.singletonMap(key, stringValue), obj.getKeyedStringValues());
assertEquals(Collections.singletonMap(key, boxedBooleanValue), obj.getKeyedBoxedBooleanValues());
assertEquals(Collections.singletonMap(key, boxedByteValue), obj.getKeyedBoxedByteValues());
assertEquals(Collections.singletonMap(key, boxedShortValue), obj.getKeyedBoxedShortValues());
assertEquals(Collections.singletonMap(key, boxedIntValue), obj.getKeyedBoxedIntValues());
assertEquals(Collections.singletonMap(key, boxedLongValue), obj.getKeyedBoxedLongValues());
assertEquals(Collections.singletonMap(key, boxedFloatValue), obj.getKeyedBoxedFloatValues());
assertEquals(Collections.singletonMap(key, boxedDoubleValue), obj.getKeyedBoxedDoubleValues());
assertEquals(Collections.singletonMap(key, boxedCharValue), obj.getKeyedBoxedCharValues());
assertEquals(Collections.singletonMap(key, aggregatedDataObject), obj.getKeyedDataObjectValues());
assertEquals(Collections.singletonMap(key, buffer), obj.getKeyedBufferValues());
assertEquals(Collections.singletonMap(key, jsonObject), obj.getKeyedJsonObjectValues());
assertEquals(Collections.singletonMap(key, jsonArray), obj.getKeyedJsonArrayValues());
assertEquals(Collections.singletonMap(key, httpMethod), obj.getKeyedEnumValues());
assertEquals(map, obj.getObjectMap());
// Sometimes json can use java collections so test it runs fine in this case
json = new JsonObject();
json.put("aggregatedDataObject", new JsonObject().put("value", aggregatedDataObject.getValue()).getMap());
json.put("aggregatedDataObjects", new JsonArray().add(new JsonObject().put("value", aggregatedDataObject.getValue()).getMap()));
json.put("addedAggregatedDataObjects", new JsonArray().add(new JsonObject().put("value", aggregatedDataObject.getValue()).getMap()));
obj = new TestDataObject();
TestDataObjectConverter.fromJson(json, obj);
assertEquals(aggregatedDataObject, obj.getAggregatedDataObject());
assertEquals(Collections.singletonList(aggregatedDataObject), obj.getAggregatedDataObjects());
assertEquals(Collections.singletonList(aggregatedDataObject), obj.getAddedAggregatedDataObjects());
}
use of io.vertx.core.http.HttpMethod in project vert.x by eclipse.
the class HttpProxy method start.
/**
* Start the server.
*
* @param vertx
* Vertx instance to use for creating the server and client
* @param finishedHandler
* will be called when the server has started
*/
@Override
public void start(Vertx vertx, Handler<Void> finishedHandler) {
HttpServerOptions options = new HttpServerOptions();
options.setHost("localhost").setPort(PORT);
server = vertx.createHttpServer(options);
server.requestHandler(request -> {
HttpMethod method = request.method();
String uri = request.uri();
if (username != null) {
String auth = request.getHeader("Proxy-Authorization");
String expected = "Basic " + Base64.getEncoder().encodeToString((username + ":" + username).getBytes());
if (auth == null || !auth.equals(expected)) {
request.response().setStatusCode(407).end("proxy authentication failed");
return;
}
}
lastRequestHeaders = MultiMap.caseInsensitiveMultiMap().addAll(request.headers());
if (error != 0) {
request.response().setStatusCode(error).end("proxy request failed");
} else if (method == HttpMethod.CONNECT) {
if (!uri.contains(":")) {
request.response().setStatusCode(403).end("invalid request");
} else {
lastUri = uri;
if (forceUri != null) {
uri = forceUri;
}
String[] split = uri.split(":");
String host = split[0];
int port;
try {
port = Integer.parseInt(split[1]);
} catch (NumberFormatException ex) {
port = 443;
}
if (port == 8080 || port < 1024 && port != 443) {
request.response().setStatusCode(403).end("access to port denied");
return;
}
NetSocket serverSocket = request.netSocket();
NetClientOptions netOptions = new NetClientOptions();
NetClient netClient = vertx.createNetClient(netOptions);
netClient.connect(port, host, result -> {
if (result.succeeded()) {
NetSocket clientSocket = result.result();
serverSocket.write("HTTP/1.0 200 Connection established\n\n");
serverSocket.closeHandler(v -> clientSocket.close());
clientSocket.closeHandler(v -> serverSocket.close());
Pump.pump(serverSocket, clientSocket).start();
Pump.pump(clientSocket, serverSocket).start();
} else {
request.response().setStatusCode(403).end("request failed");
}
});
}
} else if (method == HttpMethod.GET) {
lastUri = request.uri();
HttpClient client = vertx.createHttpClient();
HttpClientRequest clientRequest = client.getAbs(request.uri(), resp -> {
for (String name : resp.headers().names()) {
request.response().putHeader(name, resp.headers().getAll(name));
}
resp.bodyHandler(body -> {
request.response().end(body);
});
});
for (String name : request.headers().names()) {
if (!name.equals("Proxy-Authorization")) {
clientRequest.putHeader(name, request.headers().getAll(name));
}
}
clientRequest.exceptionHandler(e -> {
log.debug("exception", e);
int status;
if (e instanceof UnknownHostException) {
status = 504;
} else {
status = 400;
}
request.response().setStatusCode(status).end(e.toString() + " on client request");
});
clientRequest.end();
} else {
request.response().setStatusCode(405).end("method not supported");
}
});
server.listen(server -> {
finishedHandler.handle(null);
});
}
use of io.vertx.core.http.HttpMethod in project vert.x by eclipse.
the class DataObjectTest method testDataObjectToJson.
@Test
public void testDataObjectToJson() {
String key = TestUtils.randomAlphaString(10);
String stringValue = TestUtils.randomAlphaString(20);
boolean booleanValue = TestUtils.randomBoolean();
byte byteValue = TestUtils.randomByte();
short shortValue = TestUtils.randomShort();
int intValue = TestUtils.randomInt();
long longValue = TestUtils.randomLong();
float floatValue = TestUtils.randomFloat();
double doubleValue = TestUtils.randomDouble();
char charValue = TestUtils.randomChar();
Boolean boxedBooleanValue = TestUtils.randomBoolean();
Byte boxedByteValue = TestUtils.randomByte();
Short boxedShortValue = TestUtils.randomShort();
Integer boxedIntValue = TestUtils.randomInt();
Long boxedLongValue = TestUtils.randomLong();
Float boxedFloatValue = TestUtils.randomFloat();
Double boxedDoubleValue = TestUtils.randomDouble();
Character boxedCharValue = TestUtils.randomChar();
AggregatedDataObject aggregatedDataObject = new AggregatedDataObject().setValue(TestUtils.randomAlphaString(20));
Buffer buffer = TestUtils.randomBuffer(20);
JsonObject jsonObject = new JsonObject().put("wibble", TestUtils.randomAlphaString(20));
JsonArray jsonArray = new JsonArray().add(TestUtils.randomAlphaString(20));
HttpMethod httpMethod = HttpMethod.values()[TestUtils.randomPositiveInt() % HttpMethod.values().length];
Map<String, Object> map = new HashMap<>();
map.put(TestUtils.randomAlphaString(10), TestUtils.randomAlphaString(20));
map.put(TestUtils.randomAlphaString(10), TestUtils.randomBoolean());
map.put(TestUtils.randomAlphaString(10), TestUtils.randomInt());
List<Object> list = new ArrayList<>();
list.add(TestUtils.randomAlphaString(20));
list.add(TestUtils.randomBoolean());
list.add(TestUtils.randomInt());
TestDataObject obj = new TestDataObject();
obj.setStringValue(stringValue);
obj.setBooleanValue(booleanValue);
obj.setByteValue(byteValue);
obj.setShortValue(shortValue);
obj.setIntValue(intValue);
obj.setLongValue(longValue);
obj.setFloatValue(floatValue);
obj.setDoubleValue(doubleValue);
obj.setCharValue(charValue);
obj.setBoxedBooleanValue(boxedBooleanValue);
obj.setBoxedByteValue(boxedByteValue);
obj.setBoxedShortValue(boxedShortValue);
obj.setBoxedIntValue(boxedIntValue);
obj.setBoxedLongValue(boxedLongValue);
obj.setBoxedFloatValue(boxedFloatValue);
obj.setBoxedDoubleValue(boxedDoubleValue);
obj.setBoxedCharValue(boxedCharValue);
obj.setAggregatedDataObject(aggregatedDataObject);
obj.setBuffer(buffer);
obj.setJsonObject(jsonObject);
obj.setJsonArray(jsonArray);
obj.setHttpMethod(httpMethod);
obj.setStringValues(Collections.singletonList(stringValue));
obj.setBoxedBooleanValues(Collections.singletonList(boxedBooleanValue));
obj.setBoxedByteValues(Collections.singletonList(boxedByteValue));
obj.setBoxedShortValues(Collections.singletonList(boxedShortValue));
obj.setBoxedIntValues(Collections.singletonList(boxedIntValue));
obj.setBoxedLongValues(Collections.singletonList(boxedLongValue));
obj.setBoxedFloatValues(Collections.singletonList(boxedFloatValue));
obj.setBoxedDoubleValues(Collections.singletonList(boxedDoubleValue));
obj.setBoxedCharValues(Collections.singletonList(boxedCharValue));
obj.setAggregatedDataObjects(Collections.singletonList(aggregatedDataObject));
obj.setBuffers(Collections.singletonList(buffer));
obj.setJsonObjects(Collections.singletonList(jsonObject));
obj.setJsonArrays(Collections.singletonList(jsonArray));
obj.setHttpMethods(Collections.singletonList(httpMethod));
obj.setObjects(list);
obj.setStringValueMap(Collections.singletonMap(key, stringValue));
obj.setBoxedBooleanValueMap(Collections.singletonMap(key, boxedBooleanValue));
obj.setBoxedByteValueMap(Collections.singletonMap(key, boxedByteValue));
obj.setBoxedShortValueMap(Collections.singletonMap(key, boxedShortValue));
obj.setBoxedIntValueMap(Collections.singletonMap(key, boxedIntValue));
obj.setBoxedLongValueMap(Collections.singletonMap(key, boxedLongValue));
obj.setBoxedFloatValueMap(Collections.singletonMap(key, boxedFloatValue));
obj.setBoxedDoubleValueMap(Collections.singletonMap(key, boxedDoubleValue));
obj.setBoxedCharValueMap(Collections.singletonMap(key, boxedCharValue));
obj.setAggregatedDataObjectMap(Collections.singletonMap(key, aggregatedDataObject));
obj.setBufferMap(Collections.singletonMap(key, buffer));
obj.setJsonObjectMap(Collections.singletonMap(key, jsonObject));
obj.setJsonArrayMap(Collections.singletonMap(key, jsonArray));
obj.setHttpMethodMap(Collections.singletonMap(key, httpMethod));
obj.setObjectMap(map);
obj.addKeyedStringValue(key, stringValue);
obj.addKeyedBoxedBooleanValue(key, boxedBooleanValue);
obj.addKeyedBoxedByteValue(key, boxedByteValue);
obj.addKeyedBoxedShortValue(key, boxedShortValue);
obj.addKeyedBoxedIntValue(key, boxedIntValue);
obj.addKeyedBoxedLongValue(key, boxedLongValue);
obj.addKeyedBoxedFloatValue(key, boxedFloatValue);
obj.addKeyedBoxedDoubleValue(key, boxedDoubleValue);
obj.addKeyedBoxedCharValue(key, boxedCharValue);
obj.addKeyedDataObjectValue(key, aggregatedDataObject);
obj.addKeyedBufferValue(key, buffer);
obj.addKeyedJsonObjectValue(key, jsonObject);
obj.addKeyedJsonArrayValue(key, jsonArray);
obj.addKeyedEnumValue(key, httpMethod);
map.forEach(obj::addKeyedObjectValue);
JsonObject json = new JsonObject();
TestDataObjectConverter.toJson(obj, json);
json = new JsonObject(json.encode());
assertEquals(stringValue, json.getString("stringValue"));
assertEquals(booleanValue, json.getBoolean("booleanValue"));
assertEquals((int) byteValue, (int) json.getInteger("byteValue"));
assertEquals((int) shortValue, (int) json.getInteger("shortValue"));
assertEquals(intValue, (int) json.getInteger("intValue"));
assertEquals(longValue, (long) json.getLong("longValue"));
assertEquals(floatValue, json.getFloat("floatValue"), 0.001);
assertEquals(doubleValue, (double) json.getFloat("doubleValue"), 0.001);
assertEquals(Character.toString(charValue), json.getString("charValue"));
assertEquals(boxedBooleanValue, json.getBoolean("boxedBooleanValue"));
assertEquals((int) boxedByteValue, (int) json.getInteger("boxedByteValue"));
assertEquals((int) boxedShortValue, (int) json.getInteger("boxedShortValue"));
assertEquals(boxedIntValue, json.getInteger("boxedIntValue"));
assertEquals(boxedLongValue, json.getLong("boxedLongValue"));
assertEquals(boxedFloatValue, json.getFloat("boxedFloatValue"), 0.001);
assertEquals(boxedDoubleValue, (double) json.getFloat("boxedDoubleValue"), 0.001);
assertEquals(Character.toString(boxedCharValue), json.getString("boxedCharValue"));
assertEquals(aggregatedDataObject.toJson(), json.getJsonObject("aggregatedDataObject"));
assertEquals(buffer, Buffer.buffer(json.getBinary("buffer")));
assertEquals(jsonObject, json.getJsonObject("jsonObject"));
assertEquals(jsonArray, json.getJsonArray("jsonArray"));
assertEquals(httpMethod.name(), json.getString("httpMethod"));
assertEquals(new JsonArray().add(stringValue), json.getJsonArray("stringValues"));
assertEquals(new JsonArray().add(boxedBooleanValue), json.getJsonArray("boxedBooleanValues"));
assertEquals(new JsonArray().add(boxedByteValue), json.getJsonArray("boxedByteValues"));
assertEquals(new JsonArray().add(boxedShortValue), json.getJsonArray("boxedShortValues"));
assertEquals(new JsonArray().add(boxedIntValue), json.getJsonArray("boxedIntValues"));
assertEquals(new JsonArray().add(boxedLongValue), json.getJsonArray("boxedLongValues"));
assertEquals(1, json.getJsonArray("boxedFloatValues").size());
assertEquals(boxedFloatValue, json.getJsonArray("boxedFloatValues").getFloat(0), 0.001);
assertEquals(1, json.getJsonArray("boxedDoubleValues").size());
assertEquals(boxedDoubleValue, json.getJsonArray("boxedDoubleValues").getDouble(0), 0.001);
assertEquals(new JsonArray().add(Character.toString(boxedCharValue)), json.getJsonArray("boxedCharValues"));
assertEquals(new JsonArray().add(aggregatedDataObject.toJson()), json.getJsonArray("aggregatedDataObjects"));
assertEquals(new JsonArray().add(toBase64(buffer)), json.getJsonArray("buffers"));
assertEquals(new JsonArray().add(jsonObject), json.getJsonArray("jsonObjects"));
assertEquals(new JsonArray().add(jsonArray), json.getJsonArray("jsonArrays"));
assertEquals(new JsonArray().add(httpMethod.name()), json.getJsonArray("httpMethods"));
assertEquals(new JsonArray().add(list.get(0)).add(list.get(1)).add(list.get(2)), json.getJsonArray("objects"));
assertEquals(new JsonObject().put(key, stringValue), json.getJsonObject("stringValueMap"));
assertEquals(new JsonObject().put(key, boxedBooleanValue), json.getJsonObject("boxedBooleanValueMap"));
assertEquals(new JsonObject().put(key, boxedByteValue), json.getJsonObject("boxedByteValueMap"));
assertEquals(new JsonObject().put(key, boxedShortValue), json.getJsonObject("boxedShortValueMap"));
assertEquals(new JsonObject().put(key, boxedIntValue), json.getJsonObject("boxedIntValueMap"));
assertEquals(new JsonObject().put(key, boxedLongValue), json.getJsonObject("boxedLongValueMap"));
assertEquals(1, json.getJsonObject("boxedFloatValueMap").size());
assertEquals(boxedFloatValue, json.getJsonObject("boxedFloatValueMap").getFloat(key), 0.001);
assertEquals(1, json.getJsonObject("boxedDoubleValueMap").size());
assertEquals(boxedDoubleValue, json.getJsonObject("boxedDoubleValueMap").getDouble(key), 0.001);
assertEquals(new JsonObject().put(key, Character.toString(boxedCharValue)), json.getJsonObject("boxedCharValueMap"));
assertEquals(new JsonObject().put(key, aggregatedDataObject.toJson()), json.getJsonObject("aggregatedDataObjectMap"));
assertEquals(new JsonObject().put(key, toBase64(buffer)), json.getJsonObject("bufferMap"));
assertEquals(new JsonObject().put(key, jsonObject), json.getJsonObject("jsonObjectMap"));
assertEquals(new JsonObject().put(key, jsonArray), json.getJsonObject("jsonArrayMap"));
assertEquals(new JsonObject().put(key, httpMethod.name()), json.getJsonObject("httpMethodMap"));
assertEquals(toJson(map), json.getJsonObject("objectMap"));
assertEquals(new JsonObject().put(key, stringValue), json.getJsonObject("keyedStringValues"));
assertEquals(new JsonObject().put(key, boxedBooleanValue), json.getJsonObject("keyedBoxedBooleanValues"));
assertEquals(new JsonObject().put(key, boxedByteValue), json.getJsonObject("keyedBoxedByteValues"));
assertEquals(new JsonObject().put(key, boxedShortValue), json.getJsonObject("keyedBoxedShortValues"));
assertEquals(new JsonObject().put(key, boxedIntValue), json.getJsonObject("keyedBoxedIntValues"));
assertEquals(new JsonObject().put(key, boxedLongValue), json.getJsonObject("keyedBoxedLongValues"));
assertEquals(1, json.getJsonObject("keyedBoxedFloatValues").size());
assertEquals(boxedFloatValue, json.getJsonObject("keyedBoxedFloatValues").getFloat(key), 0.001);
assertEquals(1, json.getJsonObject("keyedBoxedDoubleValues").size());
assertEquals(boxedDoubleValue, json.getJsonObject("keyedBoxedDoubleValues").getDouble(key), 0.001);
assertEquals(new JsonObject().put(key, Character.toString(boxedCharValue)), json.getJsonObject("keyedBoxedCharValues"));
assertEquals(new JsonObject().put(key, aggregatedDataObject.toJson()), json.getJsonObject("keyedDataObjectValues"));
assertEquals(new JsonObject().put(key, toBase64(buffer)), json.getJsonObject("keyedBufferValues"));
assertEquals(new JsonObject().put(key, jsonObject), json.getJsonObject("keyedJsonObjectValues"));
assertEquals(new JsonObject().put(key, jsonArray), json.getJsonObject("keyedJsonArrayValues"));
assertEquals(new JsonObject().put(key, httpMethod.name()), json.getJsonObject("keyedEnumValues"));
assertEquals(toJson(map), json.getJsonObject("keyedObjectValues"));
}
use of io.vertx.core.http.HttpMethod in project vert.x by eclipse.
the class HttpTest method testFoo.
private void testFoo(String location, String expected) throws Exception {
int status = 301;
Map<String, String> headers = Collections.singletonMap("Location", location);
HttpMethod method = HttpMethod.GET;
String baseURI = "https://localhost:8080";
class MockReq implements HttpClientRequest {
public HttpClientRequest exceptionHandler(Handler<Throwable> handler) {
throw new UnsupportedOperationException();
}
public HttpClientRequest write(Buffer data) {
throw new UnsupportedOperationException();
}
public HttpClientRequest setWriteQueueMaxSize(int maxSize) {
throw new UnsupportedOperationException();
}
public HttpClientRequest drainHandler(Handler<Void> handler) {
throw new UnsupportedOperationException();
}
public HttpClientRequest handler(Handler<HttpClientResponse> handler) {
throw new UnsupportedOperationException();
}
public HttpClientRequest pause() {
throw new UnsupportedOperationException();
}
public HttpClientRequest resume() {
throw new UnsupportedOperationException();
}
public HttpClientRequest endHandler(Handler<Void> endHandler) {
throw new UnsupportedOperationException();
}
public HttpClientRequest setFollowRedirects(boolean followRedirects) {
throw new UnsupportedOperationException();
}
public HttpClientRequest setChunked(boolean chunked) {
throw new UnsupportedOperationException();
}
public boolean isChunked() {
return false;
}
public HttpMethod method() {
return method;
}
public String getRawMethod() {
throw new UnsupportedOperationException();
}
public HttpClientRequest setRawMethod(String method) {
throw new UnsupportedOperationException();
}
public String absoluteURI() {
return baseURI;
}
public String uri() {
throw new UnsupportedOperationException();
}
public String path() {
throw new UnsupportedOperationException();
}
public String query() {
throw new UnsupportedOperationException();
}
public HttpClientRequest setHost(String host) {
throw new UnsupportedOperationException();
}
public String getHost() {
throw new UnsupportedOperationException();
}
public MultiMap headers() {
throw new UnsupportedOperationException();
}
public HttpClientRequest putHeader(String name, String value) {
throw new UnsupportedOperationException();
}
public HttpClientRequest putHeader(CharSequence name, CharSequence value) {
throw new UnsupportedOperationException();
}
public HttpClientRequest putHeader(String name, Iterable<String> values) {
throw new UnsupportedOperationException();
}
public HttpClientRequest putHeader(CharSequence name, Iterable<CharSequence> values) {
throw new UnsupportedOperationException();
}
public HttpClientRequest write(String chunk) {
throw new UnsupportedOperationException();
}
public HttpClientRequest write(String chunk, String enc) {
throw new UnsupportedOperationException();
}
public HttpClientRequest continueHandler(@Nullable Handler<Void> handler) {
throw new UnsupportedOperationException();
}
public HttpClientRequest sendHead() {
throw new UnsupportedOperationException();
}
public HttpClientRequest sendHead(Handler<HttpVersion> completionHandler) {
throw new UnsupportedOperationException();
}
public void end(String chunk) {
throw new UnsupportedOperationException();
}
public void end(String chunk, String enc) {
throw new UnsupportedOperationException();
}
public void end(Buffer chunk) {
throw new UnsupportedOperationException();
}
public void end() {
throw new UnsupportedOperationException();
}
public HttpClientRequest setTimeout(long timeoutMs) {
throw new UnsupportedOperationException();
}
public HttpClientRequest pushHandler(Handler<HttpClientRequest> handler) {
throw new UnsupportedOperationException();
}
public boolean reset(long code) {
return false;
}
public HttpConnection connection() {
throw new UnsupportedOperationException();
}
public HttpClientRequest connectionHandler(@Nullable Handler<HttpConnection> handler) {
throw new UnsupportedOperationException();
}
public HttpClientRequest writeCustomFrame(int type, int flags, Buffer payload) {
throw new UnsupportedOperationException();
}
public boolean writeQueueFull() {
throw new UnsupportedOperationException();
}
}
HttpClientRequest req = new MockReq();
class MockResp implements HttpClientResponse {
public HttpClientResponse resume() {
throw new UnsupportedOperationException();
}
public HttpClientResponse exceptionHandler(Handler<Throwable> handler) {
throw new UnsupportedOperationException();
}
public HttpClientResponse handler(Handler<Buffer> handler) {
throw new UnsupportedOperationException();
}
public HttpClientResponse pause() {
throw new UnsupportedOperationException();
}
public HttpClientResponse endHandler(Handler<Void> endHandler) {
throw new UnsupportedOperationException();
}
public HttpVersion version() {
throw new UnsupportedOperationException();
}
public int statusCode() {
return status;
}
public String statusMessage() {
throw new UnsupportedOperationException();
}
public MultiMap headers() {
throw new UnsupportedOperationException();
}
public String getHeader(String headerName) {
return headers.get(headerName);
}
public String getHeader(CharSequence headerName) {
return getHeader(headerName.toString());
}
public String getTrailer(String trailerName) {
throw new UnsupportedOperationException();
}
public MultiMap trailers() {
throw new UnsupportedOperationException();
}
public List<String> cookies() {
throw new UnsupportedOperationException();
}
public HttpClientResponse bodyHandler(Handler<Buffer> bodyHandler) {
throw new UnsupportedOperationException();
}
public HttpClientResponse customFrameHandler(Handler<HttpFrame> handler) {
throw new UnsupportedOperationException();
}
public NetSocket netSocket() {
throw new UnsupportedOperationException();
}
public HttpClientRequest request() {
return req;
}
}
MockResp resp = new MockResp();
Function<HttpClientResponse, Future<HttpClientRequest>> handler = client.redirectHandler();
Future<HttpClientRequest> redirection = handler.apply(resp);
if (expected != null) {
assertEquals(location, redirection.result().absoluteURI());
} else {
assertTrue(redirection == null || redirection.failed());
}
}
Aggregations