]> source.dussan.org Git - archiva.git/blob
b042a05748f8b31409e4609264b63c2ce351c3e0
[archiva.git] /
1 package org.apache.archiva.redback.role.template;
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 junit.framework.TestCase;
23 import org.apache.archiva.redback.rbac.Permission;
24 import org.apache.archiva.redback.rbac.RBACManager;
25 import org.apache.archiva.redback.rbac.Role;
26 import org.apache.archiva.redback.role.template.RoleTemplateProcessor;
27 import org.codehaus.plexus.redback.role.model.ModelTemplate;
28 import org.codehaus.plexus.redback.role.model.RedbackRoleModel;
29 import org.codehaus.plexus.redback.role.model.io.stax.RedbackRoleModelStaxReader;
30 import org.apache.archiva.redback.role.processor.RoleModelProcessor;
31 import org.apache.archiva.redback.role.util.RoleModelUtils;
32 import org.junit.Test;
33 import org.junit.runner.RunWith;
34 import org.springframework.test.context.ContextConfiguration;
35 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
36
37 import javax.inject.Inject;
38 import javax.inject.Named;
39 import java.io.File;
40
41 /**
42  * RoleProfileTest:
43  *
44  * @author: Jesse McConnell <jesse@codehaus.org>
45  * @version: $Id$
46  */
47 @RunWith( SpringJUnit4ClassRunner.class )
48 @ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath*:/spring-context.xml" } )
49 public class RoleTemplateProcessorTest
50     extends TestCase
51 {
52
53     @Inject
54     @Named( value = "rBACManager#memory" )
55     private RBACManager rbacManager;
56
57     @Inject @Named(value = "modelProcessor#memory")
58     private RoleModelProcessor roleProcessor;
59
60     @Inject @Named(value = "templateProcessor#memory")
61     private RoleTemplateProcessor templateProcessor;
62
63     /**
64      * Creates a new RbacStore which contains no data.
65      */
66     protected void setUp()
67         throws Exception
68     {
69         super.setUp();
70     }
71
72     String getBasedir()
73     {
74         return System.getProperty( "basedir" );
75     }
76
77     @Test
78     public void testLoading()
79         throws Exception
80     {
81         File resource = new File( getBasedir() + "/src/test/template-tests/redback-1.xml" );
82
83         assertNotNull( resource );
84
85         RedbackRoleModelStaxReader modelReader = new RedbackRoleModelStaxReader();
86
87         RedbackRoleModel redback = modelReader.read( resource.getAbsolutePath() );
88
89         assertNotNull( redback );
90
91         roleProcessor.process( redback );
92
93         templateProcessor.create( redback, "test-template", "foo" );
94
95         ModelTemplate template = RoleModelUtils.getModelTemplate( redback, "test-template" );
96
97         String templateName = template.getNamePrefix() + template.getDelimiter() + "foo";
98
99         assertTrue( rbacManager.resourceExists( "cornflakes name" ) );
100
101         assertTrue( rbacManager.roleExists( templateName ) );
102
103         Role testRole = rbacManager.getRole( templateName );
104
105         assertNotNull( testRole );
106
107         Permission testPermission = (Permission) testRole.getPermissions().get( 0 );
108
109         assertNotNull( testPermission );
110
111         assertEquals( "Eat Cornflakes - cornflakes name", testPermission.getName() );
112
113         templateProcessor.remove( redback, "test-template", "foo" );
114
115         assertFalse( rbacManager.roleExists( templateName ) );
116
117         templateProcessor.create( redback, "test-template-2", "foo" );
118
119         ModelTemplate template2 = RoleModelUtils.getModelTemplate( redback, "test-template-2" );
120
121         String templateName2 = template2.getNamePrefix() + template2.getDelimiter() + "foo";
122
123         assertTrue( rbacManager.roleExists( templateName2 ) );
124
125         Role role = rbacManager.getRole( templateName2 );
126
127         assertNotNull( role );
128
129         assertEquals( 3, template2.getPermissions().size() );
130         assertEquals( 3, role.getPermissions().size() );
131
132         assertEquals( 1, role.getChildRoleNames().size() );
133
134     }
135
136 }