| 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);
}
}