aboutsummaryrefslogtreecommitdiffstats
path: root/container-disc/src/test/java/com/yahoo
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2020-11-13 10:07:52 +0100
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2020-11-13 10:07:52 +0100
commit588545859beeae0b94d3311db80751cbe508f66c (patch)
treedddb3e63f0cd95f6b02bf218b64d0df270bee54b /container-disc/src/test/java/com/yahoo
parent152d8f57d0d62506c83894907ca3c2e1fc56dfd6 (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.java71
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);
- }
- };
- }
}