withSizeLimit and withoutSizeLimit directives added
This commit is contained in:
parent
e00a86271a
commit
72f8544efd
15 changed files with 487 additions and 1 deletions
|
|
@ -0,0 +1,64 @@
|
|||
/*
|
||||
* Copyright (C) 2016-2016 Lightbend Inc. <http://www.lightbend.com>
|
||||
*/
|
||||
package docs.http.javadsl.server.directives;
|
||||
|
||||
import akka.http.javadsl.model.HttpRequest;
|
||||
import akka.http.javadsl.model.StatusCodes;
|
||||
import akka.http.javadsl.server.Route;
|
||||
import akka.http.javadsl.server.Unmarshaller;
|
||||
import akka.http.javadsl.testkit.JUnitRouteTest;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.function.Function;
|
||||
|
||||
public class MiscDirectivesExamplesTest extends JUnitRouteTest {
|
||||
|
||||
@Test
|
||||
public void testWithSizeLimit() {
|
||||
//#withSizeLimitExample
|
||||
final Route route = withSizeLimit(500, () ->
|
||||
entity(Unmarshaller.entityToString(), (entity) ->
|
||||
complete("ok")
|
||||
)
|
||||
);
|
||||
|
||||
Function<Integer, HttpRequest> withEntityOfSize = (sizeLimit) -> {
|
||||
char[] charArray = new char[sizeLimit];
|
||||
Arrays.fill(charArray, '0');
|
||||
return HttpRequest.POST("/").withEntity(new String(charArray));
|
||||
};
|
||||
|
||||
// tests:
|
||||
testRoute(route).run(withEntityOfSize.apply(500))
|
||||
.assertStatusCode(StatusCodes.OK);
|
||||
|
||||
testRoute(route).run(withEntityOfSize.apply(501))
|
||||
.assertStatusCode(StatusCodes.BAD_REQUEST);
|
||||
//#withSizeLimitExample
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testWithoutSizeLimit() {
|
||||
//#withoutSizeLimitExample
|
||||
final Route route = withoutSizeLimit(() ->
|
||||
entity(Unmarshaller.entityToString(), (entity) ->
|
||||
complete("ok")
|
||||
)
|
||||
);
|
||||
|
||||
Function<Integer, HttpRequest> withEntityOfSize = (sizeLimit) -> {
|
||||
char[] charArray = new char[sizeLimit];
|
||||
Arrays.fill(charArray, '0');
|
||||
return HttpRequest.POST("/").withEntity(new String(charArray));
|
||||
};
|
||||
|
||||
// tests:
|
||||
// will work even if you have configured akka.http.parsing.max-content-length = 500
|
||||
testRoute(route).run(withEntityOfSize.apply(501))
|
||||
.assertStatusCode(StatusCodes.OK);
|
||||
//#withoutSizeLimitExample
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue