001    /**
002     * Copyright 2005-2012 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     */
016    package org.kuali.rice.maintainable;
017    
018    import org.junit.Before;
019    import org.junit.Test;
020    import org.kuali.rice.kns.maintenance.KualiMaintainableImpl;
021    import org.kuali.rice.kns.maintenance.Maintainable;
022    
023    import static org.junit.Assert.assertFalse;
024    import static org.junit.Assert.assertTrue;
025    
026    /**
027     * Test methods for default Kuali maintainable implementation.
028     */
029    public class KualiMaintainableTest {
030        Maintainable maintainable = null;
031    
032    
033        @Before
034        public void setUp() throws Exception {
035            maintainable = new KualiMaintainableImpl();
036        }
037    
038        /**
039         * Tests the retrieval of the inactive record display setting when it has not been set (default). Default
040         * should be false according to specification.
041         */
042        @Test
043        public void testGetShowInactiveRecords_Default() throws Exception {
044            boolean displayInactive = maintainable.getShowInactiveRecords("fooCollection");
045            assertTrue("display setting returned true for unset collection", displayInactive);
046        }
047        
048        /**
049         * Tests method throws an exception when given name is null.
050         */
051        @Test
052        public void testGetShowInactiveRecords_NullParam() throws Exception {
053            boolean failedAsExpected = false;
054            try {
055                maintainable.getShowInactiveRecords(null);
056            }
057            catch (IllegalArgumentException expected) {
058                failedAsExpected = true;
059            }
060            
061            assertTrue("exception not thrown for null collection name", failedAsExpected);
062        }
063        
064        /**
065         * Tests setting to display inactive records for a collection.
066         */
067        @Test
068        public void testSetShowInactiveRecords_DisplayCollectionInActive() throws Exception {
069            maintainable.setShowInactiveRecords("collection1", true);
070            assertTrue("state failure on set inactive display to true", maintainable.getShowInactiveRecords("collection1"));
071        }
072        
073        /**
074         * Tests setting to not display inactive records for a collection.
075         */
076        @Test
077        public void testSetShowInactiveRecords_NoDisplayCollectionInActive() throws Exception {
078            maintainable.setShowInactiveRecords("collection1", false);
079            assertFalse("state failure on set inactive display to false", maintainable.getShowInactiveRecords("collection1"));
080        }
081        
082        /**
083         * Tests setting to display inactive records for a sub-collection.
084         */
085        @Test
086        public void testSetShowInactiveRecords_DisplaySubCollectionInActive() throws Exception {
087            maintainable.setShowInactiveRecords("collection1.subCollection", true);
088            assertTrue("state failure on set inactive display to true", maintainable.getShowInactiveRecords("collection1.subCollection"));
089        }
090        
091        /**
092         * Tests setting to not display inactive records for a sub-collection.
093         */
094        @Test
095        public void testSetShowInactiveRecords_NoDisplaySubCollectionInActive() throws Exception {
096            maintainable.setShowInactiveRecords("collection1.subCollection", false);
097            assertFalse("state failure on set inactive display to false", maintainable.getShowInactiveRecords("collection1.subCollection"));
098        }
099        
100        /**
101         * Tests method throws an exception when given name is null.
102         */
103        @Test
104        public void testSetShowInactiveRecords_NullParam() throws Exception {
105            boolean failedAsExpected = false;
106            try {
107                maintainable.setShowInactiveRecords(null, true);
108            }
109            catch (IllegalArgumentException expected) {
110                failedAsExpected = true;
111            }
112            
113            assertTrue("exception not thrown for null collection name", failedAsExpected);
114        }
115    }