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.configuration.BuildAgentConfiguration;
24  import org.apache.continuum.configuration.BuildAgentGroupConfiguration;
25  import org.apache.continuum.web.action.AbstractActionTest;
26  import org.apache.continuum.web.action.admin.BuildAgentAction;
27  import org.apache.maven.continuum.Continuum;
28  import org.apache.maven.continuum.configuration.ConfigurationService;
29  import org.jmock.Mock;
30  
31  import java.util.ArrayList;
32  import java.util.List;
33  
34  public class BuildAgentActionTest
35      extends AbstractActionTest
36  {
37      private BuildAgentAction action;
38  
39      private Mock continuumMock;
40  
41      private Mock configurationServiceMock;
42  
43      private Mock distributedBuildManagerMock;
44  
45      private List<BuildAgentConfiguration> buildAgents;
46  
47      protected void setUp()
48          throws Exception
49      {
50          super.setUp();
51  
52          action = new BuildAgentAction();
53          continuumMock = mock( Continuum.class );
54          configurationServiceMock = mock( ConfigurationService.class );
55          distributedBuildManagerMock = mock( DistributedBuildManager.class );
56  
57          action.setContinuum( (Continuum) continuumMock.proxy() );
58  
59          buildAgents = new ArrayList<BuildAgentConfiguration>();
60      }
61  
62      public void testAddBuildAgent()
63          throws Exception
64      {
65          continuumMock.expects( once() ).method( "getConfiguration" ).will( returnValue(
66              configurationServiceMock.proxy() ) );
67          configurationServiceMock.expects( atLeastOnce() ).method( "getBuildAgents" ).will( returnValue( buildAgents ) );
68          configurationServiceMock.expects( once() ).method( "addBuildAgent" ).isVoid();
69          configurationServiceMock.expects( once() ).method( "store" ).isVoid();
70          continuumMock.expects( once() ).method( "getDistributedBuildManager" ).will( returnValue(
71              distributedBuildManagerMock.proxy() ) );
72          distributedBuildManagerMock.expects( once() ).method( "update" ).isVoid();
73  
74          BuildAgentConfiguration buildAgent = new BuildAgentConfiguration();
75          buildAgent.setUrl( "http://sample/agent" );
76  
77          action.setBuildAgent( buildAgent );
78          action.save();
79      }
80  
81      public void testDeleteBuildAgent()
82          throws Exception
83      {
84          List<BuildAgentGroupConfiguration> buildAgentGroups = new ArrayList<BuildAgentGroupConfiguration>();
85  
86          continuumMock.expects( atLeastOnce() ).method( "getDistributedBuildManager" ).will( returnValue(
87              distributedBuildManagerMock.proxy() ) );
88          distributedBuildManagerMock.expects( once() ).method( "isBuildAgentBusy" ).will( returnValue( false ) );
89          continuumMock.expects( once() ).method( "getConfiguration" ).will( returnValue(
90              configurationServiceMock.proxy() ) );
91          configurationServiceMock.expects( atLeastOnce() ).method( "getBuildAgentGroups" ).will( returnValue(
92              buildAgentGroups ) );
93          configurationServiceMock.expects( atLeastOnce() ).method( "getBuildAgents" ).will( returnValue( buildAgents ) );
94  
95          distributedBuildManagerMock.expects( never() ).method( "removeDistributedBuildQueueOfAgent" ).isVoid();
96          distributedBuildManagerMock.expects( never() ).method( "reload" ).isVoid();
97          configurationServiceMock.expects( never() ).method( "removeBuildAgent" ).isVoid();
98          configurationServiceMock.expects( never() ).method( "store" ).isVoid();
99  
100         BuildAgentConfiguration buildAgent = new BuildAgentConfiguration();
101         buildAgent.setUrl( "http://sample/agent" );
102 
103         action.setConfirmed( true );
104         action.setBuildAgent( buildAgent );
105         action.delete();
106     }
107 }