/*
* The Kuali Financial System, a comprehensive financial management system for higher education.
*
* Copyright 2005-2014 The Kuali Foundation
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program 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 Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.kuali.kfs.sys.context;
import org.kuali.kfs.coa.businessobject.Account;
import org.kuali.kfs.gl.batch.service.impl.BalancingServiceBaseImpl;
import org.kuali.kfs.gl.businessobject.Balance;
import org.kuali.kfs.gl.businessobject.Entry;
import org.kuali.kfs.sys.ConfigureContext;
import org.kuali.kfs.sys.batch.service.impl.AutoDisapproveDocumentsServiceImpl;
import org.kuali.rice.coreservice.framework.parameter.ParameterService;
/**
* Yes, we need to test our test utilities since they seem to be misbehaving in some areas.
*
*/
@ConfigureContext
public class TestUtilsTest extends KualiTestBase {
public static final String TEST_PARAM_NAME = "FUND_GROUP_DENOTES_CG_IND";
public static final Class TEST_PARAM_COMPONENT = Account.class;
public void testSetSystemParameter1() throws Exception {
String dbValue = SpringContext.getBean(ParameterService.class).getParameterValueAsString(TEST_PARAM_COMPONENT, TEST_PARAM_NAME);
assertEquals( "indicator must be true", "Y", dbValue );
TestUtils.setSystemParameter(TEST_PARAM_COMPONENT, TEST_PARAM_NAME, "N");
String cachedValue = SpringContext.getBean(ParameterService.class).getParameterValueAsString(TEST_PARAM_COMPONENT, TEST_PARAM_NAME);
assertEquals( "indicator must be false when pulled after the set", "N", cachedValue );
}
public void testSetSystemParameter2() throws Exception {
String dbValue = SpringContext.getBean(ParameterService.class).getParameterValueAsString(TEST_PARAM_COMPONENT, TEST_PARAM_NAME);
assertEquals( "indicator must be true", "Y", dbValue );
}
@ConfigureContext(shouldCommitTransactions=true)
public void testSetSystemParameterFailsWhenNonRollback() throws Exception {
try {
TestUtils.setSystemParameter(TEST_PARAM_COMPONENT, TEST_PARAM_NAME, "N");
fail( "TestUtils.setSystemParameter() did not fail when called from a committing test.");
} catch ( Exception ex ) {
System.err.println( ex.getMessage() );
// failed as expected
}
}
@ConfigureContext(shouldCommitTransactions=false)
public void testSetSystemParameterSucceedsWhenRollback() throws Exception {
try {
TestUtils.setSystemParameter(TEST_PARAM_COMPONENT, TEST_PARAM_NAME, "N");
} catch ( Exception ex ) {
fail( "TestUtils.setSystemParameter() failed when called from a non-committing test: " + ex.getMessage() );
}
}
public void testGetUnproxiedService() {
try {
AutoDisapproveDocumentsServiceImpl autoDisapproveDocumentsService = (AutoDisapproveDocumentsServiceImpl) TestUtils.getUnproxiedService("sysMockAutoDisapproveDocumentsService");
assertNotNull(autoDisapproveDocumentsService);
}
catch (Exception e) {
assertTrue("testGetUnproxiedService failed due to stacktrace: " + e.getMessage(), false);
}
}
}