source: devel/testlink/automation2.0/src/test/java/org/expressolivre/cte/email/MailAdminPreferencesTestCase.java @ 4864

Revision 4864, 2.2 KB checked in by luiz-fernando, 13 years ago (diff)

Ticket #1771 - Adicionado testes automatizados para modulo da agenda

RevLine 
[4344]1package org.expressolivre.cte.email;
2
3import java.lang.reflect.InvocationTargetException;
4import java.lang.reflect.Method;
5
6import org.apache.commons.lang.StringUtils;
[4864]7import org.expressolivre.cte.common.BaseEmailTestCase;
[4344]8import org.expressolivre.cte.common.Config;
[4627]9import org.expressolivre.cte.pages.email.MailAdminPreferencesPage;
[4344]10import org.testng.annotations.Test;
11
12/**
13 * @author L.F.Estivalet (Serpro)
14 *
15 *         Created on Mai 11, 2011 at 2:07:45 PM
16 *
17 */
[4864]18public class MailAdminPreferencesTestCase extends BaseEmailTestCase {
[4344]19
20        /**
21         * Teste deve ser executando somente por usuario administrador.
22         *
23         * @throws IllegalArgumentException
24         * @throws IllegalAccessException
25         * @throws InvocationTargetException
26         */
27        @Test
28        public void test() throws IllegalArgumentException, IllegalAccessException,
29                        InvocationTargetException {
30                openPreferencesPage();
31
[4627]32                MailAdminPreferencesPage prefs = openEmailAdminPreferencesPage();
[4344]33                setPreferences(prefs, "user");
34                prefs = openEmailAdminDefaultPreferencesPage();
35                setPreferences(prefs, "default");
36                prefs = openEmailAdminForcedPreferencesPage();
37                setPreferences(prefs, "forced");
38
39        }
40
[4864]41        private void setPreferences(MailAdminPreferencesPage prefs, String pref)
42                        throws IllegalArgumentException, IllegalAccessException,
43                        InvocationTargetException {
[4344]44                // Percorre todos os metodos "setters" da classe
45                // ExpressoMailAdminPreferencesPage para mudar o valor de cada
46                // preferencia.
[4627]47                Method[] methods = MailAdminPreferencesPage.class.getMethods();
[4344]48                for (Method method : methods) {
49                        // Nao pegar os metodos setComboValue e setSavePreferences que nao
50                        // tem correspondentes no arquivo de configuracao.
51                        if (method.getName().startsWith("set")
52                                        && !method.getName().equals("setComboValue")
53                                        && !method.getName().equals("setSavePreferences")) {
54                                String name = StringUtils.uncapitalize(method.getName()
55                                                .substring(3));
56
57                                if (name.startsWith(pref)) {
58                                        // Apenas chama o metodo se a preferencia correspondente ao
59                                        // metodo get estiver definida no arquivo de configuracao.
60                                        String val = Config.getInstance().getEmailAdminPreference(
61                                                        name);
62                                        if (val != null) {
63                                                method.invoke(prefs, val);
64                                        }
65                                }
66                        }
67                }
68                prefs.savePreferences();
69
70        }
71}
Note: See TracBrowser for help on using the repository browser.