Package com.sun.jini.test.impl.discoverymanager

Source Code of com.sun.jini.test.impl.discoverymanager.BadDiscoveryListener

/*
* 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.qa.harness.TestException;
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 {
        discoveryMgr.addDiscoveryListener(new BadTestListener(logger));
        super.run();
        logger.log(Level.FINE, "Adding bad listener");
        boolean exceptionHappened = false;
        try {
            discoveryMgr.addDiscoveryListener(new BadTestListener(logger));
        } catch (BadTestListener.BadListenerException e) {
            logger.log(Level.FINEST, "Expected exception happened");
            exceptionHappened = true;
        }
        if (!exceptionHappened) {
            throw new TestException(
                    "Initial discovery exception not thrown back to test program");
        }
        logger.log(Level.FINE, "adding a new listener to the "
                + "lookup discovery manager ... ");
        newListener.setLookupsToDiscover(initLookupsToStart,
                locatorsToDiscover, groupsToDiscover);
        discoveryMgr.addDiscoveryListener(newListener);
        waitForDiscovery(newListener);
    }
}
TOP

Related Classes of com.sun.jini.test.impl.discoverymanager.BadDiscoveryListener

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.