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.references;
22:
23: import com.db4o.internal.*;
24:
25: import db4ounit.*;
26:
27: public class ReferenceSystemRegistryTestCase implements TestLifeCycle {
28:
29: private ReferenceSystemRegistry _registry;
30: private ReferenceSystem _referenceSystem1;
31: private ReferenceSystem _referenceSystem2;
32:
33: private static int TEST_ID = 5;
34:
35: public void setUp() throws Exception {
36: _registry = new ReferenceSystemRegistry();
37: _referenceSystem1 = new TransactionalReferenceSystem();
38: _referenceSystem2 = new TransactionalReferenceSystem();
39: _registry.addReferenceSystem(_referenceSystem1);
40: _registry.addReferenceSystem(_referenceSystem2);
41: }
42:
43: public void tearDown() throws Exception {
44:
45: }
46:
47: public void testRemoveId() {
48: addTestReference();
49: _registry.removeId(TEST_ID);
50: assertTestReferenceNotPresent();
51: }
52:
53: public void testRemoveNull() {
54: _registry.removeObject(null);
55: }
56:
57: public void testRemoveObject() {
58: ObjectReference testReference = addTestReference();
59: _registry.removeObject(testReference.getObject());
60: assertTestReferenceNotPresent();
61: }
62:
63: public void testRemoveReference() {
64: ObjectReference testReference = addTestReference();
65: _registry.removeReference(testReference);
66: assertTestReferenceNotPresent();
67: }
68:
69: public void testRemoveReferenceSystem() {
70: addTestReference();
71: _registry.removeReferenceSystem(_referenceSystem1);
72: _registry.removeId(TEST_ID);
73: Assert.isNotNull(_referenceSystem1.referenceForId(TEST_ID));
74: Assert.isNull(_referenceSystem2.referenceForId(TEST_ID));
75: }
76:
77: private void assertTestReferenceNotPresent() {
78: Assert.isNull(_referenceSystem1.referenceForId(TEST_ID));
79: Assert.isNull(_referenceSystem2.referenceForId(TEST_ID));
80: }
81:
82: private ObjectReference addTestReference() {
83: ObjectReference ref = new ObjectReference(TEST_ID);
84: ref.setObject(new Object());
85: _referenceSystem1.addExistingReference(ref);
86: _referenceSystem2.addExistingReference(ref);
87: return ref;
88: }
89:
90: }
|