/* * Copyright (c) 2008, SQL Power Group Inc. * * This file is part of Power*Architect. * * Power*Architect is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * Power*Architect 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package ca.sqlpower.sqlobject; import junit.framework.TestCase; /** * Test the MagicEnabled stuff in SQLObject */ public class SQLObjectMagicTest extends TestCase { SQLObject parent; SQLObject child = new SQLIndex(); @Override protected void setUp() throws Exception { child.setName("Test index"); parent = new SQLTable(); parent.setPopulated(true); parent.addChild(child); } public void testOneLevel() { assertTrue(child.isMagicEnabled()); child.setMagicEnabled(false); assertFalse(child.isMagicEnabled()); child.setMagicEnabled(true); assertTrue(child.isMagicEnabled()); } public void testMultipleDisables() { assertTrue(child.isMagicEnabled()); child.setMagicEnabled(false); child.setMagicEnabled(false); // twice in a row, just to be sure :-) child.setMagicEnabled(true); assertFalse(child.isMagicEnabled()); child.setMagicEnabled(true); assertTrue(child.isMagicEnabled()); } public void testParentChild() { assertTrue(child.isMagicEnabled()); parent.setMagicEnabled(false); assertFalse(child.isMagicEnabled()); child.setMagicEnabled(false); assertFalse(child.isMagicEnabled()); child.setMagicEnabled(true); assertFalse(child.isMagicEnabled()); // Because parent still magic-enabled parent.setMagicEnabled(true); try { child.setMagicEnabled(true); // Should object } catch (Throwable e) { System.out.println("Caught expected: " + e); } assertTrue(child.isMagicEnabled()); child.setMagicEnabled(false); assertFalse(child.isMagicEnabled()); // finally } }