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.");
+    }
+}


Reply via email to