|
@@ -0,0 +1,144 @@
|
|
|
+/*
|
|
|
+ * Copyright 2012-2016 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.web.access.expression;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+import org.junit.Test;
|
|
|
+import org.junit.runner.RunWith;
|
|
|
+import org.mockito.InjectMocks;
|
|
|
+import org.mockito.Mock;
|
|
|
+import org.mockito.runners.MockitoJUnitRunner;
|
|
|
+
|
|
|
+import org.springframework.expression.BeanResolver;
|
|
|
+import org.springframework.expression.ConstructorResolver;
|
|
|
+import org.springframework.expression.MethodResolver;
|
|
|
+import org.springframework.expression.OperatorOverloader;
|
|
|
+import org.springframework.expression.PropertyAccessor;
|
|
|
+import org.springframework.expression.TypeComparator;
|
|
|
+import org.springframework.expression.TypeConverter;
|
|
|
+import org.springframework.expression.TypeLocator;
|
|
|
+import org.springframework.expression.TypedValue;
|
|
|
+
|
|
|
+import static org.assertj.core.api.Assertions.assertThat;
|
|
|
+import static org.mockito.Mockito.mock;
|
|
|
+import static org.mockito.Mockito.verify;
|
|
|
+import static org.mockito.Mockito.when;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author Rob Winch
|
|
|
+ */
|
|
|
+@RunWith(MockitoJUnitRunner.class)
|
|
|
+public class DelegatingEvaluationContextTests {
|
|
|
+ @Mock
|
|
|
+ DelegatingEvaluationContext delegate;
|
|
|
+ @InjectMocks
|
|
|
+ DelegatingEvaluationContext context;
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void getRootObject() {
|
|
|
+ TypedValue expected = mock(TypedValue.class);
|
|
|
+ when(this.delegate.getRootObject()).thenReturn(expected);
|
|
|
+
|
|
|
+ assertThat(this.context.getRootObject()).isEqualTo(expected);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void getConstructorResolvers() {
|
|
|
+ List<ConstructorResolver> expected = new ArrayList<ConstructorResolver>();
|
|
|
+ when(this.delegate.getConstructorResolvers()).thenReturn(expected);
|
|
|
+
|
|
|
+ assertThat(this.context.getConstructorResolvers()).isEqualTo(expected);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void getMethodResolvers() {
|
|
|
+ List<MethodResolver> expected = new ArrayList<MethodResolver>();
|
|
|
+ when(this.delegate.getMethodResolvers()).thenReturn(expected);
|
|
|
+
|
|
|
+ assertThat(this.context.getMethodResolvers()).isEqualTo(expected);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void getPropertyAccessors() {
|
|
|
+ List<PropertyAccessor> expected = new ArrayList<PropertyAccessor>();
|
|
|
+ when(this.delegate.getPropertyAccessors()).thenReturn(expected);
|
|
|
+
|
|
|
+ assertThat(this.context.getPropertyAccessors()).isEqualTo(expected);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void getTypeLocator() {
|
|
|
+
|
|
|
+ TypeLocator expected = mock(TypeLocator.class);
|
|
|
+ when(this.delegate.getTypeLocator()).thenReturn(expected);
|
|
|
+
|
|
|
+ assertThat(this.context.getTypeLocator()).isEqualTo(expected);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void getTypeConverter() {
|
|
|
+ TypeConverter expected = mock(TypeConverter.class);
|
|
|
+ when(this.delegate.getTypeConverter()).thenReturn(expected);
|
|
|
+
|
|
|
+ assertThat(this.context.getTypeConverter()).isEqualTo(expected);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void getTypeComparator() {
|
|
|
+ TypeComparator expected = mock(TypeComparator.class);
|
|
|
+ when(this.delegate.getTypeComparator()).thenReturn(expected);
|
|
|
+
|
|
|
+ assertThat(this.context.getTypeComparator()).isEqualTo(expected);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void getOperatorOverloader() {
|
|
|
+ OperatorOverloader expected = mock(OperatorOverloader.class);
|
|
|
+ when(this.delegate.getOperatorOverloader()).thenReturn(expected);
|
|
|
+
|
|
|
+ assertThat(this.context.getOperatorOverloader()).isEqualTo(expected);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void getBeanResolver() {
|
|
|
+ BeanResolver expected = mock(BeanResolver.class);
|
|
|
+ when(this.delegate.getBeanResolver()).thenReturn(expected);
|
|
|
+
|
|
|
+ assertThat(this.context.getBeanResolver()).isEqualTo(expected);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void setVariable() {
|
|
|
+ String name = "name";
|
|
|
+ String value = "value";
|
|
|
+
|
|
|
+ this.context.setVariable(name, value);
|
|
|
+
|
|
|
+ verify(this.delegate).setVariable(name, value);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void lookupVariable() {
|
|
|
+ String name = "name";
|
|
|
+ String expected = "expected";
|
|
|
+ when(this.delegate.lookupVariable(name)).thenReturn(expected);
|
|
|
+
|
|
|
+ assertThat(this.context.lookupVariable(name)).isEqualTo(expected);
|
|
|
+ }
|
|
|
+}
|