AbstractBindingBuilder { public AbstractBindingBuilder get(String pathPattern) { addRouteBuilder(pathPattern, GET); return this; }  AbstractBindingBuilder path(String pathPattern); AbstractBindingBuilder pathPrefix(String prefix); AbstractBindingBuilder get(String pathPattern); AbstractBindingBuilder post(String pathPattern); AbstractBindingBuilder put(String pathPattern); AbstractBindingBuilder patch(String pathPattern); AbstractBindingBuilder delete(String pathPattern); AbstractBindingBuilder options(String pathPattern); AbstractBindingBuilder head(String pathPattern); AbstractBindingBuilder trace(String pathPattern); AbstractBindingBuilder connect(String pathPattern); AbstractBindingBuilder methods(HttpMethod... methods); AbstractBindingBuilder methods(Iterable<HttpMethod> methods); AbstractBindingBuilder consumes(MediaType... consumeTypes); AbstractBindingBuilder consumes(Iterable<MediaType> consumeTypes); AbstractBindingBuilder produces(MediaType... produceTypes); AbstractBindingBuilder produces(Iterable<MediaType> produceTypes); AbstractBindingBuilder matchesParams(String... paramPredicates); AbstractBindingBuilder matchesParams(Iterable<String> paramPredicates); AbstractBindingBuilder matchesParams(String paramName, Predicate<? super String> valuePredicate); AbstractBindingBuilder matchesHeaders(String... headerPredicates); AbstractBindingBuilder matchesHeaders(Iterable<String> headerPredicates); AbstractBindingBuilder matchesHeaders(CharSequence headerName,
                                                 Predicate<? super String> valuePredicate); AbstractBindingBuilder addRoute(Route route);  }
@Test void shouldFailOnDuplicatedMethod() { assertThatThrownBy(() -> new AbstractBindingBuilder() {}.get("/foo") .get("/foo")) .isInstanceOf(IllegalArgumentException.class) .hasMessageContaining("duplicate HTTP method"); }