| /* |
| * Copyright (c) 2003, 2018 Oracle and/or its affiliates. All rights reserved. |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v. 2.0, which is available at |
| * http://www.eclipse.org/legal/epl-2.0. |
| * |
| * This Source Code may also be made available under the following Secondary |
| * Licenses when the conditions for such availability set forth in the |
| * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, |
| * version 2 with the GNU Classpath Exception, which is available at |
| * https://www.gnu.org/software/classpath/license.html. |
| * |
| * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 |
| */ |
| |
| /* |
| * $Id: AdminInfraTest.java,v 1.1.1.1 2005/05/28 00:39:19 dpatil Exp $ |
| */ |
| |
| package com.sun.enterprise.admin; |
| |
| import java.lang.reflect.*; |
| import java.util.*; |
| import java.io.*; |
| |
| //junit imports |
| import junit.framework.*; |
| import junit.textui.TestRunner; |
| |
| //JMX |
| import javax.management.DynamicMBean; |
| import javax.management.Attribute; |
| import javax.management.AttributeList; |
| import javax.management.ObjectName; |
| import javax.management.AttributeNotFoundException; |
| //config imports |
| import com.sun.enterprise.config.ConfigFactory; |
| import com.sun.enterprise.config.ConfigContext; |
| |
| //config mbean imports |
| import com.sun.enterprise.admin.meta.MBeanRegistry; |
| import com.sun.enterprise.admin.meta.MBeanRegistryFactory; |
| //import com.sun.enterprise.admin.meta.*; |
| |
| public class AdminInfraTest extends TestCase |
| { |
| static String TEST_DIR = "publish/internal/testclasses/asadmintest"; |
| static int COMPARESAMPLES_MODE = 0; |
| static int CREATESAMPLES_MODE = 1; |
| static int PRINT_MODE = 2; |
| |
| private static int _mode = COMPARESAMPLES_MODE; |
| private MBeanRegistry _registry; |
| private ConfigContext _configContext; |
| private PrintWriter _printStream; //for CREATESAMPLES_MODE only |
| private LineNumberReader _compareStream; //for COMPARE_MODE only |
| private AdminTester _tester; // = new AdminTester(_mode, _registry, _configContext); |
| |
| |
| public AdminInfraTest(String name) throws Exception |
| { |
| super(name); |
| } |
| |
| protected void setUp() |
| { |
| System.setProperty("com.sun.aas.installRoot", TEST_DIR); |
| System.setProperty("com.sun.aas.instanceRoot","/qq"); |
| System.setProperty("com.sun.aas.javaRoot","/qq"); |
| System.setProperty("com.sun.aas.imqLib","/qq"); |
| try |
| { |
| /* URL url = AdminInfraTest.class.getResource("/testfiles/descriptors.xml"); //standard for pe |
| InputStream stream = url.openStream(); |
| _registry = new MBeanRegistry(); |
| _registry.loadMBeanRegistry(stream);*/ |
| |
| _registry = MBeanRegistryFactory.getMBeanRegistry(TEST_DIR+"/descriptors.xml", false); |
| MBeanRegistryFactory.setAdminMBeanRegistry(_registry); |
| _configContext = ConfigFactory.createConfigContext(TEST_DIR+"/test.xml"); |
| _tester = new AdminTester(this, _mode, _registry, _configContext, TEST_DIR); |
| } |
| catch (Exception e) |
| { |
| throw new RuntimeException(e.getMessage()); |
| } |
| } |
| |
| protected void tearDown() |
| { |
| _registry = null; |
| _configContext = null; |
| _printStream = null; |
| _compareStream = null; |
| } |
| |
| public static junit.framework.Test suite() |
| { |
| TestSuite suite = new TestSuite(AdminInfraTest.class); |
| return suite; |
| } |
| |
| public static void main(String args[]) throws Exception |
| { |
| if(args==null || args.length<2) |
| args = new String[]{"-testpath", "publish/internal/testclasses/asadmintest", "create"}; |
| int length = args.length; |
| if(length<2 || |
| !args[0].equals("-testpath")) |
| { |
| System.out.println("usage: admininfratest -testpath <path to test directory> [print|create]"); |
| System.exit(1); |
| } |
| TEST_DIR = args[1]; |
| if(length>2) |
| { |
| System.out.println("MODE="+args[2]); |
| if(args[2].trim().equals("print")) |
| _mode=2; |
| else if(args[2].trim().equals("create")) |
| _mode=1; |
| } |
| final TestRunner runner= new TestRunner(); |
| final TestResult result = runner.doRun(AdminInfraTest.suite(), false); |
| System.exit(result.errorCount() + result.failureCount()); |
| } |
| |
| |
| |
| //****************************************************************** |
| //******************MBeanServer emulation*************************** |
| //****************************************************************** |
| private Object getAttribute(String onName, String attr) throws Exception |
| { |
| mbean = _registry.instantiateConfigMBean(new ObjectName(onName), null, _configContext); |
| return mbean.getAttribute(attr); |
| } |
| |
| //****************************************************************** |
| //******************T E S T S*************************************** |
| //****************************************************************** |
| |
| private void runTestCase(String testCaseName, String sampleName) throws Exception |
| { |
| String errStr = _tester.runTestCase(testCaseName, sampleName); |
| assertNull(errStr, errStr); |
| } |
| |
| private void runTestCase(String[] testCaseNames, String sampleName) throws Exception |
| { |
| String errStr = _tester.runTestCase(testCaseNames, sampleName); |
| assertNull(errStr, errStr); |
| } |
| |
| private void runTestCase(String testCaseName) throws Exception |
| { |
| runTestCase(testCaseName, testCaseName); |
| } |
| |
| public void testMBeanRegistry() throws Exception |
| { |
| runTestCase("testMBeanRegistry"); |
| } |
| |
| String[] location; |
| BaseAdminMBean mbean; |
| AttributeList attrs; |
| Object retObject; |
| |
| public void testMBeansInstantiation() throws Exception |
| { |
| //*********************************************************************************************** |
| location = new String[]{"testdomain", "server-config"}; |
| mbean = _registry.instantiateMBean("ejb-container", location, null, _configContext); |
| assertNotNull("ejb-container INSTANTIATION (type+location): mbean==null", mbean); |
| assertEquals("cache_resize_quantity not equal 32", mbean.getAttribute("cache_resize_quantity"), "32"); |
| |
| //*********************************************************************************************** |
| mbean = _registry.instantiateConfigMBean(new ObjectName("testdomain:type=ejb-container,config=server-config,category=config"), |
| null, _configContext); |
| assertNotNull("ejb-container INSTANTIATION (ObjectName): mbean==null", mbean); |
| |
| //*********************************************************************************************** |
| mbean = _registry.instantiateConfigMBean(new ObjectName("testdomain:type=config,name=server-config,category=config"), |
| null, _configContext); |
| assertNotNull("config INSTANTIATION By ObjectName: mbean==null", mbean); |
| //_tester.testMBeansInstantiation(); |
| //runTestCase("testMBeansInstantiation"); |
| } |
| |
| public void testMBeansGetAttribue() throws Exception |
| { |
| //*********************************************************************************************** |
| location = new String[]{"testdomain", "server-config"}; |
| mbean = _registry.instantiateMBean("ejb-container", location, null, _configContext); |
| assertNotNull("ejb-container INSTANTIATION (type+location): mbean==null", mbean); |
| |
| assertEquals("cache_resize_quantity not equal 32", mbean.getAttribute("cache_resize_quantity"), "32"); |
| assertEquals("cache_idle_timeout_in_seconds not equal 600", mbean.getAttribute("cache_idle_timeout_in_seconds"), "600"); |
| //enumeration |
| assertEquals("commit-option != B", mbean.getAttribute("commit_option"), "B"); |
| |
| try |
| { |
| mbean.getAttribute("wrong_attribute"); |
| fail("wrong_attribute did not cause exception"); |
| } catch (AttributeNotFoundException anfe) |
| { |
| } |
| try |
| { |
| //scase sensibility test |
| mbean.getAttribute("commit_Option"); |
| fail("getAttribute():sensibility test failure"); |
| } catch (AttributeNotFoundException anfe) |
| { |
| } |
| |
| } |
| |
| /* public void testMBeansCreateChild() throws Exception |
| { |
| }*/ |
| public void testGetSetCompareCases() throws Exception |
| { |
| runTestCase(new String[]{"testMBeansGettersSetters"}, "GettersSetters"); |
| } |
| |
| public void testMBeansSetAttribue() throws Exception |
| { |
| //*********************************************************************************************** |
| location = new String[]{"testdomain", "server-config"}; |
| mbean = _registry.instantiateMBean("ejb-container", location, null, _configContext); |
| assertNotNull("ejb-container INSTANTIATION (type+location): mbean==null", mbean); |
| |
| mbean.setAttribute(new Attribute("cache_resize_quantity", "35")); |
| assertEquals("cache_resize_quantity not equal 35", mbean.getAttribute("cache_resize_quantity"), "35"); |
| mbean.setAttribute(new Attribute("cache_resize_quantity", "36")); |
| assertEquals("cache_resize_quantity not equal 36", mbean.getAttribute("cache_resize_quantity"), "36"); |
| mbean.setAttribute(new Attribute("cache_idle_timeout_in_seconds", "601")); |
| assertEquals("cache_idle_timeout_in_seconds not equal 601", mbean.getAttribute("cache_idle_timeout_in_seconds"), "601"); |
| mbean.setAttribute(new Attribute("commit_option", "C")); |
| assertEquals("commit_option != C", mbean.getAttribute("commit_option"), "C"); |
| } |
| |
| public void testChildCompareCases() throws Exception |
| { |
| runTestCase(new String[]{"testChildOperations"}, "childOperations"); |
| } |
| public void testArrayAttrs() throws Exception |
| { |
| runTestCase(new String[]{"testMBeanArrayAttrs"}, "testArrayAttrs"); |
| } |
| public void testProperties() throws Exception |
| { |
| runTestCase(new String[]{"testPropertiesOperations"}, "testPropertiesOperations"); |
| } |
| public void testDefaultValues() throws Exception |
| { |
| runTestCase(new String[]{"testDefaultValues"}, "testDefaultValues"); |
| } |
| public void testAttributeEmptyValuesDuringCreation() throws Exception |
| { |
| //*********************************************************************************************** |
| location = new String[]{"testdomain", "server-config"}; |
| mbean = _registry.instantiateMBean("http-service", location, null, _configContext); |
| assertNotNull("http-service INSTANTIATION (type+location): mbean==null", mbean); |
| attrs = new AttributeList(); |
| attrs.add(new Attribute("address","0.0.0.0")); |
| attrs.add(new Attribute("default-virtual-server","server")); |
| attrs.add(new Attribute("server-name","")); |
| attrs.add(new Attribute("id","test-listener")); |
| attrs.add(new Attribute("port","12345")); |
| attrs.add(new Attribute("enabled","false")); |
| attrs.add(new Attribute("security-enabled","false")); |
| attrs.add(new Attribute("redirect-port","")); |
| retObject = mbean.invoke("createHttpListener", new Object[]{attrs}, new String[]{attrs.getClass().getName()}); |
| assertNotNull("createHttpListener: retObject==null", retObject); |
| //*********************************************************************************************** |
| location = new String[]{"testdomain", "server-config", "test-listener"}; |
| mbean = _registry.instantiateMBean("http-listener", location, null, _configContext); |
| assertNotNull("http-listener INSTANTIATION (type+location): mbean==null", mbean); |
| assertEquals("server-name attribute value is not \"empty\" as expected", mbean.getAttribute("server-name"),""); |
| assertNull("server-name attribute value is not null as expected", mbean.getAttribute("redirect-port")); |
| _configContext.flush(); |
| } |
| |
| } |