blob: 35ccb1326f7f4f00a7c1dcaba8090c31b4d7ac44 [file] [log] [blame]
/*
* Copyright (c) 2010, 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
*/
package admin;
/*
* @author Jagadish Ramu
*/
public class ExternalJndiResourceTest extends AdminBaseDevTest {
public static final String CLUSTER_NAME = "cluster1";
public static final String INSTANCE1_NAME = "instance1";
public static final String INSTANCE2_NAME = "instance2";
public static final String STANDALONE_INSTANCE_NAME = "instance3";
public static final String DOMAIN = "domain";
private static final String RESOURCE_NAME ="resource-1";
public static final String[] EXPECTED_TOKENS = {RESOURCE_NAME};
private static final String CREATE_RESOURCE_REF = "create-resource-ref";
private static final String DELETE_RESOURCE_REF = "delete-resource-ref";
private static final String LIST_RESOURCE_REF = "list-resource-refs";
private static final String LIST_JNDI_ENTRIES = "list-jndi-entries";
private static final String DELETE_JNDI_RESOURCE = "delete-jndi-resource";
private static final String CREATE_JNDI_RESOURCE = "create-jndi-resource";
private static final String LIST_JNDI_RESOURCES = "list-jndi-resources";
private static final String TARGET_OPTION = "--target";
private static final String RESTYPE_OPTION = "--restype";
private static final String RESTYPE_VALUE ="java.lang.Integer";
private static final String FACTORY_CLASS_OPTION = "--factoryclass";
private static final String FACTORY_CLASS ="org.glassfish.resources.custom.factory.PrimitivesAndStringFactory";
private static final String JNDI_LOOKUP_NAME_OPTION = "--jndilookupname";
private static final String JNDI_LOOKUP_NAME_VALUE = "external_jndi_resource";
private static final String PROPERTY_OPTION = "--property";
private static final String PROPERTY_VALUE ="value=10";
private static final String SERVER = "server";
public static void main(String[] args) {
new ExternalJndiResourceTest().runTests();
}
@Override
protected String getTestDescription() {
return "Unit test for external-jndi-resource for various 'target' options";
}
@Override
public void cleanup() {
try {
asadmin("stop-local-instance", STANDALONE_INSTANCE_NAME);
asadmin("delete-local-instance", STANDALONE_INSTANCE_NAME);
asadmin("stop-local-instance", INSTANCE1_NAME);
asadmin("stop-local-instance", INSTANCE2_NAME);
asadmin("stop-cluster", CLUSTER_NAME);
asadmin("delete-local-instance", INSTANCE1_NAME);
asadmin("delete-local-instance", INSTANCE2_NAME);
asadmin("delete-cluster", CLUSTER_NAME);
} catch (Exception e) {
e.printStackTrace();
}
}
public void runTests() {
startDomain();
asadmin("create-cluster", CLUSTER_NAME);
asadmin("create-local-instance", "--cluster", CLUSTER_NAME,
/*"--node", "localhost",*/ "--systemproperties",
"HTTP_LISTENER_PORT=18080:HTTP_SSL_LISTENER_PORT=18181:IIOP_SSL_LISTENER_PORT=13800:IIOP_LISTENER_PORT=13700:JMX_SYSTEM_CONNECTOR_PORT=17676:IIOP_SSL_MUTUALAUTH_PORT=13801:JMS_PROVIDER_PORT=18686:ASADMIN_LISTENER_PORT=14848",
INSTANCE1_NAME);
asadmin("create-local-instance", "--cluster", CLUSTER_NAME,
/*"--node", "localhost",*/ "--systemproperties",
"HTTP_LISTENER_PORT=28080:HTTP_SSL_LISTENER_PORT=28181:IIOP_SSL_LISTENER_PORT=23800:IIOP_LISTENER_PORT=23700:JMX_SYSTEM_CONNECTOR_PORT=27676:IIOP_SSL_MUTUALAUTH_PORT=23801:JMS_PROVIDER_PORT=28686:ASADMIN_LISTENER_PORT=24848",
INSTANCE2_NAME);
asadmin("create-local-instance",
/*"--node", "localhost",*/ "--systemproperties",
"HTTP_LISTENER_PORT=28080:HTTP_SSL_LISTENER_PORT=38181:IIOP_SSL_LISTENER_PORT=33800:IIOP_LISTENER_PORT=33700:JMX_SYSTEM_CONNECTOR_PORT=37676:IIOP_SSL_MUTUALAUTH_PORT=33801:JMS_PROVIDER_PORT=38686:ASADMIN_LISTENER_PORT=34848",
STANDALONE_INSTANCE_NAME);
asadmin("start-cluster", CLUSTER_NAME);
asadmin("start-local-instance", STANDALONE_INSTANCE_NAME);
testCreateJndiResourceInServer();
testListJndiResourceInServer();
testListJndiResourceTargetServer();
testDeleteJndiResourceInServer();
testCreateJndiResourceInCluster();
testListJndiResourceTargetCluster();
testListJndiResourceTargetInstance1();
testListJndiResourceTargetInstance2();
testDeleteJndiResourceInCluster();
testCreateJndiResourceInStandaloneInstance();
testListJndiResourceTargetStandaloneInstance();
testDeleteJndiResourceInStandaloneInstance();
testCreateJndiResourceInDomain();
testListJndiResourceTargetDomain();
testCreateResourceRefInCluster();
testListResourceRefInCluster();
//testListJndiEntriesInCluster();
testListJndiResourceTargetCluster();
testDeleteJndiResourceInDomainExpectFailure();
testDeleteJndiResourceExpectFailure(STANDALONE_INSTANCE_NAME);
testDeleteJndiResourceExpectFailure(SERVER);
testDeleteResourceRefInCluster();
testListJndiResourceTargetDomain();
testCreateResourceRefInStandaloneInstance();
testListResourceRefInStandaloneInstance();
//testListJndiEntriesInStandaloneInstance();
testListJndiResourceTargetStandaloneInstance();
testDeleteJndiResourceInDomainExpectFailure();
testDeleteJndiResourceExpectFailure(CLUSTER_NAME);
testDeleteJndiResourceExpectFailure(SERVER);
testDeleteResourceRefInStandaloneInstance();
testListJndiResourceTargetDomain();
testCreateResourceRefInServer();
testListResourceRefInServer();
testListJndiEntriesInServer();
testListJndiResourceInServer();
testDeleteJndiResourceInDomainExpectFailure();
testDeleteJndiResourceExpectFailure(CLUSTER_NAME);
testDeleteJndiResourceExpectFailure(STANDALONE_INSTANCE_NAME);
testDeleteResourceRefInServer();
testListJndiResourceTargetDomain();
testDeleteJndiResourceInDomain();
cleanup();
stopDomain();
stat.printSummary();
}
private void testDeleteJndiResourceExpectFailure(String target){
String testName = "testDeleteJndiResourceExpectFailure";
AsadminReturn result = asadminWithOutput(DELETE_JNDI_RESOURCE,TARGET_OPTION, target, RESOURCE_NAME);
reportFailureResultStatus(testName, result);
reportExpectedFailureResult(testName, result, "not referenced");
}
private void testDeleteJndiResourceInDomainExpectFailure(){
String testName = "testDeleteJndiResourceInDomainExpectFailure";
AsadminReturn result = asadminWithOutput(DELETE_JNDI_RESOURCE,TARGET_OPTION, DOMAIN, RESOURCE_NAME);
reportFailureResultStatus(testName, result);
}
private void testDeleteResourceRefInCluster() {
String testName = "testDeleteResourceRefInCluster";
AsadminReturn result = asadminWithOutput(DELETE_RESOURCE_REF,TARGET_OPTION, CLUSTER_NAME, RESOURCE_NAME);
reportResultStatus(testName, result);
reportExpectedResult(testName, result, "resource-ref resource-1 deleted successfully.");
//reportExpectedResult(testName, result, INSTANCE2_NAME, INSTANCE1_NAME);
reportUnexpectedResult(testName, result, STANDALONE_INSTANCE_NAME);
}
private void testDeleteResourceRefInStandaloneInstance() {
String testName = "testDeleteResourceRefInStandaloneInstance";
AsadminReturn result = asadminWithOutput(DELETE_RESOURCE_REF,TARGET_OPTION, STANDALONE_INSTANCE_NAME, RESOURCE_NAME);
reportResultStatus(testName, result);
reportExpectedResult(testName, result, "resource-ref resource-1 deleted successfully.");
//reportExpectedResult(testName, result, STANDALONE_INSTANCE_NAME );
reportUnexpectedResult(testName, result, INSTANCE2_NAME, INSTANCE1_NAME,CLUSTER_NAME);
}
private void testDeleteResourceRefInServer() {
String testName = "testDeleteResourceRefInServer";
AsadminReturn result = asadminWithOutput(DELETE_RESOURCE_REF,TARGET_OPTION, SERVER, RESOURCE_NAME);
reportResultStatus(testName, result);
reportExpectedResult(testName, result, "resource-ref resource-1 deleted successfully.");
//reportExpectedResult(testName, result, SERVER );
reportUnexpectedResult(testName, result, STANDALONE_INSTANCE_NAME, INSTANCE2_NAME, INSTANCE1_NAME,CLUSTER_NAME);
}
private void testCreateResourceRefInCluster() {
String testName = "testCreateResourceRefInCluster";
AsadminReturn result = asadminWithOutput(CREATE_RESOURCE_REF,TARGET_OPTION, CLUSTER_NAME, RESOURCE_NAME);
reportResultStatus(testName, result);
reportExpectedResult(testName, result, "resource-ref resource-1 created successfully.");
//reportExpectedResult(testName, result, INSTANCE2_NAME, INSTANCE1_NAME);
reportUnexpectedResult(testName, result, STANDALONE_INSTANCE_NAME);
}
private void testListResourceRefInCluster() {
String testName = "testListResourceRefInCluster";
AsadminReturn result = asadminWithOutput(LIST_RESOURCE_REF,CLUSTER_NAME);
reportResultStatus(testName, result);
reportExpectedResult(testName, result, RESOURCE_NAME);
}
private void testListJndiEntriesInCluster() {
String testName = "testListJndiEntriesInCluster";
AsadminReturn result = asadminWithOutput(LIST_JNDI_ENTRIES,CLUSTER_NAME);
reportResultStatus(testName, result);
reportExpectedResult(testName, result, RESOURCE_NAME);
}
private void testCreateResourceRefInStandaloneInstance(){
String testName = "testCreateResourceRefInStandaloneInstance";
AsadminReturn result = asadminWithOutput(CREATE_RESOURCE_REF,TARGET_OPTION, STANDALONE_INSTANCE_NAME, RESOURCE_NAME);
reportResultStatus(testName, result);
reportExpectedResult(testName, result, "resource-ref resource-1 created successfully.");
//reportExpectedResult(testName, result, STANDALONE_INSTANCE_NAME );
reportUnexpectedResult(testName, result, INSTANCE2_NAME, INSTANCE1_NAME,CLUSTER_NAME);
}
private void testListResourceRefInStandaloneInstance(){
String testName = "testListResourceRefInStandaloneInstance";
AsadminReturn result = asadminWithOutput(LIST_RESOURCE_REF,STANDALONE_INSTANCE_NAME);
reportResultStatus(testName, result);
reportExpectedResult(testName, result, RESOURCE_NAME);
}
private void testListJndiEntriesInStandaloneInstance(){
String testName = "testListJndiEntriesInStandaloneInstance";
AsadminReturn result = asadminWithOutput(LIST_JNDI_ENTRIES,STANDALONE_INSTANCE_NAME);
reportResultStatus(testName, result);
reportExpectedResult(testName, result, RESOURCE_NAME);
}
private void testCreateResourceRefInServer(){
String testName = "testCreateResourceRefInServer";
AsadminReturn result = asadminWithOutput(CREATE_RESOURCE_REF,TARGET_OPTION, SERVER, RESOURCE_NAME);
reportResultStatus(testName, result);
reportExpectedResult(testName, result, "resource-ref resource-1 created successfully.");
//reportExpectedResult(testName, result, SERVER );
reportUnexpectedResult(testName, result, STANDALONE_INSTANCE_NAME, INSTANCE2_NAME, INSTANCE1_NAME,CLUSTER_NAME);
}
private void testListResourceRefInServer(){
String testName = "testListResourceRefInServer";
AsadminReturn result = asadminWithOutput(LIST_RESOURCE_REF,SERVER);
reportResultStatus(testName, result);
reportExpectedResult(testName, result, RESOURCE_NAME);
}
private void testListJndiEntriesInServer(){
String testName = "testListJndiEntriesInServer";
AsadminReturn result = asadminWithOutput(LIST_JNDI_ENTRIES,SERVER);
reportResultStatus(testName, result);
reportExpectedResult(testName, result, RESOURCE_NAME);
}
private void testDeleteJndiResourceInDomain() {
String testName = "testDeleteJndiResourceInDomain";
AsadminReturn result = asadminWithOutput(DELETE_JNDI_RESOURCE,TARGET_OPTION, DOMAIN, RESOURCE_NAME);
reportResultStatus(testName, result);
reportExpectedResult(testName, result, "Jndi resource resource-1 deleted.");
//reportExpectedResult(testName, result, STANDALONE_INSTANCE_NAME, INSTANCE2_NAME, INSTANCE1_NAME, DOMAIN);
//reportUnexpectedResult(testName, result, CLUSTER_NAME);
}
private void testDeleteJndiResourceInStandaloneInstance() {
String testName = "testDeleteJndiResourceInStandaloneInstance";
AsadminReturn result = asadminWithOutput(DELETE_JNDI_RESOURCE,TARGET_OPTION, STANDALONE_INSTANCE_NAME,
RESOURCE_NAME);
reportResultStatus(testName, result);
//reportExpectedResult(testName, result, STANDALONE_INSTANCE_NAME, INSTANCE1_NAME, INSTANCE2_NAME);
reportExpectedResult(testName, result, "Jndi resource resource-1 deleted.");
/*Commenting out the failed test, can be uncommented after fixing Glassfish Issue 21774 */
//reportUnexpectedResult(testName, result, SERVER, CLUSTER_NAME);
}
private void testDeleteJndiResourceInCluster() {
String testName = "testDeleteJndiResourceInCluster";
AsadminReturn result = asadminWithOutput(DELETE_JNDI_RESOURCE,TARGET_OPTION, CLUSTER_NAME, RESOURCE_NAME);
reportResultStatus(testName, result);
//reportExpectedResult(testName, result, INSTANCE1_NAME, INSTANCE2_NAME, STANDALONE_INSTANCE_NAME);
reportExpectedResult(testName, result, "Jndi resource resource-1 deleted.");
/*Commenting out the failed test, can be uncommented after fixing Glassfish Issue 21774 */
//reportUnexpectedResult(testName, result, SERVER);
}
private void testDeleteJndiResourceInServer() {
String testName = "testDeleteJndiResourceInServer";
AsadminReturn result = asadminWithOutput(DELETE_JNDI_RESOURCE,RESOURCE_NAME);
reportResultStatus(testName, result);
reportExpectedResult(testName, result);
reportExpectedResult(testName, result, "Jndi resource resource-1 deleted.");
//reportExpectedResult(testName, result, INSTANCE2_NAME, INSTANCE1_NAME,
// STANDALONE_INSTANCE_NAME);
}
private void testCreateJndiResourceInDomain() {
String testName = "testCreateJndiResourceInDomain";
AsadminReturn result = asadminWithOutput(CREATE_JNDI_RESOURCE,
RESTYPE_OPTION, RESTYPE_VALUE,
FACTORY_CLASS_OPTION, FACTORY_CLASS,
JNDI_LOOKUP_NAME_OPTION, JNDI_LOOKUP_NAME_VALUE,
PROPERTY_OPTION, PROPERTY_VALUE,
TARGET_OPTION, DOMAIN,
RESOURCE_NAME);
reportExpectedResult(testName, result);
reportExpectedResult(testName, result, "JNDI resource resource-1 created.");
//reportUnexpectedResult(testName, result, CLUSTER_NAME);
//reportExpectedResult(testName, result, INSTANCE2_NAME, INSTANCE1_NAME, STANDALONE_INSTANCE_NAME, DOMAIN);
}
private void testCreateJndiResourceInStandaloneInstance() {
String testName = "testCreateJndiResourceInStandaloneInstance";
AsadminReturn result = asadminWithOutput(CREATE_JNDI_RESOURCE,
RESTYPE_OPTION, RESTYPE_VALUE,
FACTORY_CLASS_OPTION, FACTORY_CLASS,
JNDI_LOOKUP_NAME_OPTION, JNDI_LOOKUP_NAME_VALUE,
PROPERTY_OPTION, PROPERTY_VALUE,
TARGET_OPTION, STANDALONE_INSTANCE_NAME,
RESOURCE_NAME);
reportExpectedResult(testName, result);
reportExpectedResult(testName, result, "JNDI resource resource-1 created.");
//reportExpectedResult(testName, result, INSTANCE2_NAME, INSTANCE1_NAME);
reportUnexpectedResult(testName, result, CLUSTER_NAME);
}
private void testCreateJndiResourceInCluster() {
String testName = "testCreateJndiResourceInCluster";
AsadminReturn result = asadminWithOutput(CREATE_JNDI_RESOURCE,
RESTYPE_OPTION, RESTYPE_VALUE,
FACTORY_CLASS_OPTION, FACTORY_CLASS,
JNDI_LOOKUP_NAME_OPTION, JNDI_LOOKUP_NAME_VALUE,
PROPERTY_OPTION, PROPERTY_VALUE,
TARGET_OPTION, CLUSTER_NAME,
RESOURCE_NAME);
reportExpectedResult(testName, result);
//reportExpectedResult(testName, result, INSTANCE2_NAME, INSTANCE1_NAME, STANDALONE_INSTANCE_NAME);
reportExpectedResult(testName, result, "JNDI resource resource-1 created.");
//reportUnexpectedResult(testName, result, STANDALONE_INSTANCE_NAME);
}
private void testCreateJndiResourceInServer() {
String testName = "testCreateJndiResourceResourceInServer";
AsadminReturn result = asadminWithOutput(CREATE_JNDI_RESOURCE,
RESTYPE_OPTION, RESTYPE_VALUE,
FACTORY_CLASS_OPTION, FACTORY_CLASS,
JNDI_LOOKUP_NAME_OPTION, JNDI_LOOKUP_NAME_VALUE,
PROPERTY_OPTION, PROPERTY_VALUE,
TARGET_OPTION, SERVER,
RESOURCE_NAME);
reportExpectedResult(testName, result);
reportExpectedResult(testName, result, "JNDI resource resource-1 created.");
//reportExpectedResult(testName, result, STANDALONE_INSTANCE_NAME, INSTANCE1_NAME, INSTANCE2_NAME);
reportUnexpectedResult(testName, result, CLUSTER_NAME);
}
public void testListJndiResourceInServer() {
String testName = "testListJndiResourceInServer";
AsadminReturn result = asadminWithOutput(LIST_JNDI_RESOURCES);
reportResultStatus(testName, result);
reportExpectedResult(testName, result);
reportUnexpectedResult(testName, result, STANDALONE_INSTANCE_NAME,
CLUSTER_NAME, INSTANCE1_NAME);
}
public void testListJndiResourceTargetServer() {
String testName = "testListJndiResourceTargetServer";
AsadminReturn result = asadminWithOutput(LIST_JNDI_RESOURCES, SERVER);
reportResultStatus(testName, result);
reportExpectedResult(testName, result);
reportUnexpectedResult(testName, result, STANDALONE_INSTANCE_NAME,
CLUSTER_NAME, INSTANCE1_NAME);
}
public void testListJndiResourceTargetDomain() {
String testName = "testListJndiResourceTargetDomain";
{
AsadminReturn result = asadminWithOutput(LIST_JNDI_RESOURCES, DOMAIN);
reportResultStatus(testName, result);
reportExpectedResult(testName, result);
}
{
AsadminReturn result = asadminWithOutput(LIST_JNDI_RESOURCES);
reportResultStatus(testName, result);
reportExpectedResult(testName, result, "");
}
{
AsadminReturn result = asadminWithOutput(LIST_JNDI_RESOURCES, SERVER);
reportResultStatus(testName, result);
reportExpectedResult(testName, result, "");
}
{
AsadminReturn result = asadminWithOutput(LIST_JNDI_RESOURCES, CLUSTER_NAME);
reportResultStatus(testName, result);
reportExpectedResult(testName, result,"");
}
{
AsadminReturn result = asadminWithOutput(LIST_JNDI_RESOURCES, STANDALONE_INSTANCE_NAME);
reportResultStatus(testName, result);
reportExpectedResult(testName, result, "");
}
}
public void testListJndiResourceTargetCluster() {
String testName = "testListJndiResourceTargetCluster";
AsadminReturn result = asadminWithOutput(LIST_JNDI_RESOURCES, CLUSTER_NAME);
reportResultStatus(testName, result);
reportExpectedResult(testName, result);
reportUnexpectedResult(testName, result, INSTANCE1_NAME, INSTANCE2_NAME);
reportUnexpectedResult(testName, result, STANDALONE_INSTANCE_NAME);
}
public void testListJndiResourceTargetInstance1() {
String testName = "testListJndiResourceTargetInstance1";
AsadminReturn result = asadminWithOutput(LIST_JNDI_RESOURCES, INSTANCE1_NAME);
// reportFailureResultStatus(testName, result);
// reportExpectedFailureResult(testName, result, "not allowed");
reportResultStatus(testName, result);
reportUnexpectedResult(testName, result, STANDALONE_INSTANCE_NAME, INSTANCE2_NAME);
}
public void testListJndiResourceTargetInstance2() {
String testName = "testListJndiResourceTargetInstance2";
AsadminReturn result = asadminWithOutput(LIST_JNDI_RESOURCES, INSTANCE2_NAME);
// reportFailureResultStatus(testName, result);
// reportExpectedFailureResult(testName, result, "not allowed");
reportResultStatus(testName, result);
reportUnexpectedResult(testName, result, STANDALONE_INSTANCE_NAME, INSTANCE1_NAME );
}
public void testListJndiResourceTargetStandaloneInstance() {
String testName = "testListJndiResourceTargetStandaloneInstance";
AsadminReturn result = asadminWithOutput(LIST_JNDI_RESOURCES, STANDALONE_INSTANCE_NAME);
reportResultStatus(testName, result);
reportExpectedResult(testName, result);
reportExpectedResult(testName, result, STANDALONE_INSTANCE_NAME);
reportUnexpectedResult(testName, result, INSTANCE1_NAME, INSTANCE2_NAME, CLUSTER_NAME);
}
private void reportFailureResultStatus(String testName, AsadminReturn result) {
report(testName, !result.returnValue);
report(testName, !result.err.isEmpty());
}
private void reportResultStatus(String testName, AsadminReturn result) {
report(testName, result.returnValue);
report(testName, result.err.isEmpty());
}
private void reportExpectedFailureResult(String testName, AsadminReturn result, String... expected) {
for (String token : expected) {
report(testName, result.err.contains(token));
}
}
private void reportExpectedResult(String testName, AsadminReturn result, String... expected) {
if (expected.length == 0) {
expected = EXPECTED_TOKENS;
}
for (String token : expected) {
report(testName, result.out.contains(token));
}
}
private void reportUnexpectedResult(String testName, AsadminReturn result, String... unexpected) {
for (String token : unexpected) {
report(testName, !result.out.contains(token));
}
}
}