org.wso2.carbon.user.core.claim.ClaimDAOTest.java Source code

Java tutorial

Introduction

Here is the source code for org.wso2.carbon.user.core.claim.ClaimDAOTest.java

Source

/*
*  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());
    }

}