// Path: modules/api/src/test/java/javax/el/test/TestClass.java
// public class TestClass {
// 	private static class TestInterfaceImpl implements TestInterface {
// 		public int getFourtyTwo() {
// 			return 42;
// 		}
// 	}
// 	
// 	private static class NestedClass {
// 		public static class TestInterfaceImpl2 implements TestInterface {
// 			public int getFourtyTwo() {
// 				return 42;
// 			}
// 		}
// 	}
// 	
// 	private TestInterface anonymousTestInterface = new TestInterface() {
// 		public int getFourtyTwo() {
// 			return 42;
// 		}
// 	};
// 
// 	public TestInterface getNestedTestInterface() {
// 		return new TestInterfaceImpl();
// 	}
// 
// 	public TestInterface getNestedTestInterface2() {
// 		return new NestedClass.TestInterfaceImpl2();
// 	}
// 
// 	public TestInterface getAnonymousTestInterface() {
// 		return anonymousTestInterface;
// 	}
// }


import java.beans.FeatureDescriptor;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import javax.el.test.TestClass;
import junit.framework.TestCase;

		assertFalse(context.isPropertyResolved());

		// base is bean, property == "readWrite" --> 123
		context.setPropertyResolved(false);
		assertEquals(456, resolver.getValue(context, new TestBean(), "readWrite"));
		assertTrue(context.isPropertyResolved());

		// base is bean, property == "writeOnly" --> exception
		try {
			resolver.getValue(context, new TestBean(), "writeOnly");
			fail();
		} catch (PropertyNotFoundException e) {
			// fine
		}

		// base is bean, property != null, but doesn't exist --> exception
		try {
			resolver.getValue(context, new TestBean(), "doesntExist");
			fail();
		} catch (PropertyNotFoundException e) {
			// fine
		}
	}

	public void testGetValue2() {
		Properties properties = new Properties();
		properties.setProperty(ExpressionFactory.class.getName(), TestFactory.class.getName());
		BeanELResolver resolver = new BeanELResolver();

		context.setPropertyResolved(false);

// Path: modules/api/src/test/java/javax/el/test/TestClass.java
// public class TestClass {
// 	private static class TestInterfaceImpl implements TestInterface {
// 		public int getFourtyTwo() {
// 			return 42;
// 		}
// 	}
// 	
// 	private static class NestedClass {
// 		public static class TestInterfaceImpl2 implements TestInterface {
// 			public int getFourtyTwo() {
// 				return 42;
// 			}
// 		}
// 	}
// 	
// 	private TestInterface anonymousTestInterface = new TestInterface() {
// 		public int getFourtyTwo() {
// 			return 42;
// 		}
// 	};
// 
// 	public TestInterface getNestedTestInterface() {
// 		return new TestInterfaceImpl();
// 	}
// 
// 	public TestInterface getNestedTestInterface2() {
// 		return new NestedClass.TestInterfaceImpl2();
// 	}
// 
// 	public TestInterface getAnonymousTestInterface() {
// 		return anonymousTestInterface;
// 	}
// }


// Path: modules/api/src/test/java/javax/el/BeanELResolverTest.java
import java.beans.FeatureDescriptor;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import javax.el.test.TestClass;
import junit.framework.TestCase;

		assertFalse(context.isPropertyResolved());

		// base is bean, property == "readWrite" --> 123
		context.setPropertyResolved(false);
		assertEquals(456, resolver.getValue(context, new TestBean(), "readWrite"));
		assertTrue(context.isPropertyResolved());

		// base is bean, property == "writeOnly" --> exception
		try {
			resolver.getValue(context, new TestBean(), "writeOnly");
			fail();
		} catch (PropertyNotFoundException e) {
			// fine
		}

		// base is bean, property != null, but doesn't exist --> exception
		try {
			resolver.getValue(context, new TestBean(), "doesntExist");
			fail();
		} catch (PropertyNotFoundException e) {
			// fine
		}
	}

	public void testGetValue2() {
		Properties properties = new Properties();
		properties.setProperty(ExpressionFactory.class.getName(), TestFactory.class.getName());
		BeanELResolver resolver = new BeanELResolver();

		context.setPropertyResolved(false);

		assertEquals(42, resolver.getValue(context, new TestClass().getAnonymousTestInterface(), "fourtyTwo"));
