Package org.wso2.carbon.user.core.claim

Source Code of org.wso2.carbon.user.core.claim.ClaimDAOTest

/*
*  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.claim;

import junit.framework.TestCase;
import org.apache.commons.dbcp.BasicDataSource;
import org.wso2.carbon.user.core.BaseTestCase;
import org.wso2.carbon.user.core.ClaimTestUtil;
import org.wso2.carbon.user.core.UserCoreTestConstants;
import org.wso2.carbon.user.core.claim.dao.ClaimDAO;
import org.wso2.carbon.user.core.profile.ProfileConfiguration;
import org.wso2.carbon.user.core.profile.dao.ProfileConfigDAO;
import org.wso2.carbon.utils.dbcreator.DatabaseCreator;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ClaimDAOTest extends BaseTestCase {
   
    private ClaimDAO claimDAO = null;
    private Map<String, ClaimMapping> claims = new HashMap<String, ClaimMapping>();
    private Map<String, ProfileConfiguration> profConfigs = null;
    private ProfileConfigDAO profileDAO = null;

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

        BasicDataSource ds = new BasicDataSource();
       // ds.setDriverClassName("org.apache.derby.jdbc.EmbeddedDriver");
       // ds.setUrl("jdbc:derby:target/ClaimTestDatabase/CARBON_TEST;create=true");

        ds.setDriverClassName(UserCoreTestConstants.DB_DRIVER);
        ds.setUrl("jdbc:h2:target/ClaimTestDatabase/CARBON_TEST");
        DatabaseCreator creator = new DatabaseCreator(ds);
        creator.createRegistryDatabase();      
       
        claims = ClaimTestUtil.getClaimTestData();
        profConfigs = ClaimTestUtil.getProfileTestData();
        claimDAO = new ClaimDAO(ds, 0);
        profileDAO = new ProfileConfigDAO(ds, 0);
    }

    public void testClaimsAndProfilePersisting() throws Exception {
        checkCliamPersistStuff();
        checkProfilePersistStuff();
        checkDeleteDialectStuff();
    }

    public void checkCliamPersistStuff() throws Exception {

        //add
        claimDAO.addClaimMapping(claims.get(ClaimTestUtil.CLAIM_URI1));
        claimDAO.addClaimMapping(claims.get(ClaimTestUtil.CLAIM_URI2));
        claimDAO.addClaimMapping(claims.get(ClaimTestUtil.CLAIM_URI3));
       
        int count = claimDAO.getDialectCount();
        TestCase.assertEquals(2, count);
        List<ClaimMapping> lstActual = claimDAO.loadClaimMappings();
        ClaimMapping cm1 = lstActual.get(0);
        String claimUri = cm1.getClaim().getClaimUri();
        if (ClaimTestUtil.CLAIM_URI1.equals(claimUri)) {
            this.assertClaimMapping(claims.get(ClaimTestUtil.CLAIM_URI1), cm1);
        } else if (ClaimTestUtil.CLAIM_URI2.equals(claimUri)) {
            this.assertClaimMapping(claims.get(ClaimTestUtil.CLAIM_URI2), cm1);
        } else if (ClaimTestUtil.CLAIM_URI3.equals(claimUri)) {
            this.assertClaimMapping(claims.get(ClaimTestUtil.CLAIM_URI3), cm1);
        } else {
            TestCase.assertTrue(false);
        }
       
        //delete
        claimDAO.deleteClaimMapping(claims.get(ClaimTestUtil.CLAIM_URI2));
        count = claimDAO.getDialectCount();
        TestCase.assertEquals(2, count);

        //update
        claims.get(ClaimTestUtil.CLAIM_URI1).setMappedAttribute("zorus");
        claimDAO.updateClaim(claims.get(ClaimTestUtil.CLAIM_URI1));
    }

    public void checkProfilePersistStuff() throws Exception {
        //test add
        profileDAO.addProfileConfig(profConfigs.get(ClaimTestUtil.HOME_PROFILE_NAME));
        Map<String, ProfileConfiguration> map = profileDAO.loadProfileConfigs();
        TestCase.assertEquals(1, map.size());
        ProfileConfiguration gotConfig = map.get(ClaimTestUtil.HOME_PROFILE_NAME);
        TestCase.assertEquals(gotConfig.getHiddenClaims().get(0), ClaimTestUtil.CLAIM_URI1);
        TestCase.assertEquals(gotConfig.getInheritedClaims().size(), 0);
        TestCase.assertEquals(gotConfig.getOverriddenClaims().size(), 0);
       
        //test update
        ProfileConfiguration profConfig = profConfigs.get(ClaimTestUtil.HOME_PROFILE_NAME);
        profConfig.setInheritedClaims(new ArrayList<String>());
        profConfig.addOverriddenClaim(ClaimTestUtil.CLAIM_URI3);
        profileDAO.updateProfileConfig(profConfig);
        map = profileDAO.loadProfileConfigs();
        gotConfig = map.get(profConfig.getProfileName());
        TestCase.assertEquals(gotConfig.getHiddenClaims().get(0), ClaimTestUtil.CLAIM_URI1);
        TestCase.assertEquals(gotConfig.getInheritedClaims().size(),0);
        TestCase.assertEquals(gotConfig.getOverriddenClaims().get(0), ClaimTestUtil.CLAIM_URI3);
       
        //test delete
        profileDAO.deleteProfileConfig(profConfig);
        map = profileDAO.loadProfileConfigs();
        TestCase.assertEquals(0, map.size());
       
        profileDAO.addProfileConfig(profConfig);
    }

    public void checkDeleteDialectStuff() throws Exception {
        claimDAO.deleteDialect("http://wso2.org2/");
    }

    private void assertClaimMapping(ClaimMapping cm1, ClaimMapping cm2) {
        Claim claim1 = cm1.getClaim();
        Claim claim2 = cm2.getClaim();
        TestCase.assertEquals(claim1.getClaimUri(), claim2.getClaimUri());
        TestCase.assertEquals(claim1.getDescription(), claim2.getDescription());
        TestCase.assertEquals(claim1.getDialectURI(), claim1.getDialectURI());
        TestCase.assertEquals(claim1.getDisplayTag(), claim2.getDisplayTag());
        TestCase.assertEquals(claim1.getRegEx(), claim2.getRegEx());
        TestCase.assertEquals(claim1.isRequired(), claim2.isRequired());
        TestCase.assertEquals(claim1.isSupportedByDefault(), claim2.isSupportedByDefault());
        TestCase.assertEquals(cm1.getMappedAttribute(), cm2.getMappedAttribute());
    }

}
TOP

Related Classes of org.wso2.carbon.user.core.claim.ClaimDAOTest

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.