-
Notifications
You must be signed in to change notification settings - Fork 104
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Scott M Stark <starksm64@gmail.com>
- Loading branch information
Showing
2 changed files
with
314 additions
and
0 deletions.
There are no files selected for viewing
203 changes: 203 additions & 0 deletions
203
src/com/sun/ts/tests/ejb30/lite/ejbcontext/common/JsfClientBase.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,203 @@ | ||
/* | ||
* Copyright (c) 2008, 2020 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$ | ||
*/ | ||
package com.sun.ts.tests.ejb30.lite.ejbcontext.common; | ||
|
||
import java.util.List; | ||
|
||
import com.sun.ts.tests.ejb30.common.helper.TestFailedException; | ||
import com.sun.ts.tests.ejb30.common.lite.EJBLiteJsfClientBase; | ||
import jakarta.annotation.PostConstruct; | ||
import jakarta.ejb.EJB; | ||
|
||
abstract public class JsfClientBase extends EJBLiteJsfClientBase { | ||
// cannot inject here since the the beanInterface cannot be inferred from | ||
// field type. Specifying beanInterface introduces a dependency on concrete | ||
// bean classes. So inject it in subclass. | ||
protected EJBContextBeanBase noInterface; | ||
|
||
@EJB(beanName = "EJBContext2Bean") | ||
private EJBContextIF interface1; | ||
|
||
@EJB(beanName = "EJBContext2Bean") | ||
private EJBContext2IF interface2; | ||
|
||
// When updating this field, getInvokedBusinessInterface#expected variable | ||
// must also be updated. | ||
private EJBContextIF[] beans = new EJBContextIF[3]; | ||
|
||
@SuppressWarnings("unused") | ||
@PostConstruct | ||
private void postConstruct() { | ||
beans[0] = noInterface; | ||
beans[1] = interface1; | ||
beans[2] = interface2; | ||
} | ||
|
||
// implemented by subclasses to inject | ||
abstract protected void setNoInterface(EJBContextBeanBase b); | ||
|
||
// classes in common directories should not directly reference classes in | ||
// specific subdirectories. | ||
abstract protected Class<? extends EJBContextBeanBase> getInvokedBusinessInterfaceForNoInterfaceView(); | ||
|
||
/* | ||
* testName: lookupIllegalArgumentException | ||
* | ||
* @test_Strategy: Call EJBContext.lookup with null and another non-existent | ||
* name, expecting IllegalArgumentException. Valid use of EJBContext.lookup | ||
* method are tested in various other directories and are not present here. | ||
*/ | ||
public void lookupIllegalArgumentException() throws TestFailedException { | ||
for (EJBContextIF b : beans) { | ||
appendReason(b.lookupIllegalArgumentException()); | ||
} | ||
} | ||
|
||
/* | ||
* testName: getMessageContextIllegalStateException | ||
* | ||
* @test_Strategy: Call EJBContext.getMessageContext() where it's not | ||
* supported, expecting IllegalStateException. | ||
*/ | ||
public void getMessageContextIllegalStateException() | ||
throws TestFailedException { | ||
for (EJBContextIF b : beans) { | ||
appendReason(b.getMessageContextIllegalStateException()); | ||
} | ||
} | ||
|
||
/* | ||
* testName: getInvokedBusinessInterface | ||
* | ||
* @test_Strategy: Call EJBContext.getInvokedBusinessInterface() on | ||
* no-interface, interface1 and interface2, and verify the returned interface. | ||
*/ | ||
public void getInvokedBusinessInterface() throws TestFailedException { | ||
// getInvokedBusinessInterface() returns bean class type for no-interface | ||
// view | ||
Class<?>[] expected = { getInvokedBusinessInterfaceForNoInterfaceView(), | ||
EJBContextIF.class, EJBContext2IF.class }; | ||
for (int i = 0; i < beans.length; i++) { | ||
assertEquals("", expected[i], beans[i].getInvokedBusinessInterface()); | ||
} | ||
} | ||
|
||
/* | ||
* testName: getBusinessObjectIllegalStateException | ||
* | ||
* @test_Strategy: Call EJBContext.getBusinessObject() with invalid interfaces | ||
* on no-interface, interface1 and interface2, expecting | ||
* IllegalStateException. | ||
*/ | ||
public void getBusinessObjectIllegalStateException() | ||
throws TestFailedException { | ||
for (EJBContextIF b : beans) { | ||
appendReason(b.getBusinessObjectIllegalStateException()); | ||
} | ||
} | ||
|
||
/* | ||
* testName: getBusinessObject | ||
* | ||
* @test_Strategy: Call EJBContext.getBusinessObject() on no-interface, | ||
* interface1 and interface2, and invoke add() on the obtained business | ||
* object. | ||
*/ | ||
public void getBusinessObject() { | ||
EJBContextIF[] beansWithInterfaces = { interface1, interface2 }; | ||
int a = 2, b = 3; | ||
int expected = a + b; | ||
for (EJBContextIF bb : beansWithInterfaces) { | ||
EJBContextIF bob1 = bb.getBusinessObject(EJBContextIF.class); | ||
EJBContext2IF bob2 = bb.getBusinessObject(EJBContext2IF.class); | ||
assertEquals("", expected, bob1.add(a, b)); | ||
assertEquals("", expected, bob2.add(a, b)); | ||
} | ||
// for noInterface view | ||
EJBContextBeanBase bob3 = noInterface | ||
.getBusinessObject(getInvokedBusinessInterfaceForNoInterfaceView()); | ||
assertEquals("Check noInterface", expected, bob3.add(a, b)); | ||
} | ||
|
||
/* | ||
* testName: ejbContextInjections | ||
* | ||
* @test_Strategy: verify setter-, field- and descriptor-injections of | ||
* EJBContext and SessionContext are performed correctly by the time | ||
* postConstruct is called. The 2 injections are in both bean base and base | ||
* classes, and the order of postConstruct calls are also verified. | ||
*/ | ||
public void ejbContextInjections() { | ||
for (EJBContextIF b : beans) { | ||
List<String> ir = b.getInjectionRecords(); | ||
assertEquals(ir.toString(), 6, ir.size()); | ||
} | ||
} | ||
|
||
/* | ||
* testName: ejbContextInjectionsInInterceptor | ||
* | ||
* @test_Strategy: verify setter-, field- and descriptor-injections of | ||
* EJBContext and SessionContext are performed correctly by the time | ||
* postConstruct is called in interceptor1 (the default interceptor). | ||
*/ | ||
public void ejbContextInjectionsInInterceptor() { | ||
for (EJBContextIF b : beans) { | ||
List<String> ir = b.getInjectionRecordsInInterceptor(); | ||
assertEquals(ir.toString(), 3, ir.size()); | ||
} | ||
} | ||
|
||
/* | ||
* testName: lookupEJBContext | ||
* | ||
* @test_Strategy: look up various injected and declared EJBContextIF in | ||
* PostConstruct, AroundInvoke and business methods. | ||
*/ | ||
public void lookupEJBContext() { | ||
for (EJBContextIF b : beans) { | ||
appendReason(b.lookupEJBContext()); | ||
} | ||
} | ||
|
||
/* | ||
* testName: lookupEJBContextInInterceptor | ||
* | ||
* @test_Strategy: look up various injected and declared EJBContextIF in | ||
* PostConstruct and AroundInvoke of interceptor1 | ||
*/ | ||
public void lookupEJBContextInInterceptor() { | ||
for (EJBContextIF b : beans) { | ||
appendReason(b.lookupEJBContextInInterceptor()); | ||
} | ||
} | ||
|
||
/* | ||
* testName: lookupPortableJNDINames | ||
* | ||
* @test_Strategy: call EJBContext.lookup(string) to look up resources in | ||
* various portable jndi namespaces. | ||
*/ | ||
public void lookupPortableJNDINames() { | ||
for (EJBContextIF b : beans) { | ||
appendReason(b.lookupPortableJNDINames()); | ||
} | ||
} | ||
} |
111 changes: 111 additions & 0 deletions
111
src/com/sun/ts/tests/ejb30/lite/ejbcontext/stateless/JsfClient.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
/* | ||
* Copyright (c) 2022 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$ | ||
*/ | ||
package com.sun.ts.tests.ejb30.lite.ejbcontext.stateless; | ||
|
||
import java.io.Serializable; | ||
|
||
import com.sun.ts.tests.ejb30.lite.ejbcontext.common.EJBContextBeanBase; | ||
import jakarta.ejb.EJB; | ||
|
||
@jakarta.inject.Named("client") | ||
@jakarta.enterprise.context.RequestScoped | ||
public class JsfClient | ||
extends com.sun.ts.tests.ejb30.lite.ejbcontext.common.JsfClientBase implements Serializable { | ||
|
||
private static final long serialVersionUID = 1L; | ||
|
||
@Override | ||
@EJB(beanInterface = EJBContextBean.class, beanName = "EJBContextBean") | ||
protected void setNoInterface(EJBContextBeanBase b) { | ||
noInterface = b; | ||
} | ||
|
||
@Override | ||
protected Class<? extends EJBContextBeanBase> getInvokedBusinessInterfaceForNoInterfaceView() { | ||
return EJBContextBean.class; | ||
} | ||
|
||
/* | ||
* @testName: lookupIllegalArgumentException | ||
* | ||
* @test_Strategy: Call EJBContext.lookup with null and another non-existent | ||
* name, expecting IllegalArgumentException. Valid use of EJBContext.lookup | ||
* method are tested in various other directories and are not present here. | ||
*/ | ||
/* | ||
* @testName: getMessageContextIllegalStateException | ||
* | ||
* @test_Strategy: Call EJBContext.getMessageContext() where it's not | ||
* supported, expecting IllegalStateException. | ||
*/ | ||
/* | ||
* @testName: getInvokedBusinessInterface | ||
* | ||
* @test_Strategy: Call EJBContext.getInvokedBusinessInterface() on | ||
* no-interface, interface1 and interface2, and verify the returned interface. | ||
*/ | ||
/* | ||
* @testName: getBusinessObjectIllegalStateException | ||
* | ||
* @test_Strategy: Call EJBContext.getBusinessObject() with invalid interfaces | ||
* on no-interface, interface1 and interface2, expecting | ||
* IllegalStateException. | ||
*/ | ||
/* | ||
* @testName: getBusinessObject | ||
* | ||
* @test_Strategy: Call EJBContext.getBusinessObject() on no-interface, | ||
* interface1 and interface2, and invoke add() on the obtained business | ||
* object. | ||
*/ | ||
/* | ||
* @testName: ejbContextInjections | ||
* | ||
* @test_Strategy: verify setter-, field- and descriptor-injections of | ||
* EJBContext and SessionContext are performed correctly by the time | ||
* postConstruct is called. The 2 injections are in both bean base and base | ||
* classes, and the order of postConstruct calls are also verified. | ||
*/ | ||
/* | ||
* @testName: ejbContextInjectionsInInterceptor | ||
* | ||
* @test_Strategy: verify setter-, field- and descriptor-injections of | ||
* EJBContext and SessionContext are performed correctly by the time | ||
* postConstruct is called in interceptor1 (the default interceptor). | ||
*/ | ||
/* | ||
* @testName: lookupEJBContext | ||
* | ||
* @test_Strategy: look up various injected and declared EJBContextIF in | ||
* PostConstruct, AroundInvoke and business methods. | ||
*/ | ||
/* | ||
* @testName: lookupEJBContextInInterceptor | ||
* | ||
* @test_Strategy: look up various injected and declared EJBContextIF in | ||
* PostConstruct and AroundInvoke of interceptor1 | ||
*/ | ||
/* | ||
* @testName: lookupPortableJNDINames | ||
* | ||
* @test_Strategy: call EJBContext.lookup(string) to look up resources in | ||
* various portable jndi namespaces. | ||
*/ | ||
} |