Package com.sun.jini.test.share

Source Code of com.sun.jini.test.share.DestroyTest

/*
* 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.share;

import java.util.logging.Level;

// Test harness specific classes
import com.sun.jini.qa.harness.TestException;

// All other imports
import java.rmi.*;
import java.io.File;
import com.sun.jini.admin.DestroyAdmin;
import net.jini.admin.Administrable;

import com.sun.jini.qa.harness.QAConfig;


public class DestroyTest extends LookupTestBase {
    /** Directory where the service keeps its persistence */
    private String perdir;

    /** Do we check to see if the dir has been deleted  */
    protected boolean checkDir;

    /** How much we'll wait after destroy() method call (in seconds) */
    private int destroyDelay;

    public void setup(QAConfig config) throws Exception {
  super.setup(config);
  this.parse();
    }

    /**
     * parse the command line args.
     *
     * <DL>
     * <DT>-persistenceDir<DD> <var>string</var> If used the test will
     * check to see if the directory has been removed after destroy
     * has been called
     * </DL>
     */
    protected void parse() throws Exception {
  super.parse();
  perdir = getConfig().getStringConfigVal("com.sun.jini.test.share.persistenceDir", null);
  checkDir = getConfig().getBooleanConfigVal("com.sun.jini.test.share.checkPersistenceDir", false);
  if (perdir != null)
      checkDir = true;

  destroyDelay = getConfig().getIntConfigVal(
          "com.sun.jini.qa.harness.destroy.delay", 10);
    }

    public void run() throws Exception {
  init();

  if (checkDir == true && perdir == null)
      perdir = getConfig().getStringConfigVal("com.sun.jini.outrigger.log",null);

  DestroyAdmin destroyAdmin = (DestroyAdmin)admin;

  try {
      destroyAdmin.destroy();
  } catch (RemoteException e) {
      // Ignore, destroy might have happend before call could
      // have returned
  }

        // wait for a while
        logger.log(Level.INFO, "Destroying worked, sleeping for "
                + destroyDelay + " seconds...");
        sleep(destroyDelay * 1000);
        logger.log(Level.INFO, "...awake");

  try {
      ((Administrable)service).getAdmin();
      throw new TestException("Sevice did not go away");
  } catch (RemoteException e) {
  }

  // Make that this service has gone away
  serviceDestroyed(0);

  if (perdir != null) {
      // Check to see if their persistance data is still present
      File f = new File(perdir);
      if (f.exists())
    throw new TestException("Service's persistance data is still present");
  }
    }

    /**
     * Return an array of String whose elements comprise the
     * categories to which this test belongs.
     */
    public String[] getCategories() {
  return new String[] { "admin" };
    }

    /**
     * Return a String which describes this test
     */
    public String getDescription() {
  return "Test Name = DestroyTest : \n" +
    "Test tests DestroyAdmin features.";
    }

}




TOP

Related Classes of com.sun.jini.test.share.DestroyTest

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.