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 }