package org.jboss.seam.test.integration;
import javax.el.ELException;
import javax.faces.el.MethodBinding;
import javax.faces.el.ValueBinding;
import org.jboss.seam.jsf.UnifiedELMethodBinding;
import org.jboss.seam.jsf.UnifiedELValueBinding;
import org.jboss.seam.mock.SeamTest;
import org.testng.annotations.Test;
/**
*
* @author Pete Muir
*
*/
public class ELTest extends SeamTest
{
@Override
protected void startJbossEmbeddedIfNecessary()
throws org.jboss.deployers.spi.DeploymentException ,java.io.IOException {}
@Test
public void testUnifiedELMethodBinding() throws Exception
{
new FacesRequest()
{
@SuppressWarnings("deprecation")
@Override
protected void invokeApplication() throws Exception
{
MethodBinding methodBinding = new UnifiedELMethodBinding("#{action.go}", new Class[0]);
assert "#{action.go}".equals(methodBinding.getExpressionString());
assert String.class.equals(methodBinding.getType(getFacesContext()));
Object result = methodBinding.invoke(getFacesContext(), new Object[0]);
assert result instanceof String;
assert "success".equals(result);
}
}.run();
}
@Test
public void testUnifiedELMethodBindingWithNull() throws Exception
{
new FacesRequest()
{
@SuppressWarnings("deprecation")
@Override
protected void invokeApplication() throws Exception
{
MethodBinding methodBinding = new UnifiedELMethodBinding("#{action.go}", null);
assert String.class.equals(methodBinding.getType(getFacesContext()));
Object result = methodBinding.invoke(getFacesContext(), null);
assert result instanceof String;
assert "success".equals(result);
}
}.run();
}
@Test
public void testEmptyUnifiedELMethodBinding() throws Exception
{
new FacesRequest()
{
@SuppressWarnings("deprecation")
@Override
protected void invokeApplication() throws Exception
{
MethodBinding methodBinding = new UnifiedELMethodBinding();
boolean failed = false;
try
{
methodBinding.invoke(getFacesContext(), null);
}
catch (ELException e) {
failed = true;
}
assert failed;
}
}.run();
}
@Test
public void testUnifiedELValueBinding() throws Exception
{
new FacesRequest()
{
@SuppressWarnings("deprecation")
@Override
protected void invokeApplication() throws Exception
{
ValueBinding valueBinding = new UnifiedELValueBinding("#{person.name}");
assert "#{person.name}".equals(valueBinding.getExpressionString());
assert !valueBinding.isReadOnly(getFacesContext());
assert String.class.equals(valueBinding.getType(getFacesContext()));
valueBinding.setValue(getFacesContext(), "Pete");
assert "Pete".equals(valueBinding.getValue(getFacesContext()));
}
}.run();
}
@Test
public void testEmptyUnifiedELValueBinding() throws Exception
{
new FacesRequest()
{
@SuppressWarnings("deprecation")
@Override
protected void invokeApplication() throws Exception
{
ValueBinding valueBinding = new UnifiedELValueBinding();
boolean failed = false;
try
{
valueBinding.setValue(getFacesContext(), "Pete");
valueBinding.getValue(getFacesContext());
}
catch (ELException e) {
failed = true;
}
assert failed;
}
}.run();
}
}