View Javadoc

    1   /*
    2    * $Id: AnnotationValidationInterceptorTest.java 508465 2007-02-16 16:12:32Z hermanns $
    3    *
    4    * Licensed to the Apache Software Foundation (ASF) under one
    5    * or more contributor license agreements.  See the NOTICE file
    6    * distributed with this work for additional information
    7    * regarding copyright ownership.  The ASF licenses this file
    8    * to you under the Apache License, Version 2.0 (the
    9    * "License"); you may not use this file except in compliance
    10   * with the License.  You may obtain a copy of the License at
    11   *
    12   *  http://www.apache.org/licenses/LICENSE-2.0
    13   *
    14   * Unless required by applicable law or agreed to in writing,
    15   * software distributed under the License is distributed on an
    16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    17   * KIND, either express or implied.  See the License for the
    18   * specific language governing permissions and limitations
    19   * under the License.
    20   */
    21  package org.apache.struts2.interceptor.validation;
    22
    23  import org.apache.struts2.StrutsTestCase;
    24
    25  import com.mockobjects.dynamic.Mock;
    26  import com.opensymphony.xwork2.ActionInvocation;
    27  import com.opensymphony.xwork2.ActionProxy;
    28  import com.opensymphony.xwork2.Validateable;
    29
    30  public class AnnotationValidationInterceptorTest extends StrutsTestCase {
    31
    32      private AnnotationValidationInterceptor interceptor = new AnnotationValidationInterceptor();
    33      private Mock mockActionInvocation;
    34      private Mock mockActionProxy;
    35      private TestAction test;
    36
    37      public void setUp() throws Exception {
    38          super.setUp();
    39          test = new TestAction();
    40          interceptor = new AnnotationValidationInterceptor();
    41          mockActionInvocation = new Mock(ActionInvocation.class);
    42          mockActionProxy = new Mock(ActionProxy.class);
    43          mockActionInvocation.matchAndReturn("getProxy", (ActionProxy) mockActionProxy.proxy());
    44          mockActionInvocation.matchAndReturn("getAction", test);
    45          mockActionInvocation.expect("invoke");
    46      }
    47
    48      public void testShouldNotSkip() throws Exception {
    49          mockActionProxy.expectAndReturn("getMethod", "execute");
    50          mockActionProxy.expectAndReturn("getActionName", "foo");
    51          mockActionProxy.expectAndReturn("getMethod", "execute");
    52          interceptor.doIntercept((ActionInvocation)mockActionInvocation.proxy());
    53          mockActionProxy.verify();
    54      }
    55
    56      public void testShouldSkip() throws Exception {
    57          mockActionProxy.expectAndReturn("getMethod", "skipMe");
    58          interceptor.doIntercept((ActionInvocation)mockActionInvocation.proxy());
    59          mockActionProxy.verify();
    60      }
    61
    62      public static class TestAction  {
    63
    64          public String execute() {
    65              return "execute";
    66          }
    67
    68          @SkipValidation
    69          public String skipMe() {
    70              return "skipme";
    71          }
    72      }
    73  }