summaryrefslogtreecommitdiffstats
path: root/container-disc/src/test
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2020-11-11 15:53:51 +0100
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2020-11-11 15:55:32 +0100
commit5c3a55faac3ae620a51f6b0388f8e1d091e725f0 (patch)
tree8fec1bb46dafc7f218e8ffd314a0b9f46f733198 /container-disc/src/test
parent1b7e6a0dfb0b8686aeddce7418d28bbdfd4909c1 (diff)
Remove implicit and potensially false dependency on jdisc_http_service
Required for later changes to jdisc_http_service. Removes jdisc_http_service from provided-dependencies.
Diffstat (limited to 'container-disc/src/test')
-rw-r--r--container-disc/src/test/java/com/yahoo/container/jdisc/FilterBindingsProviderTest.java202
1 files changed, 0 insertions, 202 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
deleted file mode 100644
index e3039e88525..00000000000
--- a/container-disc/src/test/java/com/yahoo/container/jdisc/FilterBindingsProviderTest.java
+++ /dev/null
@@ -1,202 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.container.jdisc;
-
-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 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.junit.Assert.fail;
-import static org.mockito.Mockito.mock;
-
-/**
- * @author bakksjo
- */
-public class FilterBindingsProviderTest {
- final ServerConfig.Builder configBuilder = new ServerConfig.Builder();
-
- @Test
- public void requireThatEmptyInputGivesEmptyOutput() {
- final FilterChainRepository filterChainRepository = new FilterChainRepository(
- new ChainsConfig(new ChainsConfig.Builder()),
- new ComponentRegistry<>(),
- new ComponentRegistry<>(),
- new ComponentRegistry<>(),
- new ComponentRegistry<>());
-
- final FilterBindingsProvider provider = new FilterBindingsProvider(
- new ComponentId("foo"),
- new ServerConfig(configBuilder),
- filterChainRepository,
- new ComponentRegistry<>());
-
- final FilterBindings filterBindings = provider.get();
-
- assertNotNull(filterBindings);
- assertFalse(filterBindings.getRequestFilters().iterator().hasNext());
- assertFalse(filterBindings.getResponseFilters().iterator().hasNext());
- }
-
- @Test
- public void requireThatCorrectlyConfiguredFiltersAreIncluded() {
- final String requestFilter1Id = "requestFilter1";
- final String requestFilter2Id = "requestFilter2";
- final String requestFilter3Id = "requestFilter3";
- final String responseFilter1Id = "responseFilter1";
- final String responseFilter2Id = "responseFilter2";
- final String responseFilter3Id = "responseFilter3";
-
- // Set up config.
- configBuilder.filter(new ServerConfig.Filter.Builder().id(requestFilter1Id).binding("http://*/a"));
- configBuilder.filter(new ServerConfig.Filter.Builder().id(requestFilter2Id).binding("http://*/b"));
- configBuilder.filter(new ServerConfig.Filter.Builder().id(responseFilter1Id).binding("http://*/c"));
- configBuilder.filter(new ServerConfig.Filter.Builder().id(responseFilter3Id).binding("http://*/d"));
-
- // Set up registry.
- final ComponentRegistry<RequestFilter> availableRequestFilters = new ComponentRegistry<>();
- final RequestFilter requestFilter1Instance = mock(RequestFilter.class);
- final RequestFilter requestFilter2Instance = mock(RequestFilter.class);
- final RequestFilter requestFilter3Instance = mock(RequestFilter.class);
- availableRequestFilters.register(ComponentId.fromString(requestFilter1Id), requestFilter1Instance);
- availableRequestFilters.register(ComponentId.fromString(requestFilter2Id), requestFilter2Instance);
- availableRequestFilters.register(ComponentId.fromString(requestFilter3Id), requestFilter3Instance);
- final ComponentRegistry<ResponseFilter> availableResponseFilters = new ComponentRegistry<>();
- final ResponseFilter responseFilter1Instance = mock(ResponseFilter.class);
- final ResponseFilter responseFilter2Instance = mock(ResponseFilter.class);
- final ResponseFilter responseFilter3Instance = mock(ResponseFilter.class);
- availableResponseFilters.register(ComponentId.fromString(responseFilter1Id), responseFilter1Instance);
- availableResponseFilters.register(ComponentId.fromString(responseFilter2Id), responseFilter2Instance);
- availableResponseFilters.register(ComponentId.fromString(responseFilter3Id), responseFilter3Instance);
- final FilterChainRepository filterChainRepository = new FilterChainRepository(
- new ChainsConfig(new ChainsConfig.Builder()),
- availableRequestFilters,
- availableResponseFilters,
- new ComponentRegistry<>(),
- new ComponentRegistry<>());
-
- // Set up the provider that we aim to test.
- final FilterBindingsProvider provider = new FilterBindingsProvider(
- new ComponentId("foo"),
- new ServerConfig(configBuilder),
- filterChainRepository,
- new ComponentRegistry<>());
-
- // Execute.
- 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)));
- }
-
- private interface DualRoleFilter extends RequestFilter, ResponseFilter {}
-
- @Test
- public void requireThatInstanceCanNotBeBothRequestAndResponseFilter() {
- final String filterId = "filter";
-
- // Set up config.
- configBuilder.filter(new ServerConfig.Filter.Builder().id(filterId).binding("http://*/*"));
-
- // Set up registry.
- final DualRoleFilter filterInstance = mock(DualRoleFilter.class);
- final ComponentRegistry<RequestFilter> availableRequestFilters = new ComponentRegistry<>();
- availableRequestFilters.register(ComponentId.fromString(filterId), filterInstance);
- final FilterChainRepository filterChainRepository = new FilterChainRepository(
- new ChainsConfig(new ChainsConfig.Builder()),
- availableRequestFilters,
- new ComponentRegistry<>(),
- new ComponentRegistry<>(),
- new ComponentRegistry<>());
-
- try {
- new FilterBindingsProvider(
- new ComponentId("foo"),
- new ServerConfig(configBuilder),
- filterChainRepository,
- new ComponentRegistry<>());
- fail("Dual-role filter should not be accepted");
- } catch (RuntimeException e) {
- assertTrue(e.getMessage().contains("Invalid config"));
- }
- }
-
- @Test
- public void requireThatConfigWithUnknownReferenceFails() {
- // Set up config.
- configBuilder.filter(new ServerConfig.Filter.Builder().id("someFilter").binding("http://*/*"));
-
- // Set up registry.
- final FilterChainRepository filterChainRepository = new FilterChainRepository(
- new ChainsConfig(new ChainsConfig.Builder()),
- new ComponentRegistry<>(),
- new ComponentRegistry<>(),
- new ComponentRegistry<>(),
- new ComponentRegistry<>());
-
- try {
- new FilterBindingsProvider(
- new ComponentId("foo"),
- new ServerConfig(configBuilder),
- filterChainRepository,
- new ComponentRegistry<>());
- fail("Config with unknown filter reference should not be accepted");
- } catch (RuntimeException e) {
- assertTrue(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);
- }
- };
- }
-}