Commit b439eef071e21026436be8fc67d1a07580dbc17d

Authored by Eriksen Costa Paixão
1 parent e90ab4b1
Exists in master

by Eriksen: Refactoring no diretório {{{tests/}}}:

 * Criado suíte de testes geral para o projeto e específicas para cada tipo (unitário ou funcional) e de pacote ({{{tests/unit/App}}}, por exemplo). Exemplos(assumindo raiz do projeto):
   * {{{phpunit tests/AllTests.php}}} - executa a suíte inteira de testes
   * {{{phpunit tests/unit/AllTests.php}}} - executa a suíte de testes unitários
   * {{{phpunit tests/unit/CoreExt/AllTests.php}}} - executa a suíte de testes unitários do pacote {{{CoreExt}}}
   * Observação: por esse motivo, a task phing alltests, unittests e functests foram removidas do buildfile
 * Atualização da convenção de nomeação de arquivos: ao invés de {{{.class.php}}}, arquivos deverão ser renomeados como {{{.php}}}
 * Atualização dos docblocks dos arquivos e classes de testes:
   * Tag {{{@category}}} tem o valor i-Educar, não importa em qual pacote o arquivo/classe está
   * Testes unitários estão no {{{@subpackage UnitTests}}} e funcionais em {{{@subpackage FunctionalTests}}}
   * Os testes unitários foram movidos para subdiretórios respeitando a organização de diretórios global:
     * Teste de classes legadas (por exemplo, as classes do diretório {{{intranet/}}} estão no diretório {{{tests/unit/Core}}}
     * Analogamente, classes de teste unitário da nova API {{{CoreExt}}}, classes utilitárias {{{Utils}}} e das novas classes da aplicação {{{App}}} estão nos diretórios {{{tests/unit/CoreExt}}}, {{{tests/unit/Utils}}} e {{{tests/unit/App}}}
     * Os pacotes de cada classe deve obedecer ao pacote da classe ao qual testa, por exemplo, se {{{lib/CoreExt/Config.class.php (CoreExt_Config)}}} está no pacote {{{CoreExt_Config}}}, {{{tests/unit/CoreExt/ConfigTest.php (CoreExt_ConfigTest)}}} deverá estar no mesmo pacote
 * Classe {{{TestCollector}}} criada para auxiliar na criação de suíte de testes
 * Arquivo {{{tests/bootstrap.php}}} criado para configurar o ambiente adequadamente para testes
 * Arquivo {{{phpunit.xml}}} atualizado para usar o arquivo {{{tests/bootstrap.php}}}
 * Buildfile atualizado. Tarefas alltests, unittests, functests foram removidos devido a inclusão dos arquivos {{{bootstrap.php}}} e das suítes {{{AllTests}}}


Showing 33 changed files with 1743 additions and 927 deletions   Show diff stats
ieducar/misc/build.xml
1 1 <?xml version="1.0"?>
2   -
3   -<!--
4   - - Configurações para o processo de build Phing
5   - -
6   - - Este arquivo de build precisa de alguns ajustes antes da criação de uma
7   - - release. Mude a propriedade project.conf.version para o número de versão
8   - - desejado e a propriedade project.conf.buildin para apontar para o diretório
9   - - de build desejado (o padrão é /tmp).
10   - -
11   - - Dois pacotes compactados serão criados, um Gzip e outro Zip.
12   - -
13   - - Este build não executa os testes unitários e funcionais.
14   - -
15   - - Arquivo codificado em UTF-8 para maior compatibilidade com o utilitário
16   - - CLI phing.
17   - -
18   - - @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
19   - - @license http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL
20   - - @link http://phing.info/docs/guide/current/ Phing Documentation
21   - - @version $Id$
22   - -->
23   -
24   -<project name="i-Educar" description="Sistema de gestão de escolas" default="release" basedir="../">
  2 +<!--
  3 +/**
  4 + * Configurações para o processo de build Phing
  5 + *
  6 + * Este arquivo de build precisa de alguns ajustes antes da criação de uma
  7 + * release. Mude a propriedade project.conf.version para o número de versão
  8 + * desejado e a propriedade project.conf.buildin para apontar para o diretório
  9 + * de build desejado (o padrão é /tmp).
  10 + *
  11 + * Dois pacotes compactados serão criados, um Gzip e outro Zip.
  12 + *
  13 + * Este build não executa os testes unitários e funcionais.
  14 + *
  15 + * Arquivo codificado em UTF-8 para maior compatibilidade com o utilitário
  16 + * CLI phing.
  17 + *
  18 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  19 + * @license http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL
  20 + * @link http://phing.info/docs/guide/current/ Phing Documentation
  21 + * @todo Incluir tarefas de geração de API (PhpDocumentorTask)
  22 + * @version $Id$
  23 + */
  24 +-->
  25 +<project name="i-Educar" description="Sistema de gestão escolar" default="release" basedir="../">
  26 + <!-- Configuração geral do build -->
25 27 <property name="project.conf.version" value="1.1.0" />
26 28 <property name="project.conf.curdir" value="" />
27 29 <property name="project.conf.buildin" value="/tmp" />
... ... @@ -34,13 +36,54 @@
34 36 <property name="project.conf.dbdeploy.username" value="ieducar" />
35 37 <property name="project.conf.dbdeploy.password" value="ieducar" />
36 38 <property name="project.conf.dbdeploy.dbname" value="ieducar" />
37   - <property name="project.conf.dbdeploy.psql_path" value="/usr/bin/psql" />
  39 + <property name="project.conf.dbdeploy.psql_path" value="" />
  40 +
  41 + <!-- Variáveis para substituição de tokens -->
  42 + <property name="project.conf.license" value="http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL" />
38 43  
39 44 <!-- Apenas para saber quanta memória o build consome -->
40 45 <property name="build.report.memory_peak" value="" />
41 46  
  47 + <!-- project.conf.dbdeploy.psql -->
  48 + <!--
  49 + Procura pelo psql no path do sistema.
  50 +
  51 + O comando which retorna um status code. Para saber qual o comando
  52 + registrado no $PATH, gravamos para um arquivo, recuperamos o seu conteúdo
  53 + e gravamos o valor em ${project.conf.dbdeploy.psql_path}.
  54 + -->
  55 + <exec command="which psql > ${project.conf.buildin}/psql_path.txt" escape="false" />
  56 +
  57 + <php function="file_get_contents" returnProperty="project.conf.dbdeploy.psql_path">
  58 + <param value="${project.conf.buildin}/psql_path.txt" />
  59 + </php>
  60 +
  61 + <php function="trim" returnProperty="project.conf.dbdeploy.psql_path">
  62 + <param value="${project.conf.dbdeploy.psql_path}" />
  63 + </php>
  64 + <!-- /project.conf.dbdeploy.psql -->
  65 +
42 66 <!-- Pega o diretório atual como workaround ao chdir das classes de teste base -->
43 67 <php function="getcwd" returnProperty="project.conf.curdir" />
  68 +
  69 + <!-- project.conf.release_hash -->
  70 + <!--
  71 + Gera um hash único no momento do build para uso como chave de geração de
  72 + Id de sessão. Ver: http://php.net/session_id
  73 + -->
  74 + <php function="time" returnProperty="project.conf.timestamp" />
  75 +
  76 + <!-- Gera um uniqid -->
  77 + <php function="uniqid" returnProperty="project.conf.uniqid">
  78 + <param value="${project.conf.version}-${project.conf.timestamp}" />
  79 + <param value="TRUE" />
  80 + </php>
  81 +
  82 + <!-- Hash sha1 do uniqid para distribuição -->
  83 + <php function="sha1" returnProperty="project.conf.hash">
  84 + <param value="${project.conf.uniqid}" />
  85 + </php>
  86 + <!-- /project.conf.release_hash -->
44 87  
45 88 <!-- Inclui todos os arquivos do projeto, ignorando alguns arquivos e diretórios -->
46 89 <fileset dir="${project.basedir}" id="allfiles">
... ... @@ -54,33 +97,13 @@
54 97 <exclude name="misc/database/deltas/**" />
55 98 </fileset>
56 99  
57   - <!-- Inclui todos os arquivos de testes -->
58   - <fileset dir="${project.conf.curdir}/tests" id="alltests">
59   - <include name="**" />
60   - <exclude name="selenese/*" />
61   - </fileset>
62   -
63   - <!-- Inclui apenas os arquivos de unit test -->
64   - <fileset dir="${project.conf.curdir}/tests" id="unittests">
65   - <include name="**" />
66   - <exclude name="functional/*" />
67   - <exclude name="selenese/*" />
68   - </fileset>
69   -
70   - <!-- Inclui apenas os arquivos de functional test -->
71   - <fileset dir="${project.conf.curdir}/tests" id="functests">
72   - <include name="**" />
73   - <exclude name="unit/*" />
74   - <exclude name="selenese/*" />
75   - </fileset>
76   -
77 100 <!-- Prepara o ambiente para a o processo de build -->
78 101 <target name="prepare">
79 102 <echo msg="Preparando o build para a release ${project.conf.version}" />
80 103  
81 104 <echo msg="Apagando diretório alvo ${project.conf.builddir}" />
82 105 <delete dir="${project.conf.builddir}" verbose="on" includeemptydirs="on" failonerror="on" />
83   -
  106 +
84 107 <echo msg="Apagando pacotes gzip e zip ${project.conf.buildgzip} e ${project.conf.buildzip}" />
85 108 <delete file="${project.conf.buildgzip}" verbose="on" failonerror="on" />
86 109 <delete file="${project.conf.buildzip}" verbose="on" failonerror="on" />
... ... @@ -91,37 +114,6 @@
91 114 <mkdir dir="${project.conf.builddir}/deploy" />
92 115 </target>
93 116  
94   - <!-- Executa todos os testes disponíveis -->
95   - <target name="tests">
96   - <echo msg="Executando todos os testes em ${project.conf.curdir}/tests" />
97   - <phpunit printsummary="true" haltonfailure="true" haltonerror="on" >
98   - <formatter todir="${project.conf.buildin}" type="xml"/>
99   - <batchtest>
100   - <fileset refid="alltests" />
101   - </batchtest>
102   - </phpunit>
103   - </target>
104   -
105   - <!-- Executa apenas os unit tests -->
106   - <target name="unittest">
107   - <echo msg="Executando todos os unit tests em ${project.conf.curdir}/tests/unit" />
108   - <phpunit printsummary="true" haltonfailure="true" haltonerror="on" >
109   - <batchtest>
110   - <fileset refid="unittests" />
111   - </batchtest>
112   - </phpunit>
113   - </target>
114   -
115   - <!-- Executa apenas os functional tests -->
116   - <target name="functest">
117   - <echo msg="Executando todos os functional tests em ${project.conf.curdir}/tests/functional" />
118   - <phpunit printsummary="true" haltonfailure="true" haltonerror="on" >
119   - <batchtest>
120   - <fileset refid="functests" />
121   - </batchtest>
122   - </phpunit>
123   - </target>
124   -
125 117 <!-- Tarefa de migração de banco de dados -->
126 118 <target name="migrate" description="Migração de BD" depends="prepare">
127 119  
... ... @@ -132,28 +124,34 @@
132 124 <property name="project.conf.dbdeploy.deployfile" value="deploy/deploy.sql" />
133 125 <property name="project.conf.dbdeploy.undofile" value="deploy/undo.sql" />
134 126  
135   - <!-- generate the deployment scripts -->
136   - <dbdeploy
137   - url="pgsql:host=${project.conf.dbdeploy.hostname};dbname=${project.conf.dbdeploy.dbname}"
138   - userid="${project.conf.dbdeploy.username}"
139   - password="${project.conf.dbdeploy.password}"
140   - dir="${project.conf.curdir}/misc/database/deltas"
141   - outputfile="${project.conf.builddir}/${project.conf.dbdeploy.deployfile}"
  127 + <!-- Gera os scripts de dbdeploy -->
  128 + <dbdeploy
  129 + url="pgsql:host=${project.conf.dbdeploy.hostname};dbname=${project.conf.dbdeploy.dbname}"
  130 + userid="${project.conf.dbdeploy.username}"
  131 + password="${project.conf.dbdeploy.password}"
  132 + dir="${project.conf.curdir}/misc/database/deltas"
  133 + outputfile="${project.conf.builddir}/${project.conf.dbdeploy.deployfile}"
142 134 undooutputfile="${project.conf.builddir}/${project.conf.dbdeploy.undofile}" />
143 135  
144 136 <!-- Executa o psql através de chamada shell, por velocidade -->
145   - <exec
146   - command="${project.conf.dbdeploy.psql_path} -U ${project.conf.dbdeploy.username} ${project.conf.dbdeploy.dbname} &lt; ${project.conf.dbdeploy.deployfile}"
147   - dir="${project.conf.builddir}"
  137 + <exec
  138 + command="${project.conf.dbdeploy.psql_path} -U ${project.conf.dbdeploy.username} ${project.conf.dbdeploy.dbname} &lt; ${project.conf.dbdeploy.deployfile}"
  139 + dir="${project.conf.builddir}"
148 140 checkreturn="true" />
149 141 </target>
150   -
151 142  
152 143 <!-- Copia os arquivos do projeto para o diretório de build -->
153 144 <target name="build" depends="prepare">
154 145 <echo msg="Criando o build" />
155 146 <delete dir="${project.conf.builddir}/deploy" verbose="on" includeemptydirs="on" failonerror="on" />
156 147 <copy todir="${project.conf.builddir}">
  148 + <filterchain id="filters">
  149 + <replacetokens begintoken="@@" endtoken="@@">
  150 + <token key="package_version" value="${project.conf.version}" />
  151 + <token key="license" value="${project.conf.license}" />
  152 + <token key="release_hash" value="${project.conf.hash}" />
  153 + </replacetokens>
  154 + </filterchain>
157 155 <fileset refid="allfiles" />
158 156 </copy>
159 157 </target>
... ... @@ -177,9 +175,9 @@
177 175 </fileset>
178 176 </zip>
179 177 </target>
180   -
  178 +
181 179 <!-- Cria uma nova release -->
182   - <target name="release" depends="migrate, build, tests, gzip, zip">
  180 + <target name="release" depends="migrate, build, gzip, zip">
183 181 <echo msg="OK! Build construído com sucesso." />
184 182 <php function="memory_get_peak_usage" returnProperty="build.report.memory_peak" />
185 183 <echo msg="Pico de memória: ${build.report.memory_peak}." />
... ...
ieducar/phpunit.xml
... ... @@ -4,5 +4,5 @@
4 4 - Configurações do PHPUnit.
5 5 -->
6 6  
7   -<phpunit colors='true'>
  7 +<phpunit colors='true' bootstrap='tests/bootstrap.php'>
8 8 </phpunit>
... ...
ieducar/tests/AllTests.php 0 → 100644
... ... @@ -0,0 +1,55 @@
  1 +<?php
  2 +
  3 +/**
  4 + * i-Educar - Sistema de gestão escolar
  5 + *
  6 + * Copyright (C) 2006 Prefeitura Municipal de Itajaí
  7 + * <ctima@itajai.sc.gov.br>
  8 + *
  9 + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
  10 + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
  11 + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
  12 + * qualquer versão posterior.
  13 + *
  14 + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
  15 + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
  16 + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
  17 + * do GNU para mais detalhes.
  18 + *
  19 + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
  20 + * com este programa; se não, escreva para a Free Software Foundation, Inc., no
  21 + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package Tests
  27 + * @since Arquivo disponível desde a versão 1.1.0
  28 + * @version $Id$
  29 + */
  30 +
  31 +require_once 'unit/AllTests.php';
  32 +require_once 'functional/AllTests.php';
  33 +
  34 +/**
  35 + * AllTests class.
  36 + *
  37 + * Arquivo de definição de suíte para o projeto.
  38 + *
  39 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  40 + * @category i-Educar
  41 + * @license @@license@@
  42 + * @package Tests
  43 + * @since Classe disponível desde a versão 1.1.0
  44 + * @version @@package_version@@
  45 + */
  46 +class AllTests
  47 +{
  48 + public static function suite()
  49 + {
  50 + $suite = new PHPUnit_Framework_TestSuite('Suíte de testes do projeto (unitários e funcionais)');
  51 + $suite->addTest(Unit_AllTests::suite());
  52 + $suite->addTest(Functional_AllTests::suite());
  53 + return $suite;
  54 + }
  55 +}
0 56 \ No newline at end of file
... ...
ieducar/tests/FunctionalBaseTest.class.php
1 1 <?php
2 2  
3   -/*
  3 +/**
4 4 * i-Educar - Sistema de gestão escolar
5 5 *
6 6 * Copyright (C) 2006 Prefeitura Municipal de Itajaí
... ... @@ -19,61 +19,65 @@
19 19 * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
20 20 * com este programa; se não, escreva para a Free Software Foundation, Inc., no
21 21 * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package FunctionalTests
  27 + * @since Arquivo disponível desde a versão 1.0.1
  28 + * @version $Id$
22 29 */
23 30  
  31 +require_once 'PHPUnit/Extensions/SeleniumTestCase.php';
  32 +
24 33 /**
25 34 * FunctionBaseTest class.
26 35 *
27 36 * Contém as configurações de acesso ao servidor Selenium RC, a conta de usuário
28 37 * a ser utilizada no teste e alguns métodos auxiliares.
29 38 *
30   - * Muda o diretório atual para que os testes possam ser facilmente invocados
31   - * em qualquer subdiretório do sistema.
32   - *
33 39 * Abstrai o PHPUnit, diminuindo a dependência de seu uso. Inclui a classe
34 40 * de banco de dados para facilitar no tearDown de dados de teste.
35 41 *
36   - * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
37   - * @license http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL
38   - * @package Test
39   - * @since Classe disponível desde a versão 1.0.1
40   - * @version $Id$
  42 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  43 + * @category i-Educar
  44 + * @license http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL
  45 + * @package FunctionalTests
  46 + * @since Classe disponível desde a versão 1.0.1
  47 + * @version @@package_version@@
41 48 */
42   -
43   -chdir(realpath(dirname(__FILE__) . '/../') . '/intranet');
44   -require_once 'PHPUnit/Extensions/SeleniumTestCase.php';
45   -require_once 'include/clsBanco.inc.php';
46   -
47   -abstract class FunctionalBaseTest extends PHPUnit_Extensions_SeleniumTestCase {
48   -
49   - // Configurações do Selenium RC
  49 +abstract class FunctionalBaseTest extends PHPUnit_Extensions_SeleniumTestCase
  50 +{
  51 + // Configurações do Selenium RC.
50 52 static protected
51 53 $slBrowserUrl = 'http://ieducar.local',
52 54 $slBrowser = '*firefox',
53 55 $slPort = 4444,
54 56 $slHost = 'localhost';
55 57  
56   - // Conta de usuário para testes funcionais
  58 + // Conta de usuário para testes funcionais.
57 59 protected
58 60 $slUsuarioLogin = 'admin',
59 61 $slUsuarioSenha = 'admin';
60 62  
61   - protected function setUp() {
  63 + protected function setUp()
  64 + {
62 65 $this->setBrowser(self::$slBrowser);
63 66 $this->setHost(self::$slHost);
64 67 $this->setPort(self::$slPort);
65 68 $this->setBrowserUrl(self::$slBrowserUrl);
66 69 }
67 70  
68   - protected function doLogin() {
  71 + protected function doLogin()
  72 + {
69 73 $this->open('/intranet');
70 74 $this->type('login', $this->slUsuarioLogin);
71 75 $this->type('senha', $this->slUsuarioSenha);
72 76 $this->clickAndWait("//input[@value='Entrar']");
73 77 }
74 78  
75   - protected function doLogout() {
  79 + protected function doLogout()
  80 + {
76 81 $this->click("//img[@alt='Logout']");
77 82 }
78   -
79   -}
  83 +}
80 84 \ No newline at end of file
... ...
ieducar/tests/TestCollector.php 0 → 100644
... ... @@ -0,0 +1,201 @@
  1 +<?php
  2 +
  3 +/**
  4 + * i-Educar - Sistema de gestão escolar
  5 + *
  6 + * Copyright (C) 2006 Prefeitura Municipal de Itajaí
  7 + * <ctima@itajai.sc.gov.br>
  8 + *
  9 + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
  10 + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
  11 + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
  12 + * qualquer versão posterior.
  13 + *
  14 + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
  15 + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
  16 + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
  17 + * do GNU para mais detalhes.
  18 + *
  19 + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
  20 + * com este programa; se não, escreva para a Free Software Foundation, Inc., no
  21 + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package Tests
  27 + * @since Arquivo disponível desde a versão 1.1.0
  28 + * @version $Id$
  29 + */
  30 +
  31 +require_once 'PHPUnit/Framework.php';
  32 +require_once 'PHPUnit/Runner/IncludePathTestCollector.php';
  33 +
  34 +/**
  35 + * TestCollector abstract class.
  36 + *
  37 + * Classe abstrata que provê um ponto de extensão para classes de definição de
  38 + * suíte de testes do PHPUnit (veja {@link Orga})
  39 + *
  40 + * Ao estender corretamente essa classe, todos as classes de teste do diretório
  41 + * da classe de definição de suíte de testes serão adicionados à suíte,
  42 + * tornando desnecessário a nessidade de usar os construtores de linguagem
  43 + * require e include para incluir esses arquivos.
  44 + *
  45 + * Para estender essa classe, basta informar o caminho para o arquivo da classe
  46 + * de definição da suíte na variável protegida $_file, exemplo:
  47 + *
  48 + * <code>
  49 + * class App_Model_AllTests extends TestCollector
  50 + * {
  51 + * protected $_file = __FILE__;
  52 + * }
  53 + * </code>
  54 + *
  55 + * Isso é o suficiente para conseguir coletar todos os arquivos do diretório.
  56 + * Para criar uma suíte de testes com todas as classes de teste do diretório,
  57 + * basta criar uma instância da classe e chamar o método addDirectoryTests():
  58 + *
  59 + * <code>
  60 + * public static function suite()
  61 + * {
  62 + * $instance = new self();
  63 + * return $instance->createTestSuite('App_Model: testes unitários')
  64 + * ->addDirectoryTests();
  65 + * }
  66 + * </code>
  67 + *
  68 + * Se a variável de instância $_name estiver sobrescrita, ela será utilizada
  69 + * por padrão caso o método createTestSuite() seja chamado sem o parâmetro nome.
  70 + * Dessa forma, basta chamar o método addDirectoryTests():
  71 + *
  72 + * <code>
  73 + * protected $_name = 'App_model: testes unitários';
  74 + *
  75 + * public static function suite()
  76 + * {
  77 + * $instance = new self();
  78 + * return $instance->addDirectoryTests();
  79 + * }
  80 + * </code>
  81 + *
  82 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  83 + * @category i-Educar
  84 + * @license @@license@@
  85 + * @package Tests
  86 + * @since Classe disponível desde a versão 1.1.0
  87 + * @version @@package_version@@
  88 + */
  89 +abstract class TestCollector
  90 +{
  91 + /**
  92 + * Caminho completo do arquivo da classe que estende TestCollector.
  93 + * @var string
  94 + */
  95 + protected $_file = NULL;
  96 +
  97 + /**
  98 + * Diretório onde residem os arquivos com as classes de teste.
  99 + * @var string
  100 + */
  101 + protected $_dir = NULL;
  102 +
  103 + /**
  104 + * Nome da suíte de testes.
  105 + * @var string
  106 + */
  107 + protected $_name = '';
  108 +
  109 + /**
  110 + * Uma instância de PHPUnit_Framework_TestSuite.
  111 + * @var PHPUnit_Framework_TestSuite
  112 + */
  113 + protected $_suite = NULL;
  114 +
  115 + /**
  116 + * Construtor.
  117 + * @return TestCollector
  118 + */
  119 + public function __construct()
  120 + {
  121 + $this->_defineCurrentDir();
  122 + }
  123 +
  124 + /**
  125 + * Cria um objeto PHPUnit_Framework_TestSuite com o nome passado como
  126 + * argumento ou usando a variável de instância $_name.
  127 + *
  128 + * @param string $name O nome para a suíte de testes
  129 + * @return TestCollector Interface fluída
  130 + * @throws InvalidArgumentException
  131 + */
  132 + public function createTestSuite($name = '')
  133 + {
  134 + if ((trim((string) $name)) == '' && $this->_name == '') {
  135 + throw new InvalidArgumentException('A classe concreta deve sobrescrever a '
  136 + . 'variável "$_name" ou passar um nome válido ao chamar o método'
  137 + . 'createTestSuite().');
  138 + }
  139 + if (trim((string) $name) != '') {
  140 + $name = $this->_name;
  141 + }
  142 +
  143 + $this->_suite = new PHPUnit_Framework_TestSuite($name);
  144 + return $this;
  145 + }
  146 +
  147 + /**
  148 + * Adiciona os testes do diretório da classe de definição de suíte.
  149 + *
  150 + * @param PHPUnit_Framework_TestSuite $suite
  151 + * @return PHPUnit_Framework_TestSuite
  152 + */
  153 + public function addDirectoryTests(PHPUnit_Framework_TestSuite $suite = NULL)
  154 + {
  155 + // Se não existir um objeto PHPUnit_Framework_TestSuite, cria um com o nome
  156 + // do arquivo da classe de definição da suíte
  157 + if ($this->_suite == NULL && $suite == NULL) {
  158 + $this->createTestSuite();
  159 + }
  160 + if ($suite == NULL) {
  161 + $suite = $this->_suite;
  162 + }
  163 +
  164 + $suite->addTestFiles($this->_collectTests());
  165 + return $suite;
  166 + }
  167 +
  168 + /**
  169 + * Retorna um PHPUnit_Util_FilterIterator que contém as regras de inclusão
  170 + * de testes do diretório definido por $_fir.
  171 + *
  172 + * @return PHPUnit_Util_FilterIterator
  173 + */
  174 + protected function _collectTests()
  175 + {
  176 + $testCollector = new PHPUnit_Runner_IncludePathTestCollector(array($this->_dir));
  177 + return $testCollector->collectTests();
  178 + }
  179 +
  180 + /**
  181 + * Define o diretório atual da classe que estende TestCollector. O diretório é
  182 + * definido pela variável de instância $_file.
  183 + *
  184 + * @throws Exception Lança exceção
  185 + * @todo Refatorar o código para utilizar {@link http://php.net/lsb Late static binding}
  186 + * quando a versão do PHP for a 5.3.
  187 + */
  188 + protected function _defineCurrentDir()
  189 + {
  190 + if ($this->_file === NULL) {
  191 + throw new Exception('A classe concreta deve sobrescrever a variável "$_file".');
  192 + }
  193 + if ($this->_dir == '') {
  194 + $dir = realpath(dirname($this->_file));
  195 + if (!is_dir($dir)) {
  196 + throw new Exception('The path "'. $dir .'" is not a valid directory');
  197 + }
  198 + $this->_dir = $dir;
  199 + }
  200 + }
  201 +}
0 202 \ No newline at end of file
... ...
ieducar/tests/UnitBaseTest.class.php
1 1 <?php
2 2  
3   -/*
  3 +/**
4 4 * i-Educar - Sistema de gestão escolar
5 5 *
6 6 * Copyright (C) 2006 Prefeitura Municipal de Itajaí
... ... @@ -19,33 +19,27 @@
19 19 * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
20 20 * com este programa; se não, escreva para a Free Software Foundation, Inc., no
21 21 * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package UnitTests
  27 + * @since Arquivo disponível desde a versão 1.0.1
  28 + * @version $Id$
22 29 */
23 30  
24   -
25   -/*
26   - * Faz require do bootstrap para que as mesmas configurações do ambiente
27   - * (conexão com o banco de dados, títulos, configurações do PHP), sejam
28   - * utilizadas pelos unit test para evitar discrepâncias no comportamento.
29   - */
30   -require_once realpath(dirname(__FILE__) . '/../') . '/includes/bootstrap.php';
31   -
32   -chdir(realpath(dirname(__FILE__) . '/../') . '/intranet');
33   -require_once 'PHPUnit/Framework.php';
34   -require_once 'include/clsBanco.inc.php';
35   -
36   -
37 31 /**
38 32 * UnitBaseTest abstract class.
39 33 *
40   - * Muda o diretório atual para que os testes possam ser facilmente invocados
41   - * em qualquer subdiretório do sistema.
42   - *
43 34 * Abstrai o PHPUnit, diminuindo a dependência de seu uso.
44 35 *
45   - * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
46   - * @license http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL
47   - * @package Test
48   - * @since Classe disponível desde a versão 1.0.1
49   - * @version $Id$
  36 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  37 + * @category i-Educar
  38 + * @license @@license@@
  39 + * @package UnitTests
  40 + * @since Classe disponível desde a versão 1.0.1
  41 + * @version @@package_version@@
50 42 */
51   -abstract class UnitBaseTest extends PHPUnit_Framework_TestCase {}
52 43 \ No newline at end of file
  44 +abstract class UnitBaseTest extends PHPUnit_Framework_TestCase
  45 +{
  46 +}
53 47 \ No newline at end of file
... ...
ieducar/tests/bootstrap.php 0 → 100644
... ... @@ -0,0 +1,60 @@
  1 +<?php
  2 +
  3 +/**
  4 + * i-Educar - Sistema de gestão escolar
  5 + *
  6 + * Copyright (C) 2006 Prefeitura Municipal de Itajaí
  7 + * <ctima@itajai.sc.gov.br>
  8 + *
  9 + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
  10 + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
  11 + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
  12 + * qualquer versão posterior.
  13 + *
  14 + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
  15 + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
  16 + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
  17 + * do GNU para mais detalhes.
  18 + *
  19 + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
  20 + * com este programa; se não, escreva para a Free Software Foundation, Inc., no
  21 + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package Tests
  27 + * @since Arquivo disponível desde a versão 1.1.0
  28 + * @version $Id$
  29 + */
  30 +
  31 +/**
  32 + * Arquivo de bootstrap para os testes do projeto. Configura o include_path e
  33 + * inclui alguns arquivos necessários nos testes unitários e funcionais.
  34 + */
  35 +
  36 +
  37 +// Diretório raiz do projeto.
  38 +$root = realpath(dirname(__FILE__) . '/../');
  39 +
  40 +// Adiciona os diretórios tests/unit, tests/functional, tests/, ./ e intranet/
  41 +// ao include_path.
  42 +$paths = array();
  43 +$paths[] = join(DIRECTORY_SEPARATOR, array($root, 'tests', 'unit'));
  44 +$paths[] = join(DIRECTORY_SEPARATOR, array($root, 'tests', 'functional'));
  45 +$paths[] = join(DIRECTORY_SEPARATOR, array($root, 'tests'));
  46 +$paths[] = join(DIRECTORY_SEPARATOR, array($root, '.'));
  47 +$paths[] = join(DIRECTORY_SEPARATOR, array($root, 'intranet'));
  48 +
  49 +// Configura o include_path.
  50 +set_include_path(join(PATH_SEPARATOR, $paths) . PATH_SEPARATOR . get_include_path());
  51 +
  52 +// Arquivos em intranet/ usam includes com caminho relativo, muda diretório
  53 +// atual para evitar warnings e errors.
  54 +chdir($root . '/intranet');
  55 +unset($root, $paths);
  56 +
  57 +require_once 'TestCollector.php';
  58 +require_once 'UnitBaseTest.class.php';
  59 +require_once 'FunctionalBaseTest.class.php';
  60 +require_once 'include/clsBanco.inc.php';
0 61 \ No newline at end of file
... ...
ieducar/tests/functional/AllTests.php 0 → 100644
... ... @@ -0,0 +1,53 @@
  1 +<?php
  2 +
  3 +/**
  4 + * i-Educar - Sistema de gestão escolar
  5 + *
  6 + * Copyright (C) 2006 Prefeitura Municipal de Itajaí
  7 + * <ctima@itajai.sc.gov.br>
  8 + *
  9 + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
  10 + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
  11 + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
  12 + * qualquer versão posterior.
  13 + *
  14 + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
  15 + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
  16 + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
  17 + * do GNU para mais detalhes.
  18 + *
  19 + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
  20 + * com este programa; se não, escreva para a Free Software Foundation, Inc., no
  21 + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package FunctionalTests
  27 + * @since Arquivo disponível desde a versão 1.1.0
  28 + * @version $Id$
  29 + */
  30 +
  31 +/**
  32 + * Functionl_AllTests class.
  33 + *
  34 + * Arquivo de definição de suíte de testes funcionais.
  35 + *
  36 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  37 + * @category i-Educar
  38 + * @license @@license@@
  39 + * @package FunctionalTests
  40 + * @since Classe disponível desde a versão 1.1.0
  41 + * @version @@package_version@@
  42 + */
  43 +class Functional_AllTests extends TestCollector
  44 +{
  45 + protected $_name = 'Suíte de testes funcionais do projeto';
  46 + protected $_file = __FILE__;
  47 +
  48 + public static function suite()
  49 + {
  50 + $instance = new self;
  51 + return $instance->addDirectoryTests();
  52 + }
  53 +}
0 54 \ No newline at end of file
... ...
ieducar/tests/functional/ServidorCategoriaNivelWebTest.class.php
... ... @@ -1,75 +0,0 @@
1   -<?php
2   -
3   -/*
4   - * i-Educar - Sistema de gestão escolar
5   - *
6   - * Copyright (C) 2006 Prefeitura Municipal de Itajaí
7   - * <ctima@itajai.sc.gov.br>
8   - *
9   - * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
10   - * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
11   - * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
12   - * qualquer versão posterior.
13   - *
14   - * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
15   - * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
16   - * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
17   - * do GNU para mais detalhes.
18   - *
19   - * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
20   - * com este programa; se não, escreva para a Free Software Foundation, Inc., no
21   - * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
22   - */
23   -
24   -/**
25   - * ServidorCategoriaNivelWebTest class.
26   - *
27   - * Testa as ações de atualizar um nível de categoria, como verificação
28   - * da correção do bug #21.
29   - *
30   - * Esse teste precisa ser executado com o banco de dados distribuído na
31   - * versão 1.0.0.
32   - *
33   - * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
34   - * @license http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL
35   - * @package Test
36   - * @subpackage FunctionalTest
37   - * @since Classe disponível desde a versão 1.0.1
38   - * @version $Id$
39   - */
40   -
41   -require_once realpath(dirname(__FILE__) . '/../') . '/FunctionalBaseTest.class.php';
42   -
43   -class ServidorCategoriaNivelWebTest extends FunctionalBaseTest {
44   -
45   - private $slStringTest = 'Selenese Nivel Teste';
46   -
47   - protected function tearDown() {
48   - require_once 'include/pmieducar/clsPmieducarCategoriaNivel.inc.php';
49   -
50   - $db = new clsBanco();
51   - $categoriaNivel = new clsPmieducarCategoriaNivel();
52   - $sql = sprintf('DELETE FROM %s WHERE %s = \'%s\'',
53   - $categoriaNivel->_tabela, 'nm_categoria_nivel', $this->slStringTest);
54   -
55   - $db->Consulta($sql);
56   - }
57   -
58   - private function createNewEntry() {
59   - $this->open("/intranet/educar_categoria_nivel_lst.php");
60   - $this->clickAndWait("//input[@value=' Novo ']");
61   - $this->type("nm_categoria_nivel", $this->slStringTest);
62   - $this->clickAndWait("btn_enviar");
63   - }
64   -
65   - public function testCategoriaNivelDelete() {
66   - $this->doLogin();
67   - $this->createNewEntry();
68   -
69   - $this->clickAndWait("link=" . $this->slStringTest);
70   - $this->clickAndWait("//input[@value=' Editar ']");
71   - $this->clickAndWait("//input[@value=' Excluir ']");
72   - $this->assertTrue((bool) preg_match('/^Excluir registro[\s\S]$/', $this->getConfirmation()));
73   - $this->assertTrue(!$this->isTextPresent($this->slStringTest));
74   - }
75   -}
76 0 \ No newline at end of file
ieducar/tests/functional/ServidorCategoriaNivelWebTest.php 0 → 100644
... ... @@ -0,0 +1,83 @@
  1 +<?php
  2 +
  3 +/*
  4 + * i-Educar - Sistema de gestão escolar
  5 + *
  6 + * Copyright (C) 2006 Prefeitura Municipal de Itajaí
  7 + * <ctima@itajai.sc.gov.br>
  8 + *
  9 + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
  10 + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
  11 + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
  12 + * qualquer versão posterior.
  13 + *
  14 + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
  15 + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
  16 + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
  17 + * do GNU para mais detalhes.
  18 + *
  19 + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
  20 + * com este programa; se não, escreva para a Free Software Foundation, Inc., no
  21 + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package FunctionalTests
  27 + * @since Arquivo disponível desde a versão 1.0.1
  28 + * @version $Id$
  29 + */
  30 +
  31 +require_once 'include/pmieducar/clsPmieducarCategoriaNivel.inc.php';
  32 +
  33 +/**
  34 + * ServidorCategoriaNivelWebTest class.
  35 + *
  36 + * Testa as ações de atualizar um nível de categoria, como verificação
  37 + * da correção do bug #21.
  38 + *
  39 + * Esse teste precisa ser executado com o banco de dados distribuído na
  40 + * versão 1.0.0.
  41 + *
  42 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  43 + * @category i-Educar
  44 + * @license @@license@@
  45 + * @link http://svn.softwarepublico.gov.br/trac/ieducar/ticket/21
  46 + * @package FunctionalTests
  47 + * @since Classe disponível desde a versão 1.0.1
  48 + * @version @@package_version@@
  49 + */
  50 +class ServidorCategoriaNivelWebTest extends FunctionalBaseTest
  51 +{
  52 + private $slStringTest = 'Selenese Nivel Teste';
  53 +
  54 + protected function tearDown()
  55 + {
  56 + $db = new clsBanco();
  57 + $categoriaNivel = new clsPmieducarCategoriaNivel();
  58 + $sql = sprintf('DELETE FROM %s WHERE %s = \'%s\'',
  59 + $categoriaNivel->_tabela, 'nm_categoria_nivel', $this->slStringTest);
  60 +
  61 + $db->Consulta($sql);
  62 + }
  63 +
  64 + private function createNewEntry()
  65 + {
  66 + $this->open("/intranet/educar_categoria_nivel_lst.php");
  67 + $this->clickAndWait("//input[@value=' Novo ']");
  68 + $this->type("nm_categoria_nivel", $this->slStringTest);
  69 + $this->clickAndWait("btn_enviar");
  70 + }
  71 +
  72 + public function testCategoriaNivelDelete()
  73 + {
  74 + $this->doLogin();
  75 + $this->createNewEntry();
  76 +
  77 + $this->clickAndWait("link=" . $this->slStringTest);
  78 + $this->clickAndWait("//input[@value=' Editar ']");
  79 + $this->clickAndWait("//input[@value=' Excluir ']");
  80 + $this->assertTrue((bool) preg_match('/^Excluir registro[\s\S]$/', $this->getConfirmation()));
  81 + $this->assertTrue(!$this->isTextPresent($this->slStringTest));
  82 + }
  83 +}
0 84 \ No newline at end of file
... ...
ieducar/tests/functional/ServidorMotivoAfastamentoWebTest.class.php
... ... @@ -1,89 +0,0 @@
1   -<?php
2   -
3   -/*
4   - * i-Educar - Sistema de gestão escolar
5   - *
6   - * Copyright (C) 2006 Prefeitura Municipal de Itajaí
7   - * <ctima@itajai.sc.gov.br>
8   - *
9   - * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
10   - * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
11   - * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
12   - * qualquer versão posterior.
13   - *
14   - * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
15   - * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
16   - * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
17   - * do GNU para mais detalhes.
18   - *
19   - * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
20   - * com este programa; se não, escreva para a Free Software Foundation, Inc., no
21   - * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
22   - */
23   -
24   -/**
25   - * ServidorMotivoAfastamentoWebTest class.
26   - *
27   - * Testa as ações de atualizar e apagar um motivo de afastamento, como
28   - * verificação da correção do bug #20.
29   - *
30   - * Esse teste precisa ser executado com o banco de dados distribuído na
31   - * versão 1.0.0.
32   - *
33   - * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
34   - * @license http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL
35   - * @package Test
36   - * @since Classe disponível desde a versão 1.0.1
37   - * @version $Id$
38   - */
39   -
40   -require_once realpath(dirname(__FILE__) . '/../') . '/FunctionalBaseTest.class.php';
41   -
42   -class ServidorMotivoAfastamentoWebTest extends FunctionalBaseTest {
43   -
44   - /**
45   - * Os testes a seguir cobrem o bug report #20.
46   - *
47   - * @link http://svn.softwarepublico.gov.br/trac/ieducar/ticket/20 Bug report #20
48   - * @{
49   - */
50   - public function createNewEntry() {
51   - $this->open("/intranet/educar_motivo_afastamento_lst.php");
52   - $this->clickAndWait("//input[@value=' Novo ']");
53   - $this->select("ref_cod_instituicao", "label=i-Educar");
54   - $this->type("nm_motivo", "Motivo teste");
55   - $this->clickAndWait("btn_enviar");
56   - }
57   -
58   - public function testMotivoAfastamentoUpdate() {
59   - $this->doLogin();
60   - $this->createNewEntry();
61   -
62   - $this->open("/intranet/educar_motivo_afastamento_cad.php?cod_motivo_afastamento=1");
63   - $this->select("ref_cod_instituicao", "label=i-Educar");
64   - $this->type("nm_motivo", "Motivo teste");
65   - $this->clickAndWait("btn_enviar");
66   -
67   - $statusMessage = $this->isTextPresent("Edição não realizada.");
68   - $this->assertTrue(!$statusMessage);
69   - $this->doLogout();
70   - }
71   -
72   - public function testMotivoAfastamentoDelete() {
73   - $this->doLogin();
74   -
75   - $this->open("/intranet/educar_motivo_afastamento_lst.php");
76   - $this->clickAndWait("link=Motivo teste");
77   - $this->clickAndWait("//input[@value=' Editar ']");
78   - $this->clickAndWait("//input[@value=' Excluir ']");
79   - $this->assertTrue((bool)preg_match('/^Excluir registro[\s\S]$/',$this->getConfirmation()));
80   - $statusMessage = $this->isTextPresent("Exclusão não realizada.");
81   - $this->assertTrue(!$statusMessage);
82   -
83   - $this->doLogout();
84   - }
85   - /**
86   - * }@
87   - */
88   -
89   -}
ieducar/tests/functional/ServidorMotivoAfastamentoWebTest.php 0 → 100644
... ... @@ -0,0 +1,88 @@
  1 +<?php
  2 +
  3 +/*
  4 + * i-Educar - Sistema de gestão escolar
  5 + *
  6 + * Copyright (C) 2006 Prefeitura Municipal de Itajaí
  7 + * <ctima@itajai.sc.gov.br>
  8 + *
  9 + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
  10 + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
  11 + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
  12 + * qualquer versão posterior.
  13 + *
  14 + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
  15 + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
  16 + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
  17 + * do GNU para mais detalhes.
  18 + *
  19 + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
  20 + * com este programa; se não, escreva para a Free Software Foundation, Inc., no
  21 + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package FunctionalTests
  27 + * @since Classe disponível desde a versão 1.0.1
  28 + * @version $Id$
  29 + */
  30 +
  31 +/**
  32 + * ServidorMotivoAfastamentoWebTest class.
  33 + *
  34 + * Testa as ações de atualizar e apagar um motivo de afastamento, como
  35 + * verificação da correção do bug #20.
  36 + *
  37 + * Esse teste precisa ser executado com o banco de dados distribuído na
  38 + * versão 1.0.0.
  39 + *
  40 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  41 + * @category i-Educar
  42 + * @license @@license@@
  43 + * @link http://svn.softwarepublico.gov.br/trac/ieducar/ticket/20
  44 + * @package FunctionalTests
  45 + * @since Classe disponível desde a versão 1.0.1
  46 + * @version @@package_version@@
  47 + */
  48 +class ServidorMotivoAfastamentoWebTest extends FunctionalBaseTest
  49 +{
  50 + public function createNewEntry()
  51 + {
  52 + $this->open("/intranet/educar_motivo_afastamento_lst.php");
  53 + $this->clickAndWait("//input[@value=' Novo ']");
  54 + $this->select("ref_cod_instituicao", "label=i-Educar");
  55 + $this->type("nm_motivo", "Motivo teste");
  56 + $this->clickAndWait("btn_enviar");
  57 + }
  58 +
  59 + public function testMotivoAfastamentoUpdate()
  60 + {
  61 + $this->doLogin();
  62 + $this->createNewEntry();
  63 +
  64 + $this->open("/intranet/educar_motivo_afastamento_cad.php?cod_motivo_afastamento=1");
  65 + $this->select("ref_cod_instituicao", "label=i-Educar");
  66 + $this->type("nm_motivo", "Motivo teste");
  67 + $this->clickAndWait("btn_enviar");
  68 +
  69 + $statusMessage = $this->isTextPresent("Edição não realizada.");
  70 + $this->assertTrue(!$statusMessage);
  71 + $this->doLogout();
  72 + }
  73 +
  74 + public function testMotivoAfastamentoDelete()
  75 + {
  76 + $this->doLogin();
  77 +
  78 + $this->open("/intranet/educar_motivo_afastamento_lst.php");
  79 + $this->clickAndWait("link=Motivo teste");
  80 + $this->clickAndWait("//input[@value=' Editar ']");
  81 + $this->clickAndWait("//input[@value=' Excluir ']");
  82 + $this->assertTrue((bool)preg_match('/^Excluir registro[\s\S]$/',$this->getConfirmation()));
  83 + $statusMessage = $this->isTextPresent("Exclusão não realizada.");
  84 + $this->assertTrue(!$statusMessage);
  85 +
  86 + $this->doLogout();
  87 + }
  88 +}
0 89 \ No newline at end of file
... ...
ieducar/tests/unit/AllTests.php 0 → 100644
... ... @@ -0,0 +1,59 @@
  1 +<?php
  2 +
  3 +/**
  4 + * i-Educar - Sistema de gestão escolar
  5 + *
  6 + * Copyright (C) 2006 Prefeitura Municipal de Itajaí
  7 + * <ctima@itajai.sc.gov.br>
  8 + *
  9 + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
  10 + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
  11 + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
  12 + * qualquer versão posterior.
  13 + *
  14 + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
  15 + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
  16 + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
  17 + * do GNU para mais detalhes.
  18 + *
  19 + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
  20 + * com este programa; se não, escreva para a Free Software Foundation, Inc., no
  21 + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package UnitTests
  27 + * @since Arquivo disponível desde a versão 1.1.0
  28 + * @version $Id$
  29 + */
  30 +
  31 +require_once 'App/AllTests.php';
  32 +require_once 'Core/AllTests.php';
  33 +require_once 'CoreExt/AllTests.php';
  34 +require_once 'Utils/AllTests.php';
  35 +
  36 +/**
  37 + * Unit_AllTests class.
  38 + *
  39 + * Arquivo de definição de suíte de testes unitários.
  40 + *
  41 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  42 + * @category i-Educar
  43 + * @license @@license@@
  44 + * @package UnitTests
  45 + * @since Classe disponível desde a versão 1.1.0
  46 + * @version @@package_version@@
  47 + */
  48 +class Unit_AllTests
  49 +{
  50 + public static function suite()
  51 + {
  52 + $suite = new PHPUnit_Framework_TestSuite('Suíte de testes unitários do projeto');
  53 + $suite->addTest(App_AllTests::suite());
  54 + $suite->addTest(Core_AllTests::suite());
  55 + $suite->addTest(CoreExt_AllTests::suite());
  56 + $suite->addTest(Utils_AllTests::suite());
  57 + return $suite;
  58 + }
  59 +}
0 60 \ No newline at end of file
... ...
ieducar/tests/unit/App/AllTests.php 0 → 100644
... ... @@ -0,0 +1,57 @@
  1 +<?php
  2 +
  3 +/**
  4 + * i-Educar - Sistema de gestão escolar
  5 + *
  6 + * Copyright (C) 2006 Prefeitura Municipal de Itajaí
  7 + * <ctima@itajai.sc.gov.br>
  8 + *
  9 + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
  10 + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
  11 + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
  12 + * qualquer versão posterior.
  13 + *
  14 + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
  15 + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
  16 + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
  17 + * do GNU para mais detalhes.
  18 + *
  19 + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
  20 + * com este programa; se não, escreva para a Free Software Foundation, Inc., no
  21 + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package App
  27 + * @subpackage UnitTests
  28 + * @since Arquivo disponível desde a versão 1.1.0
  29 + * @version $Id$
  30 + */
  31 +
  32 +require_once 'App/Model/AllTests.php';
  33 +require_once 'App/Service/AllTests.php';
  34 +
  35 +/**
  36 + * App_AllTests class.
  37 + *
  38 + * Arquivo de definição de suíte para o pacote App.
  39 + *
  40 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  41 + * @category i-Educar
  42 + * @license @@license@@
  43 + * @package App
  44 + * @subpackage UnitTests
  45 + * @since Classe disponível desde a versão 1.1.0
  46 + * @version @@package_version@@
  47 + */
  48 +class App_AllTests
  49 +{
  50 + public static function suite()
  51 + {
  52 + $suite = new PHPUnit_Framework_TestSuite('Suíte de testes unitários de App');
  53 + $suite->addTest(App_Model_AllTests::suite());
  54 + $suite->addTest(App_Service_AllTests::suite());
  55 + return $suite;
  56 + }
  57 +}
0 58 \ No newline at end of file
... ...
ieducar/tests/unit/App/Model/AllTests.php 0 → 100644
... ... @@ -0,0 +1,55 @@
  1 +<?php
  2 +
  3 +/**
  4 + * i-Educar - Sistema de gestão escolar
  5 + *
  6 + * Copyright (C) 2006 Prefeitura Municipal de Itajaí
  7 + * <ctima@itajai.sc.gov.br>
  8 + *
  9 + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
  10 + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
  11 + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
  12 + * qualquer versão posterior.
  13 + *
  14 + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
  15 + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
  16 + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
  17 + * do GNU para mais detalhes.
  18 + *
  19 + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
  20 + * com este programa; se não, escreva para a Free Software Foundation, Inc., no
  21 + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package App_Model
  27 + * @subpackage UnitTests
  28 + * @since Arquivo disponível desde a versão 1.1.0
  29 + * @version $Id$
  30 + */
  31 +
  32 +/**
  33 + * App_Model_AllTests class.
  34 + *
  35 + * Arquivo de definição de suíte para o pacote App_Model.
  36 + *
  37 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  38 + * @category i-Educar
  39 + * @license @@license@@
  40 + * @package App_Model
  41 + * @subpackage UnitTests
  42 + * @since Classe disponível desde a versão 1.1.0
  43 + * @version @@package_version@@
  44 + */
  45 +class App_Model_AllTests extends TestCollector
  46 +{
  47 + protected $_name = 'Suíte de testes unitários de App_Model';
  48 + protected $_file = __FILE__;
  49 +
  50 + public static function suite()
  51 + {
  52 + $instance = new self();
  53 + return $instance->addDirectoryTests();
  54 + }
  55 +}
0 56 \ No newline at end of file
... ...
ieducar/tests/unit/App/Service/AllTests.php 0 → 100644
... ... @@ -0,0 +1,55 @@
  1 +<?php
  2 +
  3 +/**
  4 + * i-Educar - Sistema de gestão escolar
  5 + *
  6 + * Copyright (C) 2006 Prefeitura Municipal de Itajaí
  7 + * <ctima@itajai.sc.gov.br>
  8 + *
  9 + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
  10 + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
  11 + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
  12 + * qualquer versão posterior.
  13 + *
  14 + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
  15 + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
  16 + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
  17 + * do GNU para mais detalhes.
  18 + *
  19 + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
  20 + * com este programa; se não, escreva para a Free Software Foundation, Inc., no
  21 + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package App_Service
  27 + * @subpackage UnitTests
  28 + * @since Arquivo disponível desde a versão 1.1.0
  29 + * @version $Id$
  30 + */
  31 +
  32 +/**
  33 + * App_Service_AllTests class.
  34 + *
  35 + * Arquivo de definição de suíte para o pacote App_Service.
  36 + *
  37 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  38 + * @category i-Educar
  39 + * @license @@license@@
  40 + * @package App_Service
  41 + * @subpackage UnitTests
  42 + * @since Classe disponível desde a versão 1.1.0
  43 + * @version @@package_version@@
  44 + */
  45 +class App_Service_AllTests extends TestCollector
  46 +{
  47 + protected $_name = 'Suíte de testes unitários de App_Service';
  48 + protected $_file = __FILE__;
  49 +
  50 + public static function suite()
  51 + {
  52 + $instance = new self();
  53 + return $instance->addDirectoryTests();
  54 + }
  55 +}
0 56 \ No newline at end of file
... ...
ieducar/tests/unit/ClsBancoTest.class.php
... ... @@ -1,65 +0,0 @@
1   -<?php
2   -
3   -/*
4   - * i-Educar - Sistema de gestão escolar
5   - *
6   - * Copyright (C) 2006 Prefeitura Municipal de Itajaí
7   - * <ctima@itajai.sc.gov.br>
8   - *
9   - * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
10   - * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
11   - * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
12   - * qualquer versão posterior.
13   - *
14   - * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
15   - * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
16   - * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
17   - * do GNU para mais detalhes.
18   - *
19   - * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
20   - * com este programa; se não, escreva para a Free Software Foundation, Inc., no
21   - * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
22   - *
23   - * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
24   - * @license http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL
25   - * @package Test
26   - * @subpackage UnitTest
27   - * @since Arquivo disponível desde a versão 1.0.1
28   - * @version $Id$
29   - */
30   -
31   -require_once realpath(dirname(__FILE__) . '/../') . '/UnitBaseTest.class.php';
32   -require_once 'include/pmieducar/clsPmieducarClienteSuspensao.inc.php';
33   -
34   -
35   -/**
36   - * clsBancoTest class.
37   - *
38   - * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
39   - * @license http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL
40   - * @package Test
41   - * @subpackage UnitTest
42   - * @since Classe disponível desde a versão 1.0.1
43   - * @version $Id$
44   - */
45   -class ClsBancoTest extends UnitBaseTest
46   -{
47   -
48   - public function testDoCountFromObj()
49   - {
50   - $db = new clsBanco();
51   - $db->Conecta();
52   -
53   - $obj = new clsPmieducarClienteSuspensao();
54   - $this->assertNotEquals(TRUE, is_null($db->doCountFromObj($obj)));
55   - }
56   -
57   - public function testConexao()
58   - {
59   - $db = new clsBanco();
60   - $db->Conecta();
61   -
62   - $this->assertTrue((bool) $db->bLink_ID);
63   - }
64   -
65   -}
ieducar/tests/unit/ClsConfigItajaiTest.class.php
... ... @@ -1,75 +0,0 @@
1   -<?php
2   -
3   -/*
4   - * i-Educar - Sistema de gestão escolar
5   - *
6   - * Copyright (C) 2006 Prefeitura Municipal de Itajaí
7   - * <ctima@itajai.sc.gov.br>
8   - *
9   - * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
10   - * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
11   - * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
12   - * qualquer versão posterior.
13   - *
14   - * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
15   - * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
16   - * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
17   - * do GNU para mais detalhes.
18   - *
19   - * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
20   - * com este programa; se não, escreva para a Free Software Foundation, Inc., no
21   - * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
22   - */
23   -
24   -require_once realpath(dirname(__FILE__) . '/../') . '/UnitBaseTest.class.php';
25   -require_once 'clsConfigItajai.inc.php';
26   -
27   -
28   -/**
29   - * clsConfigItajaiTest class.
30   - *
31   - * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
32   - * @license http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL
33   - * @package Test
34   - * @subpackage UnitTest
35   - * @since Classe disponível desde a versão 1.1.0
36   - * @version $Id$
37   - */
38   -class ClsConfigItajai extends UnitBaseTest
39   -{
40   -
41   - /**
42   - * @var clsConfig
43   - */
44   - protected $config = NULL;
45   -
46   - protected function setUp() {
47   - $this->config = new clsConfig();
48   - }
49   -
50   - public function testConfigInstituicao() {
51   - $this->assertEquals('i-Educar - ', $this->config->_instituicao);
52   - }
53   -
54   - public function testArrayConfigHasEmailsAdministradores() {
55   - $this->assertTrue((bool) count($this->config->arrayConfig['ArrStrEmailsAdministradores']));
56   - }
57   -
58   - public function testArrayCheckEmailAdministradores() {
59   - $this->assertEquals('seu.email@example.com',
60   - $this->config->arrayConfig['ArrStrEmailsAdministradores'][0]);
61   - }
62   -
63   - public function testArrayConfigDirectoryTemplates() {
64   - $this->assertEquals('templates/', $this->config->arrayConfig['strDirTemplates']);
65   - }
66   -
67   - public function testArrayConfigIntSegundosQuerySql() {
68   - $this->assertEquals(3, $this->config->arrayConfig['intSegundosQuerySQL']);
69   - }
70   -
71   - public function testArrayConfigIntSegundosPagina() {
72   - $this->assertEquals(5, $this->config->arrayConfig['intSegundosProcessaPagina']);
73   - }
74   -
75   -}
76 0 \ No newline at end of file
ieducar/tests/unit/ClsPmieducarQuadroHorarioHorariosTest.class.php
... ... @@ -1,52 +0,0 @@
1   -<?php
2   -
3   -/*
4   - * i-Educar - Sistema de gestão escolar
5   - *
6   - * Copyright (C) 2006 Prefeitura Municipal de Itajaí
7   - * <ctima@itajai.sc.gov.br>
8   - *
9   - * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
10   - * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
11   - * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
12   - * qualquer versão posterior.
13   - *
14   - * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
15   - * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
16   - * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
17   - * do GNU para mais detalhes.
18   - *
19   - * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
20   - * com este programa; se não, escreva para a Free Software Foundation, Inc., no
21   - * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
22   - */
23   -
24   -/**
25   - * ClsPmieducarQuadroHorarioHorariosTest class
26   - *
27   - * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
28   - * @license http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL
29   - * @package Test
30   - * @since Classe disponível desde a versão 1.0.2
31   - * @version $Id$
32   - */
33   -
34   -require_once realpath(dirname(__FILE__) . '/../') . '/UnitBaseTest.class.php';
35   -require_once 'include/pmieducar/clsPmieducarQuadroHorarioHorarios.inc.php';
36   -
37   -class ClsPmieducarQuadroHorarioHorariosTest extends UnitBaseTest {
38   -
39   - /**
40   - * Testa o método substituir_servidor()
41   - */
42   - public function testSubstituirServidor() {
43   - $stub = $this->getMock('clsPmieducarQuadroHorarioHorarios');
44   -
45   - $stub->expects($this->any())
46   - ->method('substituir_servidor')
47   - ->will($this->returnValue(TRUE));
48   -
49   - $this->assertTrue($stub->substituir_servidor(1));
50   - }
51   -
52   -}
53 0 \ No newline at end of file
ieducar/tests/unit/ClsPmieducarServidorAlocacaoTest.class.php
... ... @@ -1,52 +0,0 @@
1   -<?php
2   -
3   -/*
4   - * i-Educar - Sistema de gestão escolar
5   - *
6   - * Copyright (C) 2006 Prefeitura Municipal de Itajaí
7   - * <ctima@itajai.sc.gov.br>
8   - *
9   - * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
10   - * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
11   - * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
12   - * qualquer versão posterior.
13   - *
14   - * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
15   - * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
16   - * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
17   - * do GNU para mais detalhes.
18   - *
19   - * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
20   - * com este programa; se não, escreva para a Free Software Foundation, Inc., no
21   - * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
22   - */
23   -
24   -/**
25   - * ClsPmieducarServidorAlocacaoTest class
26   - *
27   - * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
28   - * @license http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL
29   - * @package Test
30   - * @since Classe disponível desde a versão 1.0.2
31   - * @version $Id$
32   - */
33   -
34   -require_once realpath(dirname(__FILE__) . '/../') . '/UnitBaseTest.class.php';
35   -require_once 'include/pmieducar/clsPmieducarServidorAlocacao.inc.php';
36   -
37   -class ClsPmieducarServidorAlocacaoTest extends UnitBaseTest {
38   -
39   - /**
40   - * Testa o método substituir_servidor()
41   - */
42   - public function testSubstituirServidor() {
43   - $stub = $this->getMock('clsPmieducarServidorAlocacao');
44   -
45   - $stub->expects($this->any())
46   - ->method('substituir_servidor')
47   - ->will($this->returnValue(TRUE));
48   -
49   - $this->assertTrue($stub->substituir_servidor(1));
50   - }
51   -
52   -}
53 0 \ No newline at end of file
ieducar/tests/unit/Core/AllTests.php 0 → 100644
... ... @@ -0,0 +1,57 @@
  1 +<?php
  2 +
  3 +/**
  4 + * i-Educar - Sistema de gestão escolar
  5 + *
  6 + * Copyright (C) 2006 Prefeitura Municipal de Itajaí
  7 + * <ctima@itajai.sc.gov.br>
  8 + *
  9 + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
  10 + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
  11 + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
  12 + * qualquer versão posterior.
  13 + *
  14 + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
  15 + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
  16 + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
  17 + * do GNU para mais detalhes.
  18 + *
  19 + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
  20 + * com este programa; se não, escreva para a Free Software Foundation, Inc., no
  21 + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package Core
  27 + * @subpackage UnitTests
  28 + * @since Arquivo disponível desde a versão 1.1.0
  29 + * @version $Id$
  30 + */
  31 +
  32 +require_once 'App/Model/AllTests.php';
  33 +
  34 +/**
  35 + * Core_AllTests class.
  36 + *
  37 + * Arquivo de definição de suíte para o pacote Core (objetos legados).
  38 + *
  39 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  40 + * @category i-Educar
  41 + * @license @@license@@
  42 + * @package Core
  43 + * @subpackage UnitTests
  44 + * @since Classe disponível desde a versão 1.1.0
  45 + * @version @@package_version@@
  46 + */
  47 +class Core_AllTests extends TestCollector
  48 +{
  49 + protected $_name = 'Suíte de testes unitários de Core (objetos legados)';
  50 + protected $_file = __FILE__;
  51 +
  52 + public static function suite()
  53 + {
  54 + $instance = new self;
  55 + return $instance->addDirectoryTests();
  56 + }
  57 +}
0 58 \ No newline at end of file
... ...
ieducar/tests/unit/Core/ClsBancoTest.php 0 → 100644
... ... @@ -0,0 +1,64 @@
  1 +<?php
  2 +
  3 +/**
  4 + * i-Educar - Sistema de gestão escolar
  5 + *
  6 + * Copyright (C) 2006 Prefeitura Municipal de Itajaí
  7 + * <ctima@itajai.sc.gov.br>
  8 + *
  9 + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
  10 + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
  11 + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
  12 + * qualquer versão posterior.
  13 + *
  14 + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
  15 + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
  16 + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
  17 + * do GNU para mais detalhes.
  18 + *
  19 + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
  20 + * com este programa; se não, escreva para a Free Software Foundation, Inc., no
  21 + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package Core
  27 + * @subpackage UnitTests
  28 + * @since Arquivo disponível desde a versão 1.0.1
  29 + * @version $Id$
  30 + */
  31 +
  32 +require_once 'include/pmieducar/clsPmieducarClienteSuspensao.inc.php';
  33 +
  34 +/**
  35 + * clsBancoTest class.
  36 + *
  37 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  38 + * @category i-Educar
  39 + * @license @@license@@
  40 + * @package Core
  41 + * @subpackage UnitTests
  42 + * @since Classe disponível desde a versão 1.0.1
  43 + * @todo Mover método testConexao() para o pacote FunctionalTests
  44 + * @version @@package_version@@
  45 + */
  46 +class ClsBancoTest extends UnitBaseTest
  47 +{
  48 + public function testDoCountFromObj()
  49 + {
  50 + $db = new clsBanco();
  51 + $db->Conecta();
  52 +
  53 + $obj = new clsPmieducarClienteSuspensao();
  54 + $this->assertNotEquals(TRUE, is_null($db->doCountFromObj($obj)));
  55 + }
  56 +
  57 + public function testConexao()
  58 + {
  59 + $db = new clsBanco();
  60 + $db->Conecta();
  61 +
  62 + $this->assertTrue((bool) $db->bLink_ID);
  63 + }
  64 +}
0 65 \ No newline at end of file
... ...
ieducar/tests/unit/Core/ClsConfigItajaiTest.php 0 → 100644
... ... @@ -0,0 +1,85 @@
  1 +<?php
  2 +
  3 +/**
  4 + * i-Educar - Sistema de gestão escolar
  5 + *
  6 + * Copyright (C) 2006 Prefeitura Municipal de Itajaí
  7 + * <ctima@itajai.sc.gov.br>
  8 + *
  9 + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
  10 + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
  11 + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
  12 + * qualquer versão posterior.
  13 + *
  14 + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
  15 + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
  16 + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
  17 + * do GNU para mais detalhes.
  18 + *
  19 + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
  20 + * com este programa; se não, escreva para a Free Software Foundation, Inc., no
  21 + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package Core
  27 + * @subpackage UnitTests
  28 + * @since Arquivo disponível desde a versão 1.1.0
  29 + * @version $Id$
  30 + */
  31 +
  32 +require_once 'clsConfigItajai.inc.php';
  33 +
  34 +
  35 +/**
  36 + * clsConfigItajaiTest class.
  37 + *
  38 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  39 + * @category i-Educar
  40 + * @license @@license@@
  41 + * @package Core
  42 + * @subpackage UnitTests
  43 + * @since Classe disponível desde a versão 1.0.1
  44 + * @version @@package_version@@
  45 + */
  46 +class ClsConfigItajai extends UnitBaseTest
  47 +{
  48 + protected $config = NULL;
  49 +
  50 + protected function setUp()
  51 + {
  52 + $this->config = new clsConfig();
  53 + }
  54 +
  55 + public function testConfigInstituicao()
  56 + {
  57 + $this->assertEquals('i-Educar - ', $this->config->_instituicao);
  58 + }
  59 +
  60 + public function testArrayConfigHasEmailsAdministradores()
  61 + {
  62 + $this->assertTrue((bool) count($this->config->arrayConfig['ArrStrEmailsAdministradores']));
  63 + }
  64 +
  65 + public function testArrayCheckEmailAdministradores()
  66 + {
  67 + $this->assertEquals('seu.email@example.com',
  68 + $this->config->arrayConfig['ArrStrEmailsAdministradores'][0]);
  69 + }
  70 +
  71 + public function testArrayConfigDirectoryTemplates()
  72 + {
  73 + $this->assertEquals('templates/', $this->config->arrayConfig['strDirTemplates']);
  74 + }
  75 +
  76 + public function testArrayConfigIntSegundosQuerySql()
  77 + {
  78 + $this->assertEquals(3, $this->config->arrayConfig['intSegundosQuerySQL']);
  79 + }
  80 +
  81 + public function testArrayConfigIntSegundosPagina()
  82 + {
  83 + $this->assertEquals(5, $this->config->arrayConfig['intSegundosProcessaPagina']);
  84 + }
  85 +}
0 86 \ No newline at end of file
... ...
ieducar/tests/unit/Core/ClsPmieducarQuadroHorarioHorariosTest.php 0 → 100644
... ... @@ -0,0 +1,60 @@
  1 +<?php
  2 +
  3 +/**
  4 + * i-Educar - Sistema de gestão escolar
  5 + *
  6 + * Copyright (C) 2006 Prefeitura Municipal de Itajaí
  7 + * <ctima@itajai.sc.gov.br>
  8 + *
  9 + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
  10 + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
  11 + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
  12 + * qualquer versão posterior.
  13 + *
  14 + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
  15 + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
  16 + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
  17 + * do GNU para mais detalhes.
  18 + *
  19 + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
  20 + * com este programa; se não, escreva para a Free Software Foundation, Inc., no
  21 + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package Core
  27 + * @subpackage UnitTests
  28 + * @since Arquivo disponível desde a versão 1.0.2
  29 + * @version $Id$
  30 + */
  31 +
  32 +require_once 'include/pmieducar/clsPmieducarQuadroHorarioHorarios.inc.php';
  33 +
  34 +/**
  35 + * ClsPmieducarQuadroHorarioHorariosTest class.
  36 + *
  37 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  38 + * @category i-Educar
  39 + * @license @@license@@
  40 + * @package Core
  41 + * @subpackage UnitTests
  42 + * @since Classe disponível desde a versão 1.0.2
  43 + * @version @@package_version@@
  44 + */
  45 +class ClsPmieducarQuadroHorarioHorariosTest extends UnitBaseTest
  46 +{
  47 + /**
  48 + * Testa o método substituir_servidor()
  49 + */
  50 + public function testSubstituirServidor()
  51 + {
  52 + $stub = $this->getMock('clsPmieducarQuadroHorarioHorarios');
  53 +
  54 + $stub->expects($this->any())
  55 + ->method('substituir_servidor')
  56 + ->will($this->returnValue(TRUE));
  57 +
  58 + $this->assertTrue($stub->substituir_servidor(1));
  59 + }
  60 +}
0 61 \ No newline at end of file
... ...
ieducar/tests/unit/Core/ClsPmieducarServidorAlocacaoTest.php 0 → 100644
... ... @@ -0,0 +1,60 @@
  1 +<?php
  2 +
  3 +/**
  4 + * i-Educar - Sistema de gestão escolar
  5 + *
  6 + * Copyright (C) 2006 Prefeitura Municipal de Itajaí
  7 + * <ctima@itajai.sc.gov.br>
  8 + *
  9 + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
  10 + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
  11 + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
  12 + * qualquer versão posterior.
  13 + *
  14 + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
  15 + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
  16 + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
  17 + * do GNU para mais detalhes.
  18 + *
  19 + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
  20 + * com este programa; se não, escreva para a Free Software Foundation, Inc., no
  21 + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package Core
  27 + * @subpackage UnitTests
  28 + * @since Arquivo disponível desde a versão 1.0.2
  29 + * @version $Id$
  30 + */
  31 +
  32 +require_once 'include/pmieducar/clsPmieducarServidorAlocacao.inc.php';
  33 +
  34 +/**
  35 + * ClsPmieducarServidorAlocacaoTest class.
  36 + *
  37 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  38 + * @category i-Educar
  39 + * @license @@license@@
  40 + * @package Core
  41 + * @subpackage UnitTests
  42 + * @since Classe disponível desde a versão 1.0.2
  43 + * @version @@package_version@@
  44 + */
  45 +class ClsPmieducarServidorAlocacaoTest extends UnitBaseTest
  46 +{
  47 + /**
  48 + * Testa o método substituir_servidor().
  49 + */
  50 + public function testSubstituirServidor()
  51 + {
  52 + $stub = $this->getMock('clsPmieducarServidorAlocacao');
  53 +
  54 + $stub->expects($this->any())
  55 + ->method('substituir_servidor')
  56 + ->will($this->returnValue(TRUE));
  57 +
  58 + $this->assertTrue($stub->substituir_servidor(1));
  59 + }
  60 +}
0 61 \ No newline at end of file
... ...
ieducar/tests/unit/CoreExt/AllTests.php 0 → 100644
... ... @@ -0,0 +1,55 @@
  1 +<?php
  2 +
  3 +/**
  4 + * i-Educar - Sistema de gestão escolar
  5 + *
  6 + * Copyright (C) 2006 Prefeitura Municipal de Itajaí
  7 + * <ctima@itajai.sc.gov.br>
  8 + *
  9 + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
  10 + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
  11 + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
  12 + * qualquer versão posterior.
  13 + *
  14 + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
  15 + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
  16 + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
  17 + * do GNU para mais detalhes.
  18 + *
  19 + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
  20 + * com este programa; se não, escreva para a Free Software Foundation, Inc., no
  21 + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package CoreExt
  27 + * @subpackage UnitTests
  28 + * @since Arquivo disponível desde a versão 1.1.0
  29 + * @version $Id$
  30 + */
  31 +
  32 +/**
  33 + * CoreExt_AllTests class.
  34 + *
  35 + * Arquivo de definição de suíte para o pacote CoreExt (nova API).
  36 + *
  37 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  38 + * @category i-Educar
  39 + * @license @@license@@
  40 + * @package CoreExt
  41 + * @subpackage UnitTests
  42 + * @since Classe disponível desde a versão 1.1.0
  43 + * @version @@package_version@@
  44 + */
  45 +class CoreExt_AllTests extends TestCollector
  46 +{
  47 + protected $_name = 'Suíte de testes unitários de CoreExt';
  48 + protected $_file = __FILE__;
  49 +
  50 + public static function suite()
  51 + {
  52 + $instance = new self;
  53 + return $instance->addDirectoryTests();
  54 + }
  55 +}
0 56 \ No newline at end of file
... ...
ieducar/tests/unit/CoreExt/CoreExt_ConfigTest.php 0 → 100644
... ... @@ -0,0 +1,145 @@
  1 +<?php
  2 +
  3 +/**
  4 + * i-Educar - Sistema de gestão escolar
  5 + *
  6 + * Copyright (C) 2006 Prefeitura Municipal de Itajaí
  7 + * <ctima@itajai.sc.gov.br>
  8 + *
  9 + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
  10 + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
  11 + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
  12 + * qualquer versão posterior.
  13 + *
  14 + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
  15 + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
  16 + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
  17 + * do GNU para mais detalhes.
  18 + *
  19 + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
  20 + * com este programa; se não, escreva para a Free Software Foundation, Inc., no
  21 + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package CoreExt
  27 + * @subpackage UnitTests
  28 + * @since Arquivo disponível desde a versão 1.1.0
  29 + * @version $Id$
  30 + */
  31 +
  32 +require_once 'CoreExt/Config.class.php';
  33 +
  34 +/**
  35 + * CoreExt_ConfigTest class.
  36 + *
  37 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  38 + * @category i-Educar
  39 + * @license @@license@@
  40 + * @package CoreExt
  41 + * @subpackage UnitTests
  42 + * @since Classe disponível desde a versão 1.1.0
  43 + * @version @@package_version@@
  44 + */
  45 +class CoreExt_ConfigTest extends UnitBaseTest
  46 +{
  47 + public function testConfigHasValueFromArray()
  48 + {
  49 + $arr = array(
  50 + 'app' => array(
  51 + 'database' => array(
  52 + 'dbname' => 'ieducardb',
  53 + 'username' => 'ieducaruser',
  54 + 'password' => '12345678'
  55 + )
  56 + ),
  57 + 'version' => 'Development'
  58 + );
  59 +
  60 + $config = new CoreExt_Config($arr);
  61 + $this->assertEquals('ieducardb', $config->app->database->dbname);
  62 + $this->assertEquals('Development', $config->version);
  63 + }
  64 +
  65 + public function testHasOneItem()
  66 + {
  67 + $arr = array(
  68 + 'app' => array('database' => '')
  69 + );
  70 +
  71 + $config = new CoreExt_Config($arr);
  72 + $this->assertEquals(1, $config->count());
  73 + }
  74 +
  75 + public function testHasTwoItems()
  76 + {
  77 + $arr = array(
  78 + 'app' => array('database' => '', 'template' => ''),
  79 + 'php' => ''
  80 + );
  81 +
  82 + $config = new CoreExt_Config($arr);
  83 + $this->assertEquals(2, $config->count());
  84 + $this->assertEquals(2, $config->app->count());
  85 + }
  86 +
  87 + /**
  88 + * @expectedException Exception
  89 + */
  90 + public function testGetNotExistNotProvidingDefaultValue()
  91 + {
  92 + $arr = array('app' => array('database' => array('dbname' => 'ieducardb')));
  93 +
  94 + $config = new CoreExt_Config($arr);
  95 + $hostname = $config->get($config->app->database->hostname);
  96 + $this->assertEquals($hostname, '127.0.0.1');
  97 + }
  98 +
  99 + public function testGetNotExistProvidingDefaultValue()
  100 + {
  101 + $arr = array('app' => array('database' => array('dbname' => 'ieducardb')));
  102 +
  103 + $config = new CoreExt_Config($arr);
  104 + $hostname = $config->get($config->app->database->hostname, '127.0.0.1');
  105 + $this->assertEquals($hostname, '127.0.0.1');
  106 + }
  107 +
  108 + public function testGetExistProvidingDefaultValue()
  109 + {
  110 + $arr = array('app' => array('database' => array('dbname' => 'ieducardb')));
  111 +
  112 + $config = new CoreExt_Config($arr);
  113 + $hostname = $config->get($config->app->database->dbname, '127.0.0.1');
  114 + $this->assertEquals($hostname, 'ieducardb');
  115 + }
  116 +
  117 + public function testObjectIterates()
  118 + {
  119 + $arr = array(
  120 + 'index1' => 1,
  121 + 'index2' => 2
  122 + );
  123 +
  124 + $config = new CoreExt_Config($arr);
  125 +
  126 + $this->assertEquals(1, $config->current());
  127 +
  128 + $config->next();
  129 + $this->assertEquals(2, $config->current());
  130 +
  131 + foreach ($config as $key => $val) {}
  132 +
  133 + $config->rewind();
  134 + $this->assertEquals(1, $config->current());
  135 + }
  136 +
  137 + public function testTransformObjectInArray()
  138 + {
  139 + $arr = array(6, 3, 3);
  140 +
  141 + $config = new CoreExt_Config($arr);
  142 +
  143 + $this->assertEquals($arr, $config->toArray());
  144 + }
  145 +}
0 146 \ No newline at end of file
... ...
ieducar/tests/unit/CoreExt/CoreExt_Config_IniTest.php 0 → 100644
... ... @@ -0,0 +1,100 @@
  1 +<?php
  2 +
  3 +/**
  4 + * i-Educar - Sistema de gestão escolar
  5 + *
  6 + * Copyright (C) 2006 Prefeitura Municipal de Itajaí
  7 + * <ctima@itajai.sc.gov.br>
  8 + *
  9 + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
  10 + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
  11 + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
  12 + * qualquer versão posterior.
  13 + *
  14 + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
  15 + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
  16 + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
  17 + * do GNU para mais detalhes.
  18 + *
  19 + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
  20 + * com este programa; se não, escreva para a Free Software Foundation, Inc., no
  21 + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package CoreExt
  27 + * @subpackage UnitTests
  28 + * @since Arquivo disponível desde a versão 1.1.0
  29 + * @version $Id$
  30 + */
  31 +
  32 +require_once 'CoreExt/Config/Ini.class.php';
  33 +
  34 +/**
  35 + * CoreExt_Config_IniTest class.
  36 + *
  37 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  38 + * @category i-Educar
  39 + * @license @@license@@
  40 + * @package CoreExt
  41 + * @subpackage UnitTests
  42 + * @since Classe disponível desde a versão 1.1.0
  43 + * @version @@package_version@@
  44 + */
  45 +class CoreExt_Config_IniTest extends UnitBaseTest
  46 +{
  47 + public function testParsedIni()
  48 + {
  49 + $ini = new CoreExt_Config_Ini('../tests/fixtures/configuration/ieducar.ini');
  50 + $this->assertNotNull($ini->app);
  51 + }
  52 +
  53 + public function testChangeEnviroment()
  54 + {
  55 + $ini = new CoreExt_Config_Ini('../tests/fixtures/configuration/ieducar.ini');
  56 + $this->assertEquals(FALSE, (bool) $ini->php->display_errors);
  57 +
  58 + $ini->changeEnviroment('development');
  59 + $this->assertEquals(TRUE, (bool) $ini->php->display_errors);
  60 +
  61 + $ini->changeEnviroment('testing');
  62 + $this->assertEquals(TRUE, (bool) $ini->php->display_errors);
  63 +
  64 + $ini->changeEnviroment();
  65 + $this->assertEquals(FALSE, (bool) $ini->php->display_errors);
  66 + }
  67 +
  68 + /**
  69 + * @expectedException Exception
  70 + */
  71 + public function testInvalidIniFile()
  72 + {
  73 + // Tentando carregar configuração do blackhole!
  74 + $ini = new CoreExt_Config_Ini('/dev/null');
  75 + }
  76 +
  77 + /**
  78 + * @expectedException Exception
  79 + */
  80 + public function testSectionExtendsMoreThanOne()
  81 + {
  82 + $ini = new CoreExt_Config_Ini('../tests/fixtures/configuration/ieducar-extends-broken.ini');
  83 + }
  84 +
  85 + /**
  86 + * @expectedException Exception
  87 + */
  88 + public function testIniSyntaxError()
  89 + {
  90 + $ini = new CoreExt_Config_Ini('../tests/fixtures/configuration/ieducar-syntax-broken.ini');
  91 + }
  92 +
  93 + /**
  94 + * @expectedException Exception
  95 + */
  96 + public function testSectionInheritanceNotExist()
  97 + {
  98 + $ini = new CoreExt_Config_Ini('../tests/fixtures/configuration/ieducar-inheritance-broken.ini');
  99 + }
  100 +}
0 101 \ No newline at end of file
... ...
ieducar/tests/unit/CoreExt_ConfigTest.class.php
... ... @@ -1,137 +0,0 @@
1   -<?php
2   -
3   -/*
4   - * i-Educar - Sistema de gestão escolar
5   - *
6   - * Copyright (C) 2006 Prefeitura Municipal de Itajaí
7   - * <ctima@itajai.sc.gov.br>
8   - *
9   - * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
10   - * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
11   - * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
12   - * qualquer versão posterior.
13   - *
14   - * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
15   - * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
16   - * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
17   - * do GNU para mais detalhes.
18   - *
19   - * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
20   - * com este programa; se não, escreva para a Free Software Foundation, Inc., no
21   - * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
22   - */
23   -
24   -require_once realpath(dirname(__FILE__) . '/../') . '/UnitBaseTest.class.php';
25   -require_once '../lib/CoreExt/Config.class.php';
26   -
27   -
28   -/**
29   - * CoreExt_ConfigTest class
30   - *
31   - * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
32   - * @license http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL
33   - * @package Test
34   - * @since Classe disponível desde a versão 1.1.0
35   - * @version $Id$
36   - */
37   -class CoreExt_ConfigTest extends UnitBaseTest
38   -{
39   -
40   - public function testConfigHasValueFromArray()
41   - {
42   - $arr = array(
43   - 'app' => array(
44   - 'database' => array(
45   - 'dbname' => 'ieducardb',
46   - 'username' => 'ieducaruser',
47   - 'password' => '12345678'
48   - )
49   - ),
50   - 'version' => 'Development'
51   - );
52   -
53   - $config = new CoreExt_Config($arr);
54   - $this->assertEquals('ieducardb', $config->app->database->dbname);
55   - $this->assertEquals('Development', $config->version);
56   - }
57   -
58   - public function testHasOneItem()
59   - {
60   - $arr = array(
61   - 'app' => array('database' => '')
62   - );
63   -
64   - $config = new CoreExt_Config($arr);
65   - $this->assertEquals(1, $config->count());
66   - }
67   -
68   - public function testHasTwoItems() {
69   - $arr = array(
70   - 'app' => array('database' => '', 'template' => ''),
71   - 'php' => ''
72   - );
73   -
74   - $config = new CoreExt_Config($arr);
75   - $this->assertEquals(2, $config->count());
76   - $this->assertEquals(2, $config->app->count());
77   - }
78   -
79   - /**
80   - * @expectedException Exception
81   - */
82   - public function testGetNotExistNotProvidingDefaultValue()
83   - {
84   - $arr = array('app' => array('database' => array('dbname' => 'ieducardb')));
85   -
86   - $config = new CoreExt_Config($arr);
87   - $hostname = $config->get($config->app->database->hostname);
88   - $this->assertEquals($hostname, '127.0.0.1');
89   - }
90   -
91   - public function testGetNotExistProvidingDefaultValue()
92   - {
93   - $arr = array('app' => array('database' => array('dbname' => 'ieducardb')));
94   -
95   - $config = new CoreExt_Config($arr);
96   - $hostname = $config->get($config->app->database->hostname, '127.0.0.1');
97   - $this->assertEquals($hostname, '127.0.0.1');
98   - }
99   -
100   - public function testGetExistProvidingDefaultValue()
101   - {
102   - $arr = array('app' => array('database' => array('dbname' => 'ieducardb')));
103   -
104   - $config = new CoreExt_Config($arr);
105   - $hostname = $config->get($config->app->database->dbname, '127.0.0.1');
106   - $this->assertEquals($hostname, 'ieducardb');
107   - }
108   -
109   - public function testObjectIterates()
110   - {
111   - $arr = array(
112   - 'index1' => 1,
113   - 'index2' => 2
114   - );
115   -
116   - $config = new CoreExt_Config($arr);
117   -
118   - $this->assertEquals(1, $config->current());
119   -
120   - $config->next();
121   - $this->assertEquals(2, $config->current());
122   -
123   - foreach ($config as $key => $val) {}
124   -
125   - $config->rewind();
126   - $this->assertEquals(1, $config->current());
127   - }
128   -
129   - public function testTransformObjectInArray() {
130   - $arr = array(6, 3, 3);
131   -
132   - $config = new CoreExt_Config($arr);
133   -
134   - $this->assertEquals($arr, $config->toArray());
135   - }
136   -
137   -}
138 0 \ No newline at end of file
ieducar/tests/unit/CoreExt_Config_IniTest.class.php
... ... @@ -1,89 +0,0 @@
1   -<?php
2   -
3   -/*
4   - * i-Educar - Sistema de gestão escolar
5   - *
6   - * Copyright (C) 2006 Prefeitura Municipal de Itajaí
7   - * <ctima@itajai.sc.gov.br>
8   - *
9   - * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
10   - * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
11   - * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
12   - * qualquer versão posterior.
13   - *
14   - * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
15   - * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
16   - * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
17   - * do GNU para mais detalhes.
18   - *
19   - * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
20   - * com este programa; se não, escreva para a Free Software Foundation, Inc., no
21   - * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
22   - */
23   -
24   -require_once realpath(dirname(__FILE__) . '/../') . '/UnitBaseTest.class.php';
25   -require_once '../lib/CoreExt/Config/Ini.class.php';
26   -
27   -
28   -/**
29   - * CoreExt_Config_IniTest class
30   - *
31   - * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
32   - * @license http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL
33   - * @package Test
34   - * @since Classe disponível desde a versão 1.1.0
35   - * @version $Id$
36   - */
37   -class CoreExt_Config_IniTest extends UnitBaseTest
38   -{
39   -
40   - public function testParsedIni() {
41   - $ini = new CoreExt_Config_Ini('../tests/fixtures/configuration/ieducar.ini');
42   - $this->assertNotNull($ini->app);
43   - }
44   -
45   - public function testChangeEnviroment()
46   - {
47   - $ini = new CoreExt_Config_Ini('../tests/fixtures/configuration/ieducar.ini');
48   - $this->assertEquals(FALSE, (bool) $ini->php->display_errors);
49   -
50   - $ini->changeEnviroment('development');
51   - $this->assertEquals(TRUE, (bool) $ini->php->display_errors);
52   -
53   - $ini->changeEnviroment('testing');
54   - $this->assertEquals(TRUE, (bool) $ini->php->display_errors);
55   -
56   - $ini->changeEnviroment();
57   - $this->assertEquals(FALSE, (bool) $ini->php->display_errors);
58   - }
59   -
60   - /**
61   - * @expectedException Exception
62   - */
63   - public function testInvalidIniFile() {
64   - // Tentando carregar configuração do blackhole!
65   - $ini = new CoreExt_Config_Ini('/dev/null');
66   - }
67   -
68   - /**
69   - * @expectedException Exception
70   - */
71   - public function testSectionExtendsMoreThanOne() {
72   - $ini = new CoreExt_Config_Ini('../tests/fixtures/configuration/ieducar-extends-broken.ini');
73   - }
74   -
75   - /**
76   - * @expectedException Exception
77   - */
78   - public function testIniSyntaxError() {
79   - $ini = new CoreExt_Config_Ini('../tests/fixtures/configuration/ieducar-syntax-broken.ini');
80   - }
81   -
82   - /**
83   - * @expectedException Exception
84   - */
85   - public function testSectionInheritanceNotExist() {
86   - $ini = new CoreExt_Config_Ini('../tests/fixtures/configuration/ieducar-inheritance-broken.ini');
87   - }
88   -
89   -}
90 0 \ No newline at end of file
ieducar/tests/unit/FileStreamTest.class.php
... ... @@ -1,157 +0,0 @@
1   -<?php
2   -
3   -/*
4   - * i-Educar - Sistema de gestão escolar
5   - *
6   - * Copyright (C) 2006 Prefeitura Municipal de Itajaí
7   - * <ctima@itajai.sc.gov.br>
8   - *
9   - * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
10   - * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
11   - * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
12   - * qualquer versão posterior.
13   - *
14   - * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
15   - * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
16   - * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
17   - * do GNU para mais detalhes.
18   - *
19   - * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
20   - * com este programa; se não, escreva para a Free Software Foundation, Inc., no
21   - * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
22   - */
23   -
24   -require_once realpath(dirname(__FILE__) . '/../') . '/UnitBaseTest.class.php';
25   -require_once 'vfsStream/vfsStream.php';
26   -require_once 'Utils/FileStream.class.php';
27   -require_once 'Utils/Mimetype.class.php';
28   -
29   -
30   -/**
31   - * FileStreamTest class.
32   - *
33   - * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
34   - * @license http://creativecommons.org/licenses/GPL/2.0/legalcode.pt CC GNU GPL
35   - * @link http://code.google.com/p/bovigo/wiki/vfsStream vfsStream project
36   - * @package Test
37   - * @since Classe disponível desde a versão 1.1.0
38   - * @version $Id$
39   - */
40   -class FileStreamTest extends UnitBaseTest
41   -{
42   -
43   - protected $Mimetype = NULL;
44   -
45   - protected function setUp() {
46   - $this->Mimetype = new Mimetype();
47   - }
48   -
49   - protected function configVfs() {
50   - vfsStreamWrapper::register();
51   - vfsStreamWrapper::setRoot(new vfsStreamDirectory('tmp'));
52   - }
53   -
54   - public function testAllowedDirectory()
55   - {
56   - $directories = array('pdf', 'tmp');
57   -
58   - $fileStream = new FileStream($this->Mimetype, $directories);
59   - $this->assertTrue($fileStream->isDirectoryAllowed('pdf'));
60   - }
61   -
62   - public function testDisallowedDirectory()
63   - {
64   - $fileStream = new FileStream($this->Mimetype);
65   - $this->assertFalse($fileStream->isDirectoryAllowed('pdf'));
66   - }
67   -
68   - /**
69   - * @expectedException Exception
70   - */
71   - public function testSetFileDirectoryDisallowed()
72   - {
73   - $filename = 'pdf/example.pdf';
74   - $fileStream = new FileStream($this->Mimetype, array('tmp'));
75   -
76   - $fileStream->setFilepath($filename);
77   - }
78   -
79   - /**
80   - * @expectedException Exception
81   - */
82   - public function testSetFileDirectoryAllowed()
83   - {
84   - $filename = 'tmp/example.pdf';
85   - $fileStream = new FileStream($this->Mimetype, array('tmp'));
86   -
87   - $fileStream->setFilepath($filename);
88   - }
89   -
90   - public function testSetFile()
91   - {
92   - $this->configVfs();
93   -
94   - // Nome do arquivo
95   - $filename = 'tmp/example.pdf';
96   -
97   - // Adiciona o schema vfs:// ao caminho do arquivo
98   - $filepath = vfsStream::url($filename);
99   -
100   - // Cria um novo arquivo no vfs
101   - fopen($filepath, 'a+');
102   -
103   - // Pega o nome do diretório e coloca em array
104   - $directory = (array) vfsStream::url(vfsStreamWrapper::getRoot()->getName());
105   -
106   - $fileStream = new FileStream($this->Mimetype, $directory);
107   - $fileStream->setFilepath($filepath);
108   - }
109   -
110   - /**
111   - * @expectedException Exception
112   - */
113   - public function testStreamFileExtensionNotSupported()
114   - {
115   - $this->configVfs();
116   - $filename = 'tmp/example.dummy';
117   - $filepath = vfsStream::url($filename);
118   - fopen($filepath, 'a+');
119   - $directory = (array) vfsStream::url(vfsStreamWrapper::getRoot()->getName());
120   -
121   - $stub = $this->getMock('Mimetype');
122   - $stub->expects($this->once())
123   - ->method('getType')
124   - ->will($this->returnValue(FALSE));
125   -
126   - $fileStream = new FileStream($stub, $directory);
127   - $fileStream->setFilepath($filepath);
128   -
129   - $fileStream->streamFile();
130   - }
131   -
132   - /**
133   - * Tag disponível apenas no PHPUnit 3.4, ainda não disponível no pacote
134   - * Pear PHPUnit-beta3. Note o uso do '@' para supressão das mensagens de
135   - * erro.
136   - *
137   - * @outputBuffering enabled
138   - */
139   - public function testStreamFileExtensionSupported()
140   - {
141   - $this->configVfs();
142   - $filename = 'tmp/example.pdf';
143   - $filepath = vfsStream::url($filename);
144   - fopen($filepath, 'a+');
145   - $directory = (array) vfsStream::url(vfsStreamWrapper::getRoot()->getName());
146   -
147   - $stub = $this->getMock('Mimetype');
148   - $stub->expects($this->once())
149   - ->method('getType')
150   - ->will($this->returnValue('application/pdf'));
151   -
152   - $fileStream = new FileStream($stub, $directory);
153   - $fileStream->setFilepath($filepath);
154   - @$fileStream->streamFile();
155   - }
156   -
157   -}
ieducar/tests/unit/Utils/AllTests.php 0 → 100644
... ... @@ -0,0 +1,55 @@
  1 +<?php
  2 +
  3 +/**
  4 + * i-Educar - Sistema de gestão escolar
  5 + *
  6 + * Copyright (C) 2006 Prefeitura Municipal de Itajaí
  7 + * <ctima@itajai.sc.gov.br>
  8 + *
  9 + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
  10 + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
  11 + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
  12 + * qualquer versão posterior.
  13 + *
  14 + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
  15 + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
  16 + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
  17 + * do GNU para mais detalhes.
  18 + *
  19 + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
  20 + * com este programa; se não, escreva para a Free Software Foundation, Inc., no
  21 + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package Utils
  27 + * @subpackage UnitTests
  28 + * @since Arquivo disponível desde a versão 1.1.0
  29 + * @version $Id$
  30 + */
  31 +
  32 +/**
  33 + * Utils_AllTests class.
  34 + *
  35 + * Arquivo de definição de suíte para o pacote Utils.
  36 + *
  37 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  38 + * @category i-Educar
  39 + * @license @@license@@
  40 + * @package Utils
  41 + * @subpackage UnitTests
  42 + * @since Classe disponível desde a versão 1.1.0
  43 + * @version @@package_version@@
  44 + */
  45 +class Utils_AllTests extends TestCollector
  46 +{
  47 + protected $_name = 'Suíte de testes unitários de Utils (pacote de transição)';
  48 + protected $_file = __FILE__;
  49 +
  50 + public static function suite()
  51 + {
  52 + $instance = new self;
  53 + return $instance->addDirectoryTests();
  54 + }
  55 +}
0 56 \ No newline at end of file
... ...
ieducar/tests/unit/Utils/FileStreamTest.php 0 → 100644
... ... @@ -0,0 +1,164 @@
  1 +<?php
  2 +
  3 +/*
  4 + * i-Educar - Sistema de gestão escolar
  5 + *
  6 + * Copyright (C) 2006 Prefeitura Municipal de Itajaí
  7 + * <ctima@itajai.sc.gov.br>
  8 + *
  9 + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
  10 + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
  11 + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
  12 + * qualquer versão posterior.
  13 + *
  14 + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
  15 + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
  16 + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
  17 + * do GNU para mais detalhes.
  18 + *
  19 + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
  20 + * com este programa; se não, escreva para a Free Software Foundation, Inc., no
  21 + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package Utils
  27 + * @subpackage UnitTests
  28 + * @since Arquivo disponível desde a versão 1.1.0
  29 + * @version $Id$
  30 + */
  31 +
  32 +require_once 'UnitBaseTest.class.php';
  33 +require_once 'vfsStream/vfsStream.php';
  34 +require_once 'Utils/FileStream.class.php';
  35 +require_once 'Utils/Mimetype.class.php';
  36 +
  37 +
  38 +/**
  39 + * FileStreamTest class.
  40 + *
  41 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  42 + * @category i-Educar
  43 + * @license @@license@@
  44 + * @package Utils
  45 + * @subpackage UnitTests
  46 + * @since Classe disponível desde a versão 1.1.0
  47 + * @version @@package_version@@
  48 + */
  49 +class FileStreamTest extends UnitBaseTest
  50 +{
  51 + protected $Mimetype = NULL;
  52 +
  53 + protected function setUp()
  54 + {
  55 + $this->Mimetype = new Mimetype();
  56 + }
  57 +
  58 + protected function configVfs()
  59 + {
  60 + vfsStreamWrapper::register();
  61 + vfsStreamWrapper::setRoot(new vfsStreamDirectory('tmp'));
  62 + }
  63 +
  64 + public function testAllowedDirectory()
  65 + {
  66 + $directories = array('pdf', 'tmp');
  67 +
  68 + $fileStream = new FileStream($this->Mimetype, $directories);
  69 + $this->assertTrue($fileStream->isDirectoryAllowed('pdf'));
  70 + }
  71 +
  72 + public function testDisallowedDirectory()
  73 + {
  74 + $fileStream = new FileStream($this->Mimetype);
  75 + $this->assertFalse($fileStream->isDirectoryAllowed('pdf'));
  76 + }
  77 +
  78 + /**
  79 + * @expectedException Exception
  80 + */
  81 + public function testSetFileDirectoryDisallowed()
  82 + {
  83 + $filename = 'pdf/example.pdf';
  84 + $fileStream = new FileStream($this->Mimetype, array('tmp'));
  85 + $fileStream->setFilepath($filename);
  86 + }
  87 +
  88 + /**
  89 + * @expectedException Exception
  90 + */
  91 + public function testSetFileDirectoryAllowed()
  92 + {
  93 + $filename = 'tmp/example.pdf';
  94 + $fileStream = new FileStream($this->Mimetype, array('tmp'));
  95 + $fileStream->setFilepath($filename);
  96 + }
  97 +
  98 + public function testSetFile()
  99 + {
  100 + $this->configVfs();
  101 +
  102 + // Nome do arquivo
  103 + $filename = 'tmp/example.pdf';
  104 +
  105 + // Adiciona o schema vfs:// ao caminho do arquivo
  106 + $filepath = vfsStream::url($filename);
  107 +
  108 + // Cria um novo arquivo no vfs
  109 + fopen($filepath, 'a+');
  110 +
  111 + // Pega o nome do diretório e coloca em array
  112 + $directory = (array) vfsStream::url(vfsStreamWrapper::getRoot()->getName());
  113 +
  114 + $fileStream = new FileStream($this->Mimetype, $directory);
  115 + $fileStream->setFilepath($filepath);
  116 + }
  117 +
  118 + /**
  119 + * @expectedException Exception
  120 + */
  121 + public function testStreamFileExtensionNotSupported()
  122 + {
  123 + $this->configVfs();
  124 + $filename = 'tmp/example.dummy';
  125 + $filepath = vfsStream::url($filename);
  126 + fopen($filepath, 'a+');
  127 + $directory = (array) vfsStream::url(vfsStreamWrapper::getRoot()->getName());
  128 +
  129 + $stub = $this->getMock('Mimetype');
  130 + $stub->expects($this->once())
  131 + ->method('getType')
  132 + ->will($this->returnValue(FALSE));
  133 +
  134 + $fileStream = new FileStream($stub, $directory);
  135 + $fileStream->setFilepath($filepath);
  136 +
  137 + $fileStream->streamFile();
  138 + }
  139 +
  140 + /**
  141 + * Tag disponível apenas no PHPUnit 3.4, ainda não disponível no pacote
  142 + * Pear PHPUnit-beta3. Note o uso do '@' para supressão das mensagens de
  143 + * erro.
  144 + *
  145 + * @outputBuffering enabled
  146 + */
  147 + public function testStreamFileExtensionSupported()
  148 + {
  149 + $this->configVfs();
  150 + $filename = 'tmp/example.pdf';
  151 + $filepath = vfsStream::url($filename);
  152 + fopen($filepath, 'a+');
  153 + $directory = (array) vfsStream::url(vfsStreamWrapper::getRoot()->getName());
  154 +
  155 + $stub = $this->getMock('Mimetype');
  156 + $stub->expects($this->once())
  157 + ->method('getType')
  158 + ->will($this->returnValue('application/pdf'));
  159 +
  160 + $fileStream = new FileStream($stub, $directory);
  161 + $fileStream->setFilepath($filepath);
  162 + @$fileStream->streamFile();
  163 + }
  164 +}
0 165 \ No newline at end of file
... ...