001/**
002 * Copyright 2005-2014 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016package org.kuali.rice.kew.xml.export;
017
018import org.kuali.rice.core.api.CoreApiServiceLocator;
019import org.kuali.rice.kew.export.KewExportDataSet;
020import org.kuali.rice.kim.api.group.Group;
021import org.kuali.rice.kim.api.group.GroupService;
022import org.kuali.rice.kim.api.identity.IdentityService;
023import org.kuali.rice.kim.api.services.KimApiServiceLocator;
024import org.kuali.rice.test.BaselineTestCase;
025
026import java.util.List;
027
028import static org.junit.Assert.assertTrue;
029
030/**
031 * This is a description of what this class does - jjhanso don't forget to fill this in.
032 *
033 * @author Kuali Rice Team (rice.collab@kuali.org)
034 *
035 */
036@BaselineTestCase.BaselineMode(BaselineTestCase.Mode.NONE)
037public class GroupXmlExporterTest extends XmlExporterTestCase {
038
039    /**
040     * This overridden method ...
041     *
042     * @see org.kuali.rice.kew.xml.export.XmlExporterTestCase#assertExport()
043     */
044    @Override
045    protected void assertExport() throws Exception {
046        IdentityService identityService = KimApiServiceLocator.getIdentityService();
047        GroupService groupService = KimApiServiceLocator.getGroupService();
048        List<? extends Group> oldGroups = groupService.getGroupsByPrincipalId(
049                identityService.getPrincipalByPrincipalName("ewestfal").getPrincipalId());
050
051        KewExportDataSet dataSet = new KewExportDataSet();
052        dataSet.getGroups().addAll(oldGroups);
053        byte[] xmlBytes = CoreApiServiceLocator.getXmlExporterService().export(dataSet.createExportDataSet());
054        assertTrue("XML should be non empty.", xmlBytes != null && xmlBytes.length > 0);
055
056        StringBuffer output = new StringBuffer();
057        for (int i=0; i < xmlBytes.length; i++){
058            output.append((char)xmlBytes[i]);
059        }
060        System.out.print(output.toString());
061        // now clear the tables
062        //ClearDatabaseLifecycle clearLifeCycle = new ClearDatabaseLifecycle();
063        //clearLifeCycle.getTablesToClear().add("EN_RULE_BASE_VAL_T");
064        //clearLifeCycle.getTablesToClear().add("EN_RULE_ATTRIB_T");
065        //clearLifeCycle.getTablesToClear().add("EN_RULE_TMPL_T");
066        //clearLifeCycle.getTablesToClear().add("EN_DOC_TYP_T");
067        //clearLifeCycle.start();
068        //new ClearCacheLifecycle().stop();
069        //KimImplServiceLocator.getGroupService().
070
071        // import the exported xml
072        //loadXmlStream(new BufferedInputStream(new ByteArrayInputStream(xmlBytes)));
073/*
074        List newRules = KEWServiceLocator.getRuleService().fetchAllRules(true);
075        assertEquals("Should have same number of old and new Rules.", oldRules.size(), newRules.size());
076        for (Iterator iterator = oldRules.iterator(); iterator.hasNext();) {
077            RuleBaseValues oldRule = (RuleBaseValues) iterator.next();
078            boolean foundRule = false;
079            for (Iterator iterator2 = newRules.iterator(); iterator2.hasNext();) {
080                RuleBaseValues newRule = (RuleBaseValues) iterator2.next();
081                if (oldRule.getDescription().equals(newRule.getDescription())) {
082                    assertRuleExport(oldRule, newRule);
083                    foundRule = true;
084                }
085            }
086            assertTrue("Could not locate the new rule for description " + oldRule.getDescription(), foundRule);
087        }
088*/
089    }
090
091}