You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@river.apache.org by pa...@apache.org on 2011/05/05 04:09:30 UTC

svn commit: r1099663 - in /river/jtsk/trunk/qa/src/com/sun/jini/test: impl/discoverymanager/ impl/locatordiscovery/ share/

Author: pats
Date: Thu May  5 02:09:29 2011
New Revision: 1099663

URL: http://svn.apache.org/viewvc?rev=1099663&view=rev
Log:
RIVER-395
Bad listener tests, first version.

Added:
    river/jtsk/trunk/qa/src/com/sun/jini/test/impl/discoverymanager/BadDiscoveryListener.java
    river/jtsk/trunk/qa/src/com/sun/jini/test/impl/discoverymanager/BadDiscoveryListener.td
    river/jtsk/trunk/qa/src/com/sun/jini/test/impl/locatordiscovery/BadLocatorDiscoveryListener.java
    river/jtsk/trunk/qa/src/com/sun/jini/test/impl/locatordiscovery/BadLocatorDiscoveryListener.td
    river/jtsk/trunk/qa/src/com/sun/jini/test/share/BadTestListener.java

Added: river/jtsk/trunk/qa/src/com/sun/jini/test/impl/discoverymanager/BadDiscoveryListener.java
URL: http://svn.apache.org/viewvc/river/jtsk/trunk/qa/src/com/sun/jini/test/impl/discoverymanager/BadDiscoveryListener.java?rev=1099663&view=auto
==============================================================================
--- river/jtsk/trunk/qa/src/com/sun/jini/test/impl/discoverymanager/BadDiscoveryListener.java (added)
+++ river/jtsk/trunk/qa/src/com/sun/jini/test/impl/discoverymanager/BadDiscoveryListener.java Thu May  5 02:09:29 2011
@@ -0,0 +1,96 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+package com.sun.jini.test.impl.discoverymanager;
+
+import java.util.logging.Level;
+
+import com.sun.jini.test.share.BadTestListener;
+import com.sun.jini.test.spec.discoverymanager.Discovered;
+
+/**
+ * With respect to the <code>addDiscoveryListener</code> method, this class
+ * verifies that the <code>LookupDiscoveryManager</code> utility operates in
+ * a manner consistent with the specification.
+ * <p>
+ * In particular, this class verifies that upon adding a new instance of
+ * <code>DiscoveryListener</code> to a lookup discovery manager configured
+ * to discover a set of lookup services through a MIX of group discovery and
+ * locator discovery, the lookup discovery manager will send a discovered
+ * event - with the appropriate contents - to that listener for each
+ * lookup service that satisfies the discovery criteria.
+ *
+ * The environment in which this class expects to operate is as follows:
+ * <p><ul>
+ *    <li> N lookup services having locator L0i, and belonging to groups
+ *         {G0i,G1i,G2i}, where i = 0 ... N
+ *    <li> one lookup discovery manager configured to discover some of the
+ *         lookups by only group discovery, some by only locator discovery,
+ *         and some by both group and locator discovery
+ *    <li> one instance of DiscoveryListener registered with the lookup
+ *         discovery manager
+ *    <li> after discovery, a new instance of DiscoveryListener is added to
+ *         the lookup discovery manager utility through the invocation of the
+ *         addDiscoveryListener method
+ * </ul><p>
+ * 
+ * If the lookup discovery manager functions as specified, then each of the
+ * client's listeners will receive the expected number of discovery events,
+ * with the expected contents.
+ */
+public class BadDiscoveryListener extends Discovered {
+
+    protected LookupListener newListener = new LookupListener();;
+
+    /** Executes the current test by doing the following:
+     * <p><ul>
+     *    <li> creates N lookup services having locator L0i, and belonging
+     *         to groups {G0i,G1i,G2i}, where i = 0 ... N
+     *    <li> creates a lookup discovery manager (LDM) initially configured
+     *         to discover NO_GROUPS and NO_LOCATORS
+     *    <li> reconfigures the LDM to discover some of the lookups by only
+     *         group discovery, some by only locator discovery, and some
+     *         by both group and locator discovery
+     *    <li> verifies that the discovery process is working by waiting
+     *         for the expected discovery events
+     *    <li> verifies that the lookup discovery manager utility under test
+     *         sends the expected events, with the expected contents to
+     *         the first listener
+     *    <li> invokes the addDiscoveryListener method on the lookup discovery
+     *         manager to add a new listener for the original set of lookups
+     *         to discover
+     *    <li> verifies that the lookup discovery manager utility under test
+     *         sends the expected events, with the expected contents to
+     *         the first listener
+     *    </ul>
+     */
+    public void run() throws Exception {
+        super.run();
+        logger.log(Level.FINE, "Adding bad listener");
+        discoveryMgr.addDiscoveryListener(new BadTestListener(logger));
+        logger.log(Level.FINE, "adding a new listener to the "
+		   +"lookup discovery manager ... ");
+        newListener.setLookupsToDiscover(initLookupsToStart,
+                                         locatorsToDiscover,
+                                         groupsToDiscover);
+        discoveryMgr.addDiscoveryListener(newListener);
+        waitForDiscovery(newListener);
+    }
+}
+
+

Added: river/jtsk/trunk/qa/src/com/sun/jini/test/impl/discoverymanager/BadDiscoveryListener.td
URL: http://svn.apache.org/viewvc/river/jtsk/trunk/qa/src/com/sun/jini/test/impl/discoverymanager/BadDiscoveryListener.td?rev=1099663&view=auto
==============================================================================
--- river/jtsk/trunk/qa/src/com/sun/jini/test/impl/discoverymanager/BadDiscoveryListener.td (added)
+++ river/jtsk/trunk/qa/src/com/sun/jini/test/impl/discoverymanager/BadDiscoveryListener.td Thu May  5 02:09:29 2011
@@ -0,0 +1,4 @@
+testClass=com.sun.jini.test.impl.discoverymanager.BadDiscoveryListener
+testCategories=discoverymanager,discoverymanager_impl
+include0=discoverymanager.properties
+include1=com/sun/jini/test/share/reggie3_2.properties

Added: river/jtsk/trunk/qa/src/com/sun/jini/test/impl/locatordiscovery/BadLocatorDiscoveryListener.java
URL: http://svn.apache.org/viewvc/river/jtsk/trunk/qa/src/com/sun/jini/test/impl/locatordiscovery/BadLocatorDiscoveryListener.java?rev=1099663&view=auto
==============================================================================
--- river/jtsk/trunk/qa/src/com/sun/jini/test/impl/locatordiscovery/BadLocatorDiscoveryListener.java (added)
+++ river/jtsk/trunk/qa/src/com/sun/jini/test/impl/locatordiscovery/BadLocatorDiscoveryListener.java Thu May  5 02:09:29 2011
@@ -0,0 +1,85 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+package com.sun.jini.test.impl.locatordiscovery;
+
+import java.util.logging.Level;
+
+import net.jini.core.discovery.LookupLocator;
+
+import com.sun.jini.test.share.BadTestListener;
+import com.sun.jini.test.share.LocatorsUtil;
+import com.sun.jini.test.spec.locatordiscovery.AbstractBaseTest;
+
+/**
+ * With respect to the current implementation of the
+ * <code>LookupLocatorDiscovery</code> utility, this class verifies that if the
+ * <code>addDiscoveryListener</code> method is invoked after the lookup locator
+ * discovery utility has been terminated, an <code>IllegalStateException</code>
+ * results.
+ * 
+ * The environment in which this class expects to operate is as follows:
+ * <p>
+ * <ul>
+ * <li>no lookup services
+ * <li>one instance of LookupLocatorDiscovery
+ * <li>after invoking the terminate method on the lookup locator discovery
+ * utility, the addDiscoveryListener method is invoked
+ * </ul>
+ * <p>
+ * 
+ * If the <code>LookupLocatorDiscovery</code> utility functions as intended,
+ * upon invoking the <code>addDiscoveryListener</code> method after the that
+ * utility has been terminated, an <code>IllegalStateException</code> will
+ * occur.
+ * 
+ */
+public class BadLocatorDiscoveryListener extends AbstractBaseTest {
+
+    /**
+     * Tests listener throwing exception by adding a bad listener. Remaining
+     * code based on AddLocators.java.
+     */
+    public void run() throws Exception {
+        logger.log(Level.FINE, "run()");
+        /* Add the bad listener. */
+        logger.log(Level.FINE, "Adding bad listener");
+        locatorDiscovery.addDiscoveryListener(new BadTestListener(logger));
+        /* Start the additional lookup services */
+        startAddLookups();
+        /* Verify discovery of the initial lookups */
+        doDiscovery(initLookupsToStart, mainListener);
+        /*
+         * Configure the listener's expected event state for the additional
+         * lookup services
+         */
+        mainListener.clearAllEventInfo();
+        mainListener.setLookupsToDiscover(addLookupsToStart);
+        /*
+         * Configure the lookup locator discovery utility to discover the
+         * additional lookups
+         */
+        LookupLocator[] locsToAdd = toLocatorArray(addLookupsToStart);
+        locatorDiscovery.addLocators(locsToAdd);
+        logger.log(Level.FINE, "added additional locators to "
+                + "lookup locator discovery --");
+        LocatorsUtil.displayLocatorSet(locsToAdd, "locator", Level.FINE);
+        /* Verify discovery of the added lookups */
+        waitForDiscovery(mainListener);
+    }
+}

Added: river/jtsk/trunk/qa/src/com/sun/jini/test/impl/locatordiscovery/BadLocatorDiscoveryListener.td
URL: http://svn.apache.org/viewvc/river/jtsk/trunk/qa/src/com/sun/jini/test/impl/locatordiscovery/BadLocatorDiscoveryListener.td?rev=1099663&view=auto
==============================================================================
--- river/jtsk/trunk/qa/src/com/sun/jini/test/impl/locatordiscovery/BadLocatorDiscoveryListener.td (added)
+++ river/jtsk/trunk/qa/src/com/sun/jini/test/impl/locatordiscovery/BadLocatorDiscoveryListener.td Thu May  5 02:09:29 2011
@@ -0,0 +1,4 @@
+testClass=BadLocatorDiscoveryListener
+testCategories=locatordiscovery,locatordiscovery_impl,impllocatordiscovery
+include0=locatordiscovery.properties
+include1=com/sun/jini/test/share/reggie3_2.properties

Added: river/jtsk/trunk/qa/src/com/sun/jini/test/share/BadTestListener.java
URL: http://svn.apache.org/viewvc/river/jtsk/trunk/qa/src/com/sun/jini/test/share/BadTestListener.java?rev=1099663&view=auto
==============================================================================
--- river/jtsk/trunk/qa/src/com/sun/jini/test/share/BadTestListener.java (added)
+++ river/jtsk/trunk/qa/src/com/sun/jini/test/share/BadTestListener.java Thu May  5 02:09:29 2011
@@ -0,0 +1,50 @@
+/**
+ * 
+ */
+package com.sun.jini.test.share;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import net.jini.discovery.DiscoveryChangeListener;
+import net.jini.discovery.DiscoveryEvent;
+
+/**
+ * Listener for testing notify code resiliance in
+ * the face of listener exceptions. Each of the event
+ * handling methods throws an exception.
+ */
+public class BadTestListener implements DiscoveryChangeListener {
+    protected Logger logger;
+
+    public BadTestListener(Logger logger) {
+        this.logger = logger;
+    }
+
+    public void discarded(DiscoveryEvent e) {
+        logger.log(Level.FINEST,
+                "BadListener.discarded about to throw exception");
+        throw new BadListenerException("Discarded");
+
+    }
+
+    public void discovered(DiscoveryEvent e) {
+        logger.log(Level.FINEST,
+                "BadListener.discovered about to throw exception");
+        throw new BadListenerException("Discovered");
+    }
+
+    public void changed(DiscoveryEvent e) {
+        logger.log(Level.FINEST,
+                "Bad listener changed about to throw exception");
+        throw new BadListenerException("Changed");
+    }
+
+    private static class BadListenerException extends RuntimeException {
+        private static final long serialVersionUID = 1L;
+
+        public BadListenerException(String message) {
+            super(message);
+        }
+    }
+}
\ No newline at end of file