RootInjectionTest.java |
/* PAT: Persistent Applications Toolkit (patsystem.sf.net) * Copyright (C) 2004, 2005 Tomasz Nazar, nthx at irc dot pl * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Full version of the license is /docs/LICENSE.txt */ package org.nthx.pat.tests; import org.nthx.pat.Pat; import junit.framework.AssertionFailedError; /** Tests for "root injecting". * * @version $Id: RootInjectionTest.java 3725 2005-06-09 23:57:03Z nthx $ * @author nthx@users.sourceforge.net */ public class RootInjectionTest extends PatTestCase { public void setUp() { } // ---------------------------------------- // ---- Tests ----------------------------- // ---------------------------------------- /** @@pat.root_injected */ private static TestRoot rootCandidate; public void testRootInjectionIsOk() { Pat.unload(); cleanPrevaylersRepo(); assertEquals("Should be 0 files - clean repo!", 0, getFilesCountInRepo()); TestRoot root = new TestRoot(); root.newUser("user 1"); assertEquals("Should be 2 files", 2, getFilesCountInRepo()); assertEquals("Should be 1 user", 1, root.getUsers().size()); assertEquals("Should be the same objects", root, rootCandidate); if (root != rootCandidate) throw new AssertionError("Should be the same objects"); } public void testBadUsageOfRootReference() { Pat.unload(); cleanPrevaylersRepo(); assertEquals("Should be 0 files - clean repo!", 0, getFilesCountInRepo()); TestRoot root = new TestRoot(); root.setUpRootReference(root); root.methodWithBadUseOfRootReference("not important"); assertEquals("Should be 1 user", 1, root.getUsers().size()); //should pass //we don't want to take snapshot //((Persisteble)root).takeSnapshot(); Pat.unload(); try { root = new TestRoot(); //should fail! }catch (AssertionFailedError e) { throw new AssertionFailedError("Creating root 2nd time should fail."); } /* Above 'catch' section won't be reached. And it should. * But.. * PAT (Prevayler) catches all exceptions.. */ } // ---------------------------------------- // ---- JUnit's stuff --------------------- // ---------------------------------------- public RootInjectionTest(String arg) { super(arg); } public static void main(String[] args) { junit.textui.TestRunner.run(RootInjectionTest.class); } }