diff --git a/config/src/test/groovy/org/springframework/security/config/annotation/web/configurers/AbstractConfigAttributeRequestMatcherRegistryTests.groovy b/config/src/test/groovy/org/springframework/security/config/annotation/web/configurers/AbstractConfigAttributeRequestMatcherRegistryTests.groovy deleted file mode 100644 index 4870532a505..00000000000 --- a/config/src/test/groovy/org/springframework/security/config/annotation/web/configurers/AbstractConfigAttributeRequestMatcherRegistryTests.groovy +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright 2002-2013 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.security.config.annotation.web.configurers; - -import org.springframework.http.HttpMethod -import org.springframework.security.access.AccessDecisionVoter -import org.springframework.security.config.annotation.web.AbstractRequestMatcherRegistry -import org.springframework.security.web.util.matcher.AntPathRequestMatcher -import org.springframework.security.web.util.matcher.RegexRequestMatcher -import org.springframework.security.web.util.matcher.RequestMatcher - -import spock.lang.Specification - -/** - * @author Rob Winch - * - */ -class AbstractConfigAttributeRequestMatcherRegistryTests extends Specification { - ConcreteAbstractRequestMatcherMappingConfigurer registry = new ConcreteAbstractRequestMatcherMappingConfigurer() - - def "regexMatchers(GET,'/a.*') uses RegexRequestMatcher"() { - when: - def matchers = registry.regexMatchers(HttpMethod.GET,"/a.*") - then: 'matcher is a RegexRequestMatcher' - matchers.collect {it.class } == [RegexRequestMatcher] - } - - def "regexMatchers('/a.*') uses RegexRequestMatcher"() { - when: - def matchers = registry.regexMatchers("/a.*") - then: 'matcher is a RegexRequestMatcher' - matchers.collect {it.class } == [RegexRequestMatcher] - } - - def "antMatchers(GET,'/a.*') uses AntPathRequestMatcher"() { - when: - def matchers = registry.antMatchers(HttpMethod.GET, "/a.*") - then: 'matcher is a RegexRequestMatcher' - matchers.collect {it.class } == [AntPathRequestMatcher] - } - - def "antMatchers('/a.*') uses AntPathRequestMatcher"() { - when: - def matchers = registry.antMatchers("/a.*") - then: 'matcher is a AntPathRequestMatcher' - matchers.collect {it.class } == [AntPathRequestMatcher] - } - - static class ConcreteAbstractRequestMatcherMappingConfigurer extends AbstractConfigAttributeRequestMatcherRegistry> { - List decisionVoters() { - return null; - } - - List chainRequestMatchersInternal(List requestMatchers) { - return requestMatchers; - } - - List mvcMatchers(String... mvcPatterns) { - null - } - - List mvcMatchers(HttpMethod method, String... mvcPatterns) { - null - } - } -} diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/configurers/AbstractConfigAttributeRequestMatcherRegistryTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/AbstractConfigAttributeRequestMatcherRegistryTests.java new file mode 100644 index 00000000000..cf9044cccc2 --- /dev/null +++ b/config/src/test/java/org/springframework/security/config/annotation/web/configurers/AbstractConfigAttributeRequestMatcherRegistryTests.java @@ -0,0 +1,92 @@ +/* + * Copyright 2002-2018 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.security.config.annotation.web.configurers; + +import org.junit.Before; +import org.junit.Test; +import org.springframework.http.HttpMethod; +import org.springframework.security.access.AccessDecisionVoter; +import org.springframework.security.web.util.matcher.AntPathRequestMatcher; +import org.springframework.security.web.util.matcher.RegexRequestMatcher; +import org.springframework.security.web.util.matcher.RequestMatcher; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.List; + +public class AbstractConfigAttributeRequestMatcherRegistryTests { + private ConcreteAbstractRequestMatcherMappingConfigurer registry; + + @Before + public void setup() { + registry = new ConcreteAbstractRequestMatcherMappingConfigurer(); + } + + @Test + public void testGetRequestMatcherIsTypeRegexMatcher(){ + List requestMatchers = registry.regexMatchers(HttpMethod.GET, "/a.*"); + + for (RequestMatcher requestMatcher : requestMatchers) { + assertThat(requestMatcher).isInstanceOf(RegexRequestMatcher.class); + } + } + + @Test + public void testRequestMatcherIsTypeRegexMatcher(){ + List requestMatchers = registry.regexMatchers( "/a.*"); + + for (RequestMatcher requestMatcher : requestMatchers) { + assertThat(requestMatcher).isInstanceOf(RegexRequestMatcher.class); + } + } + + @Test + public void testGetRequestMatcherIsTypeAntPathRequestMatcher(){ + List requestMatchers = registry.antMatchers(HttpMethod.GET, "/a.*"); + + for (RequestMatcher requestMatcher : requestMatchers) { + assertThat(requestMatcher).isInstanceOf(AntPathRequestMatcher.class); + } + } + + @Test + public void testRequestMatcherIsTypeAntPathRequestMatcher(){ + List requestMatchers = registry.antMatchers("/a.*"); + + for (RequestMatcher requestMatcher : requestMatchers) { + assertThat(requestMatcher).isInstanceOf(AntPathRequestMatcher.class); + } + } + + static class ConcreteAbstractRequestMatcherMappingConfigurer extends AbstractConfigAttributeRequestMatcherRegistry> { + List decisionVoters() { + return null; + } + + protected List chainRequestMatchersInternal(List requestMatchers) { + return requestMatchers; + } + + public List mvcMatchers(String... mvcPatterns) { + return null; + } + + public List mvcMatchers(HttpMethod method, String... mvcPatterns) { + return null; + } + } +}