1 package com.atlassian.user.impl.osuser;
2
3 import com.atlassian.user.EntityException;
4 import com.atlassian.user.configuration.DefaultRepositoryAccessor;
5 import com.atlassian.user.configuration.RepositoryAccessor;
6 import com.atlassian.user.impl.osuser.security.authentication.OSUAuthenticator;
7 import com.atlassian.user.repository.DefaultRepositoryIdentifier;
8 import com.atlassian.user.util.migration.OSUserHibernateConfigurationProviderTestImpl;
9 import com.opensymphony.user.provider.AccessProvider;
10 import com.opensymphony.user.provider.CredentialsProvider;
11 import com.opensymphony.user.provider.ProfileProvider;
12 import net.sf.hibernate.SessionFactory;
13 import net.sf.hibernate.cfg.Configuration;
14
15 public class OSUserTestHelper
16 {
17 private RepositoryAccessor repositoryAccessor;
18 private OSUAccessor osUserAccessor;
19
20 public OSUserTestHelper(SessionFactory sessionFactory, Configuration configuration)
21 {
22 try
23 {
24 repositoryAccessor = createOSUserAccessor(configuration, sessionFactory);
25 }
26 catch (EntityException e)
27 {
28 throw new RuntimeException(e);
29 }
30 }
31
32 public RepositoryAccessor getRepositoryAccessor()
33 {
34 return repositoryAccessor;
35 }
36
37 private RepositoryAccessor createOSUserAccessor(Configuration config, SessionFactory sessionFactory)
38 throws EntityException
39 {
40 OSUserHibernateConfigurationProviderTestImpl.setConfiguration(config);
41 OSUserHibernateConfigurationProviderTestImpl.setSessionFactory(sessionFactory);
42
43 osUserAccessor = new DefaultOSUAccessor();
44 com.opensymphony.user.UserManager osuserManager = new com.opensymphony.user.UserManager("osuser-test-hibernate.xml");
45 AccessProvider accessProvider = (AccessProvider) osuserManager.getAccessProviders().iterator().next();
46 CredentialsProvider credentialsProvider = (CredentialsProvider) osuserManager.getCredentialsProviders().iterator().next();
47 ProfileProvider profileProvider = (ProfileProvider) osuserManager.getProfileProviders().iterator().next();
48
49 osUserAccessor.setAccessProvider(accessProvider);
50 osUserAccessor.setCredentialsProvider(credentialsProvider);
51 osUserAccessor.setProfileProvider(profileProvider);
52
53 DefaultRepositoryIdentifier osUserRepositoryIdentifier = new DefaultRepositoryIdentifier("osuserRepository", "OS User Repository");
54
55 OSUUserManager userManager = new OSUUserManager(osUserRepositoryIdentifier, osUserAccessor);
56 OSUGroupManager groupManager = new OSUGroupManager(osUserRepositoryIdentifier, osUserAccessor);
57
58 DefaultRepositoryAccessor osuserRepositoryAccessor = new DefaultRepositoryAccessor();
59 osuserRepositoryAccessor.setRepository(osUserRepositoryIdentifier);
60 osuserRepositoryAccessor.setUserManager(userManager);
61 osuserRepositoryAccessor.setGroupManager(groupManager);
62 osuserRepositoryAccessor.setAuthenticator(new OSUAuthenticator(osUserRepositoryIdentifier, credentialsProvider));
63 return osuserRepositoryAccessor;
64 }
65
66 public OSUAccessor getOSUAccessor()
67 {
68 return osUserAccessor;
69 }
70 }