assertEquals(AbstractExecutor.TRY_FAILED, set.tryExecute(duck, "eulav", "nope"));
}
public void testListIntrospection() throws Exception {
Uberspect uber = JexlEngine.getUberspect(null);
Introspector intro = (Introspector) uber;
List<Object> list = new ArrayList<Object>();
list.add("LIST");
list.add("TSIL");
AbstractExecutor.Get get = intro.getGetExecutor(list, Integer.valueOf(1));
AbstractExecutor.Set set = intro.getSetExecutor(list, Integer.valueOf(1), "foo");
assertTrue("list property getter", get instanceof ListGetExecutor);
assertTrue("list property setter", set instanceof ListSetExecutor);
// introspector and uberspect should return same result
assertEquals(get, uber.getPropertyGet(list, Integer.valueOf(1), null));
assertEquals(set, uber.getPropertySet(list, Integer.valueOf(1), "foo", null));
// different property should return different setter/getter
assertFalse(get.equals(intro.getGetExecutor(list, Integer.valueOf(0))));
assertFalse(get.equals(intro.getSetExecutor(list, Integer.valueOf(0), "foo")));
// setter returns argument
Object bar = set.execute(list, "bar");
assertEquals("bar", bar);
// getter should return last value
assertEquals("bar", get.execute(list));