1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.tobago.component;
21
22 import org.junit.jupiter.api.Assertions;
23 import org.junit.jupiter.api.Test;
24 import org.slf4j.Logger;
25 import org.slf4j.LoggerFactory;
26
27 import javax.faces.component.UIComponent;
28 import java.lang.invoke.MethodHandles;
29 import java.lang.reflect.Method;
30
31 public class AttributesOfGeneratedUIComponentsUnitTest extends AbstractGeneratedUIComponentsUnitTest {
32
33 private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
34
35 @Test
36 public void test() {
37
38 for (final Class<? extends UIComponent> uiComponent : getUiComponents()) {
39 final Method[] methods = uiComponent.getMethods();
40 for (final Method method : methods) {
41
42 if (!method.getDeclaringClass().equals(uiComponent)) {
43
44 continue;
45 }
46
47 final String methodName = method.getName();
48 if (!methodName.startsWith("set") || methodName.length() <= 3) {
49 continue;
50 }
51
52 String property = Character.toLowerCase(methodName.charAt(3)) + methodName.substring(4);
53 if (property.equals("for")) {
54 property = "forValue";
55 }
56
57 LOG.debug("checking component {} for property {}", uiComponent, property);
58
59 try {
60 Attributes.valueOf(property);
61 } catch (final IllegalArgumentException e) {
62 Assertions.fail(e.getMessage());
63 }
64
65 }
66 }
67 }
68
69 }