@Test public void orderedInterfaceRespected() { testFilter(MyOrderedFilter.class, new MyOrderedFilter(), 1000); }
@Test public void testFilters() { ConfigurableApplicationContext context = mock(ConfigurableApplicationContext.class); Route.AsyncBuilder routeBuilder = Route.async() .id("123") .uri("abc:123") .predicate(exchange -> true); RouteLocatorBuilder.Builder routes = new RouteLocatorBuilder(context).routes(); GatewayFilterSpec spec = new GatewayFilterSpec(routeBuilder, routes); spec.filters(new MyUnorderedFilter(), new MyOrderedFilter()); Route route = routeBuilder.build(); assertThat(route.getFilters()).hasSize(2); assertFilter(route.getFilters().get(0), OrderedGatewayFilter.class, 0); assertFilter(route.getFilters().get(1), MyOrderedFilter.class, 1000); }
private void testFilter(Class<? extends GatewayFilter> type, GatewayFilter gatewayFilter, int order) { ConfigurableApplicationContext context = mock(ConfigurableApplicationContext.class); Route.AsyncBuilder routeBuilder = Route.async() .id("123") .uri("abc:123") .predicate(exchange -> true); RouteLocatorBuilder.Builder routes = new RouteLocatorBuilder(context).routes(); GatewayFilterSpec spec = new GatewayFilterSpec(routeBuilder, routes); spec.filter(gatewayFilter); Route route = routeBuilder.build(); assertThat(route.getFilters()).hasSize(1); assertFilter(route.getFilters().get(0), type, order); }
@Test public void unorderedWithDefaultOrder() { testFilter(OrderedGatewayFilter.class, new MyUnorderedFilter(), 0); }