Author: clr
Date: Mon Mar 28 11:39:20 2005
New Revision: 159284
URL: http://svn.apache.org/viewcvs?view=rev&rev=159284
Log:
added InstanceLifecycleEventTest
Added:
incubator/jdo/trunk/api20/test/java/javax/jdo/listener/InstanceLifecycleEventTest.java
Modified:
incubator/jdo/trunk/api20/src/java/javax/jdo/Bundle.properties
incubator/jdo/trunk/api20/src/java/javax/jdo/listener/InstanceLifecycleEvent.java
Modified: incubator/jdo/trunk/api20/src/java/javax/jdo/Bundle.properties
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/api20/src/java/javax/jdo/Bundle.properties?view=diff&r1=159283&r2=159284
==============================================================================
--- incubator/jdo/trunk/api20/src/java/javax/jdo/Bundle.properties (original)
+++ incubator/jdo/trunk/api20/src/java/javax/jdo/Bundle.properties Mon Mar 28 11:39:20 2005
@@ -45,3 +45,4 @@
EXC_NamingException: A NamingException was thrown while obtaining the \
PersistenceManagerFactory at "{0}" from JNDI.
EXC_StringWrongLength: There must be exactly one character in the input String for CharIdentity.
+EXC_IllegalEventType:The event type is outside the range of valid event types.
Modified: incubator/jdo/trunk/api20/src/java/javax/jdo/listener/InstanceLifecycleEvent.java
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/api20/src/java/javax/jdo/listener/InstanceLifecycleEvent.java?view=diff&r1=159283&r2=159284
==============================================================================
--- incubator/jdo/trunk/api20/src/java/javax/jdo/listener/InstanceLifecycleEvent.java (original)
+++ incubator/jdo/trunk/api20/src/java/javax/jdo/listener/InstanceLifecycleEvent.java Mon
Mar 28 11:39:20 2005
@@ -21,6 +21,8 @@
package javax.jdo.listener;
+import javax.jdo.spi.I18NHelper;
+
/**
* This is the event class used in life cycle event notifications.
* <P>Note that although InstanceLifecycleEvent inherits Serializable interface
@@ -32,6 +34,7 @@
public class InstanceLifecycleEvent
extends java.util.EventObject {
+ private static final int FIRST_EVENT_TYPE = 0;
public static final int CREATE = 0;
public static final int LOAD = 1;
public static final int STORE = 2;
@@ -40,6 +43,11 @@
public static final int DIRTY = 5;
public static final int DETACH = 6;
public static final int ATTACH = 7;
+ private static final int LAST_EVENT_TYPE = 7;
+
+ /** The Internationalization message helper.
+ */
+ private final static I18NHelper msg = I18NHelper.getInstance ("javax.jdo.Bundle"); //NOI18N
/**
* The event type that triggered the construction of this event object.
@@ -59,9 +67,7 @@
* @since 2.0
*/
public InstanceLifecycleEvent (Object source, int type) {
- super (source);
- eventType = type;
- target = null;
+ this(source, type, null);
}
/**
@@ -74,6 +80,9 @@
*/
public InstanceLifecycleEvent (Object source, int type, Object target) {
super (source);
+ if (type < FIRST_EVENT_TYPE || type > LAST_EVENT_TYPE) {
+ throw new IllegalArgumentException(msg.msg("EXC_IllegalEventType"));
+ }
eventType = type;
this.target = target;
}
Added: incubator/jdo/trunk/api20/test/java/javax/jdo/listener/InstanceLifecycleEventTest.java
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/api20/test/java/javax/jdo/listener/InstanceLifecycleEventTest.java?view=auto&rev=159284
==============================================================================
--- incubator/jdo/trunk/api20/test/java/javax/jdo/listener/InstanceLifecycleEventTest.java
(added)
+++ incubator/jdo/trunk/api20/test/java/javax/jdo/listener/InstanceLifecycleEventTest.java
Mon Mar 28 11:39:20 2005
@@ -0,0 +1,130 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * InstanceLifecycleEventTest.java
+ *
+ */
+
+package javax.jdo.listener;
+
+import javax.jdo.util.AbstractTest;
+import javax.jdo.util.BatchTestRunner;
+
+/**
+ * Tests that instances of InstanceLifecycleEvent can be created and
+ * that the source, type, and target instances are correct.
+ */
+public class InstanceLifecycleEventTest extends AbstractTest {
+
+ Object created = new Object();
+ Object loaded = new Object();
+ Object stored = new Object();
+ Object cleared = new Object();
+ Object deleted = new Object();
+ Object dirtied = new Object();
+ Object attached = new Object();
+ Object attachTarget = new Object();
+ Object detached = new Object();
+ Object detachTarget = new Object();
+
+ /** Creates a new instance of SingleFieldIdentityTest */
+ public InstanceLifecycleEventTest() {
+ }
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String[] args) {
+ BatchTestRunner.run(InstanceLifecycleEventTest.class);
+ }
+
+ public void testConstructorCreateEvent() {
+ InstanceLifecycleEvent e = new InstanceLifecycleEvent
+ (created, InstanceLifecycleEvent.CREATE);
+ assertSame ("Create source differs.", created, e.getSource());
+ assertEquals ("Create type differs.", InstanceLifecycleEvent.CREATE, e.getEventType());
+ }
+
+ public void testConstructorLoadEvent() {
+ InstanceLifecycleEvent e = new InstanceLifecycleEvent
+ (loaded, InstanceLifecycleEvent.LOAD);
+ assertSame ("Load source differs.", loaded, e.getSource());
+ assertEquals ("Load type differs.", InstanceLifecycleEvent.LOAD, e.getEventType());
+ }
+
+ public void testConstructorStoreEvent() {
+ InstanceLifecycleEvent e = new InstanceLifecycleEvent
+ (stored, InstanceLifecycleEvent.STORE);
+ assertSame ("Store source differs.", stored, e.getSource());
+ assertEquals ("Store type differs.", InstanceLifecycleEvent.STORE, e.getEventType());
+ }
+
+ public void testConstructorClearEvent() {
+ InstanceLifecycleEvent e = new InstanceLifecycleEvent
+ (cleared, InstanceLifecycleEvent.CLEAR);
+ assertSame ("Clear source differs.", cleared, e.getSource());
+ assertEquals ("Clear type differs.", InstanceLifecycleEvent.CLEAR, e.getEventType());
+ }
+
+ public void testConstructorDeleteEvent() {
+ InstanceLifecycleEvent e = new InstanceLifecycleEvent
+ (deleted, InstanceLifecycleEvent.DELETE);
+ assertSame ("Delete source differs.", deleted, e.getSource());
+ assertEquals ("Delete type differs.", InstanceLifecycleEvent.DELETE, e.getEventType());
+ }
+
+ public void testConstructorDirtyEvent() {
+ InstanceLifecycleEvent e = new InstanceLifecycleEvent
+ (dirtied, InstanceLifecycleEvent.DIRTY);
+ assertSame ("Dirty source differs.", dirtied, e.getSource());
+ assertEquals ("Dirty type differs.", InstanceLifecycleEvent.DIRTY, e.getEventType());
+ }
+
+ public void testConstructorDetachEvent() {
+ InstanceLifecycleEvent e = new InstanceLifecycleEvent
+ (detached, InstanceLifecycleEvent.DETACH, detachTarget);
+ assertSame ("Detach source differs.", detached, e.getSource());
+ assertEquals ("Detach type differs.", InstanceLifecycleEvent.DETACH, e.getEventType());
+ assertSame ("Detach target differs.", detachTarget, e.getTarget());
+ }
+
+ public void testConstructorAttachEvent() {
+ InstanceLifecycleEvent e = new InstanceLifecycleEvent
+ (attached, InstanceLifecycleEvent.ATTACH, attachTarget);
+ assertSame ("Attach source differs.", attached, e.getSource());
+ assertEquals ("Attach type differs.", InstanceLifecycleEvent.ATTACH, e.getEventType());
+ assertSame ("Attach target differs.", attachTarget, e.getTarget());
+ }
+
+ public void testIllegalConstructorTooSmall() {
+ try {
+ InstanceLifecycleEvent e = new InstanceLifecycleEvent (new Object(), -1);
+ } catch (IllegalArgumentException e) {
+ return; // good catch
+ }
+ fail ("Invalid event did not throw IllegalArgumentException.");
+ }
+
+ public void testIllegalConstructorTooBig() {
+ try {
+ InstanceLifecycleEvent e = new InstanceLifecycleEvent (new Object(), 8);
+ } catch (IllegalArgumentException e) {
+ return; // good catch
+ }
+ fail ("Invalid event did not throw IllegalArgumentException.");
+ }
+}
|