package org.jboss.resteasy.test.nextgen.wadl; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.HashMap; import java.util.List; import java.util.Map; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; /** * Created by weli on 6/14/16. */ public class WADLTestExistenceVerifier { private Map<String, Boolean> data = new HashMap<>(); public void createVerifier(String... keys) { for (String key : keys) { data.put(key, false); } } public void verify(List targets, Class targetClass, String fetchKeyMethod) throws InvocationTargetException, IllegalAccessException { assertNotNull(targets); assertTrue(targets.size() > 0); Method invocation = null; for (Object target : targets) { for (Method method : target.getClass().getMethods()) { if (target.getClass().equals(targetClass) && method.getName().equals(fetchKeyMethod)) { invocation = method; break; } } } if (invocation == null) throw new NoSuchMethodError(fetchKeyMethod); for (Object target : targets) { for (String key : data.keySet()) { if (target.getClass().equals(targetClass) && key.equals(invocation.invoke(target))) { data.put(key, true); } } } assertTrue(data.toString(), allTrue()); } public boolean allTrue() { boolean flag = true; for (Boolean value : data.values()) { if (value.booleanValue() == false) { flag = false; break; } } return flag; } }