package org.expressolivre.cte.email; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import org.apache.commons.lang.StringUtils; import org.expressolivre.cte.common.BaseTestCase; import org.expressolivre.cte.common.Config; import org.expressolivre.cte.pages.email.MailPreferencesPage; import org.testng.annotations.Test; /** * @author L.F.Estivalet (Serpro) * * Created on Feb 3, 2011 at 11:07:04 AM * */ public class MailPreferencesTestCase extends BaseTestCase { @Test public void test() throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { openPreferencesPage(); MailPreferencesPage prefs = openEmailPreferencesPage(); // Percorre todos os metodos "setters" da classe // ExpressoMailPreferencesPage para mudar o valor de cada preferencia. Method[] methods = MailPreferencesPage.class.getMethods(); for (Method method : methods) { // Nao pegar os metodos setComboValue e setSavePreferences que nao // tem correspondentes no arquivo de configuracao. if (method.getName().startsWith("set") && !method.getName().equals("setComboValue") && !method.getName().equals("setSavePreferences")) { String name = StringUtils.uncapitalize(method.getName() .substring(3)); System.out.println(name); // Apenas chama o metodo se a preferencia correspondente ao // metodo get estiver definida no arquivo de configuracao. if (Config.getInstance().getEmailPreference(name) != null) { String[] values = Config.getInstance() .getEmailPreference(name).split(","); System.out.println(name + " " + values[0]); method.invoke(prefs, values[0]); } } } prefs.savePreferences(); } }