View Javadoc

1   package org.apache.maven.continuum.web.action;
2   
3   import java.io.File;
4   import java.util.HashMap;
5   
6   import org.apache.continuum.builder.distributed.manager.DistributedBuildManager;
7   import org.apache.continuum.buildmanager.BuildsManager;
8   import org.apache.continuum.taskqueue.BuildProjectTask;
9   import org.apache.maven.continuum.Continuum;
10  import org.apache.maven.continuum.configuration.ConfigurationService;
11  import org.apache.maven.continuum.model.project.BuildResult;
12  import org.apache.maven.continuum.model.project.Project;
13  import org.apache.maven.continuum.web.action.stub.BuildResultActionStub;
14  import org.apache.maven.continuum.xmlrpc.project.ContinuumProjectState;
15  import org.jmock.Mock;
16  import org.jmock.MockObjectTestCase;
17  
18  public class BuildResultActionTest
19      extends MockObjectTestCase
20  {
21      private BuildResultActionStub action;
22  
23      private Mock continuum;
24  
25      private Mock configurationService;
26  
27      private Mock distributedBuildManager;
28  
29      private Mock buildsManager;
30  
31      protected void setUp()
32      {
33          action = new BuildResultActionStub();
34          continuum = mock( Continuum.class );
35          configurationService = mock( ConfigurationService.class );
36          distributedBuildManager = mock( DistributedBuildManager.class );
37          buildsManager = mock( BuildsManager.class );
38  
39          action.setContinuum( (Continuum) continuum.proxy() );
40          action.setDistributedBuildManager( (DistributedBuildManager) distributedBuildManager.proxy() );
41      }
42  
43      public void testViewPreviousBuild()
44          throws Exception
45      {
46          Project project = createProject( "stub-project" );
47          BuildResult buildResult = createBuildResult( project );
48  
49          continuum.expects( once() ).method( "getProject" ).will( returnValue( project ) );
50          continuum.expects( once() ).method( "getBuildResult" ).will( returnValue( buildResult ) );
51          continuum.expects( atLeastOnce() ).method( "getConfiguration" ).will( returnValue( (ConfigurationService) configurationService.proxy()  ) );
52          configurationService.expects( once() ).method( "isDistributedBuildEnabled" ).will( returnValue( false ) );
53          configurationService.expects( once() ).method( "getTestReportsDirectory" ).will( returnValue( new File( "testReportsDir" ) ) );
54          continuum.expects( once() ).method( "getChangesSinceLastSuccess" ).will( returnValue( null ) );
55          configurationService.expects( once() ).method( "getBuildOutputFile" ).will( returnValue( new File( "buildOutputFile" ) ) );
56          continuum.expects( once() ).method( "getBuildsManager" ).will( returnValue( buildsManager.proxy() ) );
57          buildsManager.expects( once() ).method( "getCurrentBuilds" ).will( returnValue( new HashMap<String, BuildProjectTask>() ) );
58  
59          action.execute();
60          continuum.verify();
61      }
62  
63      public void testViewCurrentBuildInDistributedBuildAgent()
64          throws Exception
65      {
66          Project project = createProject( "stub-project" );
67  
68          continuum.expects( once() ).method( "getProject" ).will( returnValue( project ) );
69          continuum.expects( once() ).method( "getConfiguration" ).will( returnValue( (ConfigurationService) configurationService.proxy()  ) );
70          configurationService.expects( once() ).method( "isDistributedBuildEnabled" ).will( returnValue( true ) );
71          distributedBuildManager.expects( once() ).method( "getBuildResult" ).will( returnValue( new HashMap<String, Object>() ) );
72  
73          action.execute();
74          continuum.verify();
75      }
76  
77      private Project createProject( String name )
78      {
79          Project project = new Project();
80          project.setId( 1 );
81          project.setName( name );
82          project.setArtifactId( "foo:bar" );
83          project.setVersion( "1.0" );
84          project.setState( ContinuumProjectState.BUILDING );
85  
86          return project;
87      }
88  
89      private BuildResult createBuildResult( Project project )
90      {
91          BuildResult buildResult = new BuildResult();
92          buildResult.setId( 1 );
93          buildResult.setProject( project );
94  
95          return buildResult;
96      }
97  }