diff --git a/libs/gru/src/main/java/com/agorapulse/gru/http/Http.java b/libs/gru/src/main/java/com/agorapulse/gru/http/Http.java index 14ac57f5..8fe9b73b 100644 --- a/libs/gru/src/main/java/com/agorapulse/gru/http/Http.java +++ b/libs/gru/src/main/java/com/agorapulse/gru/http/Http.java @@ -27,6 +27,8 @@ import java.time.Duration; import java.time.temporal.ChronoUnit; import java.util.function.Consumer; +import java.util.function.Function; +import java.util.function.Supplier; import static java.lang.management.ManagementFactory.getRuntimeMXBean; @@ -44,25 +46,39 @@ public static Http create(Class unitTestClass) { } public static Http create(Object unitTest, Consumer configuration) { - return new Http(unitTest, configuration); + return new Http(unitTest, b -> { + configuration.accept(b); + return b; + }); } public static Http create(Class unitTestClass, Consumer configuration) { - return new Http(unitTestClass, configuration); + return new Http(unitTestClass, b -> { + configuration.accept(b); + return b; + }); } - private final Consumer configuration; + public static Http create(Object unitTest, Supplier configuration) { + return new Http(unitTest, b -> configuration.get()); + } + + public static Http create(Class unitTestClass, Supplier configuration) { + return new Http(unitTestClass, b -> configuration.get()); + } + + private final Function configuration; private GruHttpRequest request; private GruHttpResponse response; - private Http(Object unitTest, Consumer configuration) { + private Http(Object unitTest, Function configuration) { super(unitTest); this.configuration = configuration; reset(); } - private Http(Class unitTestClass, Consumer configuration) { + private Http(Class unitTestClass, Function configuration) { super(unitTestClass); this.configuration = configuration; reset(); @@ -91,11 +107,7 @@ public void reset() { @Override public GruContext run(Squad squad, GruContext context) { try { - HttpClient.Builder builder = HttpClient.newBuilder(); - - if (configuration != null) { - configuration.accept(builder); - } + HttpClient.Builder builder = configuration == null ? HttpClient.newBuilder() : configuration.apply(HttpClient.newBuilder()); if (isDebugMode()) { increaseTimeouts(builder);