View Javadoc

1   package org.apache.maven.continuum.web.action;
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.continuum.builder.distributed.manager.DistributedBuildManager;
23  import org.apache.continuum.buildmanager.BuildsManager;
24  import org.apache.continuum.taskqueue.BuildProjectTask;
25  import org.apache.continuum.web.action.AbstractActionTest;
26  import org.apache.maven.continuum.Continuum;
27  import org.apache.maven.continuum.configuration.ConfigurationService;
28  import org.apache.maven.continuum.model.project.BuildResult;
29  import org.apache.maven.continuum.model.project.Project;
30  import org.apache.maven.continuum.web.action.stub.BuildResultActionStub;
31  import org.apache.maven.continuum.xmlrpc.project.ContinuumProjectState;
32  import org.jmock.Mock;
33  
34  import java.io.File;
35  import java.util.HashMap;
36  
37  public class BuildResultActionTest
38      extends AbstractActionTest
39  {
40      private BuildResultActionStub action;
41  
42      private Mock continuum;
43  
44      private Mock configurationService;
45  
46      private Mock distributedBuildManager;
47  
48      private Mock buildsManager;
49  
50      protected void setUp()
51          throws Exception
52      {
53          super.setUp();
54  
55          action = new BuildResultActionStub();
56          continuum = mock( Continuum.class );
57          configurationService = mock( ConfigurationService.class );
58          distributedBuildManager = mock( DistributedBuildManager.class );
59          buildsManager = mock( BuildsManager.class );
60  
61          action.setContinuum( (Continuum) continuum.proxy() );
62          action.setDistributedBuildManager( (DistributedBuildManager) distributedBuildManager.proxy() );
63      }
64  
65      public void testViewPreviousBuild()
66          throws Exception
67      {
68          Project project = createProject( "stub-project" );
69          BuildResult buildResult = createBuildResult( project );
70  
71          continuum.expects( once() ).method( "getProject" ).will( returnValue( project ) );
72          continuum.expects( once() ).method( "getBuildResult" ).will( returnValue( buildResult ) );
73          continuum.expects( atLeastOnce() ).method( "getConfiguration" ).will( returnValue(
74              (ConfigurationService) configurationService.proxy() ) );
75          configurationService.expects( once() ).method( "isDistributedBuildEnabled" ).will( returnValue( false ) );
76          configurationService.expects( once() ).method( "getTestReportsDirectory" ).will( returnValue( new File(
77              "testReportsDir" ) ) );
78          continuum.expects( once() ).method( "getChangesSinceLastSuccess" ).will( returnValue( null ) );
79          configurationService.expects( once() ).method( "getBuildOutputFile" ).will( returnValue( new File(
80              "buildOutputFile" ) ) );
81          continuum.expects( once() ).method( "getBuildsManager" ).will( returnValue( buildsManager.proxy() ) );
82          buildsManager.expects( once() ).method( "getCurrentBuilds" ).will( returnValue(
83              new HashMap<String, BuildProjectTask>() ) );
84  
85          action.execute();
86          continuum.verify();
87      }
88  
89      public void testViewCurrentBuildInDistributedBuildAgent()
90          throws Exception
91      {
92          Project project = createProject( "stub-project" );
93  
94          continuum.expects( once() ).method( "getProject" ).will( returnValue( project ) );
95          continuum.expects( once() ).method( "getConfiguration" ).will( returnValue(
96              (ConfigurationService) configurationService.proxy() ) );
97          configurationService.expects( once() ).method( "isDistributedBuildEnabled" ).will( returnValue( true ) );
98          distributedBuildManager.expects( once() ).method( "getBuildResult" ).will( returnValue(
99              new HashMap<String, Object>() ) );
100 
101         action.execute();
102         continuum.verify();
103     }
104 
105     private Project createProject( String name )
106     {
107         Project project = new Project();
108         project.setId( 1 );
109         project.setName( name );
110         project.setArtifactId( "foo:bar" );
111         project.setVersion( "1.0" );
112         project.setState( ContinuumProjectState.BUILDING );
113 
114         return project;
115     }
116 
117     private BuildResult createBuildResult( Project project )
118     {
119         BuildResult buildResult = new BuildResult();
120         buildResult.setId( 1 );
121         buildResult.setProject( project );
122 
123         return buildResult;
124     }
125 }