1 package org.apache.maven.continuum.web.action;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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 }