/*
* Copyright (C) 2005-2012
* Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see
* public class YourTestClass * { * // Initialise the spring application context and tenant in a rule chain * public static final ApplicationContextInit APP_CONTEXT_RULE = new ApplicationContextInit(); * public static final AlfrescoTenant TENANT_RULE = new AlfrescoTenant(APP_CONTEXT_RULE, "testtenant"); * * @ClassRule public static RuleChain ruleChain = RuleChain.outerRule(APP_CONTEXT_INIT) * .around(TENANT); * * // We pass the rule that creates the spring application context. * // This rule will give us a user with username 'AlexM@testtenant'. * @Rule public final TenantPerson namedPerson = new AlfrescoPerson(APP_CONTEXT_RULE, "AlexM@testTenant", TENANT); * * @Test public void aTestMethod() * { * AUSTRALIAN_USER.runAsFullyAuthenticated(new TenantRunAsWork* * @author Alex Miller */ public class TenantPerson extends AlfrescoPerson { private AlfrescoTenant tenant; /** * Constructs the rule with a reference to a {@link ApplicationContextInit rule} which can be used to retrieve the ApplicationContext. * * @param appContextRule a rule which can be used to retrieve the spring app context. * @param userName the username for the person to be created. * @param tenant the tenant the person should be created under. */ public TenantPerson(ApplicationContextInit appContextInit, String userName, AlfrescoTenant tenant) { super(appContextInit, userName + "@" + tenant.getTenantDomain()); ParameterCheck.mandatory("tenant", tenant); this.tenant = tenant; } /** * Create the user, in the given tenant, using the tenant system user. */ @Override protected void before() { tenant.runAsSystem(new TenantRunAsWork() * { * @Override * public Void doWork() throws Exception * { * // Do something as the tenant user * } * }); * } * } *