package org.transgalactica.fwk.web.jstl;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
import org.transgalactica.fwk.web.jstl.PropertyUtilTag;
public class PropertyUtilsTagTest {
@Test
public void testHasPropertySimpleOk() {
assertTrue(PropertyUtilTag.hasProperty(new Bean2(), "string"));
}
@Test
public void testHasPropertySimpleKo() {
assertFalse(PropertyUtilTag.hasProperty(new Bean2(), "none"));
}
@Test
public void testHasPropertyNestedPathOk() {
assertTrue(PropertyUtilTag.hasProperty(new Bean1(), "bean2.string"));
}
@Test
public void testHasPropertyNestedPathKo() {
assertFalse(PropertyUtilTag.hasProperty(new Bean1(), "bean2.none"));
}
@Test
public void testHasPropertyIndexedOk() {
assertTrue(PropertyUtilTag.hasProperty(new Bean2(), "strings[1]"));
}
@Test
public void testHasPropertyIndexedKo() {
assertFalse(PropertyUtilTag.hasProperty(new Bean2(), "strings[10]"));
}
public static class Bean1 {
private Bean2 bean2 = new Bean2();
public Bean1() {
}
public Bean2 getBean2() {
return bean2;
}
public void setBean2(Bean2 bean2) {
this.bean2 = bean2;
}
}
public static class Bean2 {
private String string;
private String[] strings = new String[2];
public Bean2() {
}
public String getString() {
return string;
}
public void setString(String string) {
this.string = string;
}
public String[] getStrings() {
return strings;
}
public void setStrings(String[] strings) {
this.strings = strings;
}
}
}