diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2020-11-13 10:07:52 +0100 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2020-11-13 10:07:52 +0100 |
commit | 588545859beeae0b94d3311db80751cbe508f66c (patch) | |
tree | dddb3e63f0cd95f6b02bf218b64d0df270bee54b /container-disc/src/test/java/com/yahoo | |
parent | 152d8f57d0d62506c83894907ca3c2e1fc56dfd6 (diff) |
Prepare FilterBindings to allow default filter chains and metrics
Track and expose filter ids from FilterBindings.
Add builder to simplify construction for FilterBindings in provider and unit tests.
Move FilterBindings to com.yahoo.jdisc.http.server.jetty package.
Encapsulate binding matching in FilterBindings.
Diffstat (limited to 'container-disc/src/test/java/com/yahoo')
-rw-r--r-- | container-disc/src/test/java/com/yahoo/container/jdisc/FilterBindingsProviderTest.java | 71 |
1 files changed, 14 insertions, 57 deletions
diff --git a/container-disc/src/test/java/com/yahoo/container/jdisc/FilterBindingsProviderTest.java b/container-disc/src/test/java/com/yahoo/container/jdisc/FilterBindingsProviderTest.java index e3039e88525..c233680590d 100644 --- a/container-disc/src/test/java/com/yahoo/container/jdisc/FilterBindingsProviderTest.java +++ b/container-disc/src/test/java/com/yahoo/container/jdisc/FilterBindingsProviderTest.java @@ -5,32 +5,19 @@ import com.yahoo.component.ComponentId; import com.yahoo.component.provider.ComponentRegistry; import com.yahoo.container.core.ChainsConfig; import com.yahoo.container.http.filter.FilterChainRepository; -import com.yahoo.jdisc.application.BindingRepository; -import com.yahoo.jdisc.application.UriPattern; import com.yahoo.jdisc.http.ServerConfig; import com.yahoo.jdisc.http.filter.RequestFilter; import com.yahoo.jdisc.http.filter.ResponseFilter; -import com.yahoo.jdisc.http.server.FilterBindings; -import org.hamcrest.Description; -import org.hamcrest.Matcher; -import org.hamcrest.TypeSafeMatcher; +import com.yahoo.jdisc.http.server.jetty.FilterBindings; import org.junit.Test; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.fail; import static org.mockito.Mockito.mock; /** - * @author bakksjo + * @author Oyvind Bakksjo + * @author bjorncs */ public class FilterBindingsProviderTest { final ServerConfig.Builder configBuilder = new ServerConfig.Builder(); @@ -52,9 +39,9 @@ public class FilterBindingsProviderTest { final FilterBindings filterBindings = provider.get(); - assertNotNull(filterBindings); - assertFalse(filterBindings.getRequestFilters().iterator().hasNext()); - assertFalse(filterBindings.getResponseFilters().iterator().hasNext()); + assertThat(filterBindings).isNotNull(); + assertThat(filterBindings.requestFilterIds()).isEmpty(); + assertThat(filterBindings.responseFilterIds()).isEmpty(); } @Test @@ -105,19 +92,11 @@ public class FilterBindingsProviderTest { final FilterBindings filterBindings = provider.get(); // Verify. - assertNotNull(filterBindings); - assertThat( - filterBindings.getRequestFilters(), - containsFilters(requestFilter1Instance, requestFilter2Instance)); - assertThat( - filterBindings.getRequestFilters(), - not(containsFilters(requestFilter3Instance))); - assertThat( - filterBindings.getResponseFilters(), - containsFilters(responseFilter1Instance, responseFilter3Instance)); - assertThat( - filterBindings.getResponseFilters(), - not(containsFilters(responseFilter2Instance))); + assertThat(filterBindings).isNotNull(); + assertThat(filterBindings.requestFilters()) + .containsExactlyInAnyOrder(requestFilter1Instance, requestFilter2Instance); + assertThat(filterBindings.responseFilters()) + .containsExactlyInAnyOrder(responseFilter1Instance, responseFilter3Instance); } private interface DualRoleFilter extends RequestFilter, ResponseFilter {} @@ -148,7 +127,7 @@ public class FilterBindingsProviderTest { new ComponentRegistry<>()); fail("Dual-role filter should not be accepted"); } catch (RuntimeException e) { - assertTrue(e.getMessage().contains("Invalid config")); + assertThat(e.getMessage()).contains("Invalid config"); } } @@ -173,30 +152,8 @@ public class FilterBindingsProviderTest { new ComponentRegistry<>()); fail("Config with unknown filter reference should not be accepted"); } catch (RuntimeException e) { - assertTrue(e.getMessage().contains("Invalid config")); + assertThat(e.getMessage()).contains("Invalid config"); } } - @SafeVarargs - @SuppressWarnings("varargs") - private static <T> Matcher<? super BindingRepository<T>> containsFilters( - final T... requiredInstances) { - return new TypeSafeMatcher<>() { - private final Set<T> requiredFilterSet = new HashSet<>(Arrays.asList(requiredInstances)); - - @Override - protected boolean matchesSafely(final BindingRepository<T> actualInstances) { - final Set<T> notFoundFilterSet = new HashSet<>(requiredFilterSet); - for (final Map.Entry<UriPattern, T> actualEntry : actualInstances) { - notFoundFilterSet.remove(actualEntry.getValue()); - } - return notFoundFilterSet.isEmpty(); - } - - @Override - public void describeTo(final Description description) { - description.appendText("BindingRepository containing " + requiredFilterSet); - } - }; - } } |