View Javadoc

1   package org.apache.maven.shared.dependency.tree.traversal;
2   
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  
22  import org.apache.maven.plugin.testing.stubs.ArtifactStub;
23  import org.apache.maven.shared.dependency.tree.DependencyNode;
24  import org.apache.maven.shared.dependency.tree.filter.AbstractDependencyNodeFilterTest;
25  import org.apache.maven.shared.dependency.tree.filter.DependencyNodeFilter;
26  import org.jmock.Mock;
27  
28  /**
29   * Tests <code>FilteringDependencyNodeVisitor</code>.
30   * 
31   * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
32   * @version $Id: FilteringDependencyNodeVisitorTest.java 1100703 2011-05-08 08:27:33Z hboutemy $
33   * @see FilteringDependencyNodeVisitor
34   */
35  public class FilteringDependencyNodeVisitorTest
36      extends AbstractDependencyNodeFilterTest
37  {
38      // fields -----------------------------------------------------------------
39  
40      private FilteringDependencyNodeVisitor visitor;
41  
42      private DependencyNode node;
43  
44      private DependencyNodeFilter acceptingFilter;
45  
46      private DependencyNodeFilter rejectingFilter;
47  
48      // TestCase methods -------------------------------------------------------
49  
50      /**
51       * {@inheritDoc}
52       */
53      protected void setUp()
54          throws Exception
55      {
56          node = new DependencyNode( new ArtifactStub() );
57  
58          acceptingFilter = createDependencyNodeFilter( node, true );
59          rejectingFilter = createDependencyNodeFilter( node, false );
60      }
61  
62      // tests ------------------------------------------------------------------
63  
64      public void testVisitAcceptTrue()
65      {
66          Mock filteredVisitorMock = mock( DependencyNodeVisitor.class );
67          filteredVisitorMock.expects( once() ).method( "visit" ).with( eq( node ) ).will( returnValue( true ) );
68          DependencyNodeVisitor filteredVisitor = (DependencyNodeVisitor) filteredVisitorMock.proxy();
69  
70          visitor = new FilteringDependencyNodeVisitor( filteredVisitor, acceptingFilter );
71          assertTrue( visitor.visit( node ) );
72      }
73  
74      public void testVisitAcceptFalse()
75      {
76          Mock filteredVisitorMock = mock( DependencyNodeVisitor.class );
77          filteredVisitorMock.expects( once() ).method( "visit" ).with( eq( node ) ).will( returnValue( false ) );
78          DependencyNodeVisitor filteredVisitor = (DependencyNodeVisitor) filteredVisitorMock.proxy();
79  
80          visitor = new FilteringDependencyNodeVisitor( filteredVisitor, acceptingFilter );
81          assertFalse( visitor.visit( node ) );
82      }
83  
84      public void testVisitReject()
85      {
86          DependencyNodeVisitor filteredVisitor = (DependencyNodeVisitor) mock( DependencyNodeVisitor.class ).proxy();
87  
88          visitor = new FilteringDependencyNodeVisitor( filteredVisitor, rejectingFilter );
89          assertTrue( visitor.visit( node ) );
90      }
91  
92      public void testEndVisitAcceptTrue()
93      {
94          Mock filteredVisitorMock = mock( DependencyNodeVisitor.class );
95          filteredVisitorMock.expects( once() ).method( "endVisit" ).with( eq( node ) ).will( returnValue( true ) );
96          DependencyNodeVisitor filteredVisitor = (DependencyNodeVisitor) filteredVisitorMock.proxy();
97  
98          visitor = new FilteringDependencyNodeVisitor( filteredVisitor, acceptingFilter );
99          assertTrue( visitor.endVisit( node ) );
100     }
101 
102     public void testEndVisitAcceptFalse()
103     {
104         Mock filteredVisitorMock = mock( DependencyNodeVisitor.class );
105         filteredVisitorMock.expects( once() ).method( "endVisit" ).with( eq( node ) ).will( returnValue( false ) );
106         DependencyNodeVisitor filteredVisitor = (DependencyNodeVisitor) filteredVisitorMock.proxy();
107 
108         visitor = new FilteringDependencyNodeVisitor( filteredVisitor, acceptingFilter );
109         assertFalse( visitor.endVisit( node ) );
110     }
111 
112     public void testEndVisitReject()
113     {
114         DependencyNodeVisitor filteredVisitor = (DependencyNodeVisitor) mock( DependencyNodeVisitor.class ).proxy();
115 
116         visitor = new FilteringDependencyNodeVisitor( filteredVisitor, rejectingFilter );
117         assertTrue( visitor.endVisit( node ) );
118     }
119 }