1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *     http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  
18  
19  package org.apache.commons.pipeline.stage;
20  
21  import junit.framework.*;
22  import java.lang.reflect.Method;
23  import java.util.ArrayList;
24  
25  /**
26   *
27   *
28   */
29  public class InvokeMethodStageTest extends AbstractStageTest {
30      
31      public InvokeMethodStageTest(String testName) {
32          super(testName);
33      }
34      
35      public static Test suite() {
36          TestSuite suite = new TestSuite(InvokeMethodStageTest.class);
37          
38          return suite;
39      }
40      
41      /**
42       * Test of reflection-based constructor
43       */
44      public void testReflectionConstructor() throws Exception {
45          InvokeMethodStage stage = new InvokeMethodStage("java.lang.String", "lastIndexOf", "foo");
46          Method method = stage.getMethod();
47          assertNotNull(method);
48          assertSame(String.class, method.getDeclaringClass());
49          assertEquals("lastIndexOf", method.getName());
50      }
51      
52      /**
53       * Test of process method, of class org.apache.commons.pipeline.stage.InvokeMethodStage.
54       */
55      public void testProcess() throws Exception {
56          InvokeMethodStage stage = new InvokeMethodStage("java.lang.String", "toUpperCase", new Object[0]);
57          this.init(stage);
58          
59          stage.process("some text");
60          
61          assertEquals(1, testFeeder.receivedValues.size());
62          
63          Object o = testFeeder.receivedValues.get(0);
64          assertNotNull(o);
65          assertTrue(o instanceof String);
66          assertEquals("SOME TEXT", o);
67      }
68  }