01: /* Copyright (C) 2004 - 2007 db4objects Inc. http://www.db4o.com
02:
03: This file is part of the db4o open source object database.
04:
05: db4o is free software; you can redistribute it and/or modify it under
06: the terms of version 2 of the GNU General Public License as published
07: by the Free Software Foundation and as clarified by db4objects' GPL
08: interpretation policy, available at
09: http://www.db4o.com/about/company/legalpolicies/gplinterpretation/
10: Alternatively you can write to db4objects, Inc., 1900 S Norfolk Street,
11: Suite 350, San Mateo, CA 94403, USA.
12:
13: db4o is distributed in the hope that it will be useful, but WITHOUT ANY
14: WARRANTY; without even the implied warranty of MERCHANTABILITY or
15: FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16: for more details.
17:
18: You should have received a copy of the GNU General Public License along
19: with this program; if not, write to the Free Software Foundation, Inc.,
20: 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
21: package com.db4o.db4ounit.common.fatalerror;
22:
23: import db4ounit.extensions.AbstractDb4oTestCase;
24:
25: public class FatalExceptionInNestedCallTestCase extends
26: AbstractDb4oTestCase {
27:
28: public static void main(String[] arguments) {
29: new FatalExceptionInNestedCallTestCase().runSolo();
30: }
31:
32: public static class Item {
33:
34: public Item _child;
35:
36: public int _depth;
37:
38: public Item() {
39:
40: }
41:
42: public Item(Item child, int depth) {
43: _child = child;
44: _depth = depth;
45: }
46:
47: }
48:
49: public static class FatalError extends Error {
50:
51: }
52:
53: protected void store() throws Exception {
54: Item childItem = new Item(null, 1);
55: Item parentItem = new Item(childItem, 0);
56: store(parentItem);
57: }
58:
59: public void test() {
60: /* TODO FIXME
61: eventRegistry().updated().addListener(new EventListener4() {
62: public void onEvent(Event4 e, EventArgs args) {
63: ObjectEventArgs objectArgs = (ObjectEventArgs) args;
64: Item item = (Item) objectArgs.object();
65: if(item._depth == 0){
66: throw new FatalError();
67: }
68:
69: }
70: });
71: Query q = this.newQuery(Item.class);
72: q.descend("_depth").constrain(new Integer(0));
73: ObjectSet objectSet = q.execute();
74: final Item parentItem = (Item) objectSet.next();
75: Assert.expect(FatalError.class, new CodeBlock() {
76: public void run() throws Throwable {
77: db().set(parentItem, 3);
78: }
79: });
80: */
81: }
82:
83: // private EventRegistry eventRegistry() {
84: // return EventRegistryFactory.forObjectContainer(db());
85: // }
86:
87: }
|