Package org.wso2.carbon.user.core.tenant

Source Code of org.wso2.carbon.user.core.tenant.TestTenantManager

/*
*  Copyright (c) 2005-2010, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
*  WSO2 Inc. licenses this file to you under the Apache License,
*  Version 2.0 (the "License"); you may not use this file except
*  in compliance with the License.
*  You may obtain a copy of the License at
*
*    http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied.  See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.wso2.carbon.user.core.tenant;

import org.apache.commons.dbcp.BasicDataSource;
import org.wso2.carbon.user.api.RealmConfiguration;
import org.wso2.carbon.user.core.BaseTestCase;
import org.wso2.carbon.user.core.TenantTestUtil;
import org.wso2.carbon.user.core.UserCoreTestConstants;
import org.wso2.carbon.user.core.config.RealmConfigXMLProcessor;
import org.wso2.carbon.utils.CarbonUtils;
import org.wso2.carbon.utils.dbcreator.DatabaseCreator;

import java.io.File;
import java.io.FileInputStream;

public class TestTenantManager extends BaseTestCase{
    private TenantManager tenantMan;

    public void setUp() throws Exception {
        super.setUp();
    }

    public void testTenantManager() throws Exception {
        tenantDbStuff(); //create db instance
        doTenantStuff(); // do tenantManager stuff
    }

    public void tenantDbStuff() throws Exception{
        String dbFolder = "target/Tenanttest";
        if ((new File(dbFolder)).exists()) {
            deleteDir(new File(dbFolder));
        }

        BasicDataSource ds = new BasicDataSource();
        ds.setDriverClassName(UserCoreTestConstants.DB_DRIVER);
        ds.setUrl("jdbc:h2:target/Tenanttest/TEN_TEST");

        DatabaseCreator creator = new DatabaseCreator(ds);
        creator.createRegistryDatabase();
        tenantMan = new JDBCTenantManager(ds, "super.com");
    }

    public void doTenantStuff() throws Exception{
        RealmConfigXMLProcessor processor = new RealmConfigXMLProcessor();
        RealmConfiguration realmConfig = processor.buildRealmConfiguration(new FileInputStream(CarbonUtils.getUserMgtXMLPath()));
        Tenant[] tarray = TenantTestUtil.createTenant(realmConfig);

        assertEquals(1,tenantMan.addTenant(tarray[0]));
        assertEquals(2,tenantMan.addTenant(tarray[1]));
        assertEquals(3,tenantMan.addTenant(tarray[2]));

        //activate tenant
        tenantMan.activateTenant(1);
        assertTrue(tenantMan.getTenant(1).isActive());
        tenantMan.activateTenant(2);
        assertTrue(tenantMan.getTenant(2).isActive());
        assertFalse(tenantMan.getTenant(3).isActive());
        try{
            boolean a = tenantMan.getTenant(4).isActive();
            fail("NullPointer Exception failed");
        }catch(Exception e){
            //caught exception
        }

        //update tenant
        Tenant updateOne = (Tenant) tenantMan.getTenant(1);
        assertEquals("domain1",tenantMan.getTenant(1).getDomain());
        updateOne.setDomain("UpdateDomain1");
        tenantMan.updateTenant(updateOne);
        assertEquals("UpdateDomain1",tenantMan.getTenant(1).getDomain());

        //getDomain
        assertEquals("domain2",tenantMan.getDomain(2));
        assertEquals("domain3",tenantMan.getDomain(3));
        assertEquals(null,tenantMan.getDomain(4));

        //getTenantId
        assertEquals(1,tenantMan.getTenantId("UpdateDomain1"));
        assertEquals(2,tenantMan.getTenantId("domain2"));
        assertEquals(3,tenantMan.getTenantId("domain3"));
        assertEquals(-1,tenantMan.getTenantId("abxxxx")); //a Non existing domain name

        assertEquals(3,tenantMan.getAllTenants().length);

        //deactivate tenant
        tenantMan.deactivateTenant(2);
        assertFalse(tenantMan.getTenant(2).isActive());

        //delete tenant
        tenantMan.deleteTenant(3);
        assertEquals(2,tenantMan.getAllTenants().length);

    }

}
TOP

Related Classes of org.wso2.carbon.user.core.tenant.TestTenantManager

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.