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