]> source.dussan.org Git - archiva.git/blob
7a03e676ab3a4e2783607d3104510e2bd7838431
[archiva.git] /
1 package org.apache.maven.archiva.web.action.admin.repositories;
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 java.util.Collections;
23
24 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
25 import org.apache.maven.archiva.configuration.Configuration;
26 import org.apache.maven.archiva.configuration.RepositoryGroupConfiguration;
27 import org.apache.maven.archiva.web.action.AbstractActionTestCase;
28 import org.codehaus.plexus.spring.PlexusInSpringTestCase;
29 import org.codehaus.redback.integration.interceptor.SecureActionBundle;
30 import org.codehaus.redback.integration.interceptor.SecureActionException;
31 import org.easymock.MockControl;
32
33 import com.opensymphony.xwork2.Action;
34
35 /**
36  * DeleteRepositoryGroupActionTest
37  * 
38  * @version
39  */
40 public class DeleteRepositoryGroupActionTest 
41     extends AbstractActionTestCase
42 {
43     private static final String REPO_GROUP_ID = "repo-group-ident";
44
45     private DeleteRepositoryGroupAction action;
46
47     private MockControl archivaConfigurationControl;
48
49     private ArchivaConfiguration archivaConfiguration;
50
51     protected void setUp()
52         throws Exception
53     {
54         super.setUp();
55         
56         action = (DeleteRepositoryGroupAction) lookup ( Action.class.getName(), "deleteRepositoryGroupAction" );
57         
58         archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class );
59         archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock();
60         action.setArchivaConfiguration( archivaConfiguration );
61     }
62     
63     public void testSecureActionBundle()
64         throws SecureActionException
65         {
66         archivaConfiguration.getConfiguration();
67         archivaConfigurationControl.setReturnValue( new Configuration() );
68         archivaConfigurationControl.replay();
69         
70         action.prepare();
71         SecureActionBundle bundle = action.getSecureActionBundle();
72         assertTrue( bundle.requiresAuthentication() );
73         assertEquals( 1, bundle.getAuthorizationTuples().size() );
74     }
75
76     public void testDeleteRepositoryGroupConfirmation()
77         throws Exception
78     {
79         RepositoryGroupConfiguration origRepoGroup = createRepositoryGroup();
80         Configuration configuration = createConfigurationForEditing( origRepoGroup );
81     
82         archivaConfiguration.getConfiguration();
83         archivaConfigurationControl.setReturnValue( configuration );
84         archivaConfigurationControl.replay();
85         
86         action.setRepoGroupId( REPO_GROUP_ID );
87
88         action.prepare();
89         assertEquals( REPO_GROUP_ID, action.getRepoGroupId() );
90         RepositoryGroupConfiguration repoGroup = action.getRepositoryGroup();
91         assertNotNull( repoGroup );
92         assertEquals( repoGroup.getId(), action.getRepoGroupId() );
93         assertEquals( Collections.singletonList( origRepoGroup ), configuration.getRepositoryGroups() );
94     }
95
96     public void testDeleteRepositoryGroup()
97         throws Exception
98     {
99         Configuration configuration = createConfigurationForEditing( createRepositoryGroup() );
100         
101         archivaConfiguration.getConfiguration();
102         archivaConfigurationControl.setReturnValue( configuration, 3 );
103         archivaConfiguration.save( configuration );
104         archivaConfigurationControl.replay();
105         
106         action.setRepoGroupId( REPO_GROUP_ID );
107         
108         action.prepare();
109         assertEquals( REPO_GROUP_ID, action.getRepoGroupId() );
110         RepositoryGroupConfiguration repoGroup = action.getRepositoryGroup();
111         assertNotNull( repoGroup );
112         assertEquals( Collections.singletonList( repoGroup ), configuration.getRepositoryGroups() );
113         
114         String status = action.delete();
115         assertEquals( Action.SUCCESS, status );
116         assertTrue( configuration.getRepositoryGroups().isEmpty() );
117     }
118
119     public void testDeleteRepositoryGroupCancelled()
120         throws Exception
121     {
122         RepositoryGroupConfiguration origRepoGroup = createRepositoryGroup();
123         Configuration configuration = createConfigurationForEditing ( origRepoGroup );
124         
125         archivaConfiguration.getConfiguration();
126         archivaConfigurationControl.setReturnValue( configuration, 2 );
127
128         archivaConfiguration.save( configuration );
129         archivaConfigurationControl.replay();
130         
131         action.setRepoGroupId( REPO_GROUP_ID );
132         
133         action.prepare();
134         assertEquals( REPO_GROUP_ID, action.getRepoGroupId() );
135         RepositoryGroupConfiguration repoGroup = action.getRepositoryGroup();
136         assertNotNull( repoGroup );
137         
138         String status = action.execute();
139         assertEquals( Action.SUCCESS, status );
140         assertEquals( Collections.singletonList( repoGroup ), configuration.getRepositoryGroups() );
141     }
142
143     private Configuration createConfigurationForEditing( RepositoryGroupConfiguration repoGroup )
144     {
145         Configuration configuration = new Configuration();
146         configuration.addRepositoryGroup( repoGroup );
147         return configuration;
148     }
149     
150     private RepositoryGroupConfiguration createRepositoryGroup()
151     {
152         RepositoryGroupConfiguration repoGroup = new RepositoryGroupConfiguration();
153         repoGroup.setId( REPO_GROUP_ID );
154         
155         return repoGroup;
156     }
157 }